@assistant-ui/core 0.2.4 → 0.2.6

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 (841) hide show
  1. package/dist/adapters/attachment.d.ts +43 -39
  2. package/dist/adapters/attachment.d.ts.map +1 -1
  3. package/dist/adapters/attachment.js +148 -183
  4. package/dist/adapters/attachment.js.map +1 -1
  5. package/dist/adapters/directive-formatter.d.ts +6 -2
  6. package/dist/adapters/directive-formatter.d.ts.map +1 -1
  7. package/dist/adapters/directive-formatter.js +36 -33
  8. package/dist/adapters/directive-formatter.js.map +1 -1
  9. package/dist/adapters/feedback.d.ts +9 -6
  10. package/dist/adapters/feedback.d.ts.map +1 -1
  11. package/dist/adapters/feedback.js +0 -2
  12. package/dist/adapters/index.d.ts +9 -13
  13. package/dist/adapters/index.js +5 -6
  14. package/dist/adapters/speech.d.ts +66 -63
  15. package/dist/adapters/speech.d.ts.map +1 -1
  16. package/dist/adapters/speech.js +170 -174
  17. package/dist/adapters/speech.js.map +1 -1
  18. package/dist/adapters/suggestion.d.ts +9 -6
  19. package/dist/adapters/suggestion.d.ts.map +1 -1
  20. package/dist/adapters/suggestion.js +0 -2
  21. package/dist/adapters/thread-history.d.ts +40 -37
  22. package/dist/adapters/thread-history.d.ts.map +1 -1
  23. package/dist/adapters/thread-history.js +0 -2
  24. package/dist/adapters/trigger.d.ts +9 -8
  25. package/dist/adapters/trigger.d.ts.map +1 -1
  26. package/dist/adapters/trigger.js +0 -2
  27. package/dist/adapters/voice.d.ts +46 -42
  28. package/dist/adapters/voice.d.ts.map +1 -1
  29. package/dist/adapters/voice.js +98 -107
  30. package/dist/adapters/voice.js.map +1 -1
  31. package/dist/index.d.ts +45 -53
  32. package/dist/index.js +16 -20
  33. package/dist/internal.d.ts +37 -8
  34. package/dist/internal.js +34 -18
  35. package/dist/model-context/frame/host.d.ts +23 -19
  36. package/dist/model-context/frame/host.d.ts.map +1 -1
  37. package/dist/model-context/frame/host.js +121 -135
  38. package/dist/model-context/frame/host.js.map +1 -1
  39. package/dist/model-context/frame/provider.d.ts +20 -16
  40. package/dist/model-context/frame/provider.d.ts.map +1 -1
  41. package/dist/model-context/frame/provider.js +115 -126
  42. package/dist/model-context/frame/provider.js.map +1 -1
  43. package/dist/model-context/frame/types.d.ts +25 -22
  44. package/dist/model-context/frame/types.d.ts.map +1 -1
  45. package/dist/model-context/frame/types.js +5 -1
  46. package/dist/model-context/frame/types.js.map +1 -1
  47. package/dist/model-context/registry-handles.d.ts +13 -9
  48. package/dist/model-context/registry-handles.d.ts.map +1 -1
  49. package/dist/model-context/registry-handles.js +0 -2
  50. package/dist/model-context/registry.d.ts +19 -15
  51. package/dist/model-context/registry.d.ts.map +1 -1
  52. package/dist/model-context/registry.js +93 -107
  53. package/dist/model-context/registry.js.map +1 -1
  54. package/dist/model-context/tool.d.ts +6 -2
  55. package/dist/model-context/tool.d.ts.map +1 -1
  56. package/dist/model-context/tool.js +30 -27
  57. package/dist/model-context/tool.js.map +1 -1
  58. package/dist/model-context/types.d.ts +37 -33
  59. package/dist/model-context/types.d.ts.map +1 -1
  60. package/dist/model-context/types.js +24 -38
  61. package/dist/model-context/types.js.map +1 -1
  62. package/dist/react/AssistantProvider.d.ts +12 -8
  63. package/dist/react/AssistantProvider.d.ts.map +1 -1
  64. package/dist/react/AssistantProvider.js +16 -9
  65. package/dist/react/AssistantProvider.js.map +1 -1
  66. package/dist/react/AssistantRuntimeProvider.d.ts +26 -18
  67. package/dist/react/AssistantRuntimeProvider.d.ts.map +1 -1
  68. package/dist/react/AssistantRuntimeProvider.js +33 -25
  69. package/dist/react/AssistantRuntimeProvider.js.map +1 -1
  70. package/dist/react/RuntimeAdapter.d.ts +5 -2
  71. package/dist/react/RuntimeAdapter.d.ts.map +1 -1
  72. package/dist/react/RuntimeAdapter.js +11 -11
  73. package/dist/react/RuntimeAdapter.js.map +1 -1
  74. package/dist/react/adapters/LocalStorageThreadListAdapter.d.ts +14 -11
  75. package/dist/react/adapters/LocalStorageThreadListAdapter.d.ts.map +1 -1
  76. package/dist/react/adapters/LocalStorageThreadListAdapter.js +136 -147
  77. package/dist/react/adapters/LocalStorageThreadListAdapter.js.map +1 -1
  78. package/dist/react/adapters/TitleGenerationAdapter.d.ts +8 -4
  79. package/dist/react/adapters/TitleGenerationAdapter.d.ts.map +1 -1
  80. package/dist/react/adapters/TitleGenerationAdapter.js +13 -13
  81. package/dist/react/adapters/TitleGenerationAdapter.js.map +1 -1
  82. package/dist/react/client/DataRenderers.d.ts +6 -2
  83. package/dist/react/client/DataRenderers.d.ts.map +1 -1
  84. package/dist/react/client/DataRenderers.js +53 -51
  85. package/dist/react/client/DataRenderers.js.map +1 -1
  86. package/dist/react/client/Interactables.d.ts +6 -2
  87. package/dist/react/client/Interactables.d.ts.map +1 -1
  88. package/dist/react/client/Interactables.js +251 -257
  89. package/dist/react/client/Interactables.js.map +1 -1
  90. package/dist/react/client/Tools.d.ts +13 -14
  91. package/dist/react/client/Tools.d.ts.map +1 -1
  92. package/dist/react/client/Tools.js +57 -68
  93. package/dist/react/client/Tools.js.map +1 -1
  94. package/dist/react/client/interactable-model-context.d.ts +10 -6
  95. package/dist/react/client/interactable-model-context.d.ts.map +1 -1
  96. package/dist/react/client/interactable-model-context.js +51 -59
  97. package/dist/react/client/interactable-model-context.js.map +1 -1
  98. package/dist/react/index.d.ts +96 -90
  99. package/dist/react/index.js +89 -96
  100. package/dist/react/model-context/makeAssistantDataUI.d.ts +9 -6
  101. package/dist/react/model-context/makeAssistantDataUI.d.ts.map +1 -1
  102. package/dist/react/model-context/makeAssistantDataUI.js +17 -13
  103. package/dist/react/model-context/makeAssistantDataUI.js.map +1 -1
  104. package/dist/react/model-context/makeAssistantTool.d.ts +9 -6
  105. package/dist/react/model-context/makeAssistantTool.d.ts.map +1 -1
  106. package/dist/react/model-context/makeAssistantTool.js +18 -14
  107. package/dist/react/model-context/makeAssistantTool.js.map +1 -1
  108. package/dist/react/model-context/makeAssistantToolUI.d.ts +9 -6
  109. package/dist/react/model-context/makeAssistantToolUI.d.ts.map +1 -1
  110. package/dist/react/model-context/makeAssistantToolUI.js +19 -15
  111. package/dist/react/model-context/makeAssistantToolUI.js.map +1 -1
  112. package/dist/react/model-context/toolbox.d.ts +13 -11
  113. package/dist/react/model-context/toolbox.d.ts.map +1 -1
  114. package/dist/react/model-context/toolbox.js +0 -2
  115. package/dist/react/model-context/useAssistantContext.d.ts +5 -3
  116. package/dist/react/model-context/useAssistantContext.d.ts.map +1 -1
  117. package/dist/react/model-context/useAssistantContext.js +13 -14
  118. package/dist/react/model-context/useAssistantContext.js.map +1 -1
  119. package/dist/react/model-context/useAssistantDataUI.d.ts +9 -7
  120. package/dist/react/model-context/useAssistantDataUI.d.ts.map +1 -1
  121. package/dist/react/model-context/useAssistantDataUI.js +19 -12
  122. package/dist/react/model-context/useAssistantDataUI.js.map +1 -1
  123. package/dist/react/model-context/useAssistantInstructions.d.ts +5 -3
  124. package/dist/react/model-context/useAssistantInstructions.d.ts.map +1 -1
  125. package/dist/react/model-context/useAssistantInstructions.js +18 -16
  126. package/dist/react/model-context/useAssistantInstructions.js.map +1 -1
  127. package/dist/react/model-context/useAssistantInteractable.d.ts +12 -8
  128. package/dist/react/model-context/useAssistantInteractable.d.ts.map +1 -1
  129. package/dist/react/model-context/useAssistantInteractable.js +36 -26
  130. package/dist/react/model-context/useAssistantInteractable.js.map +1 -1
  131. package/dist/react/model-context/useAssistantTool.d.ts +9 -6
  132. package/dist/react/model-context/useAssistantTool.d.ts.map +1 -1
  133. package/dist/react/model-context/useAssistantTool.js +48 -47
  134. package/dist/react/model-context/useAssistantTool.js.map +1 -1
  135. package/dist/react/model-context/useAssistantToolUI.d.ts +9 -7
  136. package/dist/react/model-context/useAssistantToolUI.d.ts.map +1 -1
  137. package/dist/react/model-context/useAssistantToolUI.js +22 -15
  138. package/dist/react/model-context/useAssistantToolUI.js.map +1 -1
  139. package/dist/react/model-context/useInlineRender.d.ts +7 -3
  140. package/dist/react/model-context/useInlineRender.d.ts.map +1 -1
  141. package/dist/react/model-context/useInlineRender.js +12 -12
  142. package/dist/react/model-context/useInlineRender.js.map +1 -1
  143. package/dist/react/model-context/useInteractableState.d.ts +9 -7
  144. package/dist/react/model-context/useInteractableState.d.ts.map +1 -1
  145. package/dist/react/model-context/useInteractableState.js +29 -31
  146. package/dist/react/model-context/useInteractableState.js.map +1 -1
  147. package/dist/react/model-context/useToolArgsStatus.d.ts +7 -7
  148. package/dist/react/model-context/useToolArgsStatus.d.ts.map +1 -1
  149. package/dist/react/model-context/useToolArgsStatus.js +44 -50
  150. package/dist/react/model-context/useToolArgsStatus.js.map +1 -1
  151. package/dist/react/primitive-hooks/useActionBarCopy.d.ts +13 -7
  152. package/dist/react/primitive-hooks/useActionBarCopy.d.ts.map +1 -1
  153. package/dist/react/primitive-hooks/useActionBarCopy.js +31 -23
  154. package/dist/react/primitive-hooks/useActionBarCopy.js.map +1 -1
  155. package/dist/react/primitive-hooks/useActionBarEdit.d.ts +6 -3
  156. package/dist/react/primitive-hooks/useActionBarEdit.d.ts.map +1 -1
  157. package/dist/react/primitive-hooks/useActionBarEdit.js +13 -7
  158. package/dist/react/primitive-hooks/useActionBarEdit.js.map +1 -1
  159. package/dist/react/primitive-hooks/useActionBarFeedback.d.ts +9 -6
  160. package/dist/react/primitive-hooks/useActionBarFeedback.d.ts.map +1 -1
  161. package/dist/react/primitive-hooks/useActionBarFeedback.js +22 -14
  162. package/dist/react/primitive-hooks/useActionBarFeedback.js.map +1 -1
  163. package/dist/react/primitive-hooks/useActionBarReload.d.ts +6 -3
  164. package/dist/react/primitive-hooks/useActionBarReload.d.ts.map +1 -1
  165. package/dist/react/primitive-hooks/useActionBarReload.js +13 -9
  166. package/dist/react/primitive-hooks/useActionBarReload.js.map +1 -1
  167. package/dist/react/primitive-hooks/useActionBarSpeak.d.ts +6 -3
  168. package/dist/react/primitive-hooks/useActionBarSpeak.d.ts.map +1 -1
  169. package/dist/react/primitive-hooks/useActionBarSpeak.js +15 -11
  170. package/dist/react/primitive-hooks/useActionBarSpeak.js.map +1 -1
  171. package/dist/react/primitive-hooks/useActionBarStopSpeaking.d.ts +6 -3
  172. package/dist/react/primitive-hooks/useActionBarStopSpeaking.d.ts.map +1 -1
  173. package/dist/react/primitive-hooks/useActionBarStopSpeaking.js +13 -7
  174. package/dist/react/primitive-hooks/useActionBarStopSpeaking.js.map +1 -1
  175. package/dist/react/primitive-hooks/useBranchPickerNext.d.ts +6 -3
  176. package/dist/react/primitive-hooks/useBranchPickerNext.d.ts.map +1 -1
  177. package/dist/react/primitive-hooks/useBranchPickerNext.js +17 -14
  178. package/dist/react/primitive-hooks/useBranchPickerNext.js.map +1 -1
  179. package/dist/react/primitive-hooks/useBranchPickerPrevious.d.ts +6 -3
  180. package/dist/react/primitive-hooks/useBranchPickerPrevious.d.ts.map +1 -1
  181. package/dist/react/primitive-hooks/useBranchPickerPrevious.js +17 -14
  182. package/dist/react/primitive-hooks/useBranchPickerPrevious.js.map +1 -1
  183. package/dist/react/primitive-hooks/useComposerAddAttachment.d.ts +8 -4
  184. package/dist/react/primitive-hooks/useComposerAddAttachment.d.ts.map +1 -1
  185. package/dist/react/primitive-hooks/useComposerAddAttachment.js +13 -7
  186. package/dist/react/primitive-hooks/useComposerAddAttachment.js.map +1 -1
  187. package/dist/react/primitive-hooks/useComposerCancel.d.ts +6 -3
  188. package/dist/react/primitive-hooks/useComposerCancel.d.ts.map +1 -1
  189. package/dist/react/primitive-hooks/useComposerCancel.js +13 -7
  190. package/dist/react/primitive-hooks/useComposerCancel.js.map +1 -1
  191. package/dist/react/primitive-hooks/useComposerDictate.d.ts +6 -3
  192. package/dist/react/primitive-hooks/useComposerDictate.d.ts.map +1 -1
  193. package/dist/react/primitive-hooks/useComposerDictate.js +13 -9
  194. package/dist/react/primitive-hooks/useComposerDictate.js.map +1 -1
  195. package/dist/react/primitive-hooks/useComposerSend.d.ts +8 -4
  196. package/dist/react/primitive-hooks/useComposerSend.d.ts.map +1 -1
  197. package/dist/react/primitive-hooks/useComposerSend.js +13 -8
  198. package/dist/react/primitive-hooks/useComposerSend.js.map +1 -1
  199. package/dist/react/primitive-hooks/useEditComposerCancel.d.ts +5 -2
  200. package/dist/react/primitive-hooks/useEditComposerCancel.d.ts.map +1 -1
  201. package/dist/react/primitive-hooks/useEditComposerCancel.js +9 -6
  202. package/dist/react/primitive-hooks/useEditComposerCancel.js.map +1 -1
  203. package/dist/react/primitive-hooks/useEditComposerSend.d.ts +6 -3
  204. package/dist/react/primitive-hooks/useEditComposerSend.d.ts.map +1 -1
  205. package/dist/react/primitive-hooks/useEditComposerSend.js +13 -7
  206. package/dist/react/primitive-hooks/useEditComposerSend.js.map +1 -1
  207. package/dist/react/primitive-hooks/useMessageBranching.d.ts +8 -5
  208. package/dist/react/primitive-hooks/useMessageBranching.d.ts.map +1 -1
  209. package/dist/react/primitive-hooks/useMessageBranching.js +16 -11
  210. package/dist/react/primitive-hooks/useMessageBranching.js.map +1 -1
  211. package/dist/react/primitive-hooks/useMessageError.d.ts +4 -1
  212. package/dist/react/primitive-hooks/useMessageError.d.ts.map +1 -1
  213. package/dist/react/primitive-hooks/useMessageError.js +6 -5
  214. package/dist/react/primitive-hooks/useMessageError.js.map +1 -1
  215. package/dist/react/primitive-hooks/useMessageReload.d.ts +6 -3
  216. package/dist/react/primitive-hooks/useMessageReload.d.ts.map +1 -1
  217. package/dist/react/primitive-hooks/useMessageReload.js +13 -7
  218. package/dist/react/primitive-hooks/useMessageReload.js.map +1 -1
  219. package/dist/react/primitive-hooks/useSuggestionTrigger.d.ts +14 -7
  220. package/dist/react/primitive-hooks/useSuggestionTrigger.d.ts.map +1 -1
  221. package/dist/react/primitive-hooks/useSuggestionTrigger.js +33 -28
  222. package/dist/react/primitive-hooks/useSuggestionTrigger.js.map +1 -1
  223. package/dist/react/primitive-hooks/useThreadIsEmpty.d.ts +4 -1
  224. package/dist/react/primitive-hooks/useThreadIsEmpty.d.ts.map +1 -1
  225. package/dist/react/primitive-hooks/useThreadIsEmpty.js +6 -2
  226. package/dist/react/primitive-hooks/useThreadIsEmpty.js.map +1 -1
  227. package/dist/react/primitive-hooks/useThreadIsRunning.d.ts +4 -1
  228. package/dist/react/primitive-hooks/useThreadIsRunning.d.ts.map +1 -1
  229. package/dist/react/primitive-hooks/useThreadIsRunning.js +6 -2
  230. package/dist/react/primitive-hooks/useThreadIsRunning.js.map +1 -1
  231. package/dist/react/primitive-hooks/useThreadListItemArchive.d.ts +5 -2
  232. package/dist/react/primitive-hooks/useThreadListItemArchive.d.ts.map +1 -1
  233. package/dist/react/primitive-hooks/useThreadListItemArchive.js +9 -6
  234. package/dist/react/primitive-hooks/useThreadListItemArchive.js.map +1 -1
  235. package/dist/react/primitive-hooks/useThreadListItemDelete.d.ts +5 -2
  236. package/dist/react/primitive-hooks/useThreadListItemDelete.d.ts.map +1 -1
  237. package/dist/react/primitive-hooks/useThreadListItemDelete.js +9 -6
  238. package/dist/react/primitive-hooks/useThreadListItemDelete.js.map +1 -1
  239. package/dist/react/primitive-hooks/useThreadListItemTrigger.d.ts +5 -2
  240. package/dist/react/primitive-hooks/useThreadListItemTrigger.d.ts.map +1 -1
  241. package/dist/react/primitive-hooks/useThreadListItemTrigger.js +9 -6
  242. package/dist/react/primitive-hooks/useThreadListItemTrigger.js.map +1 -1
  243. package/dist/react/primitive-hooks/useThreadListItemUnarchive.d.ts +5 -2
  244. package/dist/react/primitive-hooks/useThreadListItemUnarchive.d.ts.map +1 -1
  245. package/dist/react/primitive-hooks/useThreadListItemUnarchive.js +9 -6
  246. package/dist/react/primitive-hooks/useThreadListItemUnarchive.js.map +1 -1
  247. package/dist/react/primitive-hooks/useThreadListLoadMore.d.ts +6 -3
  248. package/dist/react/primitive-hooks/useThreadListLoadMore.d.ts.map +1 -1
  249. package/dist/react/primitive-hooks/useThreadListLoadMore.js +13 -7
  250. package/dist/react/primitive-hooks/useThreadListLoadMore.js.map +1 -1
  251. package/dist/react/primitive-hooks/useThreadListNew.d.ts +5 -2
  252. package/dist/react/primitive-hooks/useThreadListNew.d.ts.map +1 -1
  253. package/dist/react/primitive-hooks/useThreadListNew.js +9 -6
  254. package/dist/react/primitive-hooks/useThreadListNew.js.map +1 -1
  255. package/dist/react/primitive-hooks/useThreadMessages.d.ts +6 -2
  256. package/dist/react/primitive-hooks/useThreadMessages.d.ts.map +1 -1
  257. package/dist/react/primitive-hooks/useThreadMessages.js +6 -2
  258. package/dist/react/primitive-hooks/useThreadMessages.js.map +1 -1
  259. package/dist/react/primitive-hooks/useVoice.d.ts +12 -8
  260. package/dist/react/primitive-hooks/useVoice.d.ts.map +1 -1
  261. package/dist/react/primitive-hooks/useVoice.js +25 -21
  262. package/dist/react/primitive-hooks/useVoice.js.map +1 -1
  263. package/dist/react/primitives/chainOfThought/ChainOfThoughtParts.d.ts +26 -27
  264. package/dist/react/primitives/chainOfThought/ChainOfThoughtParts.d.ts.map +1 -1
  265. package/dist/react/primitives/chainOfThought/ChainOfThoughtParts.js +30 -28
  266. package/dist/react/primitives/chainOfThought/ChainOfThoughtParts.js.map +1 -1
  267. package/dist/react/primitives/composer/ComposerAttachments.d.ts +27 -26
  268. package/dist/react/primitives/composer/ComposerAttachments.d.ts.map +1 -1
  269. package/dist/react/primitives/composer/ComposerAttachments.js +44 -48
  270. package/dist/react/primitives/composer/ComposerAttachments.js.map +1 -1
  271. package/dist/react/primitives/composer/ComposerIf.d.ts +12 -13
  272. package/dist/react/primitives/composer/ComposerIf.d.ts.map +1 -1
  273. package/dist/react/primitives/composer/ComposerIf.js +16 -17
  274. package/dist/react/primitives/composer/ComposerIf.js.map +1 -1
  275. package/dist/react/primitives/composer/ComposerQueue.d.ts +16 -13
  276. package/dist/react/primitives/composer/ComposerQueue.d.ts.map +1 -1
  277. package/dist/react/primitives/composer/ComposerQueue.js +31 -23
  278. package/dist/react/primitives/composer/ComposerQueue.js.map +1 -1
  279. package/dist/react/primitives/generativeUI/GenerativeUI.d.ts +64 -0
  280. package/dist/react/primitives/generativeUI/GenerativeUI.d.ts.map +1 -0
  281. package/dist/react/primitives/generativeUI/GenerativeUI.js +91 -0
  282. package/dist/react/primitives/generativeUI/GenerativeUI.js.map +1 -0
  283. package/dist/react/primitives/message/MessageAttachments.d.ts +27 -26
  284. package/dist/react/primitives/message/MessageAttachments.d.ts.map +1 -1
  285. package/dist/react/primitives/message/MessageAttachments.js +47 -52
  286. package/dist/react/primitives/message/MessageAttachments.js.map +1 -1
  287. package/dist/react/primitives/message/MessageGroupedParts.d.ts +82 -71
  288. package/dist/react/primitives/message/MessageGroupedParts.d.ts.map +1 -1
  289. package/dist/react/primitives/message/MessageGroupedParts.js +63 -61
  290. package/dist/react/primitives/message/MessageGroupedParts.js.map +1 -1
  291. package/dist/react/primitives/message/MessageParts.d.ts +148 -145
  292. package/dist/react/primitives/message/MessageParts.d.ts.map +1 -1
  293. package/dist/react/primitives/message/MessageParts.js +363 -335
  294. package/dist/react/primitives/message/MessageParts.js.map +1 -1
  295. package/dist/react/primitives/message/MessageQuote.d.ts +11 -8
  296. package/dist/react/primitives/message/MessageQuote.d.ts.map +1 -1
  297. package/dist/react/primitives/message/MessageQuote.js +24 -21
  298. package/dist/react/primitives/message/MessageQuote.js.map +1 -1
  299. package/dist/react/primitives/messagePart/MessagePartInProgress.d.ts +8 -4
  300. package/dist/react/primitives/messagePart/MessagePartInProgress.d.ts.map +1 -1
  301. package/dist/react/primitives/messagePart/MessagePartInProgress.js +6 -3
  302. package/dist/react/primitives/messagePart/MessagePartInProgress.js.map +1 -1
  303. package/dist/react/primitives/part/PartMessages.d.ts +16 -13
  304. package/dist/react/primitives/part/PartMessages.d.ts.map +1 -1
  305. package/dist/react/primitives/part/PartMessages.js +45 -41
  306. package/dist/react/primitives/part/PartMessages.js.map +1 -1
  307. package/dist/react/primitives/thread/ThreadMessages.d.ts +40 -55
  308. package/dist/react/primitives/thread/ThreadMessages.d.ts.map +1 -1
  309. package/dist/react/primitives/thread/ThreadMessages.js +58 -92
  310. package/dist/react/primitives/thread/ThreadMessages.js.map +1 -1
  311. package/dist/react/primitives/thread/ThreadSuggestions.d.ts +25 -25
  312. package/dist/react/primitives/thread/ThreadSuggestions.d.ts.map +1 -1
  313. package/dist/react/primitives/thread/ThreadSuggestions.js +39 -35
  314. package/dist/react/primitives/thread/ThreadSuggestions.js.map +1 -1
  315. package/dist/react/primitives/threadList/ThreadListItems.d.ts +27 -26
  316. package/dist/react/primitives/threadList/ThreadListItems.d.ts.map +1 -1
  317. package/dist/react/primitives/threadList/ThreadListItems.js +47 -23
  318. package/dist/react/primitives/threadList/ThreadListItems.js.map +1 -1
  319. package/dist/react/primitives/threadListItem/ThreadListItemTitle.d.ts +10 -6
  320. package/dist/react/primitives/threadListItem/ThreadListItemTitle.d.ts.map +1 -1
  321. package/dist/react/primitives/threadListItem/ThreadListItemTitle.js +7 -4
  322. package/dist/react/primitives/threadListItem/ThreadListItemTitle.js.map +1 -1
  323. package/dist/react/providers/AttachmentByIndexProvider.d.ts +9 -5
  324. package/dist/react/providers/AttachmentByIndexProvider.d.ts.map +1 -1
  325. package/dist/react/providers/AttachmentByIndexProvider.js +30 -20
  326. package/dist/react/providers/AttachmentByIndexProvider.js.map +1 -1
  327. package/dist/react/providers/ChainOfThoughtByIndicesProvider.d.ts +8 -4
  328. package/dist/react/providers/ChainOfThoughtByIndicesProvider.d.ts.map +1 -1
  329. package/dist/react/providers/ChainOfThoughtByIndicesProvider.js +19 -17
  330. package/dist/react/providers/ChainOfThoughtByIndicesProvider.js.map +1 -1
  331. package/dist/react/providers/ChainOfThoughtPartByIndexProvider.d.ts +7 -3
  332. package/dist/react/providers/ChainOfThoughtPartByIndexProvider.d.ts.map +1 -1
  333. package/dist/react/providers/ChainOfThoughtPartByIndexProvider.js +18 -11
  334. package/dist/react/providers/ChainOfThoughtPartByIndexProvider.js.map +1 -1
  335. package/dist/react/providers/MessageByIndexProvider.d.ts +7 -3
  336. package/dist/react/providers/MessageByIndexProvider.d.ts.map +1 -1
  337. package/dist/react/providers/MessageByIndexProvider.js +25 -16
  338. package/dist/react/providers/MessageByIndexProvider.js.map +1 -1
  339. package/dist/react/providers/PartByIndexProvider.d.ts +7 -3
  340. package/dist/react/providers/PartByIndexProvider.d.ts.map +1 -1
  341. package/dist/react/providers/PartByIndexProvider.js +18 -11
  342. package/dist/react/providers/PartByIndexProvider.js.map +1 -1
  343. package/dist/react/providers/QueueItemByIndexProvider.d.ts +8 -4
  344. package/dist/react/providers/QueueItemByIndexProvider.d.ts.map +1 -1
  345. package/dist/react/providers/QueueItemByIndexProvider.js +14 -10
  346. package/dist/react/providers/QueueItemByIndexProvider.js.map +1 -1
  347. package/dist/react/providers/ReadonlyThreadProvider.d.ts +11 -7
  348. package/dist/react/providers/ReadonlyThreadProvider.d.ts.map +1 -1
  349. package/dist/react/providers/ReadonlyThreadProvider.js +46 -42
  350. package/dist/react/providers/ReadonlyThreadProvider.js.map +1 -1
  351. package/dist/react/providers/SuggestionByIndexProvider.d.ts +8 -4
  352. package/dist/react/providers/SuggestionByIndexProvider.d.ts.map +1 -1
  353. package/dist/react/providers/SuggestionByIndexProvider.js +14 -10
  354. package/dist/react/providers/SuggestionByIndexProvider.js.map +1 -1
  355. package/dist/react/providers/TextMessagePartProvider.d.ts +8 -4
  356. package/dist/react/providers/TextMessagePartProvider.d.ts.map +1 -1
  357. package/dist/react/providers/TextMessagePartProvider.js +32 -22
  358. package/dist/react/providers/TextMessagePartProvider.js.map +1 -1
  359. package/dist/react/providers/ThreadListItemByIndexProvider.d.ts +8 -4
  360. package/dist/react/providers/ThreadListItemByIndexProvider.d.ts.map +1 -1
  361. package/dist/react/providers/ThreadListItemByIndexProvider.js +22 -11
  362. package/dist/react/providers/ThreadListItemByIndexProvider.js.map +1 -1
  363. package/dist/react/providers/ThreadListItemRuntimeProvider.d.ts +8 -4
  364. package/dist/react/providers/ThreadListItemRuntimeProvider.d.ts.map +1 -1
  365. package/dist/react/providers/ThreadListItemRuntimeProvider.js +12 -8
  366. package/dist/react/providers/ThreadListItemRuntimeProvider.js.map +1 -1
  367. package/dist/react/runtimes/RemoteThreadListHookInstanceManager.d.ts +121 -109
  368. package/dist/react/runtimes/RemoteThreadListHookInstanceManager.d.ts.map +1 -1
  369. package/dist/react/runtimes/RemoteThreadListHookInstanceManager.js +123 -129
  370. package/dist/react/runtimes/RemoteThreadListHookInstanceManager.js.map +1 -1
  371. package/dist/react/runtimes/RemoteThreadListThreadListRuntimeCore.d.ts +149 -135
  372. package/dist/react/runtimes/RemoteThreadListThreadListRuntimeCore.d.ts.map +1 -1
  373. package/dist/react/runtimes/RemoteThreadListThreadListRuntimeCore.js +460 -515
  374. package/dist/react/runtimes/RemoteThreadListThreadListRuntimeCore.js.map +1 -1
  375. package/dist/react/runtimes/RuntimeAdapterProvider.d.ts +19 -15
  376. package/dist/react/runtimes/RuntimeAdapterProvider.d.ts.map +1 -1
  377. package/dist/react/runtimes/RuntimeAdapterProvider.js +16 -9
  378. package/dist/react/runtimes/RuntimeAdapterProvider.js.map +1 -1
  379. package/dist/react/runtimes/cloud/AssistantCloudThreadHistoryAdapter.d.ts +8 -4
  380. package/dist/react/runtimes/cloud/AssistantCloudThreadHistoryAdapter.d.ts.map +1 -1
  381. package/dist/react/runtimes/cloud/AssistantCloudThreadHistoryAdapter.js +372 -485
  382. package/dist/react/runtimes/cloud/AssistantCloudThreadHistoryAdapter.js.map +1 -1
  383. package/dist/react/runtimes/cloud/CloudFileAttachmentAdapter.d.ts +19 -13
  384. package/dist/react/runtimes/cloud/CloudFileAttachmentAdapter.d.ts.map +1 -1
  385. package/dist/react/runtimes/cloud/CloudFileAttachmentAdapter.js +83 -80
  386. package/dist/react/runtimes/cloud/CloudFileAttachmentAdapter.js.map +1 -1
  387. package/dist/react/runtimes/cloud/auiV0.d.ts +61 -58
  388. package/dist/react/runtimes/cloud/auiV0.d.ts.map +1 -1
  389. package/dist/react/runtimes/cloud/auiV0.js +80 -87
  390. package/dist/react/runtimes/cloud/auiV0.js.map +1 -1
  391. package/dist/react/runtimes/cloud/useCloudThreadListAdapter.d.ts +10 -7
  392. package/dist/react/runtimes/cloud/useCloudThreadListAdapter.d.ts.map +1 -1
  393. package/dist/react/runtimes/cloud/useCloudThreadListAdapter.js +101 -101
  394. package/dist/react/runtimes/cloud/useCloudThreadListAdapter.js.map +1 -1
  395. package/dist/react/runtimes/createMessageConverter.d.ts +23 -14
  396. package/dist/react/runtimes/createMessageConverter.d.ts.map +1 -1
  397. package/dist/react/runtimes/createMessageConverter.js +43 -46
  398. package/dist/react/runtimes/createMessageConverter.js.map +1 -1
  399. package/dist/react/runtimes/external-message-converter.d.ts +40 -31
  400. package/dist/react/runtimes/external-message-converter.d.ts.map +1 -1
  401. package/dist/react/runtimes/external-message-converter.js +226 -296
  402. package/dist/react/runtimes/external-message-converter.js.map +1 -1
  403. package/dist/react/runtimes/useExternalStoreRuntime.d.ts +7 -3
  404. package/dist/react/runtimes/useExternalStoreRuntime.d.ts.map +1 -1
  405. package/dist/react/runtimes/useExternalStoreRuntime.js +18 -15
  406. package/dist/react/runtimes/useExternalStoreRuntime.js.map +1 -1
  407. package/dist/react/runtimes/useLocalRuntime.d.ts +41 -26
  408. package/dist/react/runtimes/useLocalRuntime.d.ts.map +1 -1
  409. package/dist/react/runtimes/useLocalRuntime.js +58 -67
  410. package/dist/react/runtimes/useLocalRuntime.js.map +1 -1
  411. package/dist/react/runtimes/useRemoteThreadListRuntime.d.ts +7 -3
  412. package/dist/react/runtimes/useRemoteThreadListRuntime.d.ts.map +1 -1
  413. package/dist/react/runtimes/useRemoteThreadListRuntime.js +51 -62
  414. package/dist/react/runtimes/useRemoteThreadListRuntime.js.map +1 -1
  415. package/dist/react/runtimes/useToolInvocations.d.ts +39 -34
  416. package/dist/react/runtimes/useToolInvocations.d.ts.map +1 -1
  417. package/dist/react/runtimes/useToolInvocations.js +371 -481
  418. package/dist/react/runtimes/useToolInvocations.js.map +1 -1
  419. package/dist/react/types/MessagePartComponentTypes.d.ts +73 -41
  420. package/dist/react/types/MessagePartComponentTypes.d.ts.map +1 -1
  421. package/dist/react/types/MessagePartComponentTypes.js +0 -2
  422. package/dist/react/types/scopes/dataRenderers.d.ts +15 -11
  423. package/dist/react/types/scopes/dataRenderers.d.ts.map +1 -1
  424. package/dist/react/types/scopes/dataRenderers.js +0 -2
  425. package/dist/react/types/scopes/interactables.d.ts +44 -42
  426. package/dist/react/types/scopes/interactables.d.ts.map +1 -1
  427. package/dist/react/types/scopes/interactables.js +0 -2
  428. package/dist/react/types/scopes/tools.d.ts +16 -12
  429. package/dist/react/types/scopes/tools.d.ts.map +1 -1
  430. package/dist/react/types/scopes/tools.js +0 -2
  431. package/dist/react/types/store-augmentation.d.ts +11 -9
  432. package/dist/react/types/store-augmentation.d.ts.map +1 -1
  433. package/dist/react/types/store-augmentation.js +0 -2
  434. package/dist/react/utils/getMessageQuote.d.ts +9 -6
  435. package/dist/react/utils/getMessageQuote.d.ts.map +1 -1
  436. package/dist/react/utils/getMessageQuote.js +8 -5
  437. package/dist/react/utils/getMessageQuote.js.map +1 -1
  438. package/dist/react/utils/groupParts.d.ts +59 -28
  439. package/dist/react/utils/groupParts.d.ts.map +1 -1
  440. package/dist/react/utils/groupParts.js +104 -89
  441. package/dist/react/utils/groupParts.js.map +1 -1
  442. package/dist/runtime/api/assistant-runtime.d.ts +32 -28
  443. package/dist/runtime/api/assistant-runtime.d.ts.map +1 -1
  444. package/dist/runtime/api/assistant-runtime.js +25 -22
  445. package/dist/runtime/api/assistant-runtime.js.map +1 -1
  446. package/dist/runtime/api/attachment-runtime.d.ts +48 -45
  447. package/dist/runtime/api/attachment-runtime.d.ts.map +1 -1
  448. package/dist/runtime/api/attachment-runtime.js +55 -52
  449. package/dist/runtime/api/attachment-runtime.js.map +1 -1
  450. package/dist/runtime/api/bindings.d.ts +30 -25
  451. package/dist/runtime/api/bindings.d.ts.map +1 -1
  452. package/dist/runtime/api/bindings.js +0 -2
  453. package/dist/runtime/api/composer-runtime.d.ts +184 -182
  454. package/dist/runtime/api/composer-runtime.d.ts.map +1 -1
  455. package/dist/runtime/api/composer-runtime.js +239 -245
  456. package/dist/runtime/api/composer-runtime.js.map +1 -1
  457. package/dist/runtime/api/message-part-runtime.d.ts +37 -27
  458. package/dist/runtime/api/message-part-runtime.d.ts.map +1 -1
  459. package/dist/runtime/api/message-part-runtime.js +74 -65
  460. package/dist/runtime/api/message-part-runtime.js.map +1 -1
  461. package/dist/runtime/api/message-runtime.d.ts +91 -80
  462. package/dist/runtime/api/message-runtime.d.ts.map +1 -1
  463. package/dist/runtime/api/message-runtime.js +169 -194
  464. package/dist/runtime/api/message-runtime.js.map +1 -1
  465. package/dist/runtime/api/paths.d.ts +57 -54
  466. package/dist/runtime/api/paths.d.ts.map +1 -1
  467. package/dist/runtime/api/paths.js +0 -2
  468. package/dist/runtime/api/thread-list-item-runtime.d.ts +68 -61
  469. package/dist/runtime/api/thread-list-item-runtime.d.ts.map +1 -1
  470. package/dist/runtime/api/thread-list-item-runtime.js +85 -84
  471. package/dist/runtime/api/thread-list-item-runtime.js.map +1 -1
  472. package/dist/runtime/api/thread-list-runtime.d.ts +57 -48
  473. package/dist/runtime/api/thread-list-runtime.d.ts.map +1 -1
  474. package/dist/runtime/api/thread-list-runtime.js +160 -147
  475. package/dist/runtime/api/thread-list-runtime.js.map +1 -1
  476. package/dist/runtime/api/thread-runtime.d.ts +279 -272
  477. package/dist/runtime/api/thread-runtime.d.ts.map +1 -1
  478. package/dist/runtime/api/thread-runtime.js +244 -244
  479. package/dist/runtime/api/thread-runtime.js.map +1 -1
  480. package/dist/runtime/base/base-assistant-runtime-core.d.ts +13 -9
  481. package/dist/runtime/base/base-assistant-runtime-core.d.ts.map +1 -1
  482. package/dist/runtime/base/base-assistant-runtime-core.js +13 -9
  483. package/dist/runtime/base/base-assistant-runtime-core.js.map +1 -1
  484. package/dist/runtime/base/base-composer-runtime-core.d.ts +60 -57
  485. package/dist/runtime/base/base-composer-runtime-core.d.ts.map +1 -1
  486. package/dist/runtime/base/base-composer-runtime-core.js +348 -392
  487. package/dist/runtime/base/base-composer-runtime-core.js.map +1 -1
  488. package/dist/runtime/base/base-thread-runtime-core.d.ts +90 -84
  489. package/dist/runtime/base/base-thread-runtime-core.d.ts.map +1 -1
  490. package/dist/runtime/base/base-thread-runtime-core.js +349 -357
  491. package/dist/runtime/base/base-thread-runtime-core.js.map +1 -1
  492. package/dist/runtime/base/default-edit-composer-runtime-core.d.ts +37 -30
  493. package/dist/runtime/base/default-edit-composer-runtime-core.d.ts.map +1 -1
  494. package/dist/runtime/base/default-edit-composer-runtime-core.js +70 -77
  495. package/dist/runtime/base/default-edit-composer-runtime-core.js.map +1 -1
  496. package/dist/runtime/base/default-thread-composer-runtime-core.d.ts +25 -21
  497. package/dist/runtime/base/default-thread-composer-runtime-core.d.ts.map +1 -1
  498. package/dist/runtime/base/default-thread-composer-runtime-core.js +51 -48
  499. package/dist/runtime/base/default-thread-composer-runtime-core.js.map +1 -1
  500. package/dist/runtime/interfaces/assistant-runtime-core.d.ts +12 -8
  501. package/dist/runtime/interfaces/assistant-runtime-core.d.ts.map +1 -1
  502. package/dist/runtime/interfaces/assistant-runtime-core.js +0 -2
  503. package/dist/runtime/interfaces/composer-runtime-core.d.ts +70 -67
  504. package/dist/runtime/interfaces/composer-runtime-core.d.ts.map +1 -1
  505. package/dist/runtime/interfaces/composer-runtime-core.js +0 -2
  506. package/dist/runtime/interfaces/thread-list-runtime-core.d.ts +45 -39
  507. package/dist/runtime/interfaces/thread-list-runtime-core.d.ts.map +1 -1
  508. package/dist/runtime/interfaces/thread-list-runtime-core.js +0 -2
  509. package/dist/runtime/interfaces/thread-runtime-core.d.ts +155 -145
  510. package/dist/runtime/interfaces/thread-runtime-core.d.ts.map +1 -1
  511. package/dist/runtime/interfaces/thread-runtime-core.js +0 -2
  512. package/dist/runtime/internal.d.ts +19 -23
  513. package/dist/runtime/internal.js +18 -22
  514. package/dist/runtime/utils/auto-status.d.ts +8 -4
  515. package/dist/runtime/utils/auto-status.d.ts.map +1 -1
  516. package/dist/runtime/utils/auto-status.js +18 -22
  517. package/dist/runtime/utils/auto-status.js.map +1 -1
  518. package/dist/runtime/utils/chat-model-adapter.d.ts +34 -31
  519. package/dist/runtime/utils/chat-model-adapter.d.ts.map +1 -1
  520. package/dist/runtime/utils/chat-model-adapter.js +0 -2
  521. package/dist/runtime/utils/external-store-message.d.ts +9 -5
  522. package/dist/runtime/utils/external-store-message.d.ts.map +1 -1
  523. package/dist/runtime/utils/external-store-message.js +21 -21
  524. package/dist/runtime/utils/external-store-message.js.map +1 -1
  525. package/dist/runtime/utils/message-repository.d.ts +48 -42
  526. package/dist/runtime/utils/message-repository.d.ts.map +1 -1
  527. package/dist/runtime/utils/message-repository.js +213 -267
  528. package/dist/runtime/utils/message-repository.js.map +1 -1
  529. package/dist/runtime/utils/thread-message-like.d.ts +51 -39
  530. package/dist/runtime/utils/thread-message-like.d.ts.map +1 -1
  531. package/dist/runtime/utils/thread-message-like.js +125 -139
  532. package/dist/runtime/utils/thread-message-like.js.map +1 -1
  533. package/dist/runtimes/assistant-transport/utils.d.ts +4 -1
  534. package/dist/runtimes/assistant-transport/utils.d.ts.map +1 -1
  535. package/dist/runtimes/assistant-transport/utils.js +9 -5
  536. package/dist/runtimes/assistant-transport/utils.js.map +1 -1
  537. package/dist/runtimes/external-store/external-store-adapter.d.ts +101 -97
  538. package/dist/runtimes/external-store/external-store-adapter.d.ts.map +1 -1
  539. package/dist/runtimes/external-store/external-store-adapter.js +0 -2
  540. package/dist/runtimes/external-store/external-store-runtime-core.d.ts +9 -5
  541. package/dist/runtimes/external-store/external-store-runtime-core.d.ts.map +1 -1
  542. package/dist/runtimes/external-store/external-store-runtime-core.js +16 -13
  543. package/dist/runtimes/external-store/external-store-runtime-core.js.map +1 -1
  544. package/dist/runtimes/external-store/external-store-thread-list-runtime-core.d.ts +46 -40
  545. package/dist/runtimes/external-store/external-store-thread-list-runtime-core.d.ts.map +1 -1
  546. package/dist/runtimes/external-store/external-store-thread-list-runtime-core.js +141 -171
  547. package/dist/runtimes/external-store/external-store-thread-list-runtime-core.js.map +1 -1
  548. package/dist/runtimes/external-store/external-store-thread-runtime-core.d.ts +54 -47
  549. package/dist/runtimes/external-store/external-store-thread-runtime-core.d.ts.map +1 -1
  550. package/dist/runtimes/external-store/external-store-thread-runtime-core.js +216 -288
  551. package/dist/runtimes/external-store/external-store-thread-runtime-core.js.map +1 -1
  552. package/dist/runtimes/external-store/thread-message-converter.d.ts +9 -5
  553. package/dist/runtimes/external-store/thread-message-converter.d.ts.map +1 -1
  554. package/dist/runtimes/external-store/thread-message-converter.js +14 -11
  555. package/dist/runtimes/external-store/thread-message-converter.js.map +1 -1
  556. package/dist/runtimes/internal.d.ts +15 -19
  557. package/dist/runtimes/internal.js +13 -17
  558. package/dist/runtimes/local/local-runtime-core.d.ts +11 -7
  559. package/dist/runtimes/local/local-runtime-core.d.ts.map +1 -1
  560. package/dist/runtimes/local/local-runtime-core.js +18 -18
  561. package/dist/runtimes/local/local-runtime-core.js.map +1 -1
  562. package/dist/runtimes/local/local-runtime-options.d.ts +27 -23
  563. package/dist/runtimes/local/local-runtime-options.d.ts.map +1 -1
  564. package/dist/runtimes/local/local-runtime-options.js +0 -2
  565. package/dist/runtimes/local/local-thread-list-runtime-core.d.ts +46 -42
  566. package/dist/runtimes/local/local-thread-list-runtime-core.d.ts.map +1 -1
  567. package/dist/runtimes/local/local-thread-list-runtime-core.js +84 -83
  568. package/dist/runtimes/local/local-thread-list-runtime-core.js.map +1 -1
  569. package/dist/runtimes/local/local-thread-runtime-core.d.ts +81 -59
  570. package/dist/runtimes/local/local-thread-runtime-core.d.ts.map +1 -1
  571. package/dist/runtimes/local/local-thread-runtime-core.js +345 -424
  572. package/dist/runtimes/local/local-thread-runtime-core.js.map +1 -1
  573. package/dist/runtimes/local/should-continue.d.ts +6 -2
  574. package/dist/runtimes/local/should-continue.d.ts.map +1 -1
  575. package/dist/runtimes/local/should-continue.js +7 -12
  576. package/dist/runtimes/local/should-continue.js.map +1 -1
  577. package/dist/runtimes/readonly/ReadonlyThreadRuntimeCore.d.ts +97 -92
  578. package/dist/runtimes/readonly/ReadonlyThreadRuntimeCore.d.ts.map +1 -1
  579. package/dist/runtimes/readonly/ReadonlyThreadRuntimeCore.js +167 -176
  580. package/dist/runtimes/readonly/ReadonlyThreadRuntimeCore.js.map +1 -1
  581. package/dist/runtimes/remote-thread-list/adapter/in-memory.d.ts +15 -11
  582. package/dist/runtimes/remote-thread-list/adapter/in-memory.d.ts.map +1 -1
  583. package/dist/runtimes/remote-thread-list/adapter/in-memory.js +33 -28
  584. package/dist/runtimes/remote-thread-list/adapter/in-memory.js.map +1 -1
  585. package/dist/runtimes/remote-thread-list/empty-thread-core.d.ts +6 -2
  586. package/dist/runtimes/remote-thread-list/empty-thread-core.d.ts.map +1 -1
  587. package/dist/runtimes/remote-thread-list/empty-thread-core.js +155 -160
  588. package/dist/runtimes/remote-thread-list/empty-thread-core.js.map +1 -1
  589. package/dist/runtimes/remote-thread-list/optimistic-state.d.ts +27 -27
  590. package/dist/runtimes/remote-thread-list/optimistic-state.d.ts.map +1 -1
  591. package/dist/runtimes/remote-thread-list/optimistic-state.js +63 -73
  592. package/dist/runtimes/remote-thread-list/optimistic-state.js.map +1 -1
  593. package/dist/runtimes/remote-thread-list/remote-thread-state.d.ts +46 -43
  594. package/dist/runtimes/remote-thread-list/remote-thread-state.d.ts.map +1 -1
  595. package/dist/runtimes/remote-thread-list/remote-thread-state.js +81 -91
  596. package/dist/runtimes/remote-thread-list/remote-thread-state.js.map +1 -1
  597. package/dist/runtimes/remote-thread-list/types.d.ts +65 -61
  598. package/dist/runtimes/remote-thread-list/types.d.ts.map +1 -1
  599. package/dist/runtimes/remote-thread-list/types.js +0 -2
  600. package/dist/store/clients/chain-of-thought-client.d.ts +16 -12
  601. package/dist/store/clients/chain-of-thought-client.d.ts.map +1 -1
  602. package/dist/store/clients/chain-of-thought-client.js +24 -15
  603. package/dist/store/clients/chain-of-thought-client.js.map +1 -1
  604. package/dist/store/clients/model-context-client.d.ts +6 -2
  605. package/dist/store/clients/model-context-client.d.ts.map +1 -1
  606. package/dist/store/clients/model-context-client.js +32 -26
  607. package/dist/store/clients/model-context-client.js.map +1 -1
  608. package/dist/store/clients/no-op-composer-client.d.ts +8 -4
  609. package/dist/store/clients/no-op-composer-client.d.ts.map +1 -1
  610. package/dist/store/clients/no-op-composer-client.js +67 -63
  611. package/dist/store/clients/no-op-composer-client.js.map +1 -1
  612. package/dist/store/clients/runtime-adapter.d.ts +8 -4
  613. package/dist/store/clients/runtime-adapter.d.ts.map +1 -1
  614. package/dist/store/clients/runtime-adapter.js +33 -33
  615. package/dist/store/clients/runtime-adapter.js.map +1 -1
  616. package/dist/store/clients/suggestions.d.ts +12 -8
  617. package/dist/store/clients/suggestions.d.ts.map +1 -1
  618. package/dist/store/clients/suggestions.js +28 -32
  619. package/dist/store/clients/suggestions.js.map +1 -1
  620. package/dist/store/clients/thread-message-client.d.ts +13 -9
  621. package/dist/store/clients/thread-message-client.d.ts.map +1 -1
  622. package/dist/store/clients/thread-message-client.js +98 -105
  623. package/dist/store/clients/thread-message-client.js.map +1 -1
  624. package/dist/store/index.d.ts +18 -18
  625. package/dist/store/index.js +6 -8
  626. package/dist/store/internal.d.ts +9 -9
  627. package/dist/store/internal.js +9 -9
  628. package/dist/store/runtime-clients/attachment-runtime-client.d.ts +9 -5
  629. package/dist/store/runtime-clients/attachment-runtime-client.d.ts.map +1 -1
  630. package/dist/store/runtime-clients/attachment-runtime-client.js +12 -8
  631. package/dist/store/runtime-clients/attachment-runtime-client.js.map +1 -1
  632. package/dist/store/runtime-clients/composer-runtime-client.d.ts +14 -10
  633. package/dist/store/runtime-clients/composer-runtime-client.d.ts.map +1 -1
  634. package/dist/store/runtime-clients/composer-runtime-client.js +86 -89
  635. package/dist/store/runtime-clients/composer-runtime-client.js.map +1 -1
  636. package/dist/store/runtime-clients/message-part-runtime-client.d.ts +9 -5
  637. package/dist/store/runtime-clients/message-part-runtime-client.d.ts.map +1 -1
  638. package/dist/store/runtime-clients/message-part-runtime-client.js +14 -9
  639. package/dist/store/runtime-clients/message-part-runtime-client.js.map +1 -1
  640. package/dist/store/runtime-clients/message-runtime-client.d.ts +12 -8
  641. package/dist/store/runtime-clients/message-runtime-client.d.ts.map +1 -1
  642. package/dist/store/runtime-clients/message-runtime-client.js +66 -70
  643. package/dist/store/runtime-clients/message-runtime-client.js.map +1 -1
  644. package/dist/store/runtime-clients/tap-subscribable.d.ts +6 -2
  645. package/dist/store/runtime-clients/tap-subscribable.d.ts.map +1 -1
  646. package/dist/store/runtime-clients/tap-subscribable.js +14 -10
  647. package/dist/store/runtime-clients/tap-subscribable.js.map +1 -1
  648. package/dist/store/runtime-clients/thread-list-item-runtime-client.d.ts +9 -5
  649. package/dist/store/runtime-clients/thread-list-item-runtime-client.d.ts.map +1 -1
  650. package/dist/store/runtime-clients/thread-list-item-runtime-client.js +33 -38
  651. package/dist/store/runtime-clients/thread-list-item-runtime-client.js.map +1 -1
  652. package/dist/store/runtime-clients/thread-list-runtime-client.d.ts +12 -8
  653. package/dist/store/runtime-clients/thread-list-runtime-client.d.ts.map +1 -1
  654. package/dist/store/runtime-clients/thread-list-runtime-client.js +53 -53
  655. package/dist/store/runtime-clients/thread-list-runtime-client.js.map +1 -1
  656. package/dist/store/runtime-clients/thread-runtime-client.d.ts +9 -5
  657. package/dist/store/runtime-clients/thread-runtime-client.d.ts.map +1 -1
  658. package/dist/store/runtime-clients/thread-runtime-client.js +93 -85
  659. package/dist/store/runtime-clients/thread-runtime-client.js.map +1 -1
  660. package/dist/store/scope-registration.d.ts +29 -27
  661. package/dist/store/scope-registration.d.ts.map +1 -1
  662. package/dist/store/scope-registration.js +0 -2
  663. package/dist/store/scopes/attachment.d.ts +23 -19
  664. package/dist/store/scopes/attachment.d.ts.map +1 -1
  665. package/dist/store/scopes/attachment.js +0 -2
  666. package/dist/store/scopes/chain-of-thought.d.ts +36 -33
  667. package/dist/store/scopes/chain-of-thought.d.ts.map +1 -1
  668. package/dist/store/scopes/chain-of-thought.js +0 -2
  669. package/dist/store/scopes/composer.d.ts +118 -115
  670. package/dist/store/scopes/composer.d.ts.map +1 -1
  671. package/dist/store/scopes/composer.js +0 -2
  672. package/dist/store/scopes/message.d.ts +81 -81
  673. package/dist/store/scopes/message.d.ts.map +1 -1
  674. package/dist/store/scopes/message.js +0 -2
  675. package/dist/store/scopes/model-context.d.ts +14 -10
  676. package/dist/store/scopes/model-context.d.ts.map +1 -1
  677. package/dist/store/scopes/model-context.js +0 -2
  678. package/dist/store/scopes/part.d.ts +49 -39
  679. package/dist/store/scopes/part.d.ts.map +1 -1
  680. package/dist/store/scopes/part.js +0 -2
  681. package/dist/store/scopes/queue-item.d.ts +18 -15
  682. package/dist/store/scopes/queue-item.d.ts.map +1 -1
  683. package/dist/store/scopes/queue-item.js +0 -2
  684. package/dist/store/scopes/suggestion.d.ts +17 -14
  685. package/dist/store/scopes/suggestion.d.ts.map +1 -1
  686. package/dist/store/scopes/suggestion.js +0 -2
  687. package/dist/store/scopes/suggestions.d.ts +18 -14
  688. package/dist/store/scopes/suggestions.d.ts.map +1 -1
  689. package/dist/store/scopes/suggestions.js +0 -2
  690. package/dist/store/scopes/thread-list-item.d.ts +62 -56
  691. package/dist/store/scopes/thread-list-item.d.ts.map +1 -1
  692. package/dist/store/scopes/thread-list-item.js +0 -2
  693. package/dist/store/scopes/thread.d.ts +151 -149
  694. package/dist/store/scopes/thread.d.ts.map +1 -1
  695. package/dist/store/scopes/thread.js +0 -2
  696. package/dist/store/scopes/threads.d.ts +36 -30
  697. package/dist/store/scopes/threads.d.ts.map +1 -1
  698. package/dist/store/scopes/threads.js +0 -2
  699. package/dist/subscribable/subscribable.d.ts +62 -58
  700. package/dist/subscribable/subscribable.d.ts.map +1 -1
  701. package/dist/subscribable/subscribable.js +196 -220
  702. package/dist/subscribable/subscribable.js.map +1 -1
  703. package/dist/tests/remote-thread-list-test-helpers.d.ts +13 -9
  704. package/dist/tests/remote-thread-list-test-helpers.d.ts.map +1 -1
  705. package/dist/tests/remote-thread-list-test-helpers.js +49 -42
  706. package/dist/tests/remote-thread-list-test-helpers.js.map +1 -1
  707. package/dist/types/attachment.d.ts +35 -32
  708. package/dist/types/attachment.d.ts.map +1 -1
  709. package/dist/types/attachment.js +0 -2
  710. package/dist/types/directive.d.ts +15 -13
  711. package/dist/types/directive.d.ts.map +1 -1
  712. package/dist/types/directive.js +0 -2
  713. package/dist/types/index.d.ts +7 -7
  714. package/dist/types/index.js +0 -2
  715. package/dist/types/message.d.ts +238 -208
  716. package/dist/types/message.d.ts.map +1 -1
  717. package/dist/types/message.js +6 -2
  718. package/dist/types/message.js.map +1 -1
  719. package/dist/types/quote.d.ts +6 -3
  720. package/dist/types/quote.d.ts.map +1 -1
  721. package/dist/types/quote.js +0 -2
  722. package/dist/types/trigger.d.ts +14 -10
  723. package/dist/types/trigger.d.ts.map +1 -1
  724. package/dist/types/trigger.js +0 -2
  725. package/dist/types/unsubscribe.d.ts +4 -1
  726. package/dist/types/unsubscribe.d.ts.map +1 -1
  727. package/dist/types/unsubscribe.js +0 -2
  728. package/dist/utils/composite-context-provider.d.ts +11 -8
  729. package/dist/utils/composite-context-provider.d.ts.map +1 -1
  730. package/dist/utils/composite-context-provider.js +31 -28
  731. package/dist/utils/composite-context-provider.js.map +1 -1
  732. package/dist/utils/id.d.ts +8 -5
  733. package/dist/utils/id.d.ts.map +1 -1
  734. package/dist/utils/id.js +9 -5
  735. package/dist/utils/id.js.map +1 -1
  736. package/dist/utils/json/is-json-equal.d.ts +4 -1
  737. package/dist/utils/json/is-json-equal.d.ts.map +1 -1
  738. package/dist/utils/json/is-json-equal.js +20 -25
  739. package/dist/utils/json/is-json-equal.js.map +1 -1
  740. package/dist/utils/json/is-json.d.ts +9 -5
  741. package/dist/utils/json/is-json.d.ts.map +1 -1
  742. package/dist/utils/json/is-json.js +17 -28
  743. package/dist/utils/json/is-json.js.map +1 -1
  744. package/dist/utils/text.d.ts +6 -2
  745. package/dist/utils/text.d.ts.map +1 -1
  746. package/dist/utils/text.js +6 -3
  747. package/dist/utils/text.js.map +1 -1
  748. package/package.json +12 -12
  749. package/src/index.ts +4 -0
  750. package/src/react/index.ts +18 -0
  751. package/src/react/primitives/generativeUI/GenerativeUI.tsx +182 -0
  752. package/src/react/primitives/message/MessageGroupedParts.tsx +38 -31
  753. package/src/react/primitives/message/MessageParts.tsx +64 -2
  754. package/src/react/providers/TextMessagePartProvider.tsx +3 -0
  755. package/src/react/runtimes/RemoteThreadListHookInstanceManager.tsx +11 -7
  756. package/src/react/runtimes/RemoteThreadListThreadListRuntimeCore.tsx +7 -2
  757. package/src/react/runtimes/cloud/auiV0.ts +1 -1
  758. package/src/react/runtimes/external-message-converter.ts +25 -12
  759. package/src/react/types/MessagePartComponentTypes.ts +34 -0
  760. package/src/react/utils/groupParts.ts +67 -22
  761. package/src/runtime/api/message-part-runtime.ts +26 -0
  762. package/src/runtime/api/thread-list-item-runtime.ts +3 -3
  763. package/src/runtime/api/thread-list-runtime.ts +9 -3
  764. package/src/runtime/base/base-thread-runtime-core.ts +12 -0
  765. package/src/runtime/interfaces/thread-list-runtime-core.ts +4 -1
  766. package/src/runtime/interfaces/thread-runtime-core.ts +13 -5
  767. package/src/runtime/utils/thread-message-like.ts +18 -3
  768. package/src/runtimes/external-store/external-store-adapter.ts +4 -0
  769. package/src/runtimes/external-store/external-store-thread-list-runtime-core.ts +4 -1
  770. package/src/runtimes/external-store/external-store-thread-runtime-core.ts +7 -0
  771. package/src/runtimes/local/local-thread-runtime-core.ts +5 -0
  772. package/src/runtimes/readonly/ReadonlyThreadRuntimeCore.ts +4 -0
  773. package/src/runtimes/remote-thread-list/empty-thread-core.ts +4 -0
  774. package/src/store/clients/thread-message-client.ts +3 -0
  775. package/src/store/runtime-clients/message-part-runtime-client.ts +2 -0
  776. package/src/store/runtime-clients/thread-list-runtime-client.ts +2 -2
  777. package/src/store/scopes/part.ts +4 -0
  778. package/src/store/scopes/thread-list-item.ts +1 -1
  779. package/src/store/scopes/threads.ts +1 -1
  780. package/src/tests/RemoteThreadListThreadListRuntimeCore-switchToThread-unarchive.test.ts +88 -0
  781. package/src/tests/external-store-thread-runtime-core.test.ts +83 -0
  782. package/src/tests/groupParts.test.ts +118 -32
  783. package/src/types/index.ts +3 -0
  784. package/src/types/message.ts +56 -1
  785. package/dist/adapters/feedback.js.map +0 -1
  786. package/dist/adapters/index.d.ts.map +0 -1
  787. package/dist/adapters/index.js.map +0 -1
  788. package/dist/adapters/suggestion.js.map +0 -1
  789. package/dist/adapters/thread-history.js.map +0 -1
  790. package/dist/adapters/trigger.js.map +0 -1
  791. package/dist/index.d.ts.map +0 -1
  792. package/dist/index.js.map +0 -1
  793. package/dist/internal.d.ts.map +0 -1
  794. package/dist/internal.js.map +0 -1
  795. package/dist/model-context/registry-handles.js.map +0 -1
  796. package/dist/react/index.d.ts.map +0 -1
  797. package/dist/react/index.js.map +0 -1
  798. package/dist/react/model-context/toolbox.js.map +0 -1
  799. package/dist/react/types/MessagePartComponentTypes.js.map +0 -1
  800. package/dist/react/types/scopes/dataRenderers.js.map +0 -1
  801. package/dist/react/types/scopes/interactables.js.map +0 -1
  802. package/dist/react/types/scopes/tools.js.map +0 -1
  803. package/dist/react/types/store-augmentation.js.map +0 -1
  804. package/dist/runtime/api/bindings.js.map +0 -1
  805. package/dist/runtime/api/paths.js.map +0 -1
  806. package/dist/runtime/interfaces/assistant-runtime-core.js.map +0 -1
  807. package/dist/runtime/interfaces/composer-runtime-core.js.map +0 -1
  808. package/dist/runtime/interfaces/thread-list-runtime-core.js.map +0 -1
  809. package/dist/runtime/interfaces/thread-runtime-core.js.map +0 -1
  810. package/dist/runtime/internal.d.ts.map +0 -1
  811. package/dist/runtime/internal.js.map +0 -1
  812. package/dist/runtime/utils/chat-model-adapter.js.map +0 -1
  813. package/dist/runtimes/external-store/external-store-adapter.js.map +0 -1
  814. package/dist/runtimes/internal.d.ts.map +0 -1
  815. package/dist/runtimes/internal.js.map +0 -1
  816. package/dist/runtimes/local/local-runtime-options.js.map +0 -1
  817. package/dist/runtimes/remote-thread-list/types.js.map +0 -1
  818. package/dist/store/index.d.ts.map +0 -1
  819. package/dist/store/index.js.map +0 -1
  820. package/dist/store/internal.d.ts.map +0 -1
  821. package/dist/store/internal.js.map +0 -1
  822. package/dist/store/scope-registration.js.map +0 -1
  823. package/dist/store/scopes/attachment.js.map +0 -1
  824. package/dist/store/scopes/chain-of-thought.js.map +0 -1
  825. package/dist/store/scopes/composer.js.map +0 -1
  826. package/dist/store/scopes/message.js.map +0 -1
  827. package/dist/store/scopes/model-context.js.map +0 -1
  828. package/dist/store/scopes/part.js.map +0 -1
  829. package/dist/store/scopes/queue-item.js.map +0 -1
  830. package/dist/store/scopes/suggestion.js.map +0 -1
  831. package/dist/store/scopes/suggestions.js.map +0 -1
  832. package/dist/store/scopes/thread-list-item.js.map +0 -1
  833. package/dist/store/scopes/thread.js.map +0 -1
  834. package/dist/store/scopes/threads.js.map +0 -1
  835. package/dist/types/attachment.js.map +0 -1
  836. package/dist/types/directive.js.map +0 -1
  837. package/dist/types/index.d.ts.map +0 -1
  838. package/dist/types/index.js.map +0 -1
  839. package/dist/types/quote.js.map +0 -1
  840. package/dist/types/trigger.js.map +0 -1
  841. package/dist/types/unsubscribe.js.map +0 -1
