@assistant-ui/react 0.5.96 → 0.5.98

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 (989) hide show
  1. package/dist/api/AssistantRuntime.d.ts +19 -0
  2. package/dist/api/AssistantRuntime.d.ts.map +1 -1
  3. package/dist/api/AssistantRuntime.js +9 -7
  4. package/dist/api/AssistantRuntime.js.map +1 -1
  5. package/dist/api/AssistantRuntime.mjs +8 -7
  6. package/dist/api/AssistantRuntime.mjs.map +1 -1
  7. package/dist/api/AttachmentRuntime.js +12 -10
  8. package/dist/api/AttachmentRuntime.js.map +1 -1
  9. package/dist/api/AttachmentRuntime.mjs +11 -10
  10. package/dist/api/AttachmentRuntime.mjs.map +1 -1
  11. package/dist/api/ComposerRuntime.js +16 -14
  12. package/dist/api/ComposerRuntime.js.map +1 -1
  13. package/dist/api/ComposerRuntime.mjs +15 -14
  14. package/dist/api/ComposerRuntime.mjs.map +1 -1
  15. package/dist/api/ContentPartRuntime.js +4 -2
  16. package/dist/api/ContentPartRuntime.js.map +1 -1
  17. package/dist/api/ContentPartRuntime.mjs +3 -2
  18. package/dist/api/ContentPartRuntime.mjs.map +1 -1
  19. package/dist/api/MessageRuntime.js +15 -13
  20. package/dist/api/MessageRuntime.js.map +1 -1
  21. package/dist/api/MessageRuntime.mjs +14 -13
  22. package/dist/api/MessageRuntime.mjs.map +1 -1
  23. package/dist/api/RuntimePathTypes.js +2 -0
  24. package/dist/api/RuntimePathTypes.js.map +1 -1
  25. package/dist/api/ThreadManagerRuntime.js +7 -5
  26. package/dist/api/ThreadManagerRuntime.js.map +1 -1
  27. package/dist/api/ThreadManagerRuntime.mjs +6 -5
  28. package/dist/api/ThreadManagerRuntime.mjs.map +1 -1
  29. package/dist/api/ThreadRuntime.d.ts +42 -0
  30. package/dist/api/ThreadRuntime.d.ts.map +1 -1
  31. package/dist/api/ThreadRuntime.js +12 -10
  32. package/dist/api/ThreadRuntime.js.map +1 -1
  33. package/dist/api/ThreadRuntime.mjs +11 -10
  34. package/dist/api/ThreadRuntime.mjs.map +1 -1
  35. package/dist/api/index.js +2 -0
  36. package/dist/api/index.js.map +1 -1
  37. package/dist/api/subscribable/BaseSubject.js +4 -2
  38. package/dist/api/subscribable/BaseSubject.js.map +1 -1
  39. package/dist/api/subscribable/BaseSubject.mjs +3 -2
  40. package/dist/api/subscribable/BaseSubject.mjs.map +1 -1
  41. package/dist/api/subscribable/LazyMemoizeSubject.js +6 -4
  42. package/dist/api/subscribable/LazyMemoizeSubject.js.map +1 -1
  43. package/dist/api/subscribable/LazyMemoizeSubject.mjs +5 -4
  44. package/dist/api/subscribable/LazyMemoizeSubject.mjs.map +1 -1
  45. package/dist/api/subscribable/NestedSubscriptionSubject.js +5 -3
  46. package/dist/api/subscribable/NestedSubscriptionSubject.js.map +1 -1
  47. package/dist/api/subscribable/NestedSubscriptionSubject.mjs +4 -3
  48. package/dist/api/subscribable/NestedSubscriptionSubject.mjs.map +1 -1
  49. package/dist/api/subscribable/SKIP_UPDATE.js +3 -1
  50. package/dist/api/subscribable/SKIP_UPDATE.js.map +1 -1
  51. package/dist/api/subscribable/SKIP_UPDATE.mjs +2 -1
  52. package/dist/api/subscribable/SKIP_UPDATE.mjs.map +1 -1
  53. package/dist/api/subscribable/ShallowMemoizeSubject.js +7 -5
  54. package/dist/api/subscribable/ShallowMemoizeSubject.js.map +1 -1
  55. package/dist/api/subscribable/ShallowMemoizeSubject.mjs +6 -5
  56. package/dist/api/subscribable/ShallowMemoizeSubject.mjs.map +1 -1
  57. package/dist/api/subscribable/Subscribable.js +2 -0
  58. package/dist/api/subscribable/Subscribable.js.map +1 -1
  59. package/dist/api/subscribable/shallowEqual.js +2 -0
  60. package/dist/api/subscribable/shallowEqual.js.map +1 -1
  61. package/dist/api/subscribable/shallowEqual.mjs +1 -0
  62. package/dist/api/subscribable/shallowEqual.mjs.map +1 -1
  63. package/dist/context/ReadonlyStore.js +3 -1
  64. package/dist/context/ReadonlyStore.js.map +1 -1
  65. package/dist/context/ReadonlyStore.mjs +2 -1
  66. package/dist/context/ReadonlyStore.mjs.map +1 -1
  67. package/dist/context/index.js +8 -6
  68. package/dist/context/index.js.map +1 -1
  69. package/dist/context/index.mjs +4 -3
  70. package/dist/context/index.mjs.map +1 -1
  71. package/dist/context/providers/AssistantRuntimeProvider.js +12 -10
  72. package/dist/context/providers/AssistantRuntimeProvider.js.map +1 -1
  73. package/dist/context/providers/AssistantRuntimeProvider.mjs +12 -10
  74. package/dist/context/providers/AssistantRuntimeProvider.mjs.map +1 -1
  75. package/dist/context/providers/AttachmentRuntimeProvider.js +8 -6
  76. package/dist/context/providers/AttachmentRuntimeProvider.js.map +1 -1
  77. package/dist/context/providers/AttachmentRuntimeProvider.mjs +8 -6
  78. package/dist/context/providers/AttachmentRuntimeProvider.mjs.map +1 -1
  79. package/dist/context/providers/ContentPartRuntimeProvider.js +8 -6
  80. package/dist/context/providers/ContentPartRuntimeProvider.js.map +1 -1
  81. package/dist/context/providers/ContentPartRuntimeProvider.mjs +8 -6
  82. package/dist/context/providers/ContentPartRuntimeProvider.mjs.map +1 -1
  83. package/dist/context/providers/MessageRuntimeProvider.js +11 -9
  84. package/dist/context/providers/MessageRuntimeProvider.js.map +1 -1
  85. package/dist/context/providers/MessageRuntimeProvider.mjs +11 -9
  86. package/dist/context/providers/MessageRuntimeProvider.mjs.map +1 -1
  87. package/dist/context/providers/TextContentPartProvider.js +9 -7
  88. package/dist/context/providers/TextContentPartProvider.js.map +1 -1
  89. package/dist/context/providers/TextContentPartProvider.mjs +9 -7
  90. package/dist/context/providers/TextContentPartProvider.mjs.map +1 -1
  91. package/dist/context/providers/ThreadRuntimeProvider.js +11 -9
  92. package/dist/context/providers/ThreadRuntimeProvider.js.map +1 -1
  93. package/dist/context/providers/ThreadRuntimeProvider.mjs +10 -9
  94. package/dist/context/providers/ThreadRuntimeProvider.mjs.map +1 -1
  95. package/dist/context/providers/index.js +4 -2
  96. package/dist/context/providers/index.js.map +1 -1
  97. package/dist/context/providers/index.mjs +3 -2
  98. package/dist/context/providers/index.mjs.map +1 -1
  99. package/dist/context/react/AssistantContext.js +12 -10
  100. package/dist/context/react/AssistantContext.js.map +1 -1
  101. package/dist/context/react/AssistantContext.mjs +12 -10
  102. package/dist/context/react/AssistantContext.mjs.map +1 -1
  103. package/dist/context/react/AttachmentContext.js +8 -6
  104. package/dist/context/react/AttachmentContext.js.map +1 -1
  105. package/dist/context/react/AttachmentContext.mjs +8 -6
  106. package/dist/context/react/AttachmentContext.mjs.map +1 -1
  107. package/dist/context/react/ComposerContext.js +7 -5
  108. package/dist/context/react/ComposerContext.js.map +1 -1
  109. package/dist/context/react/ComposerContext.mjs +6 -5
  110. package/dist/context/react/ComposerContext.mjs.map +1 -1
  111. package/dist/context/react/ContentPartContext.js +7 -5
  112. package/dist/context/react/ContentPartContext.js.map +1 -1
  113. package/dist/context/react/ContentPartContext.mjs +7 -5
  114. package/dist/context/react/ContentPartContext.mjs.map +1 -1
  115. package/dist/context/react/MessageContext.js +9 -7
  116. package/dist/context/react/MessageContext.js.map +1 -1
  117. package/dist/context/react/MessageContext.mjs +9 -7
  118. package/dist/context/react/MessageContext.mjs.map +1 -1
  119. package/dist/context/react/ThreadContext.js +16 -14
  120. package/dist/context/react/ThreadContext.js.map +1 -1
  121. package/dist/context/react/ThreadContext.mjs +16 -14
  122. package/dist/context/react/ThreadContext.mjs.map +1 -1
  123. package/dist/context/react/index.js +8 -6
  124. package/dist/context/react/index.js.map +1 -1
  125. package/dist/context/react/index.mjs +7 -6
  126. package/dist/context/react/index.mjs.map +1 -1
  127. package/dist/context/react/utils/createContextHook.js +2 -0
  128. package/dist/context/react/utils/createContextHook.js.map +1 -1
  129. package/dist/context/react/utils/createContextHook.mjs +1 -0
  130. package/dist/context/react/utils/createContextHook.mjs.map +1 -1
  131. package/dist/context/react/utils/createContextStoreHook.js +2 -0
  132. package/dist/context/react/utils/createContextStoreHook.js.map +1 -1
  133. package/dist/context/react/utils/createContextStoreHook.mjs +1 -0
  134. package/dist/context/react/utils/createContextStoreHook.mjs.map +1 -1
  135. package/dist/context/stores/AssistantToolUIs.js +3 -1
  136. package/dist/context/stores/AssistantToolUIs.js.map +1 -1
  137. package/dist/context/stores/AssistantToolUIs.mjs +3 -1
  138. package/dist/context/stores/AssistantToolUIs.mjs.map +1 -1
  139. package/dist/context/stores/MessageUtils.js +3 -1
  140. package/dist/context/stores/MessageUtils.js.map +1 -1
  141. package/dist/context/stores/MessageUtils.mjs +2 -1
  142. package/dist/context/stores/MessageUtils.mjs.map +1 -1
  143. package/dist/context/stores/ThreadViewport.js +3 -1
  144. package/dist/context/stores/ThreadViewport.js.map +1 -1
  145. package/dist/context/stores/ThreadViewport.mjs +3 -1
  146. package/dist/context/stores/ThreadViewport.mjs.map +1 -1
  147. package/dist/context/stores/index.js +2 -0
  148. package/dist/context/stores/index.js.map +1 -1
  149. package/dist/edge.js +3 -1
  150. package/dist/edge.js.map +1 -1
  151. package/dist/edge.mjs +2 -1
  152. package/dist/edge.mjs.map +1 -1
  153. package/dist/hooks/index.js +4 -2
  154. package/dist/hooks/index.js.map +1 -1
  155. package/dist/hooks/index.mjs +3 -2
  156. package/dist/hooks/index.mjs.map +1 -1
  157. package/dist/hooks/useAppendMessage.js +4 -2
  158. package/dist/hooks/useAppendMessage.js.map +1 -1
  159. package/dist/hooks/useAppendMessage.mjs +3 -2
  160. package/dist/hooks/useAppendMessage.mjs.map +1 -1
  161. package/dist/hooks/useSwitchToNewThread.js +4 -2
  162. package/dist/hooks/useSwitchToNewThread.js.map +1 -1
  163. package/dist/hooks/useSwitchToNewThread.mjs +3 -2
  164. package/dist/hooks/useSwitchToNewThread.mjs.map +1 -1
  165. package/dist/index.js +21 -19
  166. package/dist/index.js.map +1 -1
  167. package/dist/index.mjs +11 -10
  168. package/dist/index.mjs.map +1 -1
  169. package/dist/internal.js +12 -10
  170. package/dist/internal.js.map +1 -1
  171. package/dist/internal.mjs +10 -9
  172. package/dist/internal.mjs.map +1 -1
  173. package/dist/model-config/index.js +8 -6
  174. package/dist/model-config/index.js.map +1 -1
  175. package/dist/model-config/index.mjs +7 -6
  176. package/dist/model-config/index.mjs.map +1 -1
  177. package/dist/model-config/makeAssistantTool.js +4 -2
  178. package/dist/model-config/makeAssistantTool.js.map +1 -1
  179. package/dist/model-config/makeAssistantTool.mjs +4 -2
  180. package/dist/model-config/makeAssistantTool.mjs.map +1 -1
  181. package/dist/model-config/makeAssistantToolUI.js +4 -2
  182. package/dist/model-config/makeAssistantToolUI.js.map +1 -1
  183. package/dist/model-config/makeAssistantToolUI.mjs +4 -2
  184. package/dist/model-config/makeAssistantToolUI.mjs.map +1 -1
  185. package/dist/model-config/useAssistantInstructions.js +4 -2
  186. package/dist/model-config/useAssistantInstructions.js.map +1 -1
  187. package/dist/model-config/useAssistantInstructions.mjs +4 -2
  188. package/dist/model-config/useAssistantInstructions.mjs.map +1 -1
  189. package/dist/model-config/useAssistantTool.js +4 -2
  190. package/dist/model-config/useAssistantTool.js.map +1 -1
  191. package/dist/model-config/useAssistantTool.mjs +4 -2
  192. package/dist/model-config/useAssistantTool.mjs.map +1 -1
  193. package/dist/model-config/useAssistantToolUI.js +4 -2
  194. package/dist/model-config/useAssistantToolUI.js.map +1 -1
  195. package/dist/model-config/useAssistantToolUI.mjs +4 -2
  196. package/dist/model-config/useAssistantToolUI.mjs.map +1 -1
  197. package/dist/model-config/useInlineRender.js +3 -1
  198. package/dist/model-config/useInlineRender.js.map +1 -1
  199. package/dist/model-config/useInlineRender.mjs +2 -1
  200. package/dist/model-config/useInlineRender.mjs.map +1 -1
  201. package/dist/primitive-hooks/actionBar/index.js +9 -7
  202. package/dist/primitive-hooks/actionBar/index.js.map +1 -1
  203. package/dist/primitive-hooks/actionBar/index.mjs +8 -7
  204. package/dist/primitive-hooks/actionBar/index.mjs.map +1 -1
  205. package/dist/primitive-hooks/actionBar/useActionBarCopy.js +5 -3
  206. package/dist/primitive-hooks/actionBar/useActionBarCopy.js.map +1 -1
  207. package/dist/primitive-hooks/actionBar/useActionBarCopy.mjs +4 -3
  208. package/dist/primitive-hooks/actionBar/useActionBarCopy.mjs.map +1 -1
  209. package/dist/primitive-hooks/actionBar/useActionBarEdit.js +4 -2
  210. package/dist/primitive-hooks/actionBar/useActionBarEdit.js.map +1 -1
  211. package/dist/primitive-hooks/actionBar/useActionBarEdit.mjs +3 -2
  212. package/dist/primitive-hooks/actionBar/useActionBarEdit.mjs.map +1 -1
  213. package/dist/primitive-hooks/actionBar/useActionBarFeedbackNegative.js +4 -2
  214. package/dist/primitive-hooks/actionBar/useActionBarFeedbackNegative.js.map +1 -1
  215. package/dist/primitive-hooks/actionBar/useActionBarFeedbackNegative.mjs +3 -2
  216. package/dist/primitive-hooks/actionBar/useActionBarFeedbackNegative.mjs.map +1 -1
  217. package/dist/primitive-hooks/actionBar/useActionBarFeedbackPositive.js +4 -2
  218. package/dist/primitive-hooks/actionBar/useActionBarFeedbackPositive.js.map +1 -1
  219. package/dist/primitive-hooks/actionBar/useActionBarFeedbackPositive.mjs +3 -2
  220. package/dist/primitive-hooks/actionBar/useActionBarFeedbackPositive.mjs.map +1 -1
  221. package/dist/primitive-hooks/actionBar/useActionBarReload.js +6 -4
  222. package/dist/primitive-hooks/actionBar/useActionBarReload.js.map +1 -1
  223. package/dist/primitive-hooks/actionBar/useActionBarReload.mjs +5 -4
  224. package/dist/primitive-hooks/actionBar/useActionBarReload.mjs.map +1 -1
  225. package/dist/primitive-hooks/actionBar/useActionBarSpeak.js +4 -2
  226. package/dist/primitive-hooks/actionBar/useActionBarSpeak.js.map +1 -1
  227. package/dist/primitive-hooks/actionBar/useActionBarSpeak.mjs +3 -2
  228. package/dist/primitive-hooks/actionBar/useActionBarSpeak.mjs.map +1 -1
  229. package/dist/primitive-hooks/actionBar/useActionBarStopSpeaking.js +4 -2
  230. package/dist/primitive-hooks/actionBar/useActionBarStopSpeaking.js.map +1 -1
  231. package/dist/primitive-hooks/actionBar/useActionBarStopSpeaking.mjs +3 -2
  232. package/dist/primitive-hooks/actionBar/useActionBarStopSpeaking.mjs.map +1 -1
  233. package/dist/primitive-hooks/attachment/useAttachmentRemove.js +4 -2
  234. package/dist/primitive-hooks/attachment/useAttachmentRemove.js.map +1 -1
  235. package/dist/primitive-hooks/attachment/useAttachmentRemove.mjs +3 -2
  236. package/dist/primitive-hooks/attachment/useAttachmentRemove.mjs.map +1 -1
  237. package/dist/primitive-hooks/branchPicker/index.js +6 -4
  238. package/dist/primitive-hooks/branchPicker/index.js.map +1 -1
  239. package/dist/primitive-hooks/branchPicker/index.mjs +5 -4
  240. package/dist/primitive-hooks/branchPicker/index.mjs.map +1 -1
  241. package/dist/primitive-hooks/branchPicker/useBranchPickerCount.js +4 -2
  242. package/dist/primitive-hooks/branchPicker/useBranchPickerCount.js.map +1 -1
  243. package/dist/primitive-hooks/branchPicker/useBranchPickerCount.mjs +4 -2
  244. package/dist/primitive-hooks/branchPicker/useBranchPickerCount.mjs.map +1 -1
  245. package/dist/primitive-hooks/branchPicker/useBranchPickerNext.js +4 -2
  246. package/dist/primitive-hooks/branchPicker/useBranchPickerNext.js.map +1 -1
  247. package/dist/primitive-hooks/branchPicker/useBranchPickerNext.mjs +3 -2
  248. package/dist/primitive-hooks/branchPicker/useBranchPickerNext.mjs.map +1 -1
  249. package/dist/primitive-hooks/branchPicker/useBranchPickerNumber.js +4 -2
  250. package/dist/primitive-hooks/branchPicker/useBranchPickerNumber.js.map +1 -1
  251. package/dist/primitive-hooks/branchPicker/useBranchPickerNumber.mjs +4 -2
  252. package/dist/primitive-hooks/branchPicker/useBranchPickerNumber.mjs.map +1 -1
  253. package/dist/primitive-hooks/branchPicker/useBranchPickerPrevious.js +4 -2
  254. package/dist/primitive-hooks/branchPicker/useBranchPickerPrevious.js.map +1 -1
  255. package/dist/primitive-hooks/branchPicker/useBranchPickerPrevious.mjs +3 -2
  256. package/dist/primitive-hooks/branchPicker/useBranchPickerPrevious.mjs.map +1 -1
  257. package/dist/primitive-hooks/composer/index.js +6 -4
  258. package/dist/primitive-hooks/composer/index.js.map +1 -1
  259. package/dist/primitive-hooks/composer/index.mjs +5 -4
  260. package/dist/primitive-hooks/composer/index.mjs.map +1 -1
  261. package/dist/primitive-hooks/composer/useComposerAddAttachment.js +4 -2
  262. package/dist/primitive-hooks/composer/useComposerAddAttachment.js.map +1 -1
  263. package/dist/primitive-hooks/composer/useComposerAddAttachment.mjs +3 -2
  264. package/dist/primitive-hooks/composer/useComposerAddAttachment.mjs.map +1 -1
  265. package/dist/primitive-hooks/composer/useComposerCancel.js +4 -2
  266. package/dist/primitive-hooks/composer/useComposerCancel.js.map +1 -1
  267. package/dist/primitive-hooks/composer/useComposerCancel.mjs +3 -2
  268. package/dist/primitive-hooks/composer/useComposerCancel.mjs.map +1 -1
  269. package/dist/primitive-hooks/composer/useComposerIf.js +4 -2
  270. package/dist/primitive-hooks/composer/useComposerIf.js.map +1 -1
  271. package/dist/primitive-hooks/composer/useComposerIf.mjs +4 -2
  272. package/dist/primitive-hooks/composer/useComposerIf.mjs.map +1 -1
  273. package/dist/primitive-hooks/composer/useComposerSend.js +6 -4
  274. package/dist/primitive-hooks/composer/useComposerSend.js.map +1 -1
  275. package/dist/primitive-hooks/composer/useComposerSend.mjs +5 -4
  276. package/dist/primitive-hooks/composer/useComposerSend.mjs.map +1 -1
  277. package/dist/primitive-hooks/contentPart/index.js +5 -3
  278. package/dist/primitive-hooks/contentPart/index.js.map +1 -1
  279. package/dist/primitive-hooks/contentPart/index.mjs +4 -3
  280. package/dist/primitive-hooks/contentPart/index.mjs.map +1 -1
  281. package/dist/primitive-hooks/contentPart/useContentPartDisplay.js +4 -2
  282. package/dist/primitive-hooks/contentPart/useContentPartDisplay.js.map +1 -1
  283. package/dist/primitive-hooks/contentPart/useContentPartDisplay.mjs +3 -2
  284. package/dist/primitive-hooks/contentPart/useContentPartDisplay.mjs.map +1 -1
  285. package/dist/primitive-hooks/contentPart/useContentPartImage.js +4 -2
  286. package/dist/primitive-hooks/contentPart/useContentPartImage.js.map +1 -1
  287. package/dist/primitive-hooks/contentPart/useContentPartImage.mjs +3 -2
  288. package/dist/primitive-hooks/contentPart/useContentPartImage.mjs.map +1 -1
  289. package/dist/primitive-hooks/contentPart/useContentPartText.js +4 -2
  290. package/dist/primitive-hooks/contentPart/useContentPartText.js.map +1 -1
  291. package/dist/primitive-hooks/contentPart/useContentPartText.mjs +3 -2
  292. package/dist/primitive-hooks/contentPart/useContentPartText.mjs.map +1 -1
  293. package/dist/primitive-hooks/index.js +14 -12
  294. package/dist/primitive-hooks/index.js.map +1 -1
  295. package/dist/primitive-hooks/index.mjs +7 -6
  296. package/dist/primitive-hooks/index.mjs.map +1 -1
  297. package/dist/primitive-hooks/message/index.js +3 -1
  298. package/dist/primitive-hooks/message/index.js.map +1 -1
  299. package/dist/primitive-hooks/message/index.mjs +2 -1
  300. package/dist/primitive-hooks/message/index.mjs.map +1 -1
  301. package/dist/primitive-hooks/message/useMessageIf.js +5 -3
  302. package/dist/primitive-hooks/message/useMessageIf.js.map +1 -1
  303. package/dist/primitive-hooks/message/useMessageIf.mjs +5 -3
  304. package/dist/primitive-hooks/message/useMessageIf.mjs.map +1 -1
  305. package/dist/primitive-hooks/thread/index.js +6 -4
  306. package/dist/primitive-hooks/thread/index.js.map +1 -1
  307. package/dist/primitive-hooks/thread/index.mjs +5 -4
  308. package/dist/primitive-hooks/thread/index.mjs.map +1 -1
  309. package/dist/primitive-hooks/thread/useThreadEmpty.js +4 -2
  310. package/dist/primitive-hooks/thread/useThreadEmpty.js.map +1 -1
  311. package/dist/primitive-hooks/thread/useThreadEmpty.mjs +3 -2
  312. package/dist/primitive-hooks/thread/useThreadEmpty.mjs.map +1 -1
  313. package/dist/primitive-hooks/thread/useThreadIf.js +4 -2
  314. package/dist/primitive-hooks/thread/useThreadIf.js.map +1 -1
  315. package/dist/primitive-hooks/thread/useThreadIf.mjs +4 -2
  316. package/dist/primitive-hooks/thread/useThreadIf.mjs.map +1 -1
  317. package/dist/primitive-hooks/thread/useThreadScrollToBottom.js +5 -3
  318. package/dist/primitive-hooks/thread/useThreadScrollToBottom.js.map +1 -1
  319. package/dist/primitive-hooks/thread/useThreadScrollToBottom.mjs +4 -3
  320. package/dist/primitive-hooks/thread/useThreadScrollToBottom.mjs.map +1 -1
  321. package/dist/primitive-hooks/thread/useThreadSuggestion.js +5 -3
  322. package/dist/primitive-hooks/thread/useThreadSuggestion.js.map +1 -1
  323. package/dist/primitive-hooks/thread/useThreadSuggestion.mjs +4 -3
  324. package/dist/primitive-hooks/thread/useThreadSuggestion.mjs.map +1 -1
  325. package/dist/primitive-hooks/thread/useThreadViewportAutoScroll.js +8 -6
  326. package/dist/primitive-hooks/thread/useThreadViewportAutoScroll.js.map +1 -1
  327. package/dist/primitive-hooks/thread/useThreadViewportAutoScroll.mjs +8 -6
  328. package/dist/primitive-hooks/thread/useThreadViewportAutoScroll.mjs.map +1 -1
  329. package/dist/primitives/actionBar/ActionBarCopy.js +6 -4
  330. package/dist/primitives/actionBar/ActionBarCopy.js.map +1 -1
  331. package/dist/primitives/actionBar/ActionBarCopy.mjs +6 -4
  332. package/dist/primitives/actionBar/ActionBarCopy.mjs.map +1 -1
  333. package/dist/primitives/actionBar/ActionBarEdit.js +5 -3
  334. package/dist/primitives/actionBar/ActionBarEdit.js.map +1 -1
  335. package/dist/primitives/actionBar/ActionBarEdit.mjs +5 -3
  336. package/dist/primitives/actionBar/ActionBarEdit.mjs.map +1 -1
  337. package/dist/primitives/actionBar/ActionBarFeedbackNegative.js +6 -4
  338. package/dist/primitives/actionBar/ActionBarFeedbackNegative.js.map +1 -1
  339. package/dist/primitives/actionBar/ActionBarFeedbackNegative.mjs +6 -4
  340. package/dist/primitives/actionBar/ActionBarFeedbackNegative.mjs.map +1 -1
  341. package/dist/primitives/actionBar/ActionBarFeedbackPositive.js +6 -4
  342. package/dist/primitives/actionBar/ActionBarFeedbackPositive.js.map +1 -1
  343. package/dist/primitives/actionBar/ActionBarFeedbackPositive.mjs +6 -4
  344. package/dist/primitives/actionBar/ActionBarFeedbackPositive.mjs.map +1 -1
  345. package/dist/primitives/actionBar/ActionBarReload.js +5 -3
  346. package/dist/primitives/actionBar/ActionBarReload.js.map +1 -1
  347. package/dist/primitives/actionBar/ActionBarReload.mjs +5 -3
  348. package/dist/primitives/actionBar/ActionBarReload.mjs.map +1 -1
  349. package/dist/primitives/actionBar/ActionBarRoot.js +5 -3
  350. package/dist/primitives/actionBar/ActionBarRoot.js.map +1 -1
  351. package/dist/primitives/actionBar/ActionBarRoot.mjs +5 -3
  352. package/dist/primitives/actionBar/ActionBarRoot.mjs.map +1 -1
  353. package/dist/primitives/actionBar/ActionBarSpeak.js +5 -3
  354. package/dist/primitives/actionBar/ActionBarSpeak.js.map +1 -1
  355. package/dist/primitives/actionBar/ActionBarSpeak.mjs +5 -3
  356. package/dist/primitives/actionBar/ActionBarSpeak.mjs.map +1 -1
  357. package/dist/primitives/actionBar/ActionBarStopSpeaking.js +5 -3
  358. package/dist/primitives/actionBar/ActionBarStopSpeaking.js.map +1 -1
  359. package/dist/primitives/actionBar/ActionBarStopSpeaking.mjs +5 -3
  360. package/dist/primitives/actionBar/ActionBarStopSpeaking.mjs.map +1 -1
  361. package/dist/primitives/actionBar/index.js +10 -8
  362. package/dist/primitives/actionBar/index.js.map +1 -1
  363. package/dist/primitives/actionBar/index.mjs +9 -8
  364. package/dist/primitives/actionBar/index.mjs.map +1 -1
  365. package/dist/primitives/actionBar/types.js +2 -0
  366. package/dist/primitives/actionBar/types.js.map +1 -1
  367. package/dist/primitives/actionBar/useActionBarFloatStatus.js +6 -4
  368. package/dist/primitives/actionBar/useActionBarFloatStatus.js.map +1 -1
  369. package/dist/primitives/actionBar/useActionBarFloatStatus.mjs +6 -4
  370. package/dist/primitives/actionBar/useActionBarFloatStatus.mjs.map +1 -1
  371. package/dist/primitives/assistantModal/AssistantModalAnchor.js +5 -3
  372. package/dist/primitives/assistantModal/AssistantModalAnchor.js.map +1 -1
  373. package/dist/primitives/assistantModal/AssistantModalAnchor.mjs +5 -3
  374. package/dist/primitives/assistantModal/AssistantModalAnchor.mjs.map +1 -1
  375. package/dist/primitives/assistantModal/AssistantModalContent.js +5 -3
  376. package/dist/primitives/assistantModal/AssistantModalContent.js.map +1 -1
  377. package/dist/primitives/assistantModal/AssistantModalContent.mjs +5 -3
  378. package/dist/primitives/assistantModal/AssistantModalContent.mjs.map +1 -1
  379. package/dist/primitives/assistantModal/AssistantModalRoot.js +7 -5
  380. package/dist/primitives/assistantModal/AssistantModalRoot.js.map +1 -1
  381. package/dist/primitives/assistantModal/AssistantModalRoot.mjs +7 -5
  382. package/dist/primitives/assistantModal/AssistantModalRoot.mjs.map +1 -1
  383. package/dist/primitives/assistantModal/AssistantModalTrigger.js +5 -3
  384. package/dist/primitives/assistantModal/AssistantModalTrigger.js.map +1 -1
  385. package/dist/primitives/assistantModal/AssistantModalTrigger.mjs +5 -3
  386. package/dist/primitives/assistantModal/AssistantModalTrigger.mjs.map +1 -1
  387. package/dist/primitives/assistantModal/index.js +6 -4
  388. package/dist/primitives/assistantModal/index.js.map +1 -1
  389. package/dist/primitives/assistantModal/index.mjs +5 -4
  390. package/dist/primitives/assistantModal/index.mjs.map +1 -1
  391. package/dist/primitives/assistantModal/scope.js +3 -1
  392. package/dist/primitives/assistantModal/scope.js.map +1 -1
  393. package/dist/primitives/assistantModal/scope.mjs +2 -1
  394. package/dist/primitives/assistantModal/scope.mjs.map +1 -1
  395. package/dist/primitives/assistantModal/types.js +2 -0
  396. package/dist/primitives/assistantModal/types.js.map +1 -1
  397. package/dist/primitives/attachment/AttachmentName.js +4 -2
  398. package/dist/primitives/attachment/AttachmentName.js.map +1 -1
  399. package/dist/primitives/attachment/AttachmentName.mjs +4 -2
  400. package/dist/primitives/attachment/AttachmentName.mjs.map +1 -1
  401. package/dist/primitives/attachment/AttachmentRemove.js +5 -3
  402. package/dist/primitives/attachment/AttachmentRemove.js.map +1 -1
  403. package/dist/primitives/attachment/AttachmentRemove.mjs +5 -3
  404. package/dist/primitives/attachment/AttachmentRemove.mjs.map +1 -1
  405. package/dist/primitives/attachment/AttachmentRoot.js +4 -2
  406. package/dist/primitives/attachment/AttachmentRoot.js.map +1 -1
  407. package/dist/primitives/attachment/AttachmentRoot.mjs +3 -2
  408. package/dist/primitives/attachment/AttachmentRoot.mjs.map +1 -1
  409. package/dist/primitives/attachment/AttachmentThumb.js +5 -3
  410. package/dist/primitives/attachment/AttachmentThumb.js.map +1 -1
  411. package/dist/primitives/attachment/AttachmentThumb.mjs +5 -3
  412. package/dist/primitives/attachment/AttachmentThumb.mjs.map +1 -1
  413. package/dist/primitives/attachment/index.js +6 -4
  414. package/dist/primitives/attachment/index.js.map +1 -1
  415. package/dist/primitives/attachment/index.mjs +5 -4
  416. package/dist/primitives/attachment/index.mjs.map +1 -1
  417. package/dist/primitives/branchPicker/BranchPickerCount.js +4 -2
  418. package/dist/primitives/branchPicker/BranchPickerCount.js.map +1 -1
  419. package/dist/primitives/branchPicker/BranchPickerCount.mjs +4 -2
  420. package/dist/primitives/branchPicker/BranchPickerCount.mjs.map +1 -1
  421. package/dist/primitives/branchPicker/BranchPickerNext.js +5 -3
  422. package/dist/primitives/branchPicker/BranchPickerNext.js.map +1 -1
  423. package/dist/primitives/branchPicker/BranchPickerNext.mjs +5 -3
  424. package/dist/primitives/branchPicker/BranchPickerNext.mjs.map +1 -1
  425. package/dist/primitives/branchPicker/BranchPickerNumber.js +4 -2
  426. package/dist/primitives/branchPicker/BranchPickerNumber.js.map +1 -1
  427. package/dist/primitives/branchPicker/BranchPickerNumber.mjs +4 -2
  428. package/dist/primitives/branchPicker/BranchPickerNumber.mjs.map +1 -1
  429. package/dist/primitives/branchPicker/BranchPickerPrevious.js +5 -3
  430. package/dist/primitives/branchPicker/BranchPickerPrevious.js.map +1 -1
  431. package/dist/primitives/branchPicker/BranchPickerPrevious.mjs +5 -3
  432. package/dist/primitives/branchPicker/BranchPickerPrevious.mjs.map +1 -1
  433. package/dist/primitives/branchPicker/BranchPickerRoot.js +5 -3
  434. package/dist/primitives/branchPicker/BranchPickerRoot.js.map +1 -1
  435. package/dist/primitives/branchPicker/BranchPickerRoot.mjs +5 -3
  436. package/dist/primitives/branchPicker/BranchPickerRoot.mjs.map +1 -1
  437. package/dist/primitives/branchPicker/index.js +7 -5
  438. package/dist/primitives/branchPicker/index.js.map +1 -1
  439. package/dist/primitives/branchPicker/index.mjs +6 -5
  440. package/dist/primitives/branchPicker/index.mjs.map +1 -1
  441. package/dist/primitives/branchPicker/types.js +2 -0
  442. package/dist/primitives/branchPicker/types.js.map +1 -1
  443. package/dist/primitives/composer/ComposerAddAttachment.js +5 -3
  444. package/dist/primitives/composer/ComposerAddAttachment.js.map +1 -1
  445. package/dist/primitives/composer/ComposerAddAttachment.mjs +5 -3
  446. package/dist/primitives/composer/ComposerAddAttachment.mjs.map +1 -1
  447. package/dist/primitives/composer/ComposerAttachments.js +11 -9
  448. package/dist/primitives/composer/ComposerAttachments.js.map +1 -1
  449. package/dist/primitives/composer/ComposerAttachments.mjs +11 -9
  450. package/dist/primitives/composer/ComposerAttachments.mjs.map +1 -1
  451. package/dist/primitives/composer/ComposerCancel.js +5 -3
  452. package/dist/primitives/composer/ComposerCancel.js.map +1 -1
  453. package/dist/primitives/composer/ComposerCancel.mjs +5 -3
  454. package/dist/primitives/composer/ComposerCancel.mjs.map +1 -1
  455. package/dist/primitives/composer/ComposerIf.js +4 -2
  456. package/dist/primitives/composer/ComposerIf.js.map +1 -1
  457. package/dist/primitives/composer/ComposerIf.mjs +4 -2
  458. package/dist/primitives/composer/ComposerIf.mjs.map +1 -1
  459. package/dist/primitives/composer/ComposerInput.js +7 -5
  460. package/dist/primitives/composer/ComposerInput.js.map +1 -1
  461. package/dist/primitives/composer/ComposerInput.mjs +7 -5
  462. package/dist/primitives/composer/ComposerInput.mjs.map +1 -1
  463. package/dist/primitives/composer/ComposerRoot.js +5 -3
  464. package/dist/primitives/composer/ComposerRoot.js.map +1 -1
  465. package/dist/primitives/composer/ComposerRoot.mjs +5 -3
  466. package/dist/primitives/composer/ComposerRoot.mjs.map +1 -1
  467. package/dist/primitives/composer/ComposerSend.js +5 -3
  468. package/dist/primitives/composer/ComposerSend.js.map +1 -1
  469. package/dist/primitives/composer/ComposerSend.mjs +5 -3
  470. package/dist/primitives/composer/ComposerSend.mjs.map +1 -1
  471. package/dist/primitives/composer/index.js +9 -7
  472. package/dist/primitives/composer/index.js.map +1 -1
  473. package/dist/primitives/composer/index.mjs +8 -7
  474. package/dist/primitives/composer/index.mjs.map +1 -1
  475. package/dist/primitives/composer/types.js +2 -0
  476. package/dist/primitives/composer/types.js.map +1 -1
  477. package/dist/primitives/contentPart/ContentPartDisplay.js +4 -2
  478. package/dist/primitives/contentPart/ContentPartDisplay.js.map +1 -1
  479. package/dist/primitives/contentPart/ContentPartDisplay.mjs +3 -2
  480. package/dist/primitives/contentPart/ContentPartDisplay.mjs.map +1 -1
  481. package/dist/primitives/contentPart/ContentPartImage.js +5 -3
  482. package/dist/primitives/contentPart/ContentPartImage.js.map +1 -1
  483. package/dist/primitives/contentPart/ContentPartImage.mjs +4 -3
  484. package/dist/primitives/contentPart/ContentPartImage.mjs.map +1 -1
  485. package/dist/primitives/contentPart/ContentPartInProgress.js +4 -2
  486. package/dist/primitives/contentPart/ContentPartInProgress.js.map +1 -1
  487. package/dist/primitives/contentPart/ContentPartInProgress.mjs +3 -2
  488. package/dist/primitives/contentPart/ContentPartInProgress.mjs.map +1 -1
  489. package/dist/primitives/contentPart/ContentPartText.js +6 -4
  490. package/dist/primitives/contentPart/ContentPartText.js.map +1 -1
  491. package/dist/primitives/contentPart/ContentPartText.mjs +6 -4
  492. package/dist/primitives/contentPart/ContentPartText.mjs.map +1 -1
  493. package/dist/primitives/contentPart/index.js +6 -4
  494. package/dist/primitives/contentPart/index.js.map +1 -1
  495. package/dist/primitives/contentPart/index.mjs +5 -4
  496. package/dist/primitives/contentPart/index.mjs.map +1 -1
  497. package/dist/primitives/contentPart/types.js +2 -0
  498. package/dist/primitives/contentPart/types.js.map +1 -1
  499. package/dist/primitives/index.js +10 -8
  500. package/dist/primitives/index.js.map +1 -1
  501. package/dist/primitives/index.mjs +9 -8
  502. package/dist/primitives/index.mjs.map +1 -1
  503. package/dist/primitives/message/MessageAttachments.js +11 -9
  504. package/dist/primitives/message/MessageAttachments.js.map +1 -1
  505. package/dist/primitives/message/MessageAttachments.mjs +11 -9
  506. package/dist/primitives/message/MessageAttachments.mjs.map +1 -1
  507. package/dist/primitives/message/MessageContent.js +17 -15
  508. package/dist/primitives/message/MessageContent.js.map +1 -1
  509. package/dist/primitives/message/MessageContent.mjs +17 -15
  510. package/dist/primitives/message/MessageContent.mjs.map +1 -1
  511. package/dist/primitives/message/MessageIf.js +4 -2
  512. package/dist/primitives/message/MessageIf.js.map +1 -1
  513. package/dist/primitives/message/MessageIf.mjs +4 -2
  514. package/dist/primitives/message/MessageIf.mjs.map +1 -1
  515. package/dist/primitives/message/MessageInProgress.js +3 -1
  516. package/dist/primitives/message/MessageInProgress.js.map +1 -1
  517. package/dist/primitives/message/MessageInProgress.mjs +3 -1
  518. package/dist/primitives/message/MessageInProgress.mjs.map +1 -1
  519. package/dist/primitives/message/MessageRoot.js +7 -5
  520. package/dist/primitives/message/MessageRoot.js.map +1 -1
  521. package/dist/primitives/message/MessageRoot.mjs +7 -5
  522. package/dist/primitives/message/MessageRoot.mjs.map +1 -1
  523. package/dist/primitives/message/index.js +7 -5
  524. package/dist/primitives/message/index.js.map +1 -1
  525. package/dist/primitives/message/index.mjs +6 -5
  526. package/dist/primitives/message/index.mjs.map +1 -1
  527. package/dist/primitives/message/types.js +2 -0
  528. package/dist/primitives/message/types.js.map +1 -1
  529. package/dist/primitives/thread/ThreadEmpty.js +4 -2
  530. package/dist/primitives/thread/ThreadEmpty.js.map +1 -1
  531. package/dist/primitives/thread/ThreadEmpty.mjs +4 -2
  532. package/dist/primitives/thread/ThreadEmpty.mjs.map +1 -1
  533. package/dist/primitives/thread/ThreadIf.js +4 -2
  534. package/dist/primitives/thread/ThreadIf.js.map +1 -1
  535. package/dist/primitives/thread/ThreadIf.mjs +4 -2
  536. package/dist/primitives/thread/ThreadIf.mjs.map +1 -1
  537. package/dist/primitives/thread/ThreadMessages.js +14 -12
  538. package/dist/primitives/thread/ThreadMessages.js.map +1 -1
  539. package/dist/primitives/thread/ThreadMessages.mjs +14 -12
  540. package/dist/primitives/thread/ThreadMessages.mjs.map +1 -1
  541. package/dist/primitives/thread/ThreadRoot.js +4 -2
  542. package/dist/primitives/thread/ThreadRoot.js.map +1 -1
  543. package/dist/primitives/thread/ThreadRoot.mjs +4 -2
  544. package/dist/primitives/thread/ThreadRoot.mjs.map +1 -1
  545. package/dist/primitives/thread/ThreadScrollToBottom.js +5 -3
  546. package/dist/primitives/thread/ThreadScrollToBottom.js.map +1 -1
  547. package/dist/primitives/thread/ThreadScrollToBottom.mjs +5 -3
  548. package/dist/primitives/thread/ThreadScrollToBottom.mjs.map +1 -1
  549. package/dist/primitives/thread/ThreadSuggestion.js +5 -3
  550. package/dist/primitives/thread/ThreadSuggestion.js.map +1 -1
  551. package/dist/primitives/thread/ThreadSuggestion.mjs +5 -3
  552. package/dist/primitives/thread/ThreadSuggestion.mjs.map +1 -1
  553. package/dist/primitives/thread/ThreadViewport.js +5 -3
  554. package/dist/primitives/thread/ThreadViewport.js.map +1 -1
  555. package/dist/primitives/thread/ThreadViewport.mjs +5 -3
  556. package/dist/primitives/thread/ThreadViewport.mjs.map +1 -1
  557. package/dist/primitives/thread/index.js +9 -7
  558. package/dist/primitives/thread/index.js.map +1 -1
  559. package/dist/primitives/thread/index.mjs +8 -7
  560. package/dist/primitives/thread/index.mjs.map +1 -1
  561. package/dist/primitives/thread/types.js +2 -0
  562. package/dist/primitives/thread/types.js.map +1 -1
  563. package/dist/runtimes/attachment/AttachmentAdapter.js +2 -0
  564. package/dist/runtimes/attachment/AttachmentAdapter.js.map +1 -1
  565. package/dist/runtimes/attachment/CompositeAttachmentAdapter.js +4 -2
  566. package/dist/runtimes/attachment/CompositeAttachmentAdapter.js.map +1 -1
  567. package/dist/runtimes/attachment/CompositeAttachmentAdapter.mjs +3 -2
  568. package/dist/runtimes/attachment/CompositeAttachmentAdapter.mjs.map +1 -1
  569. package/dist/runtimes/attachment/SimpleImageAttachmentAdapter.js +5 -3
  570. package/dist/runtimes/attachment/SimpleImageAttachmentAdapter.js.map +1 -1
  571. package/dist/runtimes/attachment/SimpleImageAttachmentAdapter.mjs +4 -3
  572. package/dist/runtimes/attachment/SimpleImageAttachmentAdapter.mjs.map +1 -1
  573. package/dist/runtimes/attachment/SimpleTextAttachmentAdapter.js +5 -3
  574. package/dist/runtimes/attachment/SimpleTextAttachmentAdapter.js.map +1 -1
  575. package/dist/runtimes/attachment/SimpleTextAttachmentAdapter.mjs +4 -3
  576. package/dist/runtimes/attachment/SimpleTextAttachmentAdapter.mjs.map +1 -1
  577. package/dist/runtimes/attachment/index.js +5 -3
  578. package/dist/runtimes/attachment/index.js.map +1 -1
  579. package/dist/runtimes/attachment/index.mjs +4 -3
  580. package/dist/runtimes/attachment/index.mjs.map +1 -1
  581. package/dist/runtimes/composer/BaseComposerRuntimeCore.js +5 -3
  582. package/dist/runtimes/composer/BaseComposerRuntimeCore.js.map +1 -1
  583. package/dist/runtimes/composer/BaseComposerRuntimeCore.mjs +4 -3
  584. package/dist/runtimes/composer/BaseComposerRuntimeCore.mjs.map +1 -1
  585. package/dist/runtimes/composer/DefaultEditComposerRuntimeCore.js +6 -4
  586. package/dist/runtimes/composer/DefaultEditComposerRuntimeCore.js.map +1 -1
  587. package/dist/runtimes/composer/DefaultEditComposerRuntimeCore.mjs +5 -4
  588. package/dist/runtimes/composer/DefaultEditComposerRuntimeCore.mjs.map +1 -1
  589. package/dist/runtimes/composer/DefaultThreadComposerRuntimeCore.js +5 -3
  590. package/dist/runtimes/composer/DefaultThreadComposerRuntimeCore.js.map +1 -1
  591. package/dist/runtimes/composer/DefaultThreadComposerRuntimeCore.mjs +4 -3
  592. package/dist/runtimes/composer/DefaultThreadComposerRuntimeCore.mjs.map +1 -1
  593. package/dist/runtimes/core/AssistantRuntimeCore.js +2 -0
  594. package/dist/runtimes/core/AssistantRuntimeCore.js.map +1 -1
  595. package/dist/runtimes/core/BaseAssistantRuntimeCore.js +5 -3
  596. package/dist/runtimes/core/BaseAssistantRuntimeCore.js.map +1 -1
  597. package/dist/runtimes/core/BaseAssistantRuntimeCore.mjs +4 -3
  598. package/dist/runtimes/core/BaseAssistantRuntimeCore.mjs.map +1 -1
  599. package/dist/runtimes/core/BaseThreadRuntimeCore.js +8 -6
  600. package/dist/runtimes/core/BaseThreadRuntimeCore.js.map +1 -1
  601. package/dist/runtimes/core/BaseThreadRuntimeCore.mjs +7 -6
  602. package/dist/runtimes/core/BaseThreadRuntimeCore.mjs.map +1 -1
  603. package/dist/runtimes/core/ComposerRuntimeCore.js +2 -0
  604. package/dist/runtimes/core/ComposerRuntimeCore.js.map +1 -1
  605. package/dist/runtimes/core/ThreadManagerRuntimeCore.js +2 -0
  606. package/dist/runtimes/core/ThreadManagerRuntimeCore.js.map +1 -1
  607. package/dist/runtimes/core/ThreadRuntimeCore.js +2 -0
  608. package/dist/runtimes/core/ThreadRuntimeCore.js.map +1 -1
  609. package/dist/runtimes/core/index.js +3 -1
  610. package/dist/runtimes/core/index.js.map +1 -1
  611. package/dist/runtimes/core/index.mjs +2 -1
  612. package/dist/runtimes/core/index.mjs.map +1 -1
  613. package/dist/runtimes/core/subscribeToMainThread.js +3 -1
  614. package/dist/runtimes/core/subscribeToMainThread.js.map +1 -1
  615. package/dist/runtimes/core/subscribeToMainThread.mjs +2 -1
  616. package/dist/runtimes/core/subscribeToMainThread.mjs.map +1 -1
  617. package/dist/runtimes/dangerous-in-browser/DangerousInBrowserAdapter.js +10 -8
  618. package/dist/runtimes/dangerous-in-browser/DangerousInBrowserAdapter.js.map +1 -1
  619. package/dist/runtimes/dangerous-in-browser/DangerousInBrowserAdapter.mjs +9 -8
  620. package/dist/runtimes/dangerous-in-browser/DangerousInBrowserAdapter.mjs.map +1 -1
  621. package/dist/runtimes/dangerous-in-browser/index.js +3 -1
  622. package/dist/runtimes/dangerous-in-browser/index.js.map +1 -1
  623. package/dist/runtimes/dangerous-in-browser/index.mjs +2 -1
  624. package/dist/runtimes/dangerous-in-browser/index.mjs.map +1 -1
  625. package/dist/runtimes/dangerous-in-browser/useDangerousInBrowserRuntime.js +6 -4
  626. package/dist/runtimes/dangerous-in-browser/useDangerousInBrowserRuntime.js.map +1 -1
  627. package/dist/runtimes/dangerous-in-browser/useDangerousInBrowserRuntime.mjs +5 -4
  628. package/dist/runtimes/dangerous-in-browser/useDangerousInBrowserRuntime.mjs.map +1 -1
  629. package/dist/runtimes/edge/EdgeChatAdapter.d.ts +5 -0
  630. package/dist/runtimes/edge/EdgeChatAdapter.d.ts.map +1 -1
  631. package/dist/runtimes/edge/EdgeChatAdapter.js +14 -9
  632. package/dist/runtimes/edge/EdgeChatAdapter.js.map +1 -1
  633. package/dist/runtimes/edge/EdgeChatAdapter.mjs +13 -9
  634. package/dist/runtimes/edge/EdgeChatAdapter.mjs.map +1 -1
  635. package/dist/runtimes/edge/EdgeRuntimeRequestOptions.js +13 -11
  636. package/dist/runtimes/edge/EdgeRuntimeRequestOptions.js.map +1 -1
  637. package/dist/runtimes/edge/EdgeRuntimeRequestOptions.mjs +12 -11
  638. package/dist/runtimes/edge/EdgeRuntimeRequestOptions.mjs.map +1 -1
  639. package/dist/runtimes/edge/converters/fromCoreMessage.js +5 -3
  640. package/dist/runtimes/edge/converters/fromCoreMessage.js.map +1 -1
  641. package/dist/runtimes/edge/converters/fromCoreMessage.mjs +4 -3
  642. package/dist/runtimes/edge/converters/fromCoreMessage.mjs.map +1 -1
  643. package/dist/runtimes/edge/converters/fromLanguageModelMessages.js +3 -1
  644. package/dist/runtimes/edge/converters/fromLanguageModelMessages.js.map +1 -1
  645. package/dist/runtimes/edge/converters/fromLanguageModelMessages.mjs +2 -1
  646. package/dist/runtimes/edge/converters/fromLanguageModelMessages.mjs.map +1 -1
  647. package/dist/runtimes/edge/converters/fromLanguageModelTools.js +3 -1
  648. package/dist/runtimes/edge/converters/fromLanguageModelTools.js.map +1 -1
  649. package/dist/runtimes/edge/converters/fromLanguageModelTools.mjs +2 -1
  650. package/dist/runtimes/edge/converters/fromLanguageModelTools.mjs.map +1 -1
  651. package/dist/runtimes/edge/converters/index.js +8 -6
  652. package/dist/runtimes/edge/converters/index.js.map +1 -1
  653. package/dist/runtimes/edge/converters/index.mjs +7 -6
  654. package/dist/runtimes/edge/converters/index.mjs.map +1 -1
  655. package/dist/runtimes/edge/converters/toCoreMessages.js +4 -2
  656. package/dist/runtimes/edge/converters/toCoreMessages.js.map +1 -1
  657. package/dist/runtimes/edge/converters/toCoreMessages.mjs +3 -2
  658. package/dist/runtimes/edge/converters/toCoreMessages.mjs.map +1 -1
  659. package/dist/runtimes/edge/converters/toLanguageModelMessages.js +3 -1
  660. package/dist/runtimes/edge/converters/toLanguageModelMessages.js.map +1 -1
  661. package/dist/runtimes/edge/converters/toLanguageModelMessages.mjs +2 -1
  662. package/dist/runtimes/edge/converters/toLanguageModelMessages.mjs.map +1 -1
  663. package/dist/runtimes/edge/converters/toLanguageModelTools.js +3 -1
  664. package/dist/runtimes/edge/converters/toLanguageModelTools.js.map +1 -1
  665. package/dist/runtimes/edge/converters/toLanguageModelTools.mjs +2 -1
  666. package/dist/runtimes/edge/converters/toLanguageModelTools.mjs.map +1 -1
  667. package/dist/runtimes/edge/createEdgeRuntimeAPI.js +15 -13
  668. package/dist/runtimes/edge/createEdgeRuntimeAPI.js.map +1 -1
  669. package/dist/runtimes/edge/createEdgeRuntimeAPI.mjs +14 -13
  670. package/dist/runtimes/edge/createEdgeRuntimeAPI.mjs.map +1 -1
  671. package/dist/runtimes/edge/index.js +8 -6
  672. package/dist/runtimes/edge/index.js.map +1 -1
  673. package/dist/runtimes/edge/index.mjs +5 -4
  674. package/dist/runtimes/edge/index.mjs.map +1 -1
  675. package/dist/runtimes/edge/partial-json/fix-json.js +2 -0
  676. package/dist/runtimes/edge/partial-json/fix-json.js.map +1 -1
  677. package/dist/runtimes/edge/partial-json/fix-json.mjs +1 -0
  678. package/dist/runtimes/edge/partial-json/fix-json.mjs.map +1 -1
  679. package/dist/runtimes/edge/partial-json/parse-partial-json.js +4 -2
  680. package/dist/runtimes/edge/partial-json/parse-partial-json.js.map +1 -1
  681. package/dist/runtimes/edge/partial-json/parse-partial-json.mjs +3 -2
  682. package/dist/runtimes/edge/partial-json/parse-partial-json.mjs.map +1 -1
  683. package/dist/runtimes/edge/streams/AssistantStreamChunkType.js +2 -0
  684. package/dist/runtimes/edge/streams/AssistantStreamChunkType.js.map +1 -1
  685. package/dist/runtimes/edge/streams/AssistantStreamChunkType.mjs +1 -0
  686. package/dist/runtimes/edge/streams/AssistantStreamChunkType.mjs.map +1 -1
  687. package/dist/runtimes/edge/streams/assistantDecoderStream.js +3 -1
  688. package/dist/runtimes/edge/streams/assistantDecoderStream.js.map +1 -1
  689. package/dist/runtimes/edge/streams/assistantDecoderStream.mjs +2 -1
  690. package/dist/runtimes/edge/streams/assistantDecoderStream.mjs.map +1 -1
  691. package/dist/runtimes/edge/streams/assistantEncoderStream.js +3 -1
  692. package/dist/runtimes/edge/streams/assistantEncoderStream.js.map +1 -1
  693. package/dist/runtimes/edge/streams/assistantEncoderStream.mjs +2 -1
  694. package/dist/runtimes/edge/streams/assistantEncoderStream.mjs.map +1 -1
  695. package/dist/runtimes/edge/streams/runResultStream.js +10 -8
  696. package/dist/runtimes/edge/streams/runResultStream.js.map +1 -1
  697. package/dist/runtimes/edge/streams/runResultStream.mjs +9 -8
  698. package/dist/runtimes/edge/streams/runResultStream.mjs.map +1 -1
  699. package/dist/runtimes/edge/streams/toolResultStream.js +2 -0
  700. package/dist/runtimes/edge/streams/toolResultStream.js.map +1 -1
  701. package/dist/runtimes/edge/streams/toolResultStream.mjs +1 -0
  702. package/dist/runtimes/edge/streams/toolResultStream.mjs.map +1 -1
  703. package/dist/runtimes/edge/streams/utils/PipeableTransformStream.js +4 -2
  704. package/dist/runtimes/edge/streams/utils/PipeableTransformStream.js.map +1 -1
  705. package/dist/runtimes/edge/streams/utils/PipeableTransformStream.mjs +3 -2
  706. package/dist/runtimes/edge/streams/utils/PipeableTransformStream.mjs.map +1 -1
  707. package/dist/runtimes/edge/streams/utils/StreamPart.js +2 -0
  708. package/dist/runtimes/edge/streams/utils/StreamPart.js.map +1 -1
  709. package/dist/runtimes/edge/streams/utils/chunkByLineStream.js +2 -0
  710. package/dist/runtimes/edge/streams/utils/chunkByLineStream.js.map +1 -1
  711. package/dist/runtimes/edge/streams/utils/chunkByLineStream.mjs +1 -0
  712. package/dist/runtimes/edge/streams/utils/chunkByLineStream.mjs.map +1 -1
  713. package/dist/runtimes/edge/streams/utils/index.js +5 -3
  714. package/dist/runtimes/edge/streams/utils/index.js.map +1 -1
  715. package/dist/runtimes/edge/streams/utils/index.mjs +4 -3
  716. package/dist/runtimes/edge/streams/utils/index.mjs.map +1 -1
  717. package/dist/runtimes/edge/streams/utils/streamPartDecoderStream.js +5 -3
  718. package/dist/runtimes/edge/streams/utils/streamPartDecoderStream.js.map +1 -1
  719. package/dist/runtimes/edge/streams/utils/streamPartDecoderStream.mjs +4 -3
  720. package/dist/runtimes/edge/streams/utils/streamPartDecoderStream.mjs.map +1 -1
  721. package/dist/runtimes/edge/streams/utils/streamPartEncoderStream.js +3 -1
  722. package/dist/runtimes/edge/streams/utils/streamPartEncoderStream.js.map +1 -1
  723. package/dist/runtimes/edge/streams/utils/streamPartEncoderStream.mjs +2 -1
  724. package/dist/runtimes/edge/streams/utils/streamPartEncoderStream.mjs.map +1 -1
  725. package/dist/runtimes/edge/useEdgeRuntime.js +6 -4
  726. package/dist/runtimes/edge/useEdgeRuntime.js.map +1 -1
  727. package/dist/runtimes/edge/useEdgeRuntime.mjs +5 -4
  728. package/dist/runtimes/edge/useEdgeRuntime.mjs.map +1 -1
  729. package/dist/runtimes/external-store/ExternalStoreAdapter.js +2 -0
  730. package/dist/runtimes/external-store/ExternalStoreAdapter.js.map +1 -1
  731. package/dist/runtimes/external-store/ExternalStoreRuntimeCore.js +8 -6
  732. package/dist/runtimes/external-store/ExternalStoreRuntimeCore.js.map +1 -1
  733. package/dist/runtimes/external-store/ExternalStoreRuntimeCore.mjs +7 -6
  734. package/dist/runtimes/external-store/ExternalStoreRuntimeCore.mjs.map +1 -1
  735. package/dist/runtimes/external-store/ExternalStoreThreadManagementAdapter.js +6 -4
  736. package/dist/runtimes/external-store/ExternalStoreThreadManagementAdapter.js.map +1 -1
  737. package/dist/runtimes/external-store/ExternalStoreThreadManagementAdapter.mjs +5 -4
  738. package/dist/runtimes/external-store/ExternalStoreThreadManagementAdapter.mjs.map +1 -1
  739. package/dist/runtimes/external-store/ExternalStoreThreadRuntimeCore.js +12 -10
  740. package/dist/runtimes/external-store/ExternalStoreThreadRuntimeCore.js.map +1 -1
  741. package/dist/runtimes/external-store/ExternalStoreThreadRuntimeCore.mjs +11 -10
  742. package/dist/runtimes/external-store/ExternalStoreThreadRuntimeCore.mjs.map +1 -1
  743. package/dist/runtimes/external-store/ThreadMessageConverter.js +4 -2
  744. package/dist/runtimes/external-store/ThreadMessageConverter.js.map +1 -1
  745. package/dist/runtimes/external-store/ThreadMessageConverter.mjs +3 -2
  746. package/dist/runtimes/external-store/ThreadMessageConverter.mjs.map +1 -1
  747. package/dist/runtimes/external-store/ThreadMessageLike.js +3 -1
  748. package/dist/runtimes/external-store/ThreadMessageLike.js.map +1 -1
  749. package/dist/runtimes/external-store/ThreadMessageLike.mjs +2 -1
  750. package/dist/runtimes/external-store/ThreadMessageLike.mjs.map +1 -1
  751. package/dist/runtimes/external-store/auto-status.js +6 -4
  752. package/dist/runtimes/external-store/auto-status.js.map +1 -1
  753. package/dist/runtimes/external-store/auto-status.mjs +5 -4
  754. package/dist/runtimes/external-store/auto-status.mjs.map +1 -1
  755. package/dist/runtimes/external-store/external-message-converter.js +10 -8
  756. package/dist/runtimes/external-store/external-message-converter.js.map +1 -1
  757. package/dist/runtimes/external-store/external-message-converter.mjs +9 -8
  758. package/dist/runtimes/external-store/external-message-converter.mjs.map +1 -1
  759. package/dist/runtimes/external-store/getExternalStoreMessage.js +4 -2
  760. package/dist/runtimes/external-store/getExternalStoreMessage.js.map +1 -1
  761. package/dist/runtimes/external-store/getExternalStoreMessage.mjs +3 -2
  762. package/dist/runtimes/external-store/getExternalStoreMessage.mjs.map +1 -1
  763. package/dist/runtimes/external-store/index.js +5 -3
  764. package/dist/runtimes/external-store/index.js.map +1 -1
  765. package/dist/runtimes/external-store/index.mjs +4 -3
  766. package/dist/runtimes/external-store/index.mjs.map +1 -1
  767. package/dist/runtimes/external-store/useExternalStoreRuntime.js +6 -4
  768. package/dist/runtimes/external-store/useExternalStoreRuntime.js.map +1 -1
  769. package/dist/runtimes/external-store/useExternalStoreRuntime.mjs +5 -4
  770. package/dist/runtimes/external-store/useExternalStoreRuntime.mjs.map +1 -1
  771. package/dist/runtimes/feedback/FeedbackAdapter.js +2 -0
  772. package/dist/runtimes/feedback/FeedbackAdapter.js.map +1 -1
  773. package/dist/runtimes/feedback/index.js +2 -0
  774. package/dist/runtimes/feedback/index.js.map +1 -1
  775. package/dist/runtimes/index.js +18 -16
  776. package/dist/runtimes/index.js.map +1 -1
  777. package/dist/runtimes/index.mjs +9 -8
  778. package/dist/runtimes/index.mjs.map +1 -1
  779. package/dist/runtimes/local/ChatModelAdapter.js +2 -0
  780. package/dist/runtimes/local/ChatModelAdapter.js.map +1 -1
  781. package/dist/runtimes/local/LocalRuntimeCore.js +9 -7
  782. package/dist/runtimes/local/LocalRuntimeCore.js.map +1 -1
  783. package/dist/runtimes/local/LocalRuntimeCore.mjs +8 -7
  784. package/dist/runtimes/local/LocalRuntimeCore.mjs.map +1 -1
  785. package/dist/runtimes/local/LocalRuntimeOptions.js +3 -1
  786. package/dist/runtimes/local/LocalRuntimeOptions.js.map +1 -1
  787. package/dist/runtimes/local/LocalRuntimeOptions.mjs +2 -1
  788. package/dist/runtimes/local/LocalRuntimeOptions.mjs.map +1 -1
  789. package/dist/runtimes/local/LocalThreadManagerRuntimeCore.js +5 -3
  790. package/dist/runtimes/local/LocalThreadManagerRuntimeCore.js.map +1 -1
  791. package/dist/runtimes/local/LocalThreadManagerRuntimeCore.mjs +4 -3
  792. package/dist/runtimes/local/LocalThreadManagerRuntimeCore.mjs.map +1 -1
  793. package/dist/runtimes/local/LocalThreadRuntimeCore.js +8 -6
  794. package/dist/runtimes/local/LocalThreadRuntimeCore.js.map +1 -1
  795. package/dist/runtimes/local/LocalThreadRuntimeCore.mjs +7 -6
  796. package/dist/runtimes/local/LocalThreadRuntimeCore.mjs.map +1 -1
  797. package/dist/runtimes/local/index.js +3 -1
  798. package/dist/runtimes/local/index.js.map +1 -1
  799. package/dist/runtimes/local/index.mjs +2 -1
  800. package/dist/runtimes/local/index.mjs.map +1 -1
  801. package/dist/runtimes/local/shouldContinue.js +3 -1
  802. package/dist/runtimes/local/shouldContinue.js.map +1 -1
  803. package/dist/runtimes/local/shouldContinue.mjs +2 -1
  804. package/dist/runtimes/local/shouldContinue.mjs.map +1 -1
  805. package/dist/runtimes/local/useLocalRuntime.js +9 -7
  806. package/dist/runtimes/local/useLocalRuntime.js.map +1 -1
  807. package/dist/runtimes/local/useLocalRuntime.mjs +9 -7
  808. package/dist/runtimes/local/useLocalRuntime.mjs.map +1 -1
  809. package/dist/runtimes/speech/SpeechAdapterTypes.js +2 -0
  810. package/dist/runtimes/speech/SpeechAdapterTypes.js.map +1 -1
  811. package/dist/runtimes/speech/WebSpeechSynthesisAdapter.js +4 -2
  812. package/dist/runtimes/speech/WebSpeechSynthesisAdapter.js.map +1 -1
  813. package/dist/runtimes/speech/WebSpeechSynthesisAdapter.mjs +3 -2
  814. package/dist/runtimes/speech/WebSpeechSynthesisAdapter.mjs.map +1 -1
  815. package/dist/runtimes/speech/index.js +3 -1
  816. package/dist/runtimes/speech/index.js.map +1 -1
  817. package/dist/runtimes/speech/index.mjs +2 -1
  818. package/dist/runtimes/speech/index.mjs.map +1 -1
  819. package/dist/runtimes/utils/MessageRepository.js +7 -5
  820. package/dist/runtimes/utils/MessageRepository.js.map +1 -1
  821. package/dist/runtimes/utils/MessageRepository.mjs +6 -5
  822. package/dist/runtimes/utils/MessageRepository.mjs.map +1 -1
  823. package/dist/tailwindcss/index.d.ts.map +1 -1
  824. package/dist/tailwindcss/index.js +7 -5
  825. package/dist/tailwindcss/index.js.map +1 -1
  826. package/dist/tailwindcss/index.mjs +6 -5
  827. package/dist/tailwindcss/index.mjs.map +1 -1
  828. package/dist/types/AssistantTypes.js +2 -0
  829. package/dist/types/AssistantTypes.js.map +1 -1
  830. package/dist/types/AttachmentTypes.js +2 -0
  831. package/dist/types/AttachmentTypes.js.map +1 -1
  832. package/dist/types/ContentPartComponentTypes.js +2 -0
  833. package/dist/types/ContentPartComponentTypes.js.map +1 -1
  834. package/dist/types/ModelConfigTypes.js +5 -3
  835. package/dist/types/ModelConfigTypes.js.map +1 -1
  836. package/dist/types/ModelConfigTypes.mjs +4 -3
  837. package/dist/types/ModelConfigTypes.mjs.map +1 -1
  838. package/dist/types/Unsubscribe.js +2 -0
  839. package/dist/types/Unsubscribe.js.map +1 -1
  840. package/dist/types/index.js +2 -0
  841. package/dist/types/index.js.map +1 -1
  842. package/dist/ui/assistant-action-bar.js +23 -21
  843. package/dist/ui/assistant-action-bar.js.map +1 -1
  844. package/dist/ui/assistant-action-bar.mjs +23 -21
  845. package/dist/ui/assistant-action-bar.mjs.map +1 -1
  846. package/dist/ui/assistant-message.js +16 -14
  847. package/dist/ui/assistant-message.js.map +1 -1
  848. package/dist/ui/assistant-message.mjs +16 -14
  849. package/dist/ui/assistant-message.mjs.map +1 -1
  850. package/dist/ui/assistant-modal.js +16 -14
  851. package/dist/ui/assistant-modal.js.map +1 -1
  852. package/dist/ui/assistant-modal.mjs +16 -14
  853. package/dist/ui/assistant-modal.mjs.map +1 -1
  854. package/dist/ui/attachment.js +22 -20
  855. package/dist/ui/attachment.js.map +1 -1
  856. package/dist/ui/attachment.mjs +19 -17
  857. package/dist/ui/attachment.mjs.map +1 -1
  858. package/dist/ui/base/CircleStopIcon.js +3 -1
  859. package/dist/ui/base/CircleStopIcon.js.map +1 -1
  860. package/dist/ui/base/CircleStopIcon.mjs +2 -1
  861. package/dist/ui/base/CircleStopIcon.mjs.map +1 -1
  862. package/dist/ui/base/avatar.js +8 -6
  863. package/dist/ui/base/avatar.js.map +1 -1
  864. package/dist/ui/base/avatar.mjs +8 -6
  865. package/dist/ui/base/avatar.mjs.map +1 -1
  866. package/dist/ui/base/button.js +5 -3
  867. package/dist/ui/base/button.js.map +1 -1
  868. package/dist/ui/base/button.mjs +4 -3
  869. package/dist/ui/base/button.mjs.map +1 -1
  870. package/dist/ui/base/dialog.js +9 -7
  871. package/dist/ui/base/dialog.js.map +1 -1
  872. package/dist/ui/base/dialog.mjs +9 -7
  873. package/dist/ui/base/dialog.mjs.map +1 -1
  874. package/dist/ui/base/index.js +7 -5
  875. package/dist/ui/base/index.js.map +1 -1
  876. package/dist/ui/base/index.mjs +6 -5
  877. package/dist/ui/base/index.mjs.map +1 -1
  878. package/dist/ui/base/tooltip-icon-button.js +6 -4
  879. package/dist/ui/base/tooltip-icon-button.js.map +1 -1
  880. package/dist/ui/base/tooltip-icon-button.mjs +6 -4
  881. package/dist/ui/base/tooltip-icon-button.mjs.map +1 -1
  882. package/dist/ui/base/tooltip.js +7 -5
  883. package/dist/ui/base/tooltip.js.map +1 -1
  884. package/dist/ui/base/tooltip.mjs +7 -5
  885. package/dist/ui/base/tooltip.mjs.map +1 -1
  886. package/dist/ui/branch-picker.js +16 -14
  887. package/dist/ui/branch-picker.js.map +1 -1
  888. package/dist/ui/branch-picker.mjs +16 -14
  889. package/dist/ui/branch-picker.mjs.map +1 -1
  890. package/dist/ui/composer.js +26 -24
  891. package/dist/ui/composer.js.map +1 -1
  892. package/dist/ui/composer.mjs +26 -24
  893. package/dist/ui/composer.mjs.map +1 -1
  894. package/dist/ui/content-part.js +7 -5
  895. package/dist/ui/content-part.js.map +1 -1
  896. package/dist/ui/content-part.mjs +6 -5
  897. package/dist/ui/content-part.mjs.map +1 -1
  898. package/dist/ui/edit-composer.js +14 -12
  899. package/dist/ui/edit-composer.js.map +1 -1
  900. package/dist/ui/edit-composer.mjs +14 -12
  901. package/dist/ui/edit-composer.mjs.map +1 -1
  902. package/dist/ui/index.js +15 -13
  903. package/dist/ui/index.js.map +1 -1
  904. package/dist/ui/index.mjs +14 -13
  905. package/dist/ui/index.mjs.map +1 -1
  906. package/dist/ui/thread-config.js +8 -6
  907. package/dist/ui/thread-config.js.map +1 -1
  908. package/dist/ui/thread-config.mjs +8 -6
  909. package/dist/ui/thread-config.mjs.map +1 -1
  910. package/dist/ui/thread-welcome.js +20 -18
  911. package/dist/ui/thread-welcome.js.map +1 -1
  912. package/dist/ui/thread-welcome.mjs +20 -18
  913. package/dist/ui/thread-welcome.mjs.map +1 -1
  914. package/dist/ui/thread.js +24 -22
  915. package/dist/ui/thread.js.map +1 -1
  916. package/dist/ui/thread.mjs +24 -22
  917. package/dist/ui/thread.mjs.map +1 -1
  918. package/dist/ui/user-action-bar.js +13 -11
  919. package/dist/ui/user-action-bar.js.map +1 -1
  920. package/dist/ui/user-action-bar.mjs +13 -11
  921. package/dist/ui/user-action-bar.mjs.map +1 -1
  922. package/dist/ui/user-message.js +16 -14
  923. package/dist/ui/user-message.js.map +1 -1
  924. package/dist/ui/user-message.mjs +16 -14
  925. package/dist/ui/user-message.mjs.map +1 -1
  926. package/dist/ui/utils/withDefaults.js +5 -3
  927. package/dist/ui/utils/withDefaults.js.map +1 -1
  928. package/dist/ui/utils/withDefaults.mjs +4 -3
  929. package/dist/ui/utils/withDefaults.mjs.map +1 -1
  930. package/dist/utils/ProxyConfigProvider.js +5 -3
  931. package/dist/utils/ProxyConfigProvider.js.map +1 -1
  932. package/dist/utils/ProxyConfigProvider.mjs +4 -3
  933. package/dist/utils/ProxyConfigProvider.mjs.map +1 -1
  934. package/dist/utils/RequireAtLeastOne.js +2 -0
  935. package/dist/utils/RequireAtLeastOne.js.map +1 -1
  936. package/dist/utils/combined/createCombinedStore.js +3 -1
  937. package/dist/utils/combined/createCombinedStore.js.map +1 -1
  938. package/dist/utils/combined/createCombinedStore.mjs +3 -1
  939. package/dist/utils/combined/createCombinedStore.mjs.map +1 -1
  940. package/dist/utils/combined/useCombinedStore.js +4 -2
  941. package/dist/utils/combined/useCombinedStore.js.map +1 -1
  942. package/dist/utils/combined/useCombinedStore.mjs +3 -2
  943. package/dist/utils/combined/useCombinedStore.mjs.map +1 -1
  944. package/dist/utils/createActionButton.js +4 -2
  945. package/dist/utils/createActionButton.js.map +1 -1
  946. package/dist/utils/createActionButton.mjs +4 -2
  947. package/dist/utils/createActionButton.mjs.map +1 -1
  948. package/dist/utils/getThreadMessageText.js +3 -1
  949. package/dist/utils/getThreadMessageText.js.map +1 -1
  950. package/dist/utils/getThreadMessageText.mjs +2 -1
  951. package/dist/utils/getThreadMessageText.mjs.map +1 -1
  952. package/dist/utils/hooks/useManagedRef.js +3 -1
  953. package/dist/utils/hooks/useManagedRef.js.map +1 -1
  954. package/dist/utils/hooks/useManagedRef.mjs +2 -1
  955. package/dist/utils/hooks/useManagedRef.mjs.map +1 -1
  956. package/dist/utils/hooks/useOnResizeContent.js +4 -2
  957. package/dist/utils/hooks/useOnResizeContent.js.map +1 -1
  958. package/dist/utils/hooks/useOnResizeContent.mjs +3 -2
  959. package/dist/utils/hooks/useOnResizeContent.mjs.map +1 -1
  960. package/dist/utils/hooks/useOnScrollToBottom.js +4 -2
  961. package/dist/utils/hooks/useOnScrollToBottom.js.map +1 -1
  962. package/dist/utils/hooks/useOnScrollToBottom.mjs +3 -2
  963. package/dist/utils/hooks/useOnScrollToBottom.mjs.map +1 -1
  964. package/dist/utils/idUtils.js +6 -4
  965. package/dist/utils/idUtils.js.map +1 -1
  966. package/dist/utils/idUtils.mjs +5 -4
  967. package/dist/utils/idUtils.mjs.map +1 -1
  968. package/dist/utils/smooth/SmoothContext.js +10 -8
  969. package/dist/utils/smooth/SmoothContext.js.map +1 -1
  970. package/dist/utils/smooth/SmoothContext.mjs +9 -8
  971. package/dist/utils/smooth/SmoothContext.mjs.map +1 -1
  972. package/dist/utils/smooth/index.js +5 -3
  973. package/dist/utils/smooth/index.js.map +1 -1
  974. package/dist/utils/smooth/index.mjs +4 -3
  975. package/dist/utils/smooth/index.mjs.map +1 -1
  976. package/dist/utils/smooth/useSmooth.js +9 -7
  977. package/dist/utils/smooth/useSmooth.js.map +1 -1
  978. package/dist/utils/smooth/useSmooth.mjs +9 -7
  979. package/dist/utils/smooth/useSmooth.mjs.map +1 -1
  980. package/package.json +8 -7
  981. package/src/api/AssistantRuntime.ts +20 -0
  982. package/src/api/ThreadRuntime.ts +26 -0
  983. package/src/runtimes/edge/EdgeChatAdapter.ts +14 -3
  984. package/src/tailwindcss/index.ts +4 -4
  985. package/src/ui/base/dialog.tsx +1 -1
  986. /package/{generated → dist/styles/tailwindcss}/base-components.css.json +0 -0
  987. /package/{generated → dist/styles/tailwindcss}/modal.css.json +0 -0
  988. /package/{generated → dist/styles/tailwindcss}/thread.css.json +0 -0
  989. /package/{generated → dist/styles/themes}/default.css.json +0 -0
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/runtimes/external-store/ExternalStoreThreadManagementAdapter.tsx"],"sourcesContent":["import type { Unsubscribe } from \"../../types\";\nimport { ExternalStoreThreadRuntimeCore } from \"./ExternalStoreThreadRuntimeCore\";\nimport { ThreadManagerRuntimeCore } from \"../core/ThreadManagerRuntimeCore\";\nimport { ExternalStoreThreadManagerAdapter } from \"./ExternalStoreAdapter\";\n\nexport type ExternalStoreThreadFactory = (\n threadId: string,\n) => ExternalStoreThreadRuntimeCore;\n\nconst EMPTY_ARRAY = Object.freeze([]);\nconst DEFAULT_THREAD_ID = \"DEFAULT_THREAD_ID\";\n\nexport class ExternalStoreThreadManagerRuntimeCore\n implements ThreadManagerRuntimeCore\n{\n public get threads() {\n return this.adapter.threads ?? EMPTY_ARRAY;\n }\n\n public get archivedThreads() {\n return this.adapter.archivedThreads ?? EMPTY_ARRAY;\n }\n\n private _mainThread: ExternalStoreThreadRuntimeCore;\n\n public get mainThread() {\n return this._mainThread;\n }\n\n constructor(\n private adapter: ExternalStoreThreadManagerAdapter = {},\n private threadFactory: ExternalStoreThreadFactory,\n ) {\n this._mainThread = this.threadFactory(DEFAULT_THREAD_ID);\n }\n\n public setAdapter(adapter: ExternalStoreThreadManagerAdapter) {\n const previousAdapter = this.adapter;\n this.adapter = adapter;\n\n const newThreadId = adapter.threadId ?? DEFAULT_THREAD_ID;\n const newThreads = adapter.threads ?? EMPTY_ARRAY;\n const newArchivedThreads = adapter.archivedThreads ?? EMPTY_ARRAY;\n\n if (\n previousAdapter.threadId === newThreadId &&\n previousAdapter.threads === newThreads &&\n previousAdapter.archivedThreads === newArchivedThreads\n ) {\n return;\n }\n\n if (previousAdapter.threadId !== newThreadId) {\n this._mainThread._notifyEventSubscribers(\"switched-away\");\n this._mainThread = this.threadFactory(newThreadId);\n this._mainThread._notifyEventSubscribers(\"switched-to\");\n }\n\n this._notifySubscribers();\n }\n\n public switchToThread(threadId: string): void {\n if (this._mainThread?.threadId === threadId) return;\n const onSwitchToThread = this.adapter.onSwitchToThread;\n if (!onSwitchToThread)\n throw new Error(\n \"External store adapter does not support switching to thread\",\n );\n onSwitchToThread(threadId);\n }\n\n public switchToNewThread(): void {\n const onSwitchToNewThread = this.adapter.onSwitchToNewThread;\n if (!onSwitchToNewThread)\n throw new Error(\n \"External store adapter does not support switching to new thread\",\n );\n\n onSwitchToNewThread();\n }\n\n public async rename(threadId: string, newTitle: string): Promise<void> {\n const onRename = this.adapter.onRename;\n if (!onRename)\n throw new Error(\"External store adapter does not support renaming\");\n\n onRename(threadId, newTitle);\n }\n\n public async archive(threadId: string): Promise<void> {\n const onArchive = this.adapter.onArchive;\n if (!onArchive)\n throw new Error(\"External store adapter does not support archiving\");\n\n onArchive(threadId);\n }\n\n public async unarchive(threadId: string): Promise<void> {\n const onUnarchive = this.adapter.onUnarchive;\n if (!onUnarchive)\n throw new Error(\"External store adapter does not support unarchiving\");\n\n onUnarchive(threadId);\n }\n\n public async delete(threadId: string): Promise<void> {\n const onDelete = this.adapter.onDelete;\n if (!onDelete)\n throw new Error(\"External store adapter does not support deleting\");\n\n onDelete(threadId);\n }\n\n private _subscriptions = new Set<() => void>();\n\n public subscribe(callback: () => void): Unsubscribe {\n this._subscriptions.add(callback);\n return () => this._subscriptions.delete(callback);\n }\n\n private _notifySubscribers() {\n for (const callback of this._subscriptions) callback();\n }\n}\n"],"mappings":"AASA,MAAM,cAAc,OAAO,OAAO,CAAC,CAAC;AACpC,MAAM,oBAAoB;AAEnB,MAAM,sCAEb;AAAA,EAeE,YACU,UAA6C,CAAC,GAC9C,eACR;AAFQ;AACA;AAER,SAAK,cAAc,KAAK,cAAc,iBAAiB;AAAA,EACzD;AAAA,EAnBA,IAAW,UAAU;AACnB,WAAO,KAAK,QAAQ,WAAW;AAAA,EACjC;AAAA,EAEA,IAAW,kBAAkB;AAC3B,WAAO,KAAK,QAAQ,mBAAmB;AAAA,EACzC;AAAA,EAEQ;AAAA,EAER,IAAW,aAAa;AACtB,WAAO,KAAK;AAAA,EACd;AAAA,EASO,WAAW,SAA4C;AAC5D,UAAM,kBAAkB,KAAK;AAC7B,SAAK,UAAU;AAEf,UAAM,cAAc,QAAQ,YAAY;AACxC,UAAM,aAAa,QAAQ,WAAW;AACtC,UAAM,qBAAqB,QAAQ,mBAAmB;AAEtD,QACE,gBAAgB,aAAa,eAC7B,gBAAgB,YAAY,cAC5B,gBAAgB,oBAAoB,oBACpC;AACA;AAAA,IACF;AAEA,QAAI,gBAAgB,aAAa,aAAa;AAC5C,WAAK,YAAY,wBAAwB,eAAe;AACxD,WAAK,cAAc,KAAK,cAAc,WAAW;AACjD,WAAK,YAAY,wBAAwB,aAAa;AAAA,IACxD;AAEA,SAAK,mBAAmB;AAAA,EAC1B;AAAA,EAEO,eAAe,UAAwB;AAC5C,QAAI,KAAK,aAAa,aAAa,SAAU;AAC7C,UAAM,mBAAmB,KAAK,QAAQ;AACtC,QAAI,CAAC;AACH,YAAM,IAAI;AAAA,QACR;AAAA,MACF;AACF,qBAAiB,QAAQ;AAAA,EAC3B;AAAA,EAEO,oBAA0B;AAC/B,UAAM,sBAAsB,KAAK,QAAQ;AACzC,QAAI,CAAC;AACH,YAAM,IAAI;AAAA,QACR;AAAA,MACF;AAEF,wBAAoB;AAAA,EACtB;AAAA,EAEA,MAAa,OAAO,UAAkB,UAAiC;AACrE,UAAM,WAAW,KAAK,QAAQ;AAC9B,QAAI,CAAC;AACH,YAAM,IAAI,MAAM,kDAAkD;AAEpE,aAAS,UAAU,QAAQ;AAAA,EAC7B;AAAA,EAEA,MAAa,QAAQ,UAAiC;AACpD,UAAM,YAAY,KAAK,QAAQ;AAC/B,QAAI,CAAC;AACH,YAAM,IAAI,MAAM,mDAAmD;AAErE,cAAU,QAAQ;AAAA,EACpB;AAAA,EAEA,MAAa,UAAU,UAAiC;AACtD,UAAM,cAAc,KAAK,QAAQ;AACjC,QAAI,CAAC;AACH,YAAM,IAAI,MAAM,qDAAqD;AAEvE,gBAAY,QAAQ;AAAA,EACtB;AAAA,EAEA,MAAa,OAAO,UAAiC;AACnD,UAAM,WAAW,KAAK,QAAQ;AAC9B,QAAI,CAAC;AACH,YAAM,IAAI,MAAM,kDAAkD;AAEpE,aAAS,QAAQ;AAAA,EACnB;AAAA,EAEQ,iBAAiB,oBAAI,IAAgB;AAAA,EAEtC,UAAU,UAAmC;AAClD,SAAK,eAAe,IAAI,QAAQ;AAChC,WAAO,MAAM,KAAK,eAAe,OAAO,QAAQ;AAAA,EAClD;AAAA,EAEQ,qBAAqB;AAC3B,eAAW,YAAY,KAAK,eAAgB,UAAS;AAAA,EACvD;AACF;","names":[]}
1
+ {"version":3,"sources":["../../../src/runtimes/external-store/ExternalStoreThreadManagementAdapter.tsx"],"sourcesContent":["import type { Unsubscribe } from \"../../types\";\nimport { ExternalStoreThreadRuntimeCore } from \"./ExternalStoreThreadRuntimeCore\";\nimport { ThreadManagerRuntimeCore } from \"../core/ThreadManagerRuntimeCore\";\nimport { ExternalStoreThreadManagerAdapter } from \"./ExternalStoreAdapter\";\n\nexport type ExternalStoreThreadFactory = (\n threadId: string,\n) => ExternalStoreThreadRuntimeCore;\n\nconst EMPTY_ARRAY = Object.freeze([]);\nconst DEFAULT_THREAD_ID = \"DEFAULT_THREAD_ID\";\n\nexport class ExternalStoreThreadManagerRuntimeCore\n implements ThreadManagerRuntimeCore\n{\n public get threads() {\n return this.adapter.threads ?? EMPTY_ARRAY;\n }\n\n public get archivedThreads() {\n return this.adapter.archivedThreads ?? EMPTY_ARRAY;\n }\n\n private _mainThread: ExternalStoreThreadRuntimeCore;\n\n public get mainThread() {\n return this._mainThread;\n }\n\n constructor(\n private adapter: ExternalStoreThreadManagerAdapter = {},\n private threadFactory: ExternalStoreThreadFactory,\n ) {\n this._mainThread = this.threadFactory(DEFAULT_THREAD_ID);\n }\n\n public setAdapter(adapter: ExternalStoreThreadManagerAdapter) {\n const previousAdapter = this.adapter;\n this.adapter = adapter;\n\n const newThreadId = adapter.threadId ?? DEFAULT_THREAD_ID;\n const newThreads = adapter.threads ?? EMPTY_ARRAY;\n const newArchivedThreads = adapter.archivedThreads ?? EMPTY_ARRAY;\n\n if (\n previousAdapter.threadId === newThreadId &&\n previousAdapter.threads === newThreads &&\n previousAdapter.archivedThreads === newArchivedThreads\n ) {\n return;\n }\n\n if (previousAdapter.threadId !== newThreadId) {\n this._mainThread._notifyEventSubscribers(\"switched-away\");\n this._mainThread = this.threadFactory(newThreadId);\n this._mainThread._notifyEventSubscribers(\"switched-to\");\n }\n\n this._notifySubscribers();\n }\n\n public switchToThread(threadId: string): void {\n if (this._mainThread?.threadId === threadId) return;\n const onSwitchToThread = this.adapter.onSwitchToThread;\n if (!onSwitchToThread)\n throw new Error(\n \"External store adapter does not support switching to thread\",\n );\n onSwitchToThread(threadId);\n }\n\n public switchToNewThread(): void {\n const onSwitchToNewThread = this.adapter.onSwitchToNewThread;\n if (!onSwitchToNewThread)\n throw new Error(\n \"External store adapter does not support switching to new thread\",\n );\n\n onSwitchToNewThread();\n }\n\n public async rename(threadId: string, newTitle: string): Promise<void> {\n const onRename = this.adapter.onRename;\n if (!onRename)\n throw new Error(\"External store adapter does not support renaming\");\n\n onRename(threadId, newTitle);\n }\n\n public async archive(threadId: string): Promise<void> {\n const onArchive = this.adapter.onArchive;\n if (!onArchive)\n throw new Error(\"External store adapter does not support archiving\");\n\n onArchive(threadId);\n }\n\n public async unarchive(threadId: string): Promise<void> {\n const onUnarchive = this.adapter.onUnarchive;\n if (!onUnarchive)\n throw new Error(\"External store adapter does not support unarchiving\");\n\n onUnarchive(threadId);\n }\n\n public async delete(threadId: string): Promise<void> {\n const onDelete = this.adapter.onDelete;\n if (!onDelete)\n throw new Error(\"External store adapter does not support deleting\");\n\n onDelete(threadId);\n }\n\n private _subscriptions = new Set<() => void>();\n\n public subscribe(callback: () => void): Unsubscribe {\n this._subscriptions.add(callback);\n return () => this._subscriptions.delete(callback);\n }\n\n private _notifySubscribers() {\n for (const callback of this._subscriptions) callback();\n }\n}\n"],"mappings":";AASA,IAAM,cAAc,OAAO,OAAO,CAAC,CAAC;AACpC,IAAM,oBAAoB;AAEnB,IAAM,wCAAN,MAEP;AAAA,EAeE,YACU,UAA6C,CAAC,GAC9C,eACR;AAFQ;AACA;AAER,SAAK,cAAc,KAAK,cAAc,iBAAiB;AAAA,EACzD;AAAA,EAnBA,IAAW,UAAU;AACnB,WAAO,KAAK,QAAQ,WAAW;AAAA,EACjC;AAAA,EAEA,IAAW,kBAAkB;AAC3B,WAAO,KAAK,QAAQ,mBAAmB;AAAA,EACzC;AAAA,EAEQ;AAAA,EAER,IAAW,aAAa;AACtB,WAAO,KAAK;AAAA,EACd;AAAA,EASO,WAAW,SAA4C;AAC5D,UAAM,kBAAkB,KAAK;AAC7B,SAAK,UAAU;AAEf,UAAM,cAAc,QAAQ,YAAY;AACxC,UAAM,aAAa,QAAQ,WAAW;AACtC,UAAM,qBAAqB,QAAQ,mBAAmB;AAEtD,QACE,gBAAgB,aAAa,eAC7B,gBAAgB,YAAY,cAC5B,gBAAgB,oBAAoB,oBACpC;AACA;AAAA,IACF;AAEA,QAAI,gBAAgB,aAAa,aAAa;AAC5C,WAAK,YAAY,wBAAwB,eAAe;AACxD,WAAK,cAAc,KAAK,cAAc,WAAW;AACjD,WAAK,YAAY,wBAAwB,aAAa;AAAA,IACxD;AAEA,SAAK,mBAAmB;AAAA,EAC1B;AAAA,EAEO,eAAe,UAAwB;AAC5C,QAAI,KAAK,aAAa,aAAa,SAAU;AAC7C,UAAM,mBAAmB,KAAK,QAAQ;AACtC,QAAI,CAAC;AACH,YAAM,IAAI;AAAA,QACR;AAAA,MACF;AACF,qBAAiB,QAAQ;AAAA,EAC3B;AAAA,EAEO,oBAA0B;AAC/B,UAAM,sBAAsB,KAAK,QAAQ;AACzC,QAAI,CAAC;AACH,YAAM,IAAI;AAAA,QACR;AAAA,MACF;AAEF,wBAAoB;AAAA,EACtB;AAAA,EAEA,MAAa,OAAO,UAAkB,UAAiC;AACrE,UAAM,WAAW,KAAK,QAAQ;AAC9B,QAAI,CAAC;AACH,YAAM,IAAI,MAAM,kDAAkD;AAEpE,aAAS,UAAU,QAAQ;AAAA,EAC7B;AAAA,EAEA,MAAa,QAAQ,UAAiC;AACpD,UAAM,YAAY,KAAK,QAAQ;AAC/B,QAAI,CAAC;AACH,YAAM,IAAI,MAAM,mDAAmD;AAErE,cAAU,QAAQ;AAAA,EACpB;AAAA,EAEA,MAAa,UAAU,UAAiC;AACtD,UAAM,cAAc,KAAK,QAAQ;AACjC,QAAI,CAAC;AACH,YAAM,IAAI,MAAM,qDAAqD;AAEvE,gBAAY,QAAQ;AAAA,EACtB;AAAA,EAEA,MAAa,OAAO,UAAiC;AACnD,UAAM,WAAW,KAAK,QAAQ;AAC9B,QAAI,CAAC;AACH,YAAM,IAAI,MAAM,kDAAkD;AAEpE,aAAS,QAAQ;AAAA,EACnB;AAAA,EAEQ,iBAAiB,oBAAI,IAAgB;AAAA,EAEtC,UAAU,UAAmC;AAClD,SAAK,eAAe,IAAI,QAAQ;AAChC,WAAO,MAAM,KAAK,eAAe,OAAO,QAAQ;AAAA,EAClD;AAAA,EAEQ,qBAAqB;AAC3B,eAAW,YAAY,KAAK,eAAgB,UAAS;AAAA,EACvD;AACF;","names":[]}
@@ -16,23 +16,25 @@ var __copyProps = (to, from, except, desc) => {
16
16
  return to;
17
17
  };
18
18
  var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
19
+
20
+ // src/runtimes/external-store/ExternalStoreThreadRuntimeCore.tsx
19
21
  var ExternalStoreThreadRuntimeCore_exports = {};
20
22
  __export(ExternalStoreThreadRuntimeCore_exports, {
21
23
  ExternalStoreThreadRuntimeCore: () => ExternalStoreThreadRuntimeCore,
22
24
  hasUpcomingMessage: () => hasUpcomingMessage
23
25
  });
24
26
  module.exports = __toCommonJS(ExternalStoreThreadRuntimeCore_exports);
25
- var import_getExternalStoreMessage = require("./getExternalStoreMessage");
26
- var import_ThreadMessageConverter = require("./ThreadMessageConverter");
27
- var import_auto_status = require("./auto-status");
28
- var import_ThreadMessageLike = require("./ThreadMessageLike");
29
- var import_getThreadMessageText = require("../../utils/getThreadMessageText");
30
- var import_BaseThreadRuntimeCore = require("../core/BaseThreadRuntimeCore");
31
- const EMPTY_ARRAY = Object.freeze([]);
32
- const hasUpcomingMessage = (isRunning, messages) => {
27
+ var import_getExternalStoreMessage = require("./getExternalStoreMessage.cjs");
28
+ var import_ThreadMessageConverter = require("./ThreadMessageConverter.cjs");
29
+ var import_auto_status = require("./auto-status.cjs");
30
+ var import_ThreadMessageLike = require("./ThreadMessageLike.cjs");
31
+ var import_getThreadMessageText = require("../../utils/getThreadMessageText.cjs");
32
+ var import_BaseThreadRuntimeCore = require("../core/BaseThreadRuntimeCore.cjs");
33
+ var EMPTY_ARRAY = Object.freeze([]);
34
+ var hasUpcomingMessage = (isRunning, messages) => {
33
35
  return isRunning && messages[messages.length - 1]?.role !== "assistant";
34
36
  };
35
- class ExternalStoreThreadRuntimeCore extends import_BaseThreadRuntimeCore.BaseThreadRuntimeCore {
37
+ var ExternalStoreThreadRuntimeCore = class extends import_BaseThreadRuntimeCore.BaseThreadRuntimeCore {
36
38
  assistantOptimisticId = null;
37
39
  _capabilities = {
38
40
  switchToBranch: false,
@@ -188,7 +190,7 @@ class ExternalStoreThreadRuntimeCore extends import_BaseThreadRuntimeCore.BaseTh
188
190
  messages.flatMap(import_getExternalStoreMessage.getExternalStoreMessage).filter((m) => m != null)
189
191
  );
190
192
  };
191
- }
193
+ };
192
194
  // Annotate the CommonJS export names for ESM import in node:
193
195
  0 && (module.exports = {
194
196
  ExternalStoreThreadRuntimeCore,
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/runtimes/external-store/ExternalStoreThreadRuntimeCore.tsx"],"sourcesContent":["import {\n AddToolResultOptions,\n ThreadSuggestion,\n} from \"../core/ThreadRuntimeCore\";\n\nimport { AppendMessage, ModelConfigProvider, ThreadMessage } from \"../../types\";\nimport { ExternalStoreAdapter } from \"./ExternalStoreAdapter\";\nimport {\n getExternalStoreMessage,\n symbolInnerMessage,\n} from \"./getExternalStoreMessage\";\nimport { ThreadMessageConverter } from \"./ThreadMessageConverter\";\nimport { getAutoStatus, isAutoStatus } from \"./auto-status\";\nimport { fromThreadMessageLike } from \"./ThreadMessageLike\";\nimport { getThreadMessageText } from \"../../utils/getThreadMessageText\";\nimport {\n RuntimeCapabilities,\n ThreadRuntimeCore,\n} from \"../core/ThreadRuntimeCore\";\nimport { BaseThreadRuntimeCore } from \"../core/BaseThreadRuntimeCore\";\n\nconst EMPTY_ARRAY = Object.freeze([]);\n\nexport const hasUpcomingMessage = (\n isRunning: boolean,\n messages: ThreadMessage[],\n) => {\n return isRunning && messages[messages.length - 1]?.role !== \"assistant\";\n};\n\nexport class ExternalStoreThreadRuntimeCore\n extends BaseThreadRuntimeCore\n implements ThreadRuntimeCore\n{\n private assistantOptimisticId: string | null = null;\n\n private _capabilities: RuntimeCapabilities = {\n switchToBranch: false,\n edit: false,\n reload: false,\n cancel: false,\n unstable_copy: false,\n speech: false,\n attachments: false,\n feedback: false,\n };\n\n public get capabilities() {\n return this._capabilities;\n }\n\n public threadId!: string;\n private _messages!: ThreadMessage[];\n public isDisabled!: boolean;\n\n public override get messages() {\n return this._messages;\n }\n\n public get adapters() {\n return this._store.adapters;\n }\n\n public suggestions: readonly ThreadSuggestion[] = [];\n public extras: unknown = undefined;\n\n private _converter = new ThreadMessageConverter();\n\n private _store!: ExternalStoreAdapter<any>;\n\n public override beginEdit(messageId: string) {\n if (!this._store.onEdit)\n throw new Error(\"Runtime does not support editing.\");\n\n super.beginEdit(messageId);\n }\n\n constructor(\n configProvider: ModelConfigProvider,\n threadId: string,\n store: ExternalStoreAdapter<any>,\n ) {\n super(configProvider);\n this.threadId = threadId;\n this.setStore(store);\n }\n\n public setStore(store: ExternalStoreAdapter<any>) {\n if (this._store === store) return;\n\n const isRunning = store.isRunning ?? false;\n this.isDisabled = store.isDisabled ?? false;\n\n const oldStore = this._store as ExternalStoreAdapter<any> | undefined;\n this._store = store;\n this.extras = store.extras;\n this.suggestions = store.suggestions ?? EMPTY_ARRAY;\n this._capabilities = {\n switchToBranch: this._store.setMessages !== undefined,\n edit: this._store.onEdit !== undefined,\n reload: this._store.onReload !== undefined,\n cancel: this._store.onCancel !== undefined,\n speech: this._store.adapters?.speech !== undefined,\n unstable_copy: this._store.unstable_capabilities?.copy !== false, // default true\n attachments: !!this._store.adapters?.attachments,\n feedback: !!this._store.adapters?.feedback,\n };\n\n if (oldStore) {\n // flush the converter cache when the convertMessage prop changes\n if (oldStore.convertMessage !== store.convertMessage) {\n this._converter = new ThreadMessageConverter();\n } else if (\n oldStore.isRunning === store.isRunning &&\n oldStore.messages === store.messages\n ) {\n this._notifySubscribers();\n // no conversion update\n return;\n }\n }\n\n const messages = !store.convertMessage\n ? store.messages\n : this._converter.convertMessages(store.messages, (cache, m, idx) => {\n if (!store.convertMessage) return m;\n\n const isLast = idx === store.messages.length - 1;\n const autoStatus = getAutoStatus(isLast, isRunning);\n\n if (\n cache &&\n (cache.role !== \"assistant\" ||\n !isAutoStatus(cache.status) ||\n cache.status === autoStatus)\n )\n return cache;\n\n const newMessage = fromThreadMessageLike(\n store.convertMessage(m, idx),\n idx.toString(),\n autoStatus,\n );\n (newMessage as any)[symbolInnerMessage] = m;\n return newMessage;\n });\n\n for (let i = 0; i < messages.length; i++) {\n const message = messages[i]!;\n const parent = messages[i - 1];\n this.repository.addOrUpdateMessage(parent?.id ?? null, message);\n }\n\n if (this.assistantOptimisticId) {\n this.repository.deleteMessage(this.assistantOptimisticId);\n this.assistantOptimisticId = null;\n }\n\n if (hasUpcomingMessage(isRunning, messages)) {\n this.assistantOptimisticId = this.repository.appendOptimisticMessage(\n messages.at(-1)?.id ?? null,\n {\n role: \"assistant\",\n content: [],\n },\n );\n }\n\n this.repository.resetHead(\n this.assistantOptimisticId ?? messages.at(-1)?.id ?? null,\n );\n\n this._messages = this.repository.getMessages();\n this._notifySubscribers();\n }\n\n public override switchToBranch(branchId: string): void {\n if (!this._store.setMessages)\n throw new Error(\"Runtime does not support switching branches.\");\n\n this.repository.switchToBranch(branchId);\n this.updateMessages(this.repository.getMessages());\n }\n\n public async append(message: AppendMessage): Promise<void> {\n if (message.parentId !== (this.messages.at(-1)?.id ?? null)) {\n if (!this._store.onEdit)\n throw new Error(\"Runtime does not support editing messages.\");\n await this._store.onEdit(message);\n } else {\n await this._store.onNew(message);\n }\n }\n\n public async startRun(parentId: string | null): Promise<void> {\n if (!this._store.onReload)\n throw new Error(\"Runtime does not support reloading messages.\");\n\n await this._store.onReload(parentId);\n }\n\n public cancelRun(): void {\n if (!this._store.onCancel)\n throw new Error(\"Runtime does not support cancelling runs.\");\n\n this._store.onCancel();\n\n if (this.assistantOptimisticId) {\n this.repository.deleteMessage(this.assistantOptimisticId);\n this.assistantOptimisticId = null;\n }\n\n let messages = this.repository.getMessages();\n const previousMessage = messages[messages.length - 1];\n if (\n previousMessage?.role === \"user\" &&\n previousMessage.id === messages.at(-1)?.id // ensure the previous message is a leaf node\n ) {\n this.repository.deleteMessage(previousMessage.id);\n if (!this.composer.text.trim()) {\n this.composer.setText(getThreadMessageText(previousMessage));\n }\n\n messages = this.repository.getMessages();\n } else {\n this._notifySubscribers();\n }\n\n // resync messages (for reloading, to restore the previous branch)\n setTimeout(() => {\n this.updateMessages(messages);\n }, 0);\n }\n\n public addToolResult(options: AddToolResultOptions) {\n if (!this._store.onAddToolResult)\n throw new Error(\"Runtime does not support tool results.\");\n this._store.onAddToolResult(options);\n }\n\n private updateMessages = (messages: ThreadMessage[]) => {\n this._store.setMessages?.(\n messages.flatMap(getExternalStoreMessage).filter((m) => m != null),\n );\n };\n}\n"],"mappings":"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","names":[]}
1
+ {"version":3,"sources":["../../../src/runtimes/external-store/ExternalStoreThreadRuntimeCore.tsx"],"sourcesContent":["import {\n AddToolResultOptions,\n ThreadSuggestion,\n} from \"../core/ThreadRuntimeCore\";\n\nimport { AppendMessage, ModelConfigProvider, ThreadMessage } from \"../../types\";\nimport { ExternalStoreAdapter } from \"./ExternalStoreAdapter\";\nimport {\n getExternalStoreMessage,\n symbolInnerMessage,\n} from \"./getExternalStoreMessage\";\nimport { ThreadMessageConverter } from \"./ThreadMessageConverter\";\nimport { getAutoStatus, isAutoStatus } from \"./auto-status\";\nimport { fromThreadMessageLike } from \"./ThreadMessageLike\";\nimport { getThreadMessageText } from \"../../utils/getThreadMessageText\";\nimport {\n RuntimeCapabilities,\n ThreadRuntimeCore,\n} from \"../core/ThreadRuntimeCore\";\nimport { BaseThreadRuntimeCore } from \"../core/BaseThreadRuntimeCore\";\n\nconst EMPTY_ARRAY = Object.freeze([]);\n\nexport const hasUpcomingMessage = (\n isRunning: boolean,\n messages: ThreadMessage[],\n) => {\n return isRunning && messages[messages.length - 1]?.role !== \"assistant\";\n};\n\nexport class ExternalStoreThreadRuntimeCore\n extends BaseThreadRuntimeCore\n implements ThreadRuntimeCore\n{\n private assistantOptimisticId: string | null = null;\n\n private _capabilities: RuntimeCapabilities = {\n switchToBranch: false,\n edit: false,\n reload: false,\n cancel: false,\n unstable_copy: false,\n speech: false,\n attachments: false,\n feedback: false,\n };\n\n public get capabilities() {\n return this._capabilities;\n }\n\n public threadId!: string;\n private _messages!: ThreadMessage[];\n public isDisabled!: boolean;\n\n public override get messages() {\n return this._messages;\n }\n\n public get adapters() {\n return this._store.adapters;\n }\n\n public suggestions: readonly ThreadSuggestion[] = [];\n public extras: unknown = undefined;\n\n private _converter = new ThreadMessageConverter();\n\n private _store!: ExternalStoreAdapter<any>;\n\n public override beginEdit(messageId: string) {\n if (!this._store.onEdit)\n throw new Error(\"Runtime does not support editing.\");\n\n super.beginEdit(messageId);\n }\n\n constructor(\n configProvider: ModelConfigProvider,\n threadId: string,\n store: ExternalStoreAdapter<any>,\n ) {\n super(configProvider);\n this.threadId = threadId;\n this.setStore(store);\n }\n\n public setStore(store: ExternalStoreAdapter<any>) {\n if (this._store === store) return;\n\n const isRunning = store.isRunning ?? false;\n this.isDisabled = store.isDisabled ?? false;\n\n const oldStore = this._store as ExternalStoreAdapter<any> | undefined;\n this._store = store;\n this.extras = store.extras;\n this.suggestions = store.suggestions ?? EMPTY_ARRAY;\n this._capabilities = {\n switchToBranch: this._store.setMessages !== undefined,\n edit: this._store.onEdit !== undefined,\n reload: this._store.onReload !== undefined,\n cancel: this._store.onCancel !== undefined,\n speech: this._store.adapters?.speech !== undefined,\n unstable_copy: this._store.unstable_capabilities?.copy !== false, // default true\n attachments: !!this._store.adapters?.attachments,\n feedback: !!this._store.adapters?.feedback,\n };\n\n if (oldStore) {\n // flush the converter cache when the convertMessage prop changes\n if (oldStore.convertMessage !== store.convertMessage) {\n this._converter = new ThreadMessageConverter();\n } else if (\n oldStore.isRunning === store.isRunning &&\n oldStore.messages === store.messages\n ) {\n this._notifySubscribers();\n // no conversion update\n return;\n }\n }\n\n const messages = !store.convertMessage\n ? store.messages\n : this._converter.convertMessages(store.messages, (cache, m, idx) => {\n if (!store.convertMessage) return m;\n\n const isLast = idx === store.messages.length - 1;\n const autoStatus = getAutoStatus(isLast, isRunning);\n\n if (\n cache &&\n (cache.role !== \"assistant\" ||\n !isAutoStatus(cache.status) ||\n cache.status === autoStatus)\n )\n return cache;\n\n const newMessage = fromThreadMessageLike(\n store.convertMessage(m, idx),\n idx.toString(),\n autoStatus,\n );\n (newMessage as any)[symbolInnerMessage] = m;\n return newMessage;\n });\n\n for (let i = 0; i < messages.length; i++) {\n const message = messages[i]!;\n const parent = messages[i - 1];\n this.repository.addOrUpdateMessage(parent?.id ?? null, message);\n }\n\n if (this.assistantOptimisticId) {\n this.repository.deleteMessage(this.assistantOptimisticId);\n this.assistantOptimisticId = null;\n }\n\n if (hasUpcomingMessage(isRunning, messages)) {\n this.assistantOptimisticId = this.repository.appendOptimisticMessage(\n messages.at(-1)?.id ?? null,\n {\n role: \"assistant\",\n content: [],\n },\n );\n }\n\n this.repository.resetHead(\n this.assistantOptimisticId ?? messages.at(-1)?.id ?? null,\n );\n\n this._messages = this.repository.getMessages();\n this._notifySubscribers();\n }\n\n public override switchToBranch(branchId: string): void {\n if (!this._store.setMessages)\n throw new Error(\"Runtime does not support switching branches.\");\n\n this.repository.switchToBranch(branchId);\n this.updateMessages(this.repository.getMessages());\n }\n\n public async append(message: AppendMessage): Promise<void> {\n if (message.parentId !== (this.messages.at(-1)?.id ?? null)) {\n if (!this._store.onEdit)\n throw new Error(\"Runtime does not support editing messages.\");\n await this._store.onEdit(message);\n } else {\n await this._store.onNew(message);\n }\n }\n\n public async startRun(parentId: string | null): Promise<void> {\n if (!this._store.onReload)\n throw new Error(\"Runtime does not support reloading messages.\");\n\n await this._store.onReload(parentId);\n }\n\n public cancelRun(): void {\n if (!this._store.onCancel)\n throw new Error(\"Runtime does not support cancelling runs.\");\n\n this._store.onCancel();\n\n if (this.assistantOptimisticId) {\n this.repository.deleteMessage(this.assistantOptimisticId);\n this.assistantOptimisticId = null;\n }\n\n let messages = this.repository.getMessages();\n const previousMessage = messages[messages.length - 1];\n if (\n previousMessage?.role === \"user\" &&\n previousMessage.id === messages.at(-1)?.id // ensure the previous message is a leaf node\n ) {\n this.repository.deleteMessage(previousMessage.id);\n if (!this.composer.text.trim()) {\n this.composer.setText(getThreadMessageText(previousMessage));\n }\n\n messages = this.repository.getMessages();\n } else {\n this._notifySubscribers();\n }\n\n // resync messages (for reloading, to restore the previous branch)\n setTimeout(() => {\n this.updateMessages(messages);\n }, 0);\n }\n\n public addToolResult(options: AddToolResultOptions) {\n if (!this._store.onAddToolResult)\n throw new Error(\"Runtime does not support tool results.\");\n this._store.onAddToolResult(options);\n }\n\n private updateMessages = (messages: ThreadMessage[]) => {\n this._store.setMessages?.(\n messages.flatMap(getExternalStoreMessage).filter((m) => m != null),\n );\n };\n}\n"],"mappings":"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","names":[]}
@@ -1,17 +1,18 @@
1
+ // src/runtimes/external-store/ExternalStoreThreadRuntimeCore.tsx
1
2
  import {
2
3
  getExternalStoreMessage,
3
4
  symbolInnerMessage
4
- } from "./getExternalStoreMessage";
5
- import { ThreadMessageConverter } from "./ThreadMessageConverter";
6
- import { getAutoStatus, isAutoStatus } from "./auto-status";
7
- import { fromThreadMessageLike } from "./ThreadMessageLike";
8
- import { getThreadMessageText } from "../../utils/getThreadMessageText";
9
- import { BaseThreadRuntimeCore } from "../core/BaseThreadRuntimeCore";
10
- const EMPTY_ARRAY = Object.freeze([]);
11
- const hasUpcomingMessage = (isRunning, messages) => {
5
+ } from "./getExternalStoreMessage.mjs";
6
+ import { ThreadMessageConverter } from "./ThreadMessageConverter.mjs";
7
+ import { getAutoStatus, isAutoStatus } from "./auto-status.mjs";
8
+ import { fromThreadMessageLike } from "./ThreadMessageLike.mjs";
9
+ import { getThreadMessageText } from "../../utils/getThreadMessageText.mjs";
10
+ import { BaseThreadRuntimeCore } from "../core/BaseThreadRuntimeCore.mjs";
11
+ var EMPTY_ARRAY = Object.freeze([]);
12
+ var hasUpcomingMessage = (isRunning, messages) => {
12
13
  return isRunning && messages[messages.length - 1]?.role !== "assistant";
13
14
  };