@@ -1,523 +1,468 @@
1
- import { jsx as _jsx } from "react/jsx-runtime";
2
1
  import { generateId } from "../../utils/id.js";
3
2
  import { BaseSubscribable } from "../../subscribable/subscribable.js";
4
3
  import { OptimisticState } from "../../runtimes/remote-thread-list/optimistic-state.js";
5
4
  import { EMPTY_THREAD_CORE } from "../../runtimes/remote-thread-list/empty-thread-core.js";
6
- import { classifyThreads, createThreadMappingId, getThreadData, normalizeCursor, updateStatusReducer, } from "../../runtimes/remote-thread-list/remote-thread-state.js";
5
+ import { classifyThreads, createThreadMappingId, getThreadData, normalizeCursor, updateStatusReducer } from "../../runtimes/remote-thread-list/remote-thread-state.js";
6
+ import { RuntimeAdapterProvider } from "./RuntimeAdapterProvider.js";
7
7
  import { RemoteThreadListHookInstanceManager } from "./RemoteThreadListHookInstanceManager.js";
8
+ import { AssistantMessageStream } from "assistant-stream";
8
9
  import { Fragment, useEffect, useId } from "react";
10
+ import { jsx } from "react/jsx-runtime";
9
11
  import { create } from "zustand";
10
- import { AssistantMessageStream } from "assistant-stream";
11
- import { RuntimeAdapterProvider } from "./RuntimeAdapterProvider.js";
12
- export class RemoteThreadListThreadListRuntimeCore extends BaseSubscribable {
13
- _options;
14
- _hookManager;
15
- _loadThreadsPromise;
16
- _loadMorePromise;
17
- _loadGeneration = 0;
18
- _mainThreadId;
19
- _state = new OptimisticState({
20
- isLoading: true,
21
- isLoadingMore: false,
22
- cursor: undefined,
23
- newThreadId: undefined,
24
- threadIds: [],
25
- archivedThreadIds: [],
26
- threadIdMap: {},
27
- threadData: {},
28
- });
29
- get threadItems() {
30
- return this._state.value.threadData;
31
- }
32
- getLoadThreadsPromise() {
33
- // TODO this needs to be cached in case this promise is loaded during suspense
34
- if (!this._loadThreadsPromise) {
35
- const generation = this._loadGeneration;
36
- this._loadThreadsPromise = this._state
37
- .optimisticUpdate({
38
- execute: () => this._options.adapter.list(),
39
- loading: (state) => {
40
- return {
41
- ...state,
42
- isLoading: true,
43
- };
44
- },
45
- // biome-ignore lint/suspicious/noThenProperty: OptimisticState reducer pattern
46
- then: (state, l) => {
47
- if (generation !== this._loadGeneration)
48
- return state;
49
- const fresh = classifyThreads(l.threads, {
50
- threadIds: [],
51
- archivedThreadIds: [],
52
- threadIdMap: {},
53
- threadData: {},
54
- });
55
- return {
56
- ...state,
57
- isLoading: false,
58
- cursor: normalizeCursor(l.nextCursor),
59
- threadIds: fresh.threadIds,
60
- archivedThreadIds: fresh.archivedThreadIds,
61
- threadIdMap: {
62
- ...state.threadIdMap,
63
- ...fresh.threadIdMap,
64
- },
65
- threadData: {
66
- ...state.threadData,
67
- ...fresh.threadData,
68
- },
69
- };
70
- },
71
- })
72
- .catch((error) => {
73
- if (generation !== this._loadGeneration)
74
- return;
75
- console.error("[assistant-ui] thread list load failed:", error);
76
- this._loadThreadsPromise = undefined;
77
- this._state.update({
78
- ...this._state.baseValue,
79
- isLoading: false,
80
- });
81
- })
82
- .then(() => { });
83
- }
84
- return this._loadThreadsPromise;
85
- }
86
- loadMore() {
87
- if (this._loadMorePromise)
88
- return this._loadMorePromise;
89
- const initialState = this._state.value;
90
- if (initialState.cursor === undefined || initialState.isLoading) {
91
- return Promise.resolve();
92
- }
93
- const generation = this._loadGeneration;
94
- const adapter = this._options.adapter;
95
- const cursor = initialState.cursor;
96
- const dedup = this._state
97
- .optimisticUpdate({
98
- execute: () => adapter.list({ after: cursor }),
99
- loading: (state) => ({ ...state, isLoadingMore: true }),
100
- // biome-ignore lint/suspicious/noThenProperty: OptimisticState reducer pattern
101
- then: (state, l) => {
102
- if (generation !== this._loadGeneration)
103
- return state;
104
- if (adapter !== this._options.adapter)
105
- return state;
106
- const appended = classifyThreads(l.threads, {
107
- threadIds: [...state.threadIds],
108
- archivedThreadIds: [...state.archivedThreadIds],
109
- threadIdMap: { ...state.threadIdMap },
110
- threadData: { ...state.threadData },
111
- });
112
- return {
113
- ...state,
114
- isLoadingMore: false,
115
- cursor: normalizeCursor(l.nextCursor),
116
- threadIds: appended.threadIds,
117
- archivedThreadIds: appended.archivedThreadIds,
118
- threadIdMap: appended.threadIdMap,
119
- threadData: appended.threadData,
120
- };
121
- },
122
- })
123
- .catch((error) => {
124
- console.error("[assistant-ui] thread list loadMore failed:", error);
125
- })
126
- .then(() => {
127
- if (this._loadMorePromise === dedup) {
128
- this._loadMorePromise = undefined;
129
- }
130
- });
131
- this._loadMorePromise = dedup;
132
- return dedup;
133
- }
134
- contextProvider;
135
- constructor(options, contextProvider) {
136
- super();
137
- this.contextProvider = contextProvider;
138
- this._state.subscribe(() => this._notifySubscribers());
139
- this._hookManager = new RemoteThreadListHookInstanceManager(options.runtimeHook, this);
140
- this.useProvider = create(() => ({
141
- Provider: options.adapter.unstable_Provider ?? Fragment,
142
- }));
143
- this.__internal_setOptions(options);
144
- this.switchToNewThread();
145
- }
146
- _initialThreadLoaded = false;
147
- useProvider;
148
- __internal_setOptions(options) {
149
- if (this._options === options)
150
- return;
151
- const adapterChanged = this._options !== undefined && this._options.adapter !== options.adapter;
152
- this._options = options;
153
- const Provider = options.adapter.unstable_Provider ?? Fragment;
154
- if (Provider !== this.useProvider.getState().Provider) {
155
- this.useProvider.setState({ Provider }, true);
156
- }
157
- this._hookManager.setRuntimeHook(options.runtimeHook);
158
- if (adapterChanged) {
159
- this._loadGeneration++;
160
- this._loadThreadsPromise = undefined;
161
- this._loadMorePromise = undefined;
162
- this._state.update({
163
- ...this._state.baseValue,
164
- cursor: undefined,
165
- });
166
- }
167
- }
168
- __internal_load() {
169
- this.getLoadThreadsPromise(); // begin loading on initial bind
170
- const startThreadId = this._options.threadId ?? this._options.initialThreadId;
171
- if (!this._initialThreadLoaded && startThreadId) {
172
- this._initialThreadLoaded = true;
173
- this.switchToThread(startThreadId).catch(() => { });
174
- }
175
- }
176
- reload() {
177
- this._loadGeneration++;
178
- this._loadThreadsPromise = undefined;
179
- this._loadMorePromise = undefined;
180
- this._state.update({
181
- ...this._state.baseValue,
182
- cursor: undefined,
183
- });
184
- return this.getLoadThreadsPromise();
185
- }
186
- get isLoading() {
187
- return this._state.value.isLoading;
188
- }
189
- get isLoadingMore() {
190
- return this._state.value.isLoadingMore;
191
- }
192
- get hasMore() {
193
- return this._state.value.cursor !== undefined;
194
- }
195
- get threadIds() {
196
- return this._state.value.threadIds;
197
- }
198
- get archivedThreadIds() {
199
- return this._state.value.archivedThreadIds;
200
- }
201
- get newThreadId() {
202
- return this._state.value.newThreadId;
203
- }
204
- get mainThreadId() {
205
- return this._mainThreadId;
206
- }
207
- getMainThreadRuntimeCore() {
208
- const result = this._hookManager.getThreadRuntimeCore(this._mainThreadId);
209
- if (!result)
210
- return EMPTY_THREAD_CORE;
211
- return result;
212
- }
213
- getThreadRuntimeCore(threadIdOrRemoteId) {
214
- const data = this.getItemById(threadIdOrRemoteId);
215
- if (!data)
216
- throw new Error("Thread not found");
217
- const result = this._hookManager.getThreadRuntimeCore(data.id);
218
- if (!result)
219
- throw new Error("Thread not found");
220
- return result;
221
- }
222
- getItemById(threadIdOrRemoteId) {
223
- return getThreadData(this._state.value, threadIdOrRemoteId);
224
- }
225
- async switchToThread(threadIdOrRemoteId) {
226
- let data = this.getItemById(threadIdOrRemoteId);
227
- if (!data) {
228
- const remoteMetadata = await this._options.adapter.fetch(threadIdOrRemoteId);
229
- const state = this._state.value;
230
- const mappingId = createThreadMappingId(remoteMetadata.remoteId);
231
- const newThreadData = {
232
- ...state.threadData,
233
- [mappingId]: {
234
- id: mappingId,
235
- initializeTask: Promise.resolve({
236
- remoteId: remoteMetadata.remoteId,
237
- externalId: remoteMetadata.externalId,
238
- }),
239
- remoteId: remoteMetadata.remoteId,
240
- externalId: remoteMetadata.externalId,
241
- status: remoteMetadata.status,
242
- title: remoteMetadata.title,
243
- custom: remoteMetadata.custom,
244
- },
245
- };
246
- const newThreadIdMap = {
247
- ...state.threadIdMap,
248
- [remoteMetadata.remoteId]: mappingId,
249
- };
250
- // Filter both arrays first so a concurrent `list()` can't leave the id
251
- // duplicated or under the wrong status.
252
- const threadIdsWithoutRemote = state.threadIds.filter((id) => id !== remoteMetadata.remoteId);
253
- const archivedThreadIdsWithoutRemote = state.archivedThreadIds.filter((id) => id !== remoteMetadata.remoteId);
254
- const newThreadIds = remoteMetadata.status === "regular"
255
- ? [...threadIdsWithoutRemote, remoteMetadata.remoteId]
256
- : threadIdsWithoutRemote;
257
- const newArchivedThreadIds = remoteMetadata.status === "archived"
258
- ? [...archivedThreadIdsWithoutRemote, remoteMetadata.remoteId]
259
- : archivedThreadIdsWithoutRemote;
260
- this._state.update({
261
- ...state,
262
- threadIds: newThreadIds,
263
- archivedThreadIds: newArchivedThreadIds,
264
- threadIdMap: newThreadIdMap,
265
- threadData: newThreadData,
266
- });
267
- data = this.getItemById(threadIdOrRemoteId);
268
- }
269
- if (!data)
270
- throw new Error("Thread not found");
271
- if (this._mainThreadId === data.id)
272
- return;
273
- const task = this._hookManager.startThreadRuntime(data.id);
274
- if (this.mainThreadId !== undefined) {
275
- await task;
276
- }
277
- else {
278
- task.then(() => this._notifySubscribers());
279
- }
280
- if (data.status === "archived")
281
- await this.unarchive(data.id);
282
- this._mainThreadId = data.id;
283
- this._notifySubscribers();
284
- }
285
- async switchToNewThread() {
286
- // an initialization transaction is in progress, wait for it to settle
287
- while (this._state.baseValue.newThreadId !== undefined &&
288
- this._state.value.newThreadId === undefined) {
289
- await this._state.waitForUpdate();
290
- }
291
- const state = this._state.value;
292
- let id = this._state.value.newThreadId;
293
- if (id === undefined) {
294
- do {
295
- id = `__LOCALID_${generateId()}`;
296
- } while (state.threadIdMap[id]);
297
- const mappingId = createThreadMappingId(id);
298
- this._state.update({
299
- ...state,
300
- newThreadId: id,
301
- threadIdMap: {
302
- ...state.threadIdMap,
303
- [id]: mappingId,
304
- },
305
- threadData: {
306
- ...state.threadData,
307
- [mappingId]: {
308
- status: "new",
309
- id,
310
- remoteId: undefined,
311
- externalId: undefined,
312
- title: undefined,
313
- custom: undefined,
314
- },
315
- },
316
- });
317
- }
318
- return this.switchToThread(id);
319
- }
320
- initialize = async (threadId) => {
321
- if (this._state.value.newThreadId !== threadId) {
322
- const data = this.getItemById(threadId);
323
- if (!data)
324
- throw new Error("Thread not found");
325
- if (data.status === "new")
326
- throw new Error("Unexpected new state");
327
- return data.initializeTask;
328
- }
329
- return this._state.optimisticUpdate({
330
- execute: () => {
331
- return this._options.adapter.initialize(threadId);
332
- },
333
- optimistic: (state) => {
334
- return updateStatusReducer(state, threadId, "regular");
335
- },
336
- loading: (state, task) => {
337
- const mappingId = createThreadMappingId(threadId);
338
- return {
339
- ...state,
340
- threadData: {
341
- ...state.threadData,
342
- [mappingId]: {
343
- ...state.threadData[mappingId],
344
- initializeTask: task,
345
- },
346
- },
347
- };
348
- },
349
- // biome-ignore lint/suspicious/noThenProperty: OptimisticState reducer pattern
350
- then: (state, { remoteId, externalId }) => {
351
- const data = getThreadData(state, threadId);
352
- if (!data)
353
- return state;
354
- const mappingId = createThreadMappingId(threadId);
355
- return {
356
- ...state,
357
- threadIdMap: {
358
- ...state.threadIdMap,
359
- [remoteId]: mappingId,
360
- },
361
- threadData: {
362
- ...state.threadData,
363
- [mappingId]: {
364
- ...data,
365
- initializeTask: Promise.resolve({ remoteId, externalId }),
366
- remoteId,
367
- externalId,
368
- },
369
- },
370
- };
371
- },
372
- });
373
- };
374
- generateTitle = async (threadId) => {
375
- const data = this.getItemById(threadId);
376
- if (!data)
377
- throw new Error("Thread not found");
378
- if (data.status === "new")
379
- throw new Error("Thread is not yet initialized");
380
- const { remoteId } = await data.initializeTask;
381
- const runtimeCore = this._hookManager.getThreadRuntimeCore(data.id);
382
- if (!runtimeCore)
383
- return; // thread is no longer running
384
- const messages = runtimeCore.messages;
385
- const stream = await this._options.adapter.generateTitle(remoteId, messages);
386
- const messageStream = AssistantMessageStream.fromAssistantStream(stream);
387
- for await (const result of messageStream) {
388
- const newTitle = result.parts.filter((c) => c.type === "text")[0]?.text;
389
- const state = this._state.baseValue;
390
- const currentData = getThreadData(state, data.id);
391
- if (!currentData)
392
- continue;
393
- this._state.update({
394
- ...state,
395
- threadData: {
396
- ...state.threadData,
397
- [currentData.id]: {
398
- ...currentData,
399
- title: newTitle,
400
- },
401
- },
402
- });
403
- }
404
- };
405
- rename(threadIdOrRemoteId, newTitle) {
406
- const data = this.getItemById(threadIdOrRemoteId);
407
- if (!data)
408
- throw new Error("Thread not found");
409
- if (data.status === "new")
410
- throw new Error("Thread is not yet initialized");
411
- return this._state.optimisticUpdate({
412
- execute: async () => {
413
- const { remoteId } = await data.initializeTask;
414
- return this._options.adapter.rename(remoteId, newTitle);
415
- },
416
- optimistic: (state) => {
417
- const data = getThreadData(state, threadIdOrRemoteId);
418
- if (!data)
419
- return state;
420
- return {
421
- ...state,
422
- threadData: {
423
- ...state.threadData,
424
- [data.id]: {
425
- ...data,
426
- title: newTitle,
427
- },
428
- },
429
- };
430
- },
431
- });
432
- }
433
- async _ensureThreadIsNotMain(threadId) {
434
- if (threadId === this.newThreadId)
435
- throw new Error("Cannot ensure new thread is not main");
436
- if (threadId === this._mainThreadId) {
437
- await this.switchToNewThread();
438
- }
439
- }
440
- async archive(threadIdOrRemoteId) {
441
- const data = this.getItemById(threadIdOrRemoteId);
442
- if (!data)
443
- throw new Error("Thread not found");
444
- if (data.status !== "regular")
445
- throw new Error("Thread is not yet initialized or already archived");
446
- await this._ensureThreadIsNotMain(data.id);
447
- return this._state.optimisticUpdate({
448
- execute: async () => {
449
- const { remoteId } = await data.initializeTask;
450
- return this._options.adapter.archive(remoteId);
451
- },
452
- optimistic: (state) => {
453
- return updateStatusReducer(state, data.id, "archived");
454
- },
455
- });
456
- }
457
- unarchive(threadIdOrRemoteId) {
458
- const data = this.getItemById(threadIdOrRemoteId);
459
- if (!data)
460
- throw new Error("Thread not found");
461
- if (data.status !== "archived")
462
- throw new Error("Thread is not archived");
463
- return this._state.optimisticUpdate({
464
- execute: async () => {
465
- try {
466
- const { remoteId } = await data.initializeTask;
467
- return await this._options.adapter.unarchive(remoteId);
468
- }
469
- catch (error) {
470
- await this._ensureThreadIsNotMain(data.id);
471
- throw error;
472
- }
473
- },
474
- optimistic: (state) => {
475
- return updateStatusReducer(state, data.id, "regular");
476
- },
477
- });
478
- }
479
- async delete(threadIdOrRemoteId) {
480
- const data = this.getItemById(threadIdOrRemoteId);
481
- if (!data)
482
- throw new Error("Thread not found");
483
- if (data.status !== "regular" && data.status !== "archived")
484
- throw new Error("Thread is not yet initialized");
485
- await this._ensureThreadIsNotMain(data.id);
486
- this._hookManager.stopThreadRuntime(data.id);
487
- return this._state.optimisticUpdate({
488
- execute: async () => {
489
- const { remoteId } = await data.initializeTask;
490
- return await this._options.adapter.delete(remoteId);
491
- },
492
- optimistic: (state) => {
493
- return updateStatusReducer(state, data.id, "deleted");
494
- },
495
- });
496
- }
497
- async detach(threadIdOrRemoteId) {
498
- const data = this.getItemById(threadIdOrRemoteId);
499
- if (!data)
500
- throw new Error("Thread not found");
501
- if (data.status !== "regular" && data.status !== "archived")
502
- throw new Error("Thread is not yet initialized");
503
- await this._ensureThreadIsNotMain(data.id);
504
- this._hookManager.stopThreadRuntime(data.id);
505
- }
506
- useBoundIds = create(() => []);
507
- __internal_RenderComponent = () => {
508
- const id = useId();
509
- useEffect(() => {
510
- this.useBoundIds.setState((s) => [...s, id], true);
511
- return () => {
512
- this.useBoundIds.setState((s) => s.filter((i) => i !== id), true);
513
- };
514
- }, [id]);
515
- const boundIds = this.useBoundIds();
516
- const { Provider } = this.useProvider();
517
- const adapters = {
518
- modelContext: this.contextProvider,
519
- };
520
- return ((boundIds.length === 0 || boundIds[0] === id) && (_jsx(RuntimeAdapterProvider, { adapters: adapters, children: _jsx(this._hookManager.__internal_RenderThreadRuntimes, { provider: Provider }) })));
521
- };
522
- }
12
+ //#region src/react/runtimes/RemoteThreadListThreadListRuntimeCore.tsx
13
+ var RemoteThreadListThreadListRuntimeCore = class extends BaseSubscribable {
14
+ _options;
15
+ _hookManager;
16
+ _loadThreadsPromise;
17
+ _loadMorePromise;
18
+ _loadGeneration = 0;
19
+ _mainThreadId;
20
+ _state = new OptimisticState({
21
+ isLoading: true,
22
+ isLoadingMore: false,
23
+ cursor: void 0,
24
+ newThreadId: void 0,
25
+ threadIds: [],
26
+ archivedThreadIds: [],
27
+ threadIdMap: {},
28
+ threadData: {}
29
+ });
30
+ get threadItems() {
31
+ return this._state.value.threadData;
32
+ }
33
+ getLoadThreadsPromise() {
34
+ if (!this._loadThreadsPromise) {
35
+ const generation = this._loadGeneration;
36
+ this._loadThreadsPromise = this._state.optimisticUpdate({
37
+ execute: () => this._options.adapter.list(),
38
+ loading: (state) => {
39
+ return {
40
+ ...state,
41
+ isLoading: true
42
+ };
43
+ },
44
+ then: (state, l) => {
45
+ if (generation !== this._loadGeneration) return state;
46
+ const fresh = classifyThreads(l.threads, {
47
+ threadIds: [],
48
+ archivedThreadIds: [],
49
+ threadIdMap: {},
50
+ threadData: {}
51
+ });
52
+ return {
53
+ ...state,
54
+ isLoading: false,
55
+ cursor: normalizeCursor(l.nextCursor),
56
+ threadIds: fresh.threadIds,
57
+ archivedThreadIds: fresh.archivedThreadIds,
58
+ threadIdMap: {
59
+ ...state.threadIdMap,
60
+ ...fresh.threadIdMap
61
+ },
62
+ threadData: {
63
+ ...state.threadData,
64
+ ...fresh.threadData
65
+ }
66
+ };
67
+ }
68
+ }).catch((error) => {
69
+ if (generation !== this._loadGeneration) return;
70
+ console.error("[assistant-ui] thread list load failed:", error);
71
+ this._loadThreadsPromise = void 0;
72
+ this._state.update({
73
+ ...this._state.baseValue,
74
+ isLoading: false
75
+ });
76
+ }).then(() => {});
77
+ }
78
+ return this._loadThreadsPromise;
79
+ }
80
+ loadMore() {
81
+ if (this._loadMorePromise) return this._loadMorePromise;
82
+ const initialState = this._state.value;
83
+ if (initialState.cursor === void 0 || initialState.isLoading) return Promise.resolve();
84
+ const generation = this._loadGeneration;
85
+ const adapter = this._options.adapter;
86
+ const cursor = initialState.cursor;
87
+ const dedup = this._state.optimisticUpdate({
88
+ execute: () => adapter.list({ after: cursor }),
89
+ loading: (state) => ({
90
+ ...state,
91
+ isLoadingMore: true
92
+ }),
93
+ then: (state, l) => {
94
+ if (generation !== this._loadGeneration) return state;
95
+ if (adapter !== this._options.adapter) return state;
96
+ const appended = classifyThreads(l.threads, {
97
+ threadIds: [...state.threadIds],
98
+ archivedThreadIds: [...state.archivedThreadIds],
99
+ threadIdMap: { ...state.threadIdMap },
100
+ threadData: { ...state.threadData }
101
+ });
102
+ return {
103
+ ...state,
104
+ isLoadingMore: false,
105
+ cursor: normalizeCursor(l.nextCursor),
106
+ threadIds: appended.threadIds,
107
+ archivedThreadIds: appended.archivedThreadIds,
108
+ threadIdMap: appended.threadIdMap,
109
+ threadData: appended.threadData
110
+ };
111
+ }
112
+ }).catch((error) => {
113
+ console.error("[assistant-ui] thread list loadMore failed:", error);
114
+ }).then(() => {
115
+ if (this._loadMorePromise === dedup) this._loadMorePromise = void 0;
116
+ });
117
+ this._loadMorePromise = dedup;
118
+ return dedup;
119
+ }
120
+ contextProvider;
121
+ constructor(options, contextProvider) {
122
+ super();
123
+ this.contextProvider = contextProvider;
124
+ this._state.subscribe(() => this._notifySubscribers());
125
+ this._hookManager = new RemoteThreadListHookInstanceManager(options.runtimeHook, this);
126
+ this.useProvider = create(() => ({ Provider: options.adapter.unstable_Provider ?? Fragment }));
127
+ this.__internal_setOptions(options);
128
+ this.switchToNewThread();
129
+ }
130
+ _initialThreadLoaded = false;
131
+ useProvider;
132
+ __internal_setOptions(options) {
133
+ if (this._options === options) return;
134
+ const adapterChanged = this._options !== void 0 && this._options.adapter !== options.adapter;
135
+ this._options = options;
136
+ const Provider = options.adapter.unstable_Provider ?? Fragment;
137
+ if (Provider !== this.useProvider.getState().Provider) this.useProvider.setState({ Provider }, true);
138
+ this._hookManager.setRuntimeHook(options.runtimeHook);
139
+ if (adapterChanged) {
140
+ this._loadGeneration++;
141
+ this._loadThreadsPromise = void 0;
142
+ this._loadMorePromise = void 0;
143
+ this._state.update({
144
+ ...this._state.baseValue,
145
+ cursor: void 0
146
+ });
147
+ }
148
+ }
149
+ __internal_load() {
150
+ this.getLoadThreadsPromise();
151
+ const startThreadId = this._options.threadId ?? this._options.initialThreadId;
152
+ if (!this._initialThreadLoaded && startThreadId) {
153
+ this._initialThreadLoaded = true;
154
+ this.switchToThread(startThreadId).catch(() => {});
155
+ }
156
+ }
157
+ reload() {
158
+ this._loadGeneration++;
159
+ this._loadThreadsPromise = void 0;
160
+ this._loadMorePromise = void 0;
161
+ this._state.update({
162
+ ...this._state.baseValue,
163
+ cursor: void 0
164
+ });
165
+ return this.getLoadThreadsPromise();
166
+ }
167
+ get isLoading() {
168
+ return this._state.value.isLoading;
169
+ }
170
+ get isLoadingMore() {
171
+ return this._state.value.isLoadingMore;
172
+ }
173
+ get hasMore() {
174
+ return this._state.value.cursor !== void 0;
175
+ }
176
+ get threadIds() {
177
+ return this._state.value.threadIds;
178
+ }
179
+ get archivedThreadIds() {
180
+ return this._state.value.archivedThreadIds;
181
+ }
182
+ get newThreadId() {
183
+ return this._state.value.newThreadId;
184
+ }
185
+ get mainThreadId() {
186
+ return this._mainThreadId;
187
+ }
188
+ getMainThreadRuntimeCore() {
189
+ const result = this._hookManager.getThreadRuntimeCore(this._mainThreadId);
190
+ if (!result) return EMPTY_THREAD_CORE;
191
+ return result;
192
+ }
193
+ getThreadRuntimeCore(threadIdOrRemoteId) {
194
+ const data = this.getItemById(threadIdOrRemoteId);
195
+ if (!data) throw new Error("Thread not found");
196
+ const result = this._hookManager.getThreadRuntimeCore(data.id);
197
+ if (!result) throw new Error("Thread not found");
198
+ return result;
199
+ }
200
+ getItemById(threadIdOrRemoteId) {
201
+ return getThreadData(this._state.value, threadIdOrRemoteId);
202
+ }
203
+ async switchToThread(threadIdOrRemoteId, options) {
204
+ let data = this.getItemById(threadIdOrRemoteId);
205
+ if (!data) {
206
+ const remoteMetadata = await this._options.adapter.fetch(threadIdOrRemoteId);
207
+ const state = this._state.value;
208
+ const mappingId = createThreadMappingId(remoteMetadata.remoteId);
209
+ const newThreadData = {
210
+ ...state.threadData,
211
+ [mappingId]: {
212
+ id: mappingId,
213
+ initializeTask: Promise.resolve({
214
+ remoteId: remoteMetadata.remoteId,
215
+ externalId: remoteMetadata.externalId
216
+ }),
217
+ remoteId: remoteMetadata.remoteId,
218
+ externalId: remoteMetadata.externalId,
219
+ status: remoteMetadata.status,
220
+ title: remoteMetadata.title,
221
+ custom: remoteMetadata.custom
222
+ }
223
+ };
224
+ const newThreadIdMap = {
225
+ ...state.threadIdMap,
226
+ [remoteMetadata.remoteId]: mappingId
227
+ };
228
+ const threadIdsWithoutRemote = state.threadIds.filter((id) => id !== remoteMetadata.remoteId);
229
+ const archivedThreadIdsWithoutRemote = state.archivedThreadIds.filter((id) => id !== remoteMetadata.remoteId);
230
+ const newThreadIds = remoteMetadata.status === "regular" ? [...threadIdsWithoutRemote, remoteMetadata.remoteId] : threadIdsWithoutRemote;
231
+ const newArchivedThreadIds = remoteMetadata.status === "archived" ? [...archivedThreadIdsWithoutRemote, remoteMetadata.remoteId] : archivedThreadIdsWithoutRemote;
232
+ this._state.update({
233
+ ...state,
234
+ threadIds: newThreadIds,
235
+ archivedThreadIds: newArchivedThreadIds,
236
+ threadIdMap: newThreadIdMap,
237
+ threadData: newThreadData
238
+ });
239
+ data = this.getItemById(threadIdOrRemoteId);
240
+ }
241
+ if (!data) throw new Error("Thread not found");
242
+ if (this._mainThreadId === data.id) return;
243
+ const task = this._hookManager.startThreadRuntime(data.id);
244
+ if (this.mainThreadId !== void 0) await task;
245
+ else task.then(() => this._notifySubscribers());
246
+ if (data.status === "archived" && options?.unarchive !== false) await this.unarchive(data.id);
247
+ this._mainThreadId = data.id;
248
+ this._notifySubscribers();
249
+ }
250
+ async switchToNewThread() {
251
+ while (this._state.baseValue.newThreadId !== void 0 && this._state.value.newThreadId === void 0) await this._state.waitForUpdate();
252
+ const state = this._state.value;
253
+ let id = this._state.value.newThreadId;
254
+ if (id === void 0) {
255
+ do
256
+ id = `__LOCALID_${generateId()}`;
257
+ while (state.threadIdMap[id]);
258
+ const mappingId = createThreadMappingId(id);
259
+ this._state.update({
260
+ ...state,
261
+ newThreadId: id,
262
+ threadIdMap: {
263
+ ...state.threadIdMap,
264
+ [id]: mappingId
265
+ },
266
+ threadData: {
267
+ ...state.threadData,
268
+ [mappingId]: {
269
+ status: "new",
270
+ id,
271
+ remoteId: void 0,
272
+ externalId: void 0,
273
+ title: void 0,
274
+ custom: void 0
275
+ }
276
+ }
277
+ });
278
+ }
279
+ return this.switchToThread(id);
280
+ }
281
+ initialize = async (threadId) => {
282
+ if (this._state.value.newThreadId !== threadId) {
283
+ const data = this.getItemById(threadId);
284
+ if (!data) throw new Error("Thread not found");
285
+ if (data.status === "new") throw new Error("Unexpected new state");
286
+ return data.initializeTask;
287
+ }
288
+ return this._state.optimisticUpdate({
289
+ execute: () => {
290
+ return this._options.adapter.initialize(threadId);
291
+ },
292
+ optimistic: (state) => {
293
+ return updateStatusReducer(state, threadId, "regular");
294
+ },
295
+ loading: (state, task) => {
296
+ const mappingId = createThreadMappingId(threadId);
297
+ return {
298
+ ...state,
299
+ threadData: {
300
+ ...state.threadData,
301
+ [mappingId]: {
302
+ ...state.threadData[mappingId],
303
+ initializeTask: task
304
+ }
305
+ }
306
+ };
307
+ },
308
+ then: (state, { remoteId, externalId }) => {
309
+ const data = getThreadData(state, threadId);
310
+ if (!data) return state;
311
+ const mappingId = createThreadMappingId(threadId);
312
+ return {
313
+ ...state,
314
+ threadIdMap: {
315
+ ...state.threadIdMap,
316
+ [remoteId]: mappingId
317
+ },
318
+ threadData: {
319
+ ...state.threadData,
320
+ [mappingId]: {
321
+ ...data,
322
+ initializeTask: Promise.resolve({
323
+ remoteId,
324
+ externalId
325
+ }),
326
+ remoteId,
327
+ externalId
328
+ }
329
+ }
330
+ };
331
+ }
332
+ });
333
+ };
334
+ generateTitle = async (threadId) => {
335
+ const data = this.getItemById(threadId);
336
+ if (!data) throw new Error("Thread not found");
337
+ if (data.status === "new") throw new Error("Thread is not yet initialized");
338
+ const { remoteId } = await data.initializeTask;
339
+ const runtimeCore = this._hookManager.getThreadRuntimeCore(data.id);
340
+ if (!runtimeCore) return;
341
+ const messages = runtimeCore.messages;
342
+ const stream = await this._options.adapter.generateTitle(remoteId, messages);
343
+ const messageStream = AssistantMessageStream.fromAssistantStream(stream);
344
+ for await (const result of messageStream) {
345
+ const newTitle = result.parts.filter((c) => c.type === "text")[0]?.text;
346
+ const state = this._state.baseValue;
347
+ const currentData = getThreadData(state, data.id);
348
+ if (!currentData) continue;
349
+ this._state.update({
350
+ ...state,
351
+ threadData: {
352
+ ...state.threadData,
353
+ [currentData.id]: {
354
+ ...currentData,
355
+ title: newTitle
356
+ }
357
+ }
358
+ });
359
+ }
360
+ };
361
+ rename(threadIdOrRemoteId, newTitle) {
362
+ const data = this.getItemById(threadIdOrRemoteId);
363
+ if (!data) throw new Error("Thread not found");
364
+ if (data.status === "new") throw new Error("Thread is not yet initialized");
365
+ return this._state.optimisticUpdate({
366
+ execute: async () => {
367
+ const { remoteId } = await data.initializeTask;
368
+ return this._options.adapter.rename(remoteId, newTitle);
369
+ },
370
+ optimistic: (state) => {
371
+ const data = getThreadData(state, threadIdOrRemoteId);
372
+ if (!data) return state;
373
+ return {
374
+ ...state,
375
+ threadData: {
376
+ ...state.threadData,
377
+ [data.id]: {
378
+ ...data,
379
+ title: newTitle
380
+ }
381
+ }
382
+ };
383
+ }
384
+ });
385
+ }
386
+ async _ensureThreadIsNotMain(threadId) {
387
+ if (threadId === this.newThreadId) throw new Error("Cannot ensure new thread is not main");
388
+ if (threadId === this._mainThreadId) await this.switchToNewThread();
389
+ }
390
+ async archive(threadIdOrRemoteId) {
391
+ const data = this.getItemById(threadIdOrRemoteId);
392
+ if (!data) throw new Error("Thread not found");
393
+ if (data.status !== "regular") throw new Error("Thread is not yet initialized or already archived");
394
+ await this._ensureThreadIsNotMain(data.id);
395
+ return this._state.optimisticUpdate({
396
+ execute: async () => {
397
+ const { remoteId } = await data.initializeTask;
398
+ return this._options.adapter.archive(remoteId);
399
+ },
400
+ optimistic: (state) => {
401
+ return updateStatusReducer(state, data.id, "archived");
402
+ }
403
+ });
404
+ }
405
+ unarchive(threadIdOrRemoteId) {
406
+ const data = this.getItemById(threadIdOrRemoteId);
407
+ if (!data) throw new Error("Thread not found");
408
+ if (data.status !== "archived") throw new Error("Thread is not archived");
409
+ return this._state.optimisticUpdate({
410
+ execute: async () => {
411
+ try {
412
+ const { remoteId } = await data.initializeTask;
413
+ return await this._options.adapter.unarchive(remoteId);
414
+ } catch (error) {
415
+ await this._ensureThreadIsNotMain(data.id);
416
+ throw error;
417
+ }
418
+ },
419
+ optimistic: (state) => {
420
+ return updateStatusReducer(state, data.id, "regular");
421
+ }
422
+ });
423
+ }
424
+ async delete(threadIdOrRemoteId) {
425
+ const data = this.getItemById(threadIdOrRemoteId);
426
+ if (!data) throw new Error("Thread not found");
427
+ if (data.status !== "regular" && data.status !== "archived") throw new Error("Thread is not yet initialized");
428
+ await this._ensureThreadIsNotMain(data.id);
429
+ this._hookManager.stopThreadRuntime(data.id);
430
+ return this._state.optimisticUpdate({
431
+ execute: async () => {
432
+ const { remoteId } = await data.initializeTask;
433
+ return await this._options.adapter.delete(remoteId);
434
+ },
435
+ optimistic: (state) => {
436
+ return updateStatusReducer(state, data.id, "deleted");
437
+ }
438
+ });
439
+ }
440
+ async detach(threadIdOrRemoteId) {
441
+ const data = this.getItemById(threadIdOrRemoteId);
442
+ if (!data) throw new Error("Thread not found");
443
+ if (data.status !== "regular" && data.status !== "archived") throw new Error("Thread is not yet initialized");
444
+ await this._ensureThreadIsNotMain(data.id);
445
+ this._hookManager.stopThreadRuntime(data.id);
446
+ }
447
+ useBoundIds = create(() => []);
448
+ __internal_RenderComponent = () => {
449
+ const id = useId();
450
+ useEffect(() => {
451
+ this.useBoundIds.setState((s) => [...s, id], true);
452
+ return () => {
453
+ this.useBoundIds.setState((s) => s.filter((i) => i !== id), true);
454
+ };
455
+ }, [id]);
456
+ const boundIds = this.useBoundIds();
457
+ const { Provider } = this.useProvider();
458
+ const adapters = { modelContext: this.contextProvider };
459
+ return (boundIds.length === 0 || boundIds[0] === id) && /* @__PURE__ */ jsx(RuntimeAdapterProvider, {
460
+ adapters,
461
+ children: /* @__PURE__ */ jsx(this._hookManager.__internal_RenderThreadRuntimes, { provider: Provider })
462
+ });
463
+ };
464
+ };
465
+ //#endregion
466
+ export { RemoteThreadListThreadListRuntimeCore };
467
+
523
468
  //# sourceMappingURL=RemoteThreadListThreadListRuntimeCore.js.map