14
- class ExternalStoreThreadRuntimeCore extends BaseThreadRuntimeCore {
15
+ var ExternalStoreThreadRuntimeCore = class extends BaseThreadRuntimeCore {
15
16
  assistantOptimisticId = null;
16
17
  _capabilities = {
17
18
  switchToBranch: false,
@@ -167,7 +168,7 @@ class ExternalStoreThreadRuntimeCore extends BaseThreadRuntimeCore {
167
168
  messages.flatMap(getExternalStoreMessage).filter((m) => m != null)
168
169
  );
169
170
  };
170
- }
171
+ };
171
172
  export {
172
173
  ExternalStoreThreadRuntimeCore,
173
174
  hasUpcomingMessage
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/runtimes/external-store/ExternalStoreThreadRuntimeCore.tsx"],"sourcesContent":["import {\n AddToolResultOptions,\n ThreadSuggestion,\n} from \"../core/ThreadRuntimeCore\";\n\nimport { AppendMessage, ModelConfigProvider, ThreadMessage } from \"../../types\";\nimport { ExternalStoreAdapter } from \"./ExternalStoreAdapter\";\nimport {\n getExternalStoreMessage,\n symbolInnerMessage,\n} from \"./getExternalStoreMessage\";\nimport { ThreadMessageConverter } from \"./ThreadMessageConverter\";\nimport { getAutoStatus, isAutoStatus } from \"./auto-status\";\nimport { fromThreadMessageLike } from \"./ThreadMessageLike\";\nimport { getThreadMessageText } from \"../../utils/getThreadMessageText\";\nimport {\n RuntimeCapabilities,\n ThreadRuntimeCore,\n} from \"../core/ThreadRuntimeCore\";\nimport { BaseThreadRuntimeCore } from \"../core/BaseThreadRuntimeCore\";\n\nconst EMPTY_ARRAY = Object.freeze([]);\n\nexport const hasUpcomingMessage = (\n isRunning: boolean,\n messages: ThreadMessage[],\n) => {\n return isRunning && messages[messages.length - 1]?.role !== \"assistant\";\n};\n\nexport class ExternalStoreThreadRuntimeCore\n extends BaseThreadRuntimeCore\n implements ThreadRuntimeCore\n{\n private assistantOptimisticId: string | null = null;\n\n private _capabilities: RuntimeCapabilities = {\n switchToBranch: false,\n edit: false,\n reload: false,\n cancel: false,\n unstable_copy: false,\n speech: false,\n attachments: false,\n feedback: false,\n };\n\n public get capabilities() {\n return this._capabilities;\n }\n\n public threadId!: string;\n private _messages!: ThreadMessage[];\n public isDisabled!: boolean;\n\n public override get messages() {\n return this._messages;\n }\n\n public get adapters() {\n return this._store.adapters;\n }\n\n public suggestions: readonly ThreadSuggestion[] = [];\n public extras: unknown = undefined;\n\n private _converter = new ThreadMessageConverter();\n\n private _store!: ExternalStoreAdapter<any>;\n\n public override beginEdit(messageId: string) {\n if (!this._store.onEdit)\n throw new Error(\"Runtime does not support editing.\");\n\n super.beginEdit(messageId);\n }\n\n constructor(\n configProvider: ModelConfigProvider,\n threadId: string,\n store: ExternalStoreAdapter<any>,\n ) {\n super(configProvider);\n this.threadId = threadId;\n this.setStore(store);\n }\n\n public setStore(store: ExternalStoreAdapter<any>) {\n if (this._store === store) return;\n\n const isRunning = store.isRunning ?? false;\n this.isDisabled = store.isDisabled ?? false;\n\n const oldStore = this._store as ExternalStoreAdapter<any> | undefined;\n this._store = store;\n this.extras = store.extras;\n this.suggestions = store.suggestions ?? EMPTY_ARRAY;\n this._capabilities = {\n switchToBranch: this._store.setMessages !== undefined,\n edit: this._store.onEdit !== undefined,\n reload: this._store.onReload !== undefined,\n cancel: this._store.onCancel !== undefined,\n speech: this._store.adapters?.speech !== undefined,\n unstable_copy: this._store.unstable_capabilities?.copy !== false, // default true\n attachments: !!this._store.adapters?.attachments,\n feedback: !!this._store.adapters?.feedback,\n };\n\n if (oldStore) {\n // flush the converter cache when the convertMessage prop changes\n if (oldStore.convertMessage !== store.convertMessage) {\n this._converter = new ThreadMessageConverter();\n } else if (\n oldStore.isRunning === store.isRunning &&\n oldStore.messages === store.messages\n ) {\n this._notifySubscribers();\n // no conversion update\n return;\n }\n }\n\n const messages = !store.convertMessage\n ? store.messages\n : this._converter.convertMessages(store.messages, (cache, m, idx) => {\n if (!store.convertMessage) return m;\n\n const isLast = idx === store.messages.length - 1;\n const autoStatus = getAutoStatus(isLast, isRunning);\n\n if (\n cache &&\n (cache.role !== \"assistant\" ||\n !isAutoStatus(cache.status) ||\n cache.status === autoStatus)\n )\n return cache;\n\n const newMessage = fromThreadMessageLike(\n store.convertMessage(m, idx),\n idx.toString(),\n autoStatus,\n );\n (newMessage as any)[symbolInnerMessage] = m;\n return newMessage;\n });\n\n for (let i = 0; i < messages.length; i++) {\n const message = messages[i]!;\n const parent = messages[i - 1];\n this.repository.addOrUpdateMessage(parent?.id ?? null, message);\n }\n\n if (this.assistantOptimisticId) {\n this.repository.deleteMessage(this.assistantOptimisticId);\n this.assistantOptimisticId = null;\n }\n\n if (hasUpcomingMessage(isRunning, messages)) {\n this.assistantOptimisticId = this.repository.appendOptimisticMessage(\n messages.at(-1)?.id ?? null,\n {\n role: \"assistant\",\n content: [],\n },\n );\n }\n\n this.repository.resetHead(\n this.assistantOptimisticId ?? messages.at(-1)?.id ?? null,\n );\n\n this._messages = this.repository.getMessages();\n this._notifySubscribers();\n }\n\n public override switchToBranch(branchId: string): void {\n if (!this._store.setMessages)\n throw new Error(\"Runtime does not support switching branches.\");\n\n this.repository.switchToBranch(branchId);\n this.updateMessages(this.repository.getMessages());\n }\n\n public async append(message: AppendMessage): Promise<void> {\n if (message.parentId !== (this.messages.at(-1)?.id ?? null)) {\n if (!this._store.onEdit)\n throw new Error(\"Runtime does not support editing messages.\");\n await this._store.onEdit(message);\n } else {\n await this._store.onNew(message);\n }\n }\n\n public async startRun(parentId: string | null): Promise<void> {\n if (!this._store.onReload)\n throw new Error(\"Runtime does not support reloading messages.\");\n\n await this._store.onReload(parentId);\n }\n\n public cancelRun(): void {\n if (!this._store.onCancel)\n throw new Error(\"Runtime does not support cancelling runs.\");\n\n this._store.onCancel();\n\n if (this.assistantOptimisticId) {\n this.repository.deleteMessage(this.assistantOptimisticId);\n this.assistantOptimisticId = null;\n }\n\n let messages = this.repository.getMessages();\n const previousMessage = messages[messages.length - 1];\n if (\n previousMessage?.role === \"user\" &&\n previousMessage.id === messages.at(-1)?.id // ensure the previous message is a leaf node\n ) {\n this.repository.deleteMessage(previousMessage.id);\n if (!this.composer.text.trim()) {\n this.composer.setText(getThreadMessageText(previousMessage));\n }\n\n messages = this.repository.getMessages();\n } else {\n this._notifySubscribers();\n }\n\n // resync messages (for reloading, to restore the previous branch)\n setTimeout(() => {\n this.updateMessages(messages);\n }, 0);\n }\n\n public addToolResult(options: AddToolResultOptions) {\n if (!this._store.onAddToolResult)\n throw new Error(\"Runtime does not support tool results.\");\n this._store.onAddToolResult(options);\n }\n\n private updateMessages = (messages: ThreadMessage[]) => {\n this._store.setMessages?.(\n messages.flatMap(getExternalStoreMessage).filter((m) => m != null),\n );\n };\n}\n"],"mappings":"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","names":[]}
1
+ {"version":3,"sources":["../../../src/runtimes/external-store/ExternalStoreThreadRuntimeCore.tsx"],"sourcesContent":["import {\n AddToolResultOptions,\n ThreadSuggestion,\n} from \"../core/ThreadRuntimeCore\";\n\nimport { AppendMessage, ModelConfigProvider, ThreadMessage } from \"../../types\";\nimport { ExternalStoreAdapter } from \"./ExternalStoreAdapter\";\nimport {\n getExternalStoreMessage,\n symbolInnerMessage,\n} from \"./getExternalStoreMessage\";\nimport { ThreadMessageConverter } from \"./ThreadMessageConverter\";\nimport { getAutoStatus, isAutoStatus } from \"./auto-status\";\nimport { fromThreadMessageLike } from \"./ThreadMessageLike\";\nimport { getThreadMessageText } from \"../../utils/getThreadMessageText\";\nimport {\n RuntimeCapabilities,\n ThreadRuntimeCore,\n} from \"../core/ThreadRuntimeCore\";\nimport { BaseThreadRuntimeCore } from \"../core/BaseThreadRuntimeCore\";\n\nconst EMPTY_ARRAY = Object.freeze([]);\n\nexport const hasUpcomingMessage = (\n isRunning: boolean,\n messages: ThreadMessage[],\n) => {\n return isRunning && messages[messages.length - 1]?.role !== \"assistant\";\n};\n\nexport class ExternalStoreThreadRuntimeCore\n extends BaseThreadRuntimeCore\n implements ThreadRuntimeCore\n{\n private assistantOptimisticId: string | null = null;\n\n private _capabilities: RuntimeCapabilities = {\n switchToBranch: false,\n edit: false,\n reload: false,\n cancel: false,\n unstable_copy: false,\n speech: false,\n attachments: false,\n feedback: false,\n };\n\n public get capabilities() {\n return this._capabilities;\n }\n\n public threadId!: string;\n private _messages!: ThreadMessage[];\n public isDisabled!: boolean;\n\n public override get messages() {\n return this._messages;\n }\n\n public get adapters() {\n return this._store.adapters;\n }\n\n public suggestions: readonly ThreadSuggestion[] = [];\n public extras: unknown = undefined;\n\n private _converter = new ThreadMessageConverter();\n\n private _store!: ExternalStoreAdapter<any>;\n\n public override beginEdit(messageId: string) {\n if (!this._store.onEdit)\n throw new Error(\"Runtime does not support editing.\");\n\n super.beginEdit(messageId);\n }\n\n constructor(\n configProvider: ModelConfigProvider,\n threadId: string,\n store: ExternalStoreAdapter<any>,\n ) {\n super(configProvider);\n this.threadId = threadId;\n this.setStore(store);\n }\n\n public setStore(store: ExternalStoreAdapter<any>) {\n if (this._store === store) return;\n\n const isRunning = store.isRunning ?? false;\n this.isDisabled = store.isDisabled ?? false;\n\n const oldStore = this._store as ExternalStoreAdapter<any> | undefined;\n this._store = store;\n this.extras = store.extras;\n this.suggestions = store.suggestions ?? EMPTY_ARRAY;\n this._capabilities = {\n switchToBranch: this._store.setMessages !== undefined,\n edit: this._store.onEdit !== undefined,\n reload: this._store.onReload !== undefined,\n cancel: this._store.onCancel !== undefined,\n speech: this._store.adapters?.speech !== undefined,\n unstable_copy: this._store.unstable_capabilities?.copy !== false, // default true\n attachments: !!this._store.adapters?.attachments,\n feedback: !!this._store.adapters?.feedback,\n };\n\n if (oldStore) {\n // flush the converter cache when the convertMessage prop changes\n if (oldStore.convertMessage !== store.convertMessage) {\n this._converter = new ThreadMessageConverter();\n } else if (\n oldStore.isRunning === store.isRunning &&\n oldStore.messages === store.messages\n ) {\n this._notifySubscribers();\n // no conversion update\n return;\n }\n }\n\n const messages = !store.convertMessage\n ? store.messages\n : this._converter.convertMessages(store.messages, (cache, m, idx) => {\n if (!store.convertMessage) return m;\n\n const isLast = idx === store.messages.length - 1;\n const autoStatus = getAutoStatus(isLast, isRunning);\n\n if (\n cache &&\n (cache.role !== \"assistant\" ||\n !isAutoStatus(cache.status) ||\n cache.status === autoStatus)\n )\n return cache;\n\n const newMessage = fromThreadMessageLike(\n store.convertMessage(m, idx),\n idx.toString(),\n autoStatus,\n );\n (newMessage as any)[symbolInnerMessage] = m;\n return newMessage;\n });\n\n for (let i = 0; i < messages.length; i++) {\n const message = messages[i]!;\n const parent = messages[i - 1];\n this.repository.addOrUpdateMessage(parent?.id ?? null, message);\n }\n\n if (this.assistantOptimisticId) {\n this.repository.deleteMessage(this.assistantOptimisticId);\n this.assistantOptimisticId = null;\n }\n\n if (hasUpcomingMessage(isRunning, messages)) {\n this.assistantOptimisticId = this.repository.appendOptimisticMessage(\n messages.at(-1)?.id ?? null,\n {\n role: \"assistant\",\n content: [],\n },\n );\n }\n\n this.repository.resetHead(\n this.assistantOptimisticId ?? messages.at(-1)?.id ?? null,\n );\n\n this._messages = this.repository.getMessages();\n this._notifySubscribers();\n }\n\n public override switchToBranch(branchId: string): void {\n if (!this._store.setMessages)\n throw new Error(\"Runtime does not support switching branches.\");\n\n this.repository.switchToBranch(branchId);\n this.updateMessages(this.repository.getMessages());\n }\n\n public async append(message: AppendMessage): Promise<void> {\n if (message.parentId !== (this.messages.at(-1)?.id ?? null)) {\n if (!this._store.onEdit)\n throw new Error(\"Runtime does not support editing messages.\");\n await this._store.onEdit(message);\n } else {\n await this._store.onNew(message);\n }\n }\n\n public async startRun(parentId: string | null): Promise<void> {\n if (!this._store.onReload)\n throw new Error(\"Runtime does not support reloading messages.\");\n\n await this._store.onReload(parentId);\n }\n\n public cancelRun(): void {\n if (!this._store.onCancel)\n throw new Error(\"Runtime does not support cancelling runs.\");\n\n this._store.onCancel();\n\n if (this.assistantOptimisticId) {\n this.repository.deleteMessage(this.assistantOptimisticId);\n this.assistantOptimisticId = null;\n }\n\n let messages = this.repository.getMessages();\n const previousMessage = messages[messages.length - 1];\n if (\n previousMessage?.role === \"user\" &&\n previousMessage.id === messages.at(-1)?.id // ensure the previous message is a leaf node\n ) {\n this.repository.deleteMessage(previousMessage.id);\n if (!this.composer.text.trim()) {\n this.composer.setText(getThreadMessageText(previousMessage));\n }\n\n messages = this.repository.getMessages();\n } else {\n this._notifySubscribers();\n }\n\n // resync messages (for reloading, to restore the previous branch)\n setTimeout(() => {\n this.updateMessages(messages);\n }, 0);\n }\n\n public addToolResult(options: AddToolResultOptions) {\n if (!this._store.onAddToolResult)\n throw new Error(\"Runtime does not support tool results.\");\n this._store.onAddToolResult(options);\n }\n\n private updateMessages = (messages: ThreadMessage[]) => {\n this._store.setMessages?.(\n messages.flatMap(getExternalStoreMessage).filter((m) => m != null),\n );\n };\n}\n"],"mappings":"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","names":[]}
@@ -16,12 +16,14 @@ var __copyProps = (to, from, except, desc) => {
16
16
  return to;
17
17
  };
18
18
  var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
19
+
20
+ // src/runtimes/external-store/ThreadMessageConverter.ts
19
21
  var ThreadMessageConverter_exports = {};
20
22
  __export(ThreadMessageConverter_exports, {
21
23
  ThreadMessageConverter: () => ThreadMessageConverter
22
24
  });
23
25
  module.exports = __toCommonJS(ThreadMessageConverter_exports);
24
- class ThreadMessageConverter {
26
+ var ThreadMessageConverter = class {
25
27
  cache = /* @__PURE__ */ new WeakMap();
26
28
  convertMessages(messages, converter) {
27
29
  return messages.map((m, idx) => {
@@ -31,7 +33,7 @@ class ThreadMessageConverter {
31
33
  return newMessage;
32
34
  });
33
35
  }
34
- }
36
+ };
35
37
  // Annotate the CommonJS export names for ESM import in node:
36
38
  0 && (module.exports = {
37
39
  ThreadMessageConverter
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/runtimes/external-store/ThreadMessageConverter.ts"],"sourcesContent":["import { ThreadMessage } from \"../../types\";\n\nexport type ConverterCallback<TIn> = (\n cache: ThreadMessage | undefined,\n message: TIn,\n idx: number,\n) => ThreadMessage;\n\nexport class ThreadMessageConverter {\n private readonly cache = new WeakMap<WeakKey, ThreadMessage>();\n\n convertMessages<TIn extends WeakKey>(\n messages: TIn[],\n converter: ConverterCallback<TIn>,\n ): ThreadMessage[] {\n return messages.map((m, idx) => {\n const cached = this.cache.get(m);\n const newMessage = converter(cached, m, idx);\n this.cache.set(m, newMessage);\n return newMessage;\n });\n }\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAQO,MAAM,uBAAuB;AAAA,EACjB,QAAQ,oBAAI,QAAgC;AAAA,EAE7D,gBACE,UACA,WACiB;AACjB,WAAO,SAAS,IAAI,CAAC,GAAG,QAAQ;AAC9B,YAAM,SAAS,KAAK,MAAM,IAAI,CAAC;AAC/B,YAAM,aAAa,UAAU,QAAQ,GAAG,GAAG;AAC3C,WAAK,MAAM,IAAI,GAAG,UAAU;AAC5B,aAAO;AAAA,IACT,CAAC;AAAA,EACH;AACF;","names":[]}
1
+ {"version":3,"sources":["../../../src/runtimes/external-store/ThreadMessageConverter.ts"],"sourcesContent":["import { ThreadMessage } from \"../../types\";\n\nexport type ConverterCallback<TIn> = (\n cache: ThreadMessage | undefined,\n message: TIn,\n idx: number,\n) => ThreadMessage;\n\nexport class ThreadMessageConverter {\n private readonly cache = new WeakMap<WeakKey, ThreadMessage>();\n\n convertMessages<TIn extends WeakKey>(\n messages: TIn[],\n converter: ConverterCallback<TIn>,\n ): ThreadMessage[] {\n return messages.map((m, idx) => {\n const cached = this.cache.get(m);\n const newMessage = converter(cached, m, idx);\n this.cache.set(m, newMessage);\n return newMessage;\n });\n }\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAQO,IAAM,yBAAN,MAA6B;AAAA,EACjB,QAAQ,oBAAI,QAAgC;AAAA,EAE7D,gBACE,UACA,WACiB;AACjB,WAAO,SAAS,IAAI,CAAC,GAAG,QAAQ;AAC9B,YAAM,SAAS,KAAK,MAAM,IAAI,CAAC;AAC/B,YAAM,aAAa,UAAU,QAAQ,GAAG,GAAG;AAC3C,WAAK,MAAM,IAAI,GAAG,UAAU;AAC5B,aAAO;AAAA,IACT,CAAC;AAAA,EACH;AACF;","names":[]}
@@ -1,4 +1,5 @@
1
- class ThreadMessageConverter {
1
+ // src/runtimes/external-store/ThreadMessageConverter.ts
2
+ var ThreadMessageConverter = class {
2
3
  cache = /* @__PURE__ */ new WeakMap();
3
4
  convertMessages(messages, converter) {
4
5
  return messages.map((m, idx) => {
@@ -8,7 +9,7 @@ class ThreadMessageConverter {
8
9
  return newMessage;
9
10
  });
10
11
  }
11
- }
12
+ };
12
13
  export {
13
14
  ThreadMessageConverter
14
15
  };
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/runtimes/external-store/ThreadMessageConverter.ts"],"sourcesContent":["import { ThreadMessage } from \"../../types\";\n\nexport type ConverterCallback<TIn> = (\n cache: ThreadMessage | undefined,\n message: TIn,\n idx: number,\n) => ThreadMessage;\n\nexport class ThreadMessageConverter {\n private readonly cache = new WeakMap<WeakKey, ThreadMessage>();\n\n convertMessages<TIn extends WeakKey>(\n messages: TIn[],\n converter: ConverterCallback<TIn>,\n ): ThreadMessage[] {\n return messages.map((m, idx) => {\n const cached = this.cache.get(m);\n const newMessage = converter(cached, m, idx);\n this.cache.set(m, newMessage);\n return newMessage;\n });\n }\n}\n"],"mappings":"AAQO,MAAM,uBAAuB;AAAA,EACjB,QAAQ,oBAAI,QAAgC;AAAA,EAE7D,gBACE,UACA,WACiB;AACjB,WAAO,SAAS,IAAI,CAAC,GAAG,QAAQ;AAC9B,YAAM,SAAS,KAAK,MAAM,IAAI,CAAC;AAC/B,YAAM,aAAa,UAAU,QAAQ,GAAG,GAAG;AAC3C,WAAK,MAAM,IAAI,GAAG,UAAU;AAC5B,aAAO;AAAA,IACT,CAAC;AAAA,EACH;AACF;","names":[]}
1
+ {"version":3,"sources":["../../../src/runtimes/external-store/ThreadMessageConverter.ts"],"sourcesContent":["import { ThreadMessage } from \"../../types\";\n\nexport type ConverterCallback<TIn> = (\n cache: ThreadMessage | undefined,\n message: TIn,\n idx: number,\n) => ThreadMessage;\n\nexport class ThreadMessageConverter {\n private readonly cache = new WeakMap<WeakKey, ThreadMessage>();\n\n convertMessages<TIn extends WeakKey>(\n messages: TIn[],\n converter: ConverterCallback<TIn>,\n ): ThreadMessage[] {\n return messages.map((m, idx) => {\n const cached = this.cache.get(m);\n const newMessage = converter(cached, m, idx);\n this.cache.set(m, newMessage);\n return newMessage;\n });\n }\n}\n"],"mappings":";AAQO,IAAM,yBAAN,MAA6B;AAAA,EACjB,QAAQ,oBAAI,QAAgC;AAAA,EAE7D,gBACE,UACA,WACiB;AACjB,WAAO,SAAS,IAAI,CAAC,GAAG,QAAQ;AAC9B,YAAM,SAAS,KAAK,MAAM,IAAI,CAAC;AAC/B,YAAM,aAAa,UAAU,QAAQ,GAAG,GAAG;AAC3C,WAAK,MAAM,IAAI,GAAG,UAAU;AAC5B,aAAO;AAAA,IACT,CAAC;AAAA,EACH;AACF;","names":[]}
@@ -16,12 +16,14 @@ var __copyProps = (to, from, except, desc) => {
16
16
  return to;
17
17
  };
18
18
  var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
19
+
20
+ // src/runtimes/external-store/ThreadMessageLike.tsx
19
21
  var ThreadMessageLike_exports = {};
20
22
  __export(ThreadMessageLike_exports, {
21
23
  fromThreadMessageLike: () => fromThreadMessageLike
22
24
  });
23
25
  module.exports = __toCommonJS(ThreadMessageLike_exports);
24
- const fromThreadMessageLike = (like, fallbackId, fallbackStatus) => {
26
+ var fromThreadMessageLike = (like, fallbackId, fallbackStatus) => {
25
27
  const { role, id, createdAt, attachments, status } = like;
26
28
  const common = {
27
29
  id: id ?? fallbackId,
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/runtimes/external-store/ThreadMessageLike.tsx"],"sourcesContent":["import {\n MessageStatus,\n TextContentPart,\n ImageContentPart,\n ToolCallContentPart,\n UIContentPart,\n ThreadMessage,\n ThreadAssistantContentPart,\n ThreadAssistantMessage,\n ThreadUserContentPart,\n ThreadUserMessage,\n ThreadSystemMessage,\n CompleteAttachment,\n} from \"../../types\";\nimport {\n CoreToolCallContentPart,\n Unstable_AudioContentPart,\n} from \"../../types/AssistantTypes\";\n\nexport type ThreadMessageLike = {\n role: \"assistant\" | \"user\" | \"system\";\n content:\n | string\n | (\n | TextContentPart\n | ImageContentPart\n | Unstable_AudioContentPart\n | ToolCallContentPart<any, any>\n | CoreToolCallContentPart<any, any>\n | UIContentPart\n )[];\n id?: string | undefined;\n createdAt?: Date | undefined;\n status?: MessageStatus | undefined;\n attachments?: CompleteAttachment[] | undefined;\n};\n\nexport const fromThreadMessageLike = (\n like: ThreadMessageLike,\n fallbackId: string,\n fallbackStatus: MessageStatus,\n): ThreadMessage => {\n const { role, id, createdAt, attachments, status } = like;\n const common = {\n id: id ?? fallbackId,\n createdAt: createdAt ?? new Date(),\n };\n\n const content =\n typeof like.content === \"string\"\n ? [{ type: \"text\" as const, text: like.content }]\n : like.content;\n\n if (role !== \"user\" && attachments)\n throw new Error(\"Attachments are only supported for user messages\");\n // TODO add in 0.6\n // if (role !== \"assistant\" && status)\n // throw new Error(\"Status is only supported for assistant messages\");\n\n switch (role) {\n case \"assistant\":\n return {\n ...common,\n role,\n content: content\n .map((part): ThreadAssistantContentPart | null => {\n const type = part.type;\n switch (type) {\n case \"text\":\n if (part.text.trim().length === 0) return null;\n return part;\n\n case \"ui\":\n return part;\n\n case \"tool-call\": {\n if (\"argsText\" in part) return part;\n return {\n ...part,\n argsText: JSON.stringify(part.args),\n };\n }\n\n default: {\n const unhandledType: \"image\" | \"audio\" = type;\n throw new Error(`Unknown content part type: ${unhandledType}`);\n }\n }\n })\n .filter((c) => !!c),\n status: status ?? fallbackStatus,\n } satisfies ThreadAssistantMessage;\n\n case \"user\":\n return {\n ...common,\n role,\n content: content.map((part): ThreadUserContentPart => {\n const type = part.type;\n switch (type) {\n case \"text\":\n case \"ui\":\n case \"image\":\n case \"audio\":\n return part;\n\n default: {\n const unhandledType: \"tool-call\" = type;\n throw new Error(`Unknown content part type: ${unhandledType}`);\n }\n }\n }),\n attachments: attachments ?? [],\n } satisfies ThreadUserMessage;\n\n case \"system\":\n if (content.length !== 1 || content[0]!.type !== \"text\")\n throw new Error(\n \"System messages must have exactly one text content part.\",\n );\n\n return {\n ...common,\n role,\n content: content as [TextContentPart],\n } satisfies ThreadSystemMessage;\n\n default: {\n const unsupportedRole: never = role;\n throw new Error(`Unknown message role: ${unsupportedRole}`);\n }\n }\n};\n"],"mappings":";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAqCO,MAAM,wBAAwB,CACnC,MACA,YACA,mBACkB;AAClB,QAAM,EAAE,MAAM,IAAI,WAAW,aAAa,OAAO,IAAI;AACrD,QAAM,SAAS;AAAA,IACb,IAAI,MAAM;AAAA,IACV,WAAW,aAAa,oBAAI,KAAK;AAAA,EACnC;AAEA,QAAM,UACJ,OAAO,KAAK,YAAY,WACpB,CAAC,EAAE,MAAM,QAAiB,MAAM,KAAK,QAAQ,CAAC,IAC9C,KAAK;AAEX,MAAI,SAAS,UAAU;AACrB,UAAM,IAAI,MAAM,kDAAkD;AAKpE,UAAQ,MAAM;AAAA,IACZ,KAAK;AACH,aAAO;AAAA,QACL,GAAG;AAAA,QACH;AAAA,QACA,SAAS,QACN,IAAI,CAAC,SAA4C;AAChD,gBAAM,OAAO,KAAK;AAClB,kBAAQ,MAAM;AAAA,YACZ,KAAK;AACH,kBAAI,KAAK,KAAK,KAAK,EAAE,WAAW,EAAG,QAAO;AAC1C,qBAAO;AAAA,YAET,KAAK;AACH,qBAAO;AAAA,YAET,KAAK,aAAa;AAChB,kBAAI,cAAc,KAAM,QAAO;AAC/B,qBAAO;AAAA,gBACL,GAAG;AAAA,gBACH,UAAU,KAAK,UAAU,KAAK,IAAI;AAAA,cACpC;AAAA,YACF;AAAA,YAEA,SAAS;AACP,oBAAM,gBAAmC;AACzC,oBAAM,IAAI,MAAM,8BAA8B,aAAa,EAAE;AAAA,YAC/D;AAAA,UACF;AAAA,QACF,CAAC,EACA,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC;AAAA,QACpB,QAAQ,UAAU;AAAA,MACpB;AAAA,IAEF,KAAK;AACH,aAAO;AAAA,QACL,GAAG;AAAA,QACH;AAAA,QACA,SAAS,QAAQ,IAAI,CAAC,SAAgC;AACpD,gBAAM,OAAO,KAAK;AAClB,kBAAQ,MAAM;AAAA,YACZ,KAAK;AAAA,YACL,KAAK;AAAA,YACL,KAAK;AAAA,YACL,KAAK;AACH,qBAAO;AAAA,YAET,SAAS;AACP,oBAAM,gBAA6B;AACnC,oBAAM,IAAI,MAAM,8BAA8B,aAAa,EAAE;AAAA,YAC/D;AAAA,UACF;AAAA,QACF,CAAC;AAAA,QACD,aAAa,eAAe,CAAC;AAAA,MAC/B;AAAA,IAEF,KAAK;AACH,UAAI,QAAQ,WAAW,KAAK,QAAQ,CAAC,EAAG,SAAS;AAC/C,cAAM,IAAI;AAAA,UACR;AAAA,QACF;AAEF,aAAO;AAAA,QACL,GAAG;AAAA,QACH;AAAA,QACA;AAAA,MACF;AAAA,IAEF,SAAS;AACP,YAAM,kBAAyB;AAC/B,YAAM,IAAI,MAAM,yBAAyB,eAAe,EAAE;AAAA,IAC5D;AAAA,EACF;AACF;","names":[]}
1
+ {"version":3,"sources":["../../../src/runtimes/external-store/ThreadMessageLike.tsx"],"sourcesContent":["import {\n MessageStatus,\n TextContentPart,\n ImageContentPart,\n ToolCallContentPart,\n UIContentPart,\n ThreadMessage,\n ThreadAssistantContentPart,\n ThreadAssistantMessage,\n ThreadUserContentPart,\n ThreadUserMessage,\n ThreadSystemMessage,\n CompleteAttachment,\n} from \"../../types\";\nimport {\n CoreToolCallContentPart,\n Unstable_AudioContentPart,\n} from \"../../types/AssistantTypes\";\n\nexport type ThreadMessageLike = {\n role: \"assistant\" | \"user\" | \"system\";\n content:\n | string\n | (\n | TextContentPart\n | ImageContentPart\n | Unstable_AudioContentPart\n | ToolCallContentPart<any, any>\n | CoreToolCallContentPart<any, any>\n | UIContentPart\n )[];\n id?: string | undefined;\n createdAt?: Date | undefined;\n status?: MessageStatus | undefined;\n attachments?: CompleteAttachment[] | undefined;\n};\n\nexport const fromThreadMessageLike = (\n like: ThreadMessageLike,\n fallbackId: string,\n fallbackStatus: MessageStatus,\n): ThreadMessage => {\n const { role, id, createdAt, attachments, status } = like;\n const common = {\n id: id ?? fallbackId,\n createdAt: createdAt ?? new Date(),\n };\n\n const content =\n typeof like.content === \"string\"\n ? [{ type: \"text\" as const, text: like.content }]\n : like.content;\n\n if (role !== \"user\" && attachments)\n throw new Error(\"Attachments are only supported for user messages\");\n // TODO add in 0.6\n // if (role !== \"assistant\" && status)\n // throw new Error(\"Status is only supported for assistant messages\");\n\n switch (role) {\n case \"assistant\":\n return {\n ...common,\n role,\n content: content\n .map((part): ThreadAssistantContentPart | null => {\n const type = part.type;\n switch (type) {\n case \"text\":\n if (part.text.trim().length === 0) return null;\n return part;\n\n case \"ui\":\n return part;\n\n case \"tool-call\": {\n if (\"argsText\" in part) return part;\n return {\n ...part,\n argsText: JSON.stringify(part.args),\n };\n }\n\n default: {\n const unhandledType: \"image\" | \"audio\" = type;\n throw new Error(`Unknown content part type: ${unhandledType}`);\n }\n }\n })\n .filter((c) => !!c),\n status: status ?? fallbackStatus,\n } satisfies ThreadAssistantMessage;\n\n case \"user\":\n return {\n ...common,\n role,\n content: content.map((part): ThreadUserContentPart => {\n const type = part.type;\n switch (type) {\n case \"text\":\n case \"ui\":\n case \"image\":\n case \"audio\":\n return part;\n\n default: {\n const unhandledType: \"tool-call\" = type;\n throw new Error(`Unknown content part type: ${unhandledType}`);\n }\n }\n }),\n attachments: attachments ?? [],\n } satisfies ThreadUserMessage;\n\n case \"system\":\n if (content.length !== 1 || content[0]!.type !== \"text\")\n throw new Error(\n \"System messages must have exactly one text content part.\",\n );\n\n return {\n ...common,\n role,\n content: content as [TextContentPart],\n } satisfies ThreadSystemMessage;\n\n default: {\n const unsupportedRole: never = role;\n throw new Error(`Unknown message role: ${unsupportedRole}`);\n }\n }\n};\n"],"mappings":";;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAqCO,IAAM,wBAAwB,CACnC,MACA,YACA,mBACkB;AAClB,QAAM,EAAE,MAAM,IAAI,WAAW,aAAa,OAAO,IAAI;AACrD,QAAM,SAAS;AAAA,IACb,IAAI,MAAM;AAAA,IACV,WAAW,aAAa,oBAAI,KAAK;AAAA,EACnC;AAEA,QAAM,UACJ,OAAO,KAAK,YAAY,WACpB,CAAC,EAAE,MAAM,QAAiB,MAAM,KAAK,QAAQ,CAAC,IAC9C,KAAK;AAEX,MAAI,SAAS,UAAU;AACrB,UAAM,IAAI,MAAM,kDAAkD;AAKpE,UAAQ,MAAM;AAAA,IACZ,KAAK;AACH,aAAO;AAAA,QACL,GAAG;AAAA,QACH;AAAA,QACA,SAAS,QACN,IAAI,CAAC,SAA4C;AAChD,gBAAM,OAAO,KAAK;AAClB,kBAAQ,MAAM;AAAA,YACZ,KAAK;AACH,kBAAI,KAAK,KAAK,KAAK,EAAE,WAAW,EAAG,QAAO;AAC1C,qBAAO;AAAA,YAET,KAAK;AACH,qBAAO;AAAA,YAET,KAAK,aAAa;AAChB,kBAAI,cAAc,KAAM,QAAO;AAC/B,qBAAO;AAAA,gBACL,GAAG;AAAA,gBACH,UAAU,KAAK,UAAU,KAAK,IAAI;AAAA,cACpC;AAAA,YACF;AAAA,YAEA,SAAS;AACP,oBAAM,gBAAmC;AACzC,oBAAM,IAAI,MAAM,8BAA8B,aAAa,EAAE;AAAA,YAC/D;AAAA,UACF;AAAA,QACF,CAAC,EACA,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC;AAAA,QACpB,QAAQ,UAAU;AAAA,MACpB;AAAA,IAEF,KAAK;AACH,aAAO;AAAA,QACL,GAAG;AAAA,QACH;AAAA,QACA,SAAS,QAAQ,IAAI,CAAC,SAAgC;AACpD,gBAAM,OAAO,KAAK;AAClB,kBAAQ,MAAM;AAAA,YACZ,KAAK;AAAA,YACL,KAAK;AAAA,YACL,KAAK;AAAA,YACL,KAAK;AACH,qBAAO;AAAA,YAET,SAAS;AACP,oBAAM,gBAA6B;AACnC,oBAAM,IAAI,MAAM,8BAA8B,aAAa,EAAE;AAAA,YAC/D;AAAA,UACF;AAAA,QACF,CAAC;AAAA,QACD,aAAa,eAAe,CAAC;AAAA,MAC/B;AAAA,IAEF,KAAK;AACH,UAAI,QAAQ,WAAW,KAAK,QAAQ,CAAC,EAAG,SAAS;AAC/C,cAAM,IAAI;AAAA,UACR;AAAA,QACF;AAEF,aAAO;AAAA,QACL,GAAG;AAAA,QACH;AAAA,QACA;AAAA,MACF;AAAA,IAEF,SAAS;AACP,YAAM,kBAAyB;AAC/B,YAAM,IAAI,MAAM,yBAAyB,eAAe,EAAE;AAAA,IAC5D;AAAA,EACF;AACF;","names":[]}
@@ -1,4 +1,5 @@
1
- const fromThreadMessageLike = (like, fallbackId, fallbackStatus) => {
1
+ // src/runtimes/external-store/ThreadMessageLike.tsx
2
+ var fromThreadMessageLike = (like, fallbackId, fallbackStatus) => {
2
3
  const { role, id, createdAt, attachments, status } = like;
3
4
  const common = {
4
5
  id: id ?? fallbackId,
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/runtimes/external-store/ThreadMessageLike.tsx"],"sourcesContent":["import {\n MessageStatus,\n TextContentPart,\n ImageContentPart,\n ToolCallContentPart,\n UIContentPart,\n ThreadMessage,\n ThreadAssistantContentPart,\n ThreadAssistantMessage,\n ThreadUserContentPart,\n ThreadUserMessage,\n ThreadSystemMessage,\n CompleteAttachment,\n} from \"../../types\";\nimport {\n CoreToolCallContentPart,\n Unstable_AudioContentPart,\n} from \"../../types/AssistantTypes\";\n\nexport type ThreadMessageLike = {\n role: \"assistant\" | \"user\" | \"system\";\n content:\n | string\n | (\n | TextContentPart\n | ImageContentPart\n | Unstable_AudioContentPart\n | ToolCallContentPart<any, any>\n | CoreToolCallContentPart<any, any>\n | UIContentPart\n )[];\n id?: string | undefined;\n createdAt?: Date | undefined;\n status?: MessageStatus | undefined;\n attachments?: CompleteAttachment[] | undefined;\n};\n\nexport const fromThreadMessageLike = (\n like: ThreadMessageLike,\n fallbackId: string,\n fallbackStatus: MessageStatus,\n): ThreadMessage => {\n const { role, id, createdAt, attachments, status } = like;\n const common = {\n id: id ?? fallbackId,\n createdAt: createdAt ?? new Date(),\n };\n\n const content =\n typeof like.content === \"string\"\n ? [{ type: \"text\" as const, text: like.content }]\n : like.content;\n\n if (role !== \"user\" && attachments)\n throw new Error(\"Attachments are only supported for user messages\");\n // TODO add in 0.6\n // if (role !== \"assistant\" && status)\n // throw new Error(\"Status is only supported for assistant messages\");\n\n switch (role) {\n case \"assistant\":\n return {\n ...common,\n role,\n content: content\n .map((part): ThreadAssistantContentPart | null => {\n const type = part.type;\n switch (type) {\n case \"text\":\n if (part.text.trim().length === 0) return null;\n return part;\n\n case \"ui\":\n return part;\n\n case \"tool-call\": {\n if (\"argsText\" in part) return part;\n return {\n ...part,\n argsText: JSON.stringify(part.args),\n };\n }\n\n default: {\n const unhandledType: \"image\" | \"audio\" = type;\n throw new Error(`Unknown content part type: ${unhandledType}`);\n }\n }\n })\n .filter((c) => !!c),\n status: status ?? fallbackStatus,\n } satisfies ThreadAssistantMessage;\n\n case \"user\":\n return {\n ...common,\n role,\n content: content.map((part): ThreadUserContentPart => {\n const type = part.type;\n switch (type) {\n case \"text\":\n case \"ui\":\n case \"image\":\n case \"audio\":\n return part;\n\n default: {\n const unhandledType: \"tool-call\" = type;\n throw new Error(`Unknown content part type: ${unhandledType}`);\n }\n }\n }),\n attachments: attachments ?? [],\n } satisfies ThreadUserMessage;\n\n case \"system\":\n if (content.length !== 1 || content[0]!.type !== \"text\")\n throw new Error(\n \"System messages must have exactly one text content part.\",\n );\n\n return {\n ...common,\n role,\n content: content as [TextContentPart],\n } satisfies ThreadSystemMessage;\n\n default: {\n const unsupportedRole: never = role;\n throw new Error(`Unknown message role: ${unsupportedRole}`);\n }\n }\n};\n"],"mappings":"AAqCO,MAAM,wBAAwB,CACnC,MACA,YACA,mBACkB;AAClB,QAAM,EAAE,MAAM,IAAI,WAAW,aAAa,OAAO,IAAI;AACrD,QAAM,SAAS;AAAA,IACb,IAAI,MAAM;AAAA,IACV,WAAW,aAAa,oBAAI,KAAK;AAAA,EACnC;AAEA,QAAM,UACJ,OAAO,KAAK,YAAY,WACpB,CAAC,EAAE,MAAM,QAAiB,MAAM,KAAK,QAAQ,CAAC,IAC9C,KAAK;AAEX,MAAI,SAAS,UAAU;AACrB,UAAM,IAAI,MAAM,kDAAkD;AAKpE,UAAQ,MAAM;AAAA,IACZ,KAAK;AACH,aAAO;AAAA,QACL,GAAG;AAAA,QACH;AAAA,QACA,SAAS,QACN,IAAI,CAAC,SAA4C;AAChD,gBAAM,OAAO,KAAK;AAClB,kBAAQ,MAAM;AAAA,YACZ,KAAK;AACH,kBAAI,KAAK,KAAK,KAAK,EAAE,WAAW,EAAG,QAAO;AAC1C,qBAAO;AAAA,YAET,KAAK;AACH,qBAAO;AAAA,YAET,KAAK,aAAa;AAChB,kBAAI,cAAc,KAAM,QAAO;AAC/B,qBAAO;AAAA,gBACL,GAAG;AAAA,gBACH,UAAU,KAAK,UAAU,KAAK,IAAI;AAAA,cACpC;AAAA,YACF;AAAA,YAEA,SAAS;AACP,oBAAM,gBAAmC;AACzC,oBAAM,IAAI,MAAM,8BAA8B,aAAa,EAAE;AAAA,YAC/D;AAAA,UACF;AAAA,QACF,CAAC,EACA,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC;AAAA,QACpB,QAAQ,UAAU;AAAA,MACpB;AAAA,IAEF,KAAK;AACH,aAAO;AAAA,QACL,GAAG;AAAA,QACH;AAAA,QACA,SAAS,QAAQ,IAAI,CAAC,SAAgC;AACpD,gBAAM,OAAO,KAAK;AAClB,kBAAQ,MAAM;AAAA,YACZ,KAAK;AAAA,YACL,KAAK;AAAA,YACL,KAAK;AAAA,YACL,KAAK;AACH,qBAAO;AAAA,YAET,SAAS;AACP,oBAAM,gBAA6B;AACnC,oBAAM,IAAI,MAAM,8BAA8B,aAAa,EAAE;AAAA,YAC/D;AAAA,UACF;AAAA,QACF,CAAC;AAAA,QACD,aAAa,eAAe,CAAC;AAAA,MAC/B;AAAA,IAEF,KAAK;AACH,UAAI,QAAQ,WAAW,KAAK,QAAQ,CAAC,EAAG,SAAS;AAC/C,cAAM,IAAI;AAAA,UACR;AAAA,QACF;AAEF,aAAO;AAAA,QACL,GAAG;AAAA,QACH;AAAA,QACA;AAAA,MACF;AAAA,IAEF,SAAS;AACP,YAAM,kBAAyB;AAC/B,YAAM,IAAI,MAAM,yBAAyB,eAAe,EAAE;AAAA,IAC5D;AAAA,EACF;AACF;","names":[]}
1
+ {"version":3,"sources":["../../../src/runtimes/external-store/ThreadMessageLike.tsx"],"sourcesContent":["import {\n MessageStatus,\n TextContentPart,\n ImageContentPart,\n ToolCallContentPart,\n UIContentPart,\n ThreadMessage,\n ThreadAssistantContentPart,\n ThreadAssistantMessage,\n ThreadUserContentPart,\n ThreadUserMessage,\n ThreadSystemMessage,\n CompleteAttachment,\n} from \"../../types\";\nimport {\n CoreToolCallContentPart,\n Unstable_AudioContentPart,\n} from \"../../types/AssistantTypes\";\n\nexport type ThreadMessageLike = {\n role: \"assistant\" | \"user\" | \"system\";\n content:\n | string\n | (\n | TextContentPart\n | ImageContentPart\n | Unstable_AudioContentPart\n | ToolCallContentPart<any, any>\n | CoreToolCallContentPart<any, any>\n | UIContentPart\n )[];\n id?: string | undefined;\n createdAt?: Date | undefined;\n status?: MessageStatus | undefined;\n attachments?: CompleteAttachment[] | undefined;\n};\n\nexport const fromThreadMessageLike = (\n like: ThreadMessageLike,\n fallbackId: string,\n fallbackStatus: MessageStatus,\n): ThreadMessage => {\n const { role, id, createdAt, attachments, status } = like;\n const common = {\n id: id ?? fallbackId,\n createdAt: createdAt ?? new Date(),\n };\n\n const content =\n typeof like.content === \"string\"\n ? [{ type: \"text\" as const, text: like.content }]\n : like.content;\n\n if (role !== \"user\" && attachments)\n throw new Error(\"Attachments are only supported for user messages\");\n // TODO add in 0.6\n // if (role !== \"assistant\" && status)\n // throw new Error(\"Status is only supported for assistant messages\");\n\n switch (role) {\n case \"assistant\":\n return {\n ...common,\n role,\n content: content\n .map((part): ThreadAssistantContentPart | null => {\n const type = part.type;\n switch (type) {\n case \"text\":\n if (part.text.trim().length === 0) return null;\n return part;\n\n case \"ui\":\n return part;\n\n case \"tool-call\": {\n if (\"argsText\" in part) return part;\n return {\n ...part,\n argsText: JSON.stringify(part.args),\n };\n }\n\n default: {\n const unhandledType: \"image\" | \"audio\" = type;\n throw new Error(`Unknown content part type: ${unhandledType}`);\n }\n }\n })\n .filter((c) => !!c),\n status: status ?? fallbackStatus,\n } satisfies ThreadAssistantMessage;\n\n case \"user\":\n return {\n ...common,\n role,\n content: content.map((part): ThreadUserContentPart => {\n const type = part.type;\n switch (type) {\n case \"text\":\n case \"ui\":\n case \"image\":\n case \"audio\":\n return part;\n\n default: {\n const unhandledType: \"tool-call\" = type;\n throw new Error(`Unknown content part type: ${unhandledType}`);\n }\n }\n }),\n attachments: attachments ?? [],\n } satisfies ThreadUserMessage;\n\n case \"system\":\n if (content.length !== 1 || content[0]!.type !== \"text\")\n throw new Error(\n \"System messages must have exactly one text content part.\",\n );\n\n return {\n ...common,\n role,\n content: content as [TextContentPart],\n } satisfies ThreadSystemMessage;\n\n default: {\n const unsupportedRole: never = role;\n throw new Error(`Unknown message role: ${unsupportedRole}`);\n }\n }\n};\n"],"mappings":";AAqCO,IAAM,wBAAwB,CACnC,MACA,YACA,mBACkB;AAClB,QAAM,EAAE,MAAM,IAAI,WAAW,aAAa,OAAO,IAAI;AACrD,QAAM,SAAS;AAAA,IACb,IAAI,MAAM;AAAA,IACV,WAAW,aAAa,oBAAI,KAAK;AAAA,EACnC;AAEA,QAAM,UACJ,OAAO,KAAK,YAAY,WACpB,CAAC,EAAE,MAAM,QAAiB,MAAM,KAAK,QAAQ,CAAC,IAC9C,KAAK;AAEX,MAAI,SAAS,UAAU;AACrB,UAAM,IAAI,MAAM,kDAAkD;AAKpE,UAAQ,MAAM;AAAA,IACZ,KAAK;AACH,aAAO;AAAA,QACL,GAAG;AAAA,QACH;AAAA,QACA,SAAS,QACN,IAAI,CAAC,SAA4C;AAChD,gBAAM,OAAO,KAAK;AAClB,kBAAQ,MAAM;AAAA,YACZ,KAAK;AACH,kBAAI,KAAK,KAAK,KAAK,EAAE,WAAW,EAAG,QAAO;AAC1C,qBAAO;AAAA,YAET,KAAK;AACH,qBAAO;AAAA,YAET,KAAK,aAAa;AAChB,kBAAI,cAAc,KAAM,QAAO;AAC/B,qBAAO;AAAA,gBACL,GAAG;AAAA,gBACH,UAAU,KAAK,UAAU,KAAK,IAAI;AAAA,cACpC;AAAA,YACF;AAAA,YAEA,SAAS;AACP,oBAAM,gBAAmC;AACzC,oBAAM,IAAI,MAAM,8BAA8B,aAAa,EAAE;AAAA,YAC/D;AAAA,UACF;AAAA,QACF,CAAC,EACA,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC;AAAA,QACpB,QAAQ,UAAU;AAAA,MACpB;AAAA,IAEF,KAAK;AACH,aAAO;AAAA,QACL,GAAG;AAAA,QACH;AAAA,QACA,SAAS,QAAQ,IAAI,CAAC,SAAgC;AACpD,gBAAM,OAAO,KAAK;AAClB,kBAAQ,MAAM;AAAA,YACZ,KAAK;AAAA,YACL,KAAK;AAAA,YACL,KAAK;AAAA,YACL,KAAK;AACH,qBAAO;AAAA,YAET,SAAS;AACP,oBAAM,gBAA6B;AACnC,oBAAM,IAAI,MAAM,8BAA8B,aAAa,EAAE;AAAA,YAC/D;AAAA,UACF;AAAA,QACF,CAAC;AAAA,QACD,aAAa,eAAe,CAAC;AAAA,MAC/B;AAAA,IAEF,KAAK;AACH,UAAI,QAAQ,WAAW,KAAK,QAAQ,CAAC,EAAG,SAAS;AAC/C,cAAM,IAAI;AAAA,UACR;AAAA,QACF;AAEF,aAAO;AAAA,QACL,GAAG;AAAA,QACH;AAAA,QACA;AAAA,MACF;AAAA,IAEF,SAAS;AACP,YAAM,kBAAyB;AAC/B,YAAM,IAAI,MAAM,yBAAyB,eAAe,EAAE;AAAA,IAC5D;AAAA,EACF;AACF;","names":[]}
@@ -16,19 +16,21 @@ var __copyProps = (to, from, except, desc) => {
16
16
  return to;
17
17
  };
18
18
  var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
19
+
20
+ // src/runtimes/external-store/auto-status.tsx
19
21
  var auto_status_exports = {};
20
22
  __export(auto_status_exports, {
21
23
  getAutoStatus: () => getAutoStatus,
22
24
  isAutoStatus: () => isAutoStatus
23
25
  });
24
26
  module.exports = __toCommonJS(auto_status_exports);
25
- const AUTO_STATUS_RUNNING = Object.freeze({ type: "running" });
26
- const AUTO_STATUS_COMPLETE = Object.freeze({
27
+ var AUTO_STATUS_RUNNING = Object.freeze({ type: "running" });
28
+ var AUTO_STATUS_COMPLETE = Object.freeze({
27
29
  type: "complete",
28
30
  reason: "unknown"
29
31
  });
30
- const isAutoStatus = (status) => status === AUTO_STATUS_RUNNING || status === AUTO_STATUS_COMPLETE;
31
- const getAutoStatus = (isLast, isRunning) => isLast && isRunning ? AUTO_STATUS_RUNNING : AUTO_STATUS_COMPLETE;
32
+ var isAutoStatus = (status) => status === AUTO_STATUS_RUNNING || status === AUTO_STATUS_COMPLETE;
33
+ var getAutoStatus = (isLast, isRunning) => isLast && isRunning ? AUTO_STATUS_RUNNING : AUTO_STATUS_COMPLETE;
32
34
  // Annotate the CommonJS export names for ESM import in node:
33
35
  0 && (module.exports = {
34
36
  getAutoStatus,
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/runtimes/external-store/auto-status.tsx"],"sourcesContent":["import { MessageStatus } from \"../../types\";\n\nconst AUTO_STATUS_RUNNING = Object.freeze({ type: \"running\" });\nconst AUTO_STATUS_COMPLETE = Object.freeze({\n type: \"complete\",\n reason: \"unknown\",\n});\n\nexport const isAutoStatus = (status: MessageStatus) =>\n status === AUTO_STATUS_RUNNING || status === AUTO_STATUS_COMPLETE;\n\nexport const getAutoStatus = (isLast: boolean, isRunning: boolean) =>\n isLast && isRunning ? AUTO_STATUS_RUNNING : AUTO_STATUS_COMPLETE;\n"],"mappings":";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAEA,MAAM,sBAAsB,OAAO,OAAO,EAAE,MAAM,UAAU,CAAC;AAC7D,MAAM,uBAAuB,OAAO,OAAO;AAAA,EACzC,MAAM;AAAA,EACN,QAAQ;AACV,CAAC;AAEM,MAAM,eAAe,CAAC,WAC3B,WAAW,uBAAuB,WAAW;AAExC,MAAM,gBAAgB,CAAC,QAAiB,cAC7C,UAAU,YAAY,sBAAsB;","names":[]}
1
+ {"version":3,"sources":["../../../src/runtimes/external-store/auto-status.tsx"],"sourcesContent":["import { MessageStatus } from \"../../types\";\n\nconst AUTO_STATUS_RUNNING = Object.freeze({ type: \"running\" });\nconst AUTO_STATUS_COMPLETE = Object.freeze({\n type: \"complete\",\n reason: \"unknown\",\n});\n\nexport const isAutoStatus = (status: MessageStatus) =>\n status === AUTO_STATUS_RUNNING || status === AUTO_STATUS_COMPLETE;\n\nexport const getAutoStatus = (isLast: boolean, isRunning: boolean) =>\n isLast && isRunning ? AUTO_STATUS_RUNNING : AUTO_STATUS_COMPLETE;\n"],"mappings":";;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAEA,IAAM,sBAAsB,OAAO,OAAO,EAAE,MAAM,UAAU,CAAC;AAC7D,IAAM,uBAAuB,OAAO,OAAO;AAAA,EACzC,MAAM;AAAA,EACN,QAAQ;AACV,CAAC;AAEM,IAAM,eAAe,CAAC,WAC3B,WAAW,uBAAuB,WAAW;AAExC,IAAM,gBAAgB,CAAC,QAAiB,cAC7C,UAAU,YAAY,sBAAsB;","names":[]}
@@ -1,10 +1,11 @@
1
- const AUTO_STATUS_RUNNING = Object.freeze({ type: "running" });
2
- const AUTO_STATUS_COMPLETE = Object.freeze({
1
+ // src/runtimes/external-store/auto-status.tsx
2
+ var AUTO_STATUS_RUNNING = Object.freeze({ type: "running" });
3
+ var AUTO_STATUS_COMPLETE = Object.freeze({
3
4
  type: "complete",
4
5
  reason: "unknown"
5
6
  });
6
- const isAutoStatus = (status) => status === AUTO_STATUS_RUNNING || status === AUTO_STATUS_COMPLETE;
7
- const getAutoStatus = (isLast, isRunning) => isLast && isRunning ? AUTO_STATUS_RUNNING : AUTO_STATUS_COMPLETE;
7
+ var isAutoStatus = (status) => status === AUTO_STATUS_RUNNING || status === AUTO_STATUS_COMPLETE;
8
+ var getAutoStatus = (isLast, isRunning) => isLast && isRunning ? AUTO_STATUS_RUNNING : AUTO_STATUS_COMPLETE;
8
9
  export {
9
10
  getAutoStatus,
10
11
  isAutoStatus
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/runtimes/external-store/auto-status.tsx"],"sourcesContent":["import { MessageStatus } from \"../../types\";\n\nconst AUTO_STATUS_RUNNING = Object.freeze({ type: \"running\" });\nconst AUTO_STATUS_COMPLETE = Object.freeze({\n type: \"complete\",\n reason: \"unknown\",\n});\n\nexport const isAutoStatus = (status: MessageStatus) =>\n status === AUTO_STATUS_RUNNING || status === AUTO_STATUS_COMPLETE;\n\nexport const getAutoStatus = (isLast: boolean, isRunning: boolean) =>\n isLast && isRunning ? AUTO_STATUS_RUNNING : AUTO_STATUS_COMPLETE;\n"],"mappings":"AAEA,MAAM,sBAAsB,OAAO,OAAO,EAAE,MAAM,UAAU,CAAC;AAC7D,MAAM,uBAAuB,OAAO,OAAO;AAAA,EACzC,MAAM;AAAA,EACN,QAAQ;AACV,CAAC;AAEM,MAAM,eAAe,CAAC,WAC3B,WAAW,uBAAuB,WAAW;AAExC,MAAM,gBAAgB,CAAC,QAAiB,cAC7C,UAAU,YAAY,sBAAsB;","names":[]}
1
+ {"version":3,"sources":["../../../src/runtimes/external-store/auto-status.tsx"],"sourcesContent":["import { MessageStatus } from \"../../types\";\n\nconst AUTO_STATUS_RUNNING = Object.freeze({ type: \"running\" });\nconst AUTO_STATUS_COMPLETE = Object.freeze({\n type: \"complete\",\n reason: \"unknown\",\n});\n\nexport const isAutoStatus = (status: MessageStatus) =>\n status === AUTO_STATUS_RUNNING || status === AUTO_STATUS_COMPLETE;\n\nexport const getAutoStatus = (isLast: boolean, isRunning: boolean) =>\n isLast && isRunning ? AUTO_STATUS_RUNNING : AUTO_STATUS_COMPLETE;\n"],"mappings":";AAEA,IAAM,sBAAsB,OAAO,OAAO,EAAE,MAAM,UAAU,CAAC;AAC7D,IAAM,uBAAuB,OAAO,OAAO;AAAA,EACzC,MAAM;AAAA,EACN,QAAQ;AACV,CAAC;AAEM,IAAM,eAAe,CAAC,WAC3B,WAAW,uBAAuB,WAAW;AAExC,IAAM,gBAAgB,CAAC,QAAiB,cAC7C,UAAU,YAAY,sBAAsB;","names":[]}
@@ -16,17 +16,19 @@ var __copyProps = (to, from, except, desc) => {
16
16
  return to;
17
17
  };
18
18
  var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
19
+
20
+ // src/runtimes/external-store/external-message-converter.tsx
19
21
  var external_message_converter_exports = {};
20
22
  __export(external_message_converter_exports, {
21
23
  useExternalMessageConverter: () => useExternalMessageConverter
22
24
  });
23
25
  module.exports = __toCommonJS(external_message_converter_exports);
24
26
  var import_react = require("react");
25
- var import_ThreadMessageConverter = require("./ThreadMessageConverter");
26
- var import_getExternalStoreMessage = require("./getExternalStoreMessage");
27
- var import_ThreadMessageLike = require("./ThreadMessageLike");
28
- var import_auto_status = require("./auto-status");
29
- const joinExternalMessages = (messages) => {
27
+ var import_ThreadMessageConverter = require("./ThreadMessageConverter.cjs");
28
+ var import_getExternalStoreMessage = require("./getExternalStoreMessage.cjs");
29
+ var import_ThreadMessageLike = require("./ThreadMessageLike.cjs");
30
+ var import_auto_status = require("./auto-status.cjs");
31
+ var joinExternalMessages = (messages) => {
30
32
  const assistantMessage = {
31
33
  role: "assistant",
32
34
  content: []
@@ -76,7 +78,7 @@ const joinExternalMessages = (messages) => {
76
78
  }
77
79
  return assistantMessage;
78
80
  };
79
- const chunkExternalMessages = (callbackResults) => {
81
+ var chunkExternalMessages = (callbackResults) => {
80
82
  const results = [];
81
83
  let isAssistant = false;
82
84
  let inputs = [];
@@ -106,7 +108,7 @@ const chunkExternalMessages = (callbackResults) => {
106
108
  flush();
107
109
  return results;
108
110
  };
109
- const useExternalMessageConverter = ({
111
+ var useExternalMessageConverter = ({
110
112
  callback,
111
113
  messages,
112
114
  isRunning
@@ -162,7 +164,7 @@ const useExternalMessageConverter = ({
162
164
  );
163
165
  }, [state, messages, isRunning]);
164
166
  };
165
- const shallowArrayEqual = (a, b) => {
167
+ var shallowArrayEqual = (a, b) => {
166
168
  if (a.length !== b.length) return false;
167
169
  for (let i = 0; i < a.length; i++) {
168
170
  if (a[i] !== b[i]) return false;
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/runtimes/external-store/external-message-converter.tsx"],"sourcesContent":["import { useMemo } from \"react\";\nimport { ThreadMessageConverter } from \"./ThreadMessageConverter\";\nimport {\n getExternalStoreMessage,\n symbolInnerMessage,\n} from \"./getExternalStoreMessage\";\nimport { fromThreadMessageLike, ThreadMessageLike } from \"./ThreadMessageLike\";\nimport { getAutoStatus, isAutoStatus } from \"./auto-status\";\nimport { ToolCallContentPart } from \"../../types\";\n\nexport namespace useExternalMessageConverter {\n export type Message =\n | ThreadMessageLike\n | {\n role: \"tool\";\n toolCallId: string;\n toolName?: string | undefined;\n result: any;\n };\n\n export type Callback<T> = (message: T) => Message | Message[];\n}\n\ntype CallbackResult<T> = {\n input: T;\n outputs: useExternalMessageConverter.Message[];\n};\n\ntype ChunkResult<T> = {\n inputs: T[];\n outputs: useExternalMessageConverter.Message[];\n};\n\nconst joinExternalMessages = (\n messages: useExternalMessageConverter.Message[],\n): ThreadMessageLike => {\n const assistantMessage: ThreadMessageLike & { content: any[] } = {\n role: \"assistant\",\n content: [],\n };\n for (const output of messages) {\n if (output.role === \"tool\") {\n const toolCallIdx = assistantMessage.content.findIndex(\n (c) => c.type === \"tool-call\" && c.toolCallId === output.toolCallId,\n );\n if (toolCallIdx !== -1) {\n const toolCall = assistantMessage.content[\n toolCallIdx\n ]! as ToolCallContentPart;\n if (output.toolName) {\n if (toolCall.toolName !== output.toolName)\n throw new Error(\n `Tool call name ${output.toolCallId} ${output.toolName} does not match existing tool call ${toolCall.toolName}`,\n );\n }\n assistantMessage.content[toolCallIdx] = {\n ...toolCall,\n result: output.result,\n };\n } else {\n throw new Error(\n `Tool call ${output.toolCallId} ${output.toolName} not found in assistant message`,\n );\n }\n } else {\n const role = output.role;\n switch (role) {\n case \"system\":\n case \"user\":\n return output;\n case \"assistant\":\n if (assistantMessage.content.length === 0) {\n assistantMessage.id = output.id;\n assistantMessage.createdAt ??= output.createdAt;\n assistantMessage.status ??= output.status;\n // TODO keep this in sync\n }\n assistantMessage.content.push(...output.content);\n break;\n default: {\n const unsupportedRole: never = role;\n throw new Error(`Unknown message role: ${unsupportedRole}`);\n }\n }\n }\n }\n return assistantMessage;\n};\n\nconst chunkExternalMessages = <T,>(callbackResults: CallbackResult<T>[]) => {\n const results: ChunkResult<T>[] = [];\n let isAssistant = false;\n let inputs: T[] = [];\n let outputs: useExternalMessageConverter.Message[] = [];\n\n const flush = () => {\n if (outputs.length) {\n results.push({\n inputs,\n outputs,\n });\n }\n inputs = [];\n outputs = [];\n };\n\n for (const callbackResult of callbackResults) {\n for (const output of callbackResult.outputs) {\n if (!isAssistant || output.role === \"user\" || output.role === \"system\") {\n flush();\n }\n isAssistant = output.role === \"assistant\" || output.role === \"tool\";\n\n if (inputs.at(-1) !== callbackResult.input) {\n inputs.push(callbackResult.input);\n }\n outputs.push(output);\n }\n }\n flush();\n return results;\n};\n\nexport const useExternalMessageConverter = <T extends WeakKey>({\n callback,\n messages,\n isRunning,\n}: {\n callback: useExternalMessageConverter.Callback<T>;\n messages: T[];\n isRunning: boolean;\n}) => {\n const state = useMemo(\n () => ({\n callback,\n callbackCache: new WeakMap<T, CallbackResult<T>>(),\n chunkCache: new WeakMap<\n useExternalMessageConverter.Message,\n ChunkResult<T>\n >(),\n converterCache: new ThreadMessageConverter(),\n }),\n [callback],\n );\n\n return useMemo(() => {\n const callbackResults: CallbackResult<T>[] = [];\n for (const message of messages) {\n let result = state.callbackCache.get(message);\n if (!result) {\n const output = state.callback(message);\n const outputs = Array.isArray(output) ? output : [output];\n result = { input: message, outputs };\n state.callbackCache.set(message, result);\n }\n callbackResults.push(result);\n }\n\n const chunks = chunkExternalMessages(callbackResults).map((m) => {\n const key = m.outputs[0];\n if (!key) return m;\n\n const cached = state.chunkCache.get(key);\n if (cached && shallowArrayEqual(cached.outputs, m.outputs)) return cached;\n state.chunkCache.set(key, m);\n return m;\n });\n\n return state.converterCache.convertMessages(\n chunks,\n (cache, message, idx) => {\n const isLast = idx === chunks.length - 1;\n const autoStatus = getAutoStatus(isLast, isRunning);\n\n if (\n cache &&\n (cache.role !== \"assistant\" ||\n !isAutoStatus(cache.status) ||\n cache.status === autoStatus)\n ) {\n const inputs = getExternalStoreMessage(cache) as T[];\n if (shallowArrayEqual(inputs, message.inputs)) {\n return cache;\n }\n }\n\n const newMessage = fromThreadMessageLike(\n joinExternalMessages(message.outputs),\n idx.toString(),\n autoStatus,\n );\n (newMessage as any)[symbolInnerMessage] = message.inputs;\n return newMessage;\n },\n );\n }, [state, messages, isRunning]);\n};\n\nconst shallowArrayEqual = (a: unknown[], b: unknown[]) => {\n if (a.length !== b.length) return false;\n for (let i = 0; i < a.length; i++) {\n if (a[i] !== b[i]) return false;\n }\n return true;\n};\n"],"mappings":"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","names":[]}
1
+ {"version":3,"sources":["../../../src/runtimes/external-store/external-message-converter.tsx"],"sourcesContent":["import { useMemo } from \"react\";\nimport { ThreadMessageConverter } from \"./ThreadMessageConverter\";\nimport {\n getExternalStoreMessage,\n symbolInnerMessage,\n} from \"./getExternalStoreMessage\";\nimport { fromThreadMessageLike, ThreadMessageLike } from \"./ThreadMessageLike\";\nimport { getAutoStatus, isAutoStatus } from \"./auto-status\";\nimport { ToolCallContentPart } from \"../../types\";\n\nexport namespace useExternalMessageConverter {\n export type Message =\n | ThreadMessageLike\n | {\n role: \"tool\";\n toolCallId: string;\n toolName?: string | undefined;\n result: any;\n };\n\n export type Callback<T> = (message: T) => Message | Message[];\n}\n\ntype CallbackResult<T> = {\n input: T;\n outputs: useExternalMessageConverter.Message[];\n};\n\ntype ChunkResult<T> = {\n inputs: T[];\n outputs: useExternalMessageConverter.Message[];\n};\n\nconst joinExternalMessages = (\n messages: useExternalMessageConverter.Message[],\n): ThreadMessageLike => {\n const assistantMessage: ThreadMessageLike & { content: any[] } = {\n role: \"assistant\",\n content: [],\n };\n for (const output of messages) {\n if (output.role === \"tool\") {\n const toolCallIdx = assistantMessage.content.findIndex(\n (c) => c.type === \"tool-call\" && c.toolCallId === output.toolCallId,\n );\n if (toolCallIdx !== -1) {\n const toolCall = assistantMessage.content[\n toolCallIdx\n ]! as ToolCallContentPart;\n if (output.toolName) {\n if (toolCall.toolName !== output.toolName)\n throw new Error(\n `Tool call name ${output.toolCallId} ${output.toolName} does not match existing tool call ${toolCall.toolName}`,\n );\n }\n assistantMessage.content[toolCallIdx] = {\n ...toolCall,\n result: output.result,\n };\n } else {\n throw new Error(\n `Tool call ${output.toolCallId} ${output.toolName} not found in assistant message`,\n );\n }\n } else {\n const role = output.role;\n switch (role) {\n case \"system\":\n case \"user\":\n return output;\n case \"assistant\":\n if (assistantMessage.content.length === 0) {\n assistantMessage.id = output.id;\n assistantMessage.createdAt ??= output.createdAt;\n assistantMessage.status ??= output.status;\n // TODO keep this in sync\n }\n assistantMessage.content.push(...output.content);\n break;\n default: {\n const unsupportedRole: never = role;\n throw new Error(`Unknown message role: ${unsupportedRole}`);\n }\n }\n }\n }\n return assistantMessage;\n};\n\nconst chunkExternalMessages = <T,>(callbackResults: CallbackResult<T>[]) => {\n const results: ChunkResult<T>[] = [];\n let isAssistant = false;\n let inputs: T[] = [];\n let outputs: useExternalMessageConverter.Message[] = [];\n\n const flush = () => {\n if (outputs.length) {\n results.push({\n inputs,\n outputs,\n });\n }\n inputs = [];\n outputs = [];\n };\n\n for (const callbackResult of callbackResults) {\n for (const output of callbackResult.outputs) {\n if (!isAssistant || output.role === \"user\" || output.role === \"system\") {\n flush();\n }\n isAssistant = output.role === \"assistant\" || output.role === \"tool\";\n\n if (inputs.at(-1) !== callbackResult.input) {\n inputs.push(callbackResult.input);\n }\n outputs.push(output);\n }\n }\n flush();\n return results;\n};\n\nexport const useExternalMessageConverter = <T extends WeakKey>({\n callback,\n messages,\n isRunning,\n}: {\n callback: useExternalMessageConverter.Callback<T>;\n messages: T[];\n isRunning: boolean;\n}) => {\n const state = useMemo(\n () => ({\n callback,\n callbackCache: new WeakMap<T, CallbackResult<T>>(),\n chunkCache: new WeakMap<\n useExternalMessageConverter.Message,\n ChunkResult<T>\n >(),\n converterCache: new ThreadMessageConverter(),\n }),\n [callback],\n );\n\n return useMemo(() => {\n const callbackResults: CallbackResult<T>[] = [];\n for (const message of messages) {\n let result = state.callbackCache.get(message);\n if (!result) {\n const output = state.callback(message);\n const outputs = Array.isArray(output) ? output : [output];\n result = { input: message, outputs };\n state.callbackCache.set(message, result);\n }\n callbackResults.push(result);\n }\n\n const chunks = chunkExternalMessages(callbackResults).map((m) => {\n const key = m.outputs[0];\n if (!key) return m;\n\n const cached = state.chunkCache.get(key);\n if (cached && shallowArrayEqual(cached.outputs, m.outputs)) return cached;\n state.chunkCache.set(key, m);\n return m;\n });\n\n return state.converterCache.convertMessages(\n chunks,\n (cache, message, idx) => {\n const isLast = idx === chunks.length - 1;\n const autoStatus = getAutoStatus(isLast, isRunning);\n\n if (\n cache &&\n (cache.role !== \"assistant\" ||\n !isAutoStatus(cache.status) ||\n cache.status === autoStatus)\n ) {\n const inputs = getExternalStoreMessage(cache) as T[];\n if (shallowArrayEqual(inputs, message.inputs)) {\n return cache;\n }\n }\n\n const newMessage = fromThreadMessageLike(\n joinExternalMessages(message.outputs),\n idx.toString(),\n autoStatus,\n );\n (newMessage as any)[symbolInnerMessage] = message.inputs;\n return newMessage;\n },\n );\n }, [state, messages, isRunning]);\n};\n\nconst shallowArrayEqual = (a: unknown[], b: unknown[]) => {\n if (a.length !== b.length) return false;\n for (let i = 0; i < a.length; i++) {\n if (a[i] !== b[i]) return false;\n }\n return true;\n};\n"],"mappings":"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","names":[]}
@@ -1,12 +1,13 @@
1
+ // src/runtimes/external-store/external-message-converter.tsx
1
2
  import { useMemo } from "react";
2
- import { ThreadMessageConverter } from "./ThreadMessageConverter";
3
+ import { ThreadMessageConverter } from "./ThreadMessageConverter.mjs";
3
4
  import {
4
5
  getExternalStoreMessage,
5
6
  symbolInnerMessage
6
- } from "./getExternalStoreMessage";
7
- import { fromThreadMessageLike } from "./ThreadMessageLike";
8
- import { getAutoStatus, isAutoStatus } from "./auto-status";
9
- const joinExternalMessages = (messages) => {
7
+ } from "./getExternalStoreMessage.mjs";
8
+ import { fromThreadMessageLike } from "./ThreadMessageLike.mjs";
9
+ import { getAutoStatus, isAutoStatus } from "./auto-status.mjs";
10
+ var joinExternalMessages = (messages) => {
10
11
  const assistantMessage = {
11
12
  role: "assistant",
12
13
  content: []
@@ -56,7 +57,7 @@ const joinExternalMessages = (messages) => {
56
57
  }
57
58
  return assistantMessage;
58
59
  };
59
- const chunkExternalMessages = (callbackResults) => {
60
+ var chunkExternalMessages = (callbackResults) => {
60
61
  const results = [];
61
62
  let isAssistant = false;
62
63
  let inputs = [];
@@ -86,7 +87,7 @@ const chunkExternalMessages = (callbackResults) => {
86
87
  flush();
87
88
  return results;
88
89
  };
89
- const useExternalMessageConverter = ({
90
+ var useExternalMessageConverter = ({
90
91
  callback,
91
92
  messages,
92
93
  isRunning
@@ -142,7 +143,7 @@ const useExternalMessageConverter = ({
142
143
  );
143
144
  }, [state, messages, isRunning]);
144
145
  };
145
- const shallowArrayEqual = (a, b) => {
146
+ var shallowArrayEqual = (a, b) => {
146
147
  if (a.length !== b.length) return false;
147
148
  for (let i = 0; i < a.length; i++) {
148
149
  if (a[i] !== b[i]) return false;