@assistant-ui/react-ink 0.0.1

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 (456) hide show
  1. package/dist/adapters/LocalStorageThreadListAdapter.d.ts +15 -0
  2. package/dist/adapters/LocalStorageThreadListAdapter.d.ts.map +1 -0
  3. package/dist/adapters/LocalStorageThreadListAdapter.js +154 -0
  4. package/dist/adapters/LocalStorageThreadListAdapter.js.map +1 -0
  5. package/dist/adapters/TitleGenerationAdapter.d.ts +6 -0
  6. package/dist/adapters/TitleGenerationAdapter.d.ts.map +1 -0
  7. package/dist/adapters/TitleGenerationAdapter.js +15 -0
  8. package/dist/adapters/TitleGenerationAdapter.js.map +1 -0
  9. package/dist/adapters/index.d.ts +3 -0
  10. package/dist/adapters/index.d.ts.map +1 -0
  11. package/dist/adapters/index.js +3 -0
  12. package/dist/adapters/index.js.map +1 -0
  13. package/dist/client/index.d.ts +5 -0
  14. package/dist/client/index.d.ts.map +1 -0
  15. package/dist/client/index.js +7 -0
  16. package/dist/client/index.js.map +1 -0
  17. package/dist/context/AssistantContext.d.ts +8 -0
  18. package/dist/context/AssistantContext.d.ts.map +1 -0
  19. package/dist/context/AssistantContext.js +16 -0
  20. package/dist/context/AssistantContext.js.map +1 -0
  21. package/dist/context/index.d.ts +2 -0
  22. package/dist/context/index.d.ts.map +1 -0
  23. package/dist/context/index.js +2 -0
  24. package/dist/context/index.js.map +1 -0
  25. package/dist/context/providers/AttachmentByIndexProvider.d.ts +2 -0
  26. package/dist/context/providers/AttachmentByIndexProvider.d.ts.map +1 -0
  27. package/dist/context/providers/AttachmentByIndexProvider.js +2 -0
  28. package/dist/context/providers/AttachmentByIndexProvider.js.map +1 -0
  29. package/dist/context/providers/RuntimeAdapterProvider.d.ts +16 -0
  30. package/dist/context/providers/RuntimeAdapterProvider.d.ts.map +1 -0
  31. package/dist/context/providers/RuntimeAdapterProvider.js +14 -0
  32. package/dist/context/providers/RuntimeAdapterProvider.js.map +1 -0
  33. package/dist/context/providers/ThreadListItemRuntimeProvider.d.ts +2 -0
  34. package/dist/context/providers/ThreadListItemRuntimeProvider.d.ts.map +1 -0
  35. package/dist/context/providers/ThreadListItemRuntimeProvider.js +2 -0
  36. package/dist/context/providers/ThreadListItemRuntimeProvider.js.map +1 -0
  37. package/dist/index.d.ts +26 -0
  38. package/dist/index.d.ts.map +1 -0
  39. package/dist/index.js +32 -0
  40. package/dist/index.js.map +1 -0
  41. package/dist/internal.d.ts +4 -0
  42. package/dist/internal.d.ts.map +1 -0
  43. package/dist/internal.js +3 -0
  44. package/dist/internal.js.map +1 -0
  45. package/dist/model-context/index.d.ts +9 -0
  46. package/dist/model-context/index.d.ts.map +1 -0
  47. package/dist/model-context/index.js +7 -0
  48. package/dist/model-context/index.js.map +1 -0
  49. package/dist/primitive-hooks/index.d.ts +15 -0
  50. package/dist/primitive-hooks/index.d.ts.map +1 -0
  51. package/dist/primitive-hooks/index.js +15 -0
  52. package/dist/primitive-hooks/index.js.map +1 -0
  53. package/dist/primitive-hooks/useActionBarCopy.d.ts +10 -0
  54. package/dist/primitive-hooks/useActionBarCopy.d.ts.map +1 -0
  55. package/dist/primitive-hooks/useActionBarCopy.js +26 -0
  56. package/dist/primitive-hooks/useActionBarCopy.js.map +1 -0
  57. package/dist/primitive-hooks/useActionBarEdit.d.ts +5 -0
  58. package/dist/primitive-hooks/useActionBarEdit.d.ts.map +1 -0
  59. package/dist/primitive-hooks/useActionBarEdit.js +11 -0
  60. package/dist/primitive-hooks/useActionBarEdit.js.map +1 -0
  61. package/dist/primitive-hooks/useActionBarFeedback.d.ts +9 -0
  62. package/dist/primitive-hooks/useActionBarFeedback.d.ts.map +1 -0
  63. package/dist/primitive-hooks/useActionBarFeedback.js +19 -0
  64. package/dist/primitive-hooks/useActionBarFeedback.js.map +1 -0
  65. package/dist/primitive-hooks/useActionBarReload.d.ts +5 -0
  66. package/dist/primitive-hooks/useActionBarReload.d.ts.map +1 -0
  67. package/dist/primitive-hooks/useActionBarReload.js +13 -0
  68. package/dist/primitive-hooks/useActionBarReload.js.map +1 -0
  69. package/dist/primitive-hooks/useComposerAddAttachment.d.ts +5 -0
  70. package/dist/primitive-hooks/useComposerAddAttachment.d.ts.map +1 -0
  71. package/dist/primitive-hooks/useComposerAddAttachment.js +10 -0
  72. package/dist/primitive-hooks/useComposerAddAttachment.js.map +1 -0
  73. package/dist/primitive-hooks/useComposerCancel.d.ts +5 -0
  74. package/dist/primitive-hooks/useComposerCancel.d.ts.map +1 -0
  75. package/dist/primitive-hooks/useComposerCancel.js +11 -0
  76. package/dist/primitive-hooks/useComposerCancel.js.map +1 -0
  77. package/dist/primitive-hooks/useComposerSend.d.ts +5 -0
  78. package/dist/primitive-hooks/useComposerSend.d.ts.map +1 -0
  79. package/dist/primitive-hooks/useComposerSend.js +11 -0
  80. package/dist/primitive-hooks/useComposerSend.js.map +1 -0
  81. package/dist/primitive-hooks/useEditComposerCancel.d.ts +4 -0
  82. package/dist/primitive-hooks/useEditComposerCancel.d.ts.map +1 -0
  83. package/dist/primitive-hooks/useEditComposerCancel.js +10 -0
  84. package/dist/primitive-hooks/useEditComposerCancel.js.map +1 -0
  85. package/dist/primitive-hooks/useEditComposerSend.d.ts +5 -0
  86. package/dist/primitive-hooks/useEditComposerSend.d.ts.map +1 -0
  87. package/dist/primitive-hooks/useEditComposerSend.js +11 -0
  88. package/dist/primitive-hooks/useEditComposerSend.js.map +1 -0
  89. package/dist/primitive-hooks/useMessageBranching.d.ts +7 -0
  90. package/dist/primitive-hooks/useMessageBranching.d.ts.map +1 -0
  91. package/dist/primitive-hooks/useMessageBranching.js +15 -0
  92. package/dist/primitive-hooks/useMessageBranching.js.map +1 -0
  93. package/dist/primitive-hooks/useMessageReload.d.ts +5 -0
  94. package/dist/primitive-hooks/useMessageReload.d.ts.map +1 -0
  95. package/dist/primitive-hooks/useMessageReload.js +11 -0
  96. package/dist/primitive-hooks/useMessageReload.js.map +1 -0
  97. package/dist/primitive-hooks/useThreadIsEmpty.d.ts +2 -0
  98. package/dist/primitive-hooks/useThreadIsEmpty.d.ts.map +1 -0
  99. package/dist/primitive-hooks/useThreadIsEmpty.js +5 -0
  100. package/dist/primitive-hooks/useThreadIsEmpty.js.map +1 -0
  101. package/dist/primitive-hooks/useThreadIsRunning.d.ts +2 -0
  102. package/dist/primitive-hooks/useThreadIsRunning.d.ts.map +1 -0
  103. package/dist/primitive-hooks/useThreadIsRunning.js +5 -0
  104. package/dist/primitive-hooks/useThreadIsRunning.js.map +1 -0
  105. package/dist/primitive-hooks/useThreadMessages.d.ts +3 -0
  106. package/dist/primitive-hooks/useThreadMessages.d.ts.map +1 -0
  107. package/dist/primitive-hooks/useThreadMessages.js +5 -0
  108. package/dist/primitive-hooks/useThreadMessages.js.map +1 -0
  109. package/dist/primitives/actionBar/ActionBarCopy.d.ts +10 -0
  110. package/dist/primitives/actionBar/ActionBarCopy.d.ts.map +1 -0
  111. package/dist/primitives/actionBar/ActionBarCopy.js +11 -0
  112. package/dist/primitives/actionBar/ActionBarCopy.js.map +1 -0
  113. package/dist/primitives/actionBar/ActionBarEdit.d.ts +7 -0
  114. package/dist/primitives/actionBar/ActionBarEdit.d.ts.map +1 -0
  115. package/dist/primitives/actionBar/ActionBarEdit.js +8 -0
  116. package/dist/primitives/actionBar/ActionBarEdit.js.map +1 -0
  117. package/dist/primitives/actionBar/ActionBarFeedbackNegative.d.ts +9 -0
  118. package/dist/primitives/actionBar/ActionBarFeedbackNegative.d.ts.map +1 -0
  119. package/dist/primitives/actionBar/ActionBarFeedbackNegative.js +8 -0
  120. package/dist/primitives/actionBar/ActionBarFeedbackNegative.js.map +1 -0
  121. package/dist/primitives/actionBar/ActionBarFeedbackPositive.d.ts +9 -0
  122. package/dist/primitives/actionBar/ActionBarFeedbackPositive.d.ts.map +1 -0
  123. package/dist/primitives/actionBar/ActionBarFeedbackPositive.js +8 -0
  124. package/dist/primitives/actionBar/ActionBarFeedbackPositive.js.map +1 -0
  125. package/dist/primitives/actionBar/ActionBarReload.d.ts +7 -0
  126. package/dist/primitives/actionBar/ActionBarReload.d.ts.map +1 -0
  127. package/dist/primitives/actionBar/ActionBarReload.js +8 -0
  128. package/dist/primitives/actionBar/ActionBarReload.js.map +1 -0
  129. package/dist/primitives/actionBar/index.d.ts +6 -0
  130. package/dist/primitives/actionBar/index.d.ts.map +1 -0
  131. package/dist/primitives/actionBar/index.js +6 -0
  132. package/dist/primitives/actionBar/index.js.map +1 -0
  133. package/dist/primitives/attachment/AttachmentName.d.ts +5 -0
  134. package/dist/primitives/attachment/AttachmentName.d.ts.map +1 -0
  135. package/dist/primitives/attachment/AttachmentName.js +8 -0
  136. package/dist/primitives/attachment/AttachmentName.js.map +1 -0
  137. package/dist/primitives/attachment/AttachmentRemove.d.ts +7 -0
  138. package/dist/primitives/attachment/AttachmentRemove.d.ts.map +1 -0
  139. package/dist/primitives/attachment/AttachmentRemove.js +12 -0
  140. package/dist/primitives/attachment/AttachmentRemove.js.map +1 -0
  141. package/dist/primitives/attachment/AttachmentRoot.d.ts +7 -0
  142. package/dist/primitives/attachment/AttachmentRoot.d.ts.map +1 -0
  143. package/dist/primitives/attachment/AttachmentRoot.js +6 -0
  144. package/dist/primitives/attachment/AttachmentRoot.js.map +1 -0
  145. package/dist/primitives/attachment/AttachmentThumb.d.ts +5 -0
  146. package/dist/primitives/attachment/AttachmentThumb.d.ts.map +1 -0
  147. package/dist/primitives/attachment/AttachmentThumb.js +11 -0
  148. package/dist/primitives/attachment/AttachmentThumb.js.map +1 -0
  149. package/dist/primitives/attachment/index.d.ts +5 -0
  150. package/dist/primitives/attachment/index.d.ts.map +1 -0
  151. package/dist/primitives/attachment/index.js +5 -0
  152. package/dist/primitives/attachment/index.js.map +1 -0
  153. package/dist/primitives/branchPicker/BranchPickerCount.d.ts +5 -0
  154. package/dist/primitives/branchPicker/BranchPickerCount.d.ts.map +1 -0
  155. package/dist/primitives/branchPicker/BranchPickerCount.js +8 -0
  156. package/dist/primitives/branchPicker/BranchPickerCount.js.map +1 -0
  157. package/dist/primitives/branchPicker/BranchPickerNext.d.ts +7 -0
  158. package/dist/primitives/branchPicker/BranchPickerNext.d.ts.map +1 -0
  159. package/dist/primitives/branchPicker/BranchPickerNext.js +20 -0
  160. package/dist/primitives/branchPicker/BranchPickerNext.js.map +1 -0
  161. package/dist/primitives/branchPicker/BranchPickerNumber.d.ts +5 -0
  162. package/dist/primitives/branchPicker/BranchPickerNumber.d.ts.map +1 -0
  163. package/dist/primitives/branchPicker/BranchPickerNumber.js +8 -0
  164. package/dist/primitives/branchPicker/BranchPickerNumber.js.map +1 -0
  165. package/dist/primitives/branchPicker/BranchPickerPrevious.d.ts +7 -0
  166. package/dist/primitives/branchPicker/BranchPickerPrevious.d.ts.map +1 -0
  167. package/dist/primitives/branchPicker/BranchPickerPrevious.js +20 -0
  168. package/dist/primitives/branchPicker/BranchPickerPrevious.js.map +1 -0
  169. package/dist/primitives/branchPicker/index.d.ts +5 -0
  170. package/dist/primitives/branchPicker/index.d.ts.map +1 -0
  171. package/dist/primitives/branchPicker/index.js +5 -0
  172. package/dist/primitives/branchPicker/index.js.map +1 -0
  173. package/dist/primitives/chainOfThought/ChainOfThoughtAccordionTrigger.d.ts +7 -0
  174. package/dist/primitives/chainOfThought/ChainOfThoughtAccordionTrigger.d.ts.map +1 -0
  175. package/dist/primitives/chainOfThought/ChainOfThoughtAccordionTrigger.js +13 -0
  176. package/dist/primitives/chainOfThought/ChainOfThoughtAccordionTrigger.js.map +1 -0
  177. package/dist/primitives/chainOfThought/ChainOfThoughtRoot.d.ts +7 -0
  178. package/dist/primitives/chainOfThought/ChainOfThoughtRoot.d.ts.map +1 -0
  179. package/dist/primitives/chainOfThought/ChainOfThoughtRoot.js +6 -0
  180. package/dist/primitives/chainOfThought/ChainOfThoughtRoot.js.map +1 -0
  181. package/dist/primitives/chainOfThought/index.d.ts +4 -0
  182. package/dist/primitives/chainOfThought/index.d.ts.map +1 -0
  183. package/dist/primitives/chainOfThought/index.js +4 -0
  184. package/dist/primitives/chainOfThought/index.js.map +1 -0
  185. package/dist/primitives/composer/ComposerAddAttachment.d.ts +7 -0
  186. package/dist/primitives/composer/ComposerAddAttachment.d.ts.map +1 -0
  187. package/dist/primitives/composer/ComposerAddAttachment.js +10 -0
  188. package/dist/primitives/composer/ComposerAddAttachment.js.map +1 -0
  189. package/dist/primitives/composer/ComposerAttachments.d.ts +18 -0
  190. package/dist/primitives/composer/ComposerAttachments.d.ts.map +1 -0
  191. package/dist/primitives/composer/ComposerAttachments.js +4 -0
  192. package/dist/primitives/composer/ComposerAttachments.js.map +1 -0
  193. package/dist/primitives/composer/ComposerCancel.d.ts +7 -0
  194. package/dist/primitives/composer/ComposerCancel.d.ts.map +1 -0
  195. package/dist/primitives/composer/ComposerCancel.js +8 -0
  196. package/dist/primitives/composer/ComposerCancel.js.map +1 -0
  197. package/dist/primitives/composer/ComposerIf.d.ts +2 -0
  198. package/dist/primitives/composer/ComposerIf.d.ts.map +1 -0
  199. package/dist/primitives/composer/ComposerIf.js +2 -0
  200. package/dist/primitives/composer/ComposerIf.js.map +1 -0
  201. package/dist/primitives/composer/ComposerInput.d.ts +12 -0
  202. package/dist/primitives/composer/ComposerInput.d.ts.map +1 -0
  203. package/dist/primitives/composer/ComposerInput.js +25 -0
  204. package/dist/primitives/composer/ComposerInput.js.map +1 -0
  205. package/dist/primitives/composer/ComposerRoot.d.ts +7 -0
  206. package/dist/primitives/composer/ComposerRoot.d.ts.map +1 -0
  207. package/dist/primitives/composer/ComposerRoot.js +6 -0
  208. package/dist/primitives/composer/ComposerRoot.js.map +1 -0
  209. package/dist/primitives/composer/ComposerSend.d.ts +7 -0
  210. package/dist/primitives/composer/ComposerSend.d.ts.map +1 -0
  211. package/dist/primitives/composer/ComposerSend.js +8 -0
  212. package/dist/primitives/composer/ComposerSend.js.map +1 -0
  213. package/dist/primitives/composer/EditComposerCancel.d.ts +7 -0
  214. package/dist/primitives/composer/EditComposerCancel.d.ts.map +1 -0
  215. package/dist/primitives/composer/EditComposerCancel.js +8 -0
  216. package/dist/primitives/composer/EditComposerCancel.js.map +1 -0
  217. package/dist/primitives/composer/EditComposerInput.d.ts +10 -0
  218. package/dist/primitives/composer/EditComposerInput.d.ts.map +1 -0
  219. package/dist/primitives/composer/EditComposerInput.js +19 -0
  220. package/dist/primitives/composer/EditComposerInput.js.map +1 -0
  221. package/dist/primitives/composer/EditComposerSend.d.ts +7 -0
  222. package/dist/primitives/composer/EditComposerSend.d.ts.map +1 -0
  223. package/dist/primitives/composer/EditComposerSend.js +8 -0
  224. package/dist/primitives/composer/EditComposerSend.js.map +1 -0
  225. package/dist/primitives/composer/index.d.ts +11 -0
  226. package/dist/primitives/composer/index.d.ts.map +1 -0
  227. package/dist/primitives/composer/index.js +11 -0
  228. package/dist/primitives/composer/index.js.map +1 -0
  229. package/dist/primitives/internal/Pressable.d.ts +9 -0
  230. package/dist/primitives/internal/Pressable.d.ts.map +1 -0
  231. package/dist/primitives/internal/Pressable.js +12 -0
  232. package/dist/primitives/internal/Pressable.js.map +1 -0
  233. package/dist/primitives/message/MessageAttachments.d.ts +12 -0
  234. package/dist/primitives/message/MessageAttachments.d.ts.map +1 -0
  235. package/dist/primitives/message/MessageAttachments.js +4 -0
  236. package/dist/primitives/message/MessageAttachments.js.map +1 -0
  237. package/dist/primitives/message/MessageContent.d.ts +50 -0
  238. package/dist/primitives/message/MessageContent.d.ts.map +1 -0
  239. package/dist/primitives/message/MessageContent.js +69 -0
  240. package/dist/primitives/message/MessageContent.js.map +1 -0
  241. package/dist/primitives/message/MessageIf.d.ts +10 -0
  242. package/dist/primitives/message/MessageIf.d.ts.map +1 -0
  243. package/dist/primitives/message/MessageIf.js +24 -0
  244. package/dist/primitives/message/MessageIf.js.map +1 -0
  245. package/dist/primitives/message/MessageParts.d.ts +11 -0
  246. package/dist/primitives/message/MessageParts.d.ts.map +1 -0
  247. package/dist/primitives/message/MessageParts.js +37 -0
  248. package/dist/primitives/message/MessageParts.js.map +1 -0
  249. package/dist/primitives/message/MessageRoot.d.ts +7 -0
  250. package/dist/primitives/message/MessageRoot.d.ts.map +1 -0
  251. package/dist/primitives/message/MessageRoot.js +6 -0
  252. package/dist/primitives/message/MessageRoot.js.map +1 -0
  253. package/dist/primitives/message/index.d.ts +6 -0
  254. package/dist/primitives/message/index.d.ts.map +1 -0
  255. package/dist/primitives/message/index.js +6 -0
  256. package/dist/primitives/message/index.js.map +1 -0
  257. package/dist/primitives/suggestion/SuggestionDescription.d.ts +7 -0
  258. package/dist/primitives/suggestion/SuggestionDescription.d.ts.map +1 -0
  259. package/dist/primitives/suggestion/SuggestionDescription.js +8 -0
  260. package/dist/primitives/suggestion/SuggestionDescription.js.map +1 -0
  261. package/dist/primitives/suggestion/SuggestionTitle.d.ts +7 -0
  262. package/dist/primitives/suggestion/SuggestionTitle.d.ts.map +1 -0
  263. package/dist/primitives/suggestion/SuggestionTitle.js +8 -0
  264. package/dist/primitives/suggestion/SuggestionTitle.js.map +1 -0
  265. package/dist/primitives/suggestion/SuggestionTrigger.d.ts +9 -0
  266. package/dist/primitives/suggestion/SuggestionTrigger.d.ts.map +1 -0
  267. package/dist/primitives/suggestion/SuggestionTrigger.js +35 -0
  268. package/dist/primitives/suggestion/SuggestionTrigger.js.map +1 -0
  269. package/dist/primitives/suggestion/index.d.ts +4 -0
  270. package/dist/primitives/suggestion/index.d.ts.map +1 -0
  271. package/dist/primitives/suggestion/index.js +4 -0
  272. package/dist/primitives/suggestion/index.js.map +1 -0
  273. package/dist/primitives/thread/ThreadEmpty.d.ts +6 -0
  274. package/dist/primitives/thread/ThreadEmpty.d.ts.map +1 -0
  275. package/dist/primitives/thread/ThreadEmpty.js +9 -0
  276. package/dist/primitives/thread/ThreadEmpty.js.map +1 -0
  277. package/dist/primitives/thread/ThreadIf.d.ts +8 -0
  278. package/dist/primitives/thread/ThreadIf.d.ts.map +1 -0
  279. package/dist/primitives/thread/ThreadIf.js +16 -0
  280. package/dist/primitives/thread/ThreadIf.js.map +1 -0
  281. package/dist/primitives/thread/ThreadMessages.d.ts +10 -0
  282. package/dist/primitives/thread/ThreadMessages.d.ts.map +1 -0
  283. package/dist/primitives/thread/ThreadMessages.js +18 -0
  284. package/dist/primitives/thread/ThreadMessages.js.map +1 -0
  285. package/dist/primitives/thread/ThreadRoot.d.ts +7 -0
  286. package/dist/primitives/thread/ThreadRoot.d.ts.map +1 -0
  287. package/dist/primitives/thread/ThreadRoot.js +6 -0
  288. package/dist/primitives/thread/ThreadRoot.js.map +1 -0
  289. package/dist/primitives/thread/ThreadSuggestion.d.ts +10 -0
  290. package/dist/primitives/thread/ThreadSuggestion.d.ts.map +1 -0
  291. package/dist/primitives/thread/ThreadSuggestion.js +34 -0
  292. package/dist/primitives/thread/ThreadSuggestion.js.map +1 -0
  293. package/dist/primitives/thread/index.d.ts +8 -0
  294. package/dist/primitives/thread/index.d.ts.map +1 -0
  295. package/dist/primitives/thread/index.js +8 -0
  296. package/dist/primitives/thread/index.js.map +1 -0
  297. package/dist/primitives/threadList/ThreadListItems.d.ts +9 -0
  298. package/dist/primitives/threadList/ThreadListItems.d.ts.map +1 -0
  299. package/dist/primitives/threadList/ThreadListItems.js +8 -0
  300. package/dist/primitives/threadList/ThreadListItems.js.map +1 -0
  301. package/dist/primitives/threadList/ThreadListNew.d.ts +7 -0
  302. package/dist/primitives/threadList/ThreadListNew.d.ts.map +1 -0
  303. package/dist/primitives/threadList/ThreadListNew.js +12 -0
  304. package/dist/primitives/threadList/ThreadListNew.js.map +1 -0
  305. package/dist/primitives/threadList/ThreadListRoot.d.ts +7 -0
  306. package/dist/primitives/threadList/ThreadListRoot.d.ts.map +1 -0
  307. package/dist/primitives/threadList/ThreadListRoot.js +6 -0
  308. package/dist/primitives/threadList/ThreadListRoot.js.map +1 -0
  309. package/dist/primitives/threadList/index.d.ts +4 -0
  310. package/dist/primitives/threadList/index.d.ts.map +1 -0
  311. package/dist/primitives/threadList/index.js +4 -0
  312. package/dist/primitives/threadList/index.js.map +1 -0
  313. package/dist/primitives/threadListItem/ThreadListItemArchive.d.ts +7 -0
  314. package/dist/primitives/threadListItem/ThreadListItemArchive.d.ts.map +1 -0
  315. package/dist/primitives/threadListItem/ThreadListItemArchive.js +12 -0
  316. package/dist/primitives/threadListItem/ThreadListItemArchive.js.map +1 -0
  317. package/dist/primitives/threadListItem/ThreadListItemDelete.d.ts +7 -0
  318. package/dist/primitives/threadListItem/ThreadListItemDelete.d.ts.map +1 -0
  319. package/dist/primitives/threadListItem/ThreadListItemDelete.js +12 -0
  320. package/dist/primitives/threadListItem/ThreadListItemDelete.js.map +1 -0
  321. package/dist/primitives/threadListItem/ThreadListItemRoot.d.ts +7 -0
  322. package/dist/primitives/threadListItem/ThreadListItemRoot.d.ts.map +1 -0
  323. package/dist/primitives/threadListItem/ThreadListItemRoot.js +6 -0
  324. package/dist/primitives/threadListItem/ThreadListItemRoot.js.map +1 -0
  325. package/dist/primitives/threadListItem/ThreadListItemTrigger.d.ts +7 -0
  326. package/dist/primitives/threadListItem/ThreadListItemTrigger.d.ts.map +1 -0
  327. package/dist/primitives/threadListItem/ThreadListItemTrigger.js +12 -0
  328. package/dist/primitives/threadListItem/ThreadListItemTrigger.js.map +1 -0
  329. package/dist/primitives/threadListItem/ThreadListItemUnarchive.d.ts +7 -0
  330. package/dist/primitives/threadListItem/ThreadListItemUnarchive.d.ts.map +1 -0
  331. package/dist/primitives/threadListItem/ThreadListItemUnarchive.js +12 -0
  332. package/dist/primitives/threadListItem/ThreadListItemUnarchive.js.map +1 -0
  333. package/dist/primitives/threadListItem/index.d.ts +7 -0
  334. package/dist/primitives/threadListItem/index.d.ts.map +1 -0
  335. package/dist/primitives/threadListItem/index.js +7 -0
  336. package/dist/primitives/threadListItem/index.js.map +1 -0
  337. package/dist/runtimes/RemoteThreadListHookInstanceManager.d.ts +96 -0
  338. package/dist/runtimes/RemoteThreadListHookInstanceManager.d.ts.map +1 -0
  339. package/dist/runtimes/RemoteThreadListHookInstanceManager.js +110 -0
  340. package/dist/runtimes/RemoteThreadListHookInstanceManager.js.map +1 -0
  341. package/dist/runtimes/RemoteThreadListThreadListRuntimeCore.d.ts +113 -0
  342. package/dist/runtimes/RemoteThreadListThreadListRuntimeCore.d.ts.map +1 -0
  343. package/dist/runtimes/RemoteThreadListThreadListRuntimeCore.js +440 -0
  344. package/dist/runtimes/RemoteThreadListThreadListRuntimeCore.js.map +1 -0
  345. package/dist/runtimes/index.d.ts +3 -0
  346. package/dist/runtimes/index.d.ts.map +1 -0
  347. package/dist/runtimes/index.js +3 -0
  348. package/dist/runtimes/index.js.map +1 -0
  349. package/dist/runtimes/useLocalRuntime.d.ts +18 -0
  350. package/dist/runtimes/useLocalRuntime.d.ts.map +1 -0
  351. package/dist/runtimes/useLocalRuntime.js +62 -0
  352. package/dist/runtimes/useLocalRuntime.js.map +1 -0
  353. package/dist/runtimes/useRemoteThreadListRuntime.d.ts +4 -0
  354. package/dist/runtimes/useRemoteThreadListRuntime.d.ts.map +1 -0
  355. package/dist/runtimes/useRemoteThreadListRuntime.js +47 -0
  356. package/dist/runtimes/useRemoteThreadListRuntime.js.map +1 -0
  357. package/dist/types/index.d.ts +2 -0
  358. package/dist/types/index.d.ts.map +1 -0
  359. package/dist/types/index.js +2 -0
  360. package/dist/types/index.js.map +1 -0
  361. package/dist/types/scopes/index.d.ts +3 -0
  362. package/dist/types/scopes/index.d.ts.map +1 -0
  363. package/dist/types/scopes/index.js +2 -0
  364. package/dist/types/scopes/index.js.map +1 -0
  365. package/package.json +78 -0
  366. package/src/adapters/LocalStorageThreadListAdapter.tsx +227 -0
  367. package/src/adapters/TitleGenerationAdapter.ts +20 -0
  368. package/src/adapters/index.ts +5 -0
  369. package/src/client/index.ts +7 -0
  370. package/src/context/AssistantContext.tsx +31 -0
  371. package/src/context/index.ts +1 -0
  372. package/src/context/providers/AttachmentByIndexProvider.tsx +4 -0
  373. package/src/context/providers/RuntimeAdapterProvider.tsx +42 -0
  374. package/src/context/providers/ThreadListItemRuntimeProvider.tsx +1 -0
  375. package/src/index.ts +157 -0
  376. package/src/internal.ts +22 -0
  377. package/src/model-context/index.ts +44 -0
  378. package/src/primitive-hooks/index.ts +20 -0
  379. package/src/primitive-hooks/useActionBarCopy.ts +38 -0
  380. package/src/primitive-hooks/useActionBarEdit.ts +13 -0
  381. package/src/primitive-hooks/useActionBarFeedback.ts +28 -0
  382. package/src/primitive-hooks/useActionBarReload.ts +18 -0
  383. package/src/primitive-hooks/useComposerAddAttachment.ts +16 -0
  384. package/src/primitive-hooks/useComposerCancel.ts +13 -0
  385. package/src/primitive-hooks/useComposerSend.ts +13 -0
  386. package/src/primitive-hooks/useEditComposerCancel.ts +12 -0
  387. package/src/primitive-hooks/useEditComposerSend.ts +13 -0
  388. package/src/primitive-hooks/useMessageBranching.ts +18 -0
  389. package/src/primitive-hooks/useMessageReload.ts +13 -0
  390. package/src/primitive-hooks/useThreadIsEmpty.ts +5 -0
  391. package/src/primitive-hooks/useThreadIsRunning.ts +5 -0
  392. package/src/primitive-hooks/useThreadMessages.ts +6 -0
  393. package/src/primitives/actionBar/ActionBarCopy.tsx +34 -0
  394. package/src/primitives/actionBar/ActionBarEdit.tsx +25 -0
  395. package/src/primitives/actionBar/ActionBarFeedbackNegative.tsx +23 -0
  396. package/src/primitives/actionBar/ActionBarFeedbackPositive.tsx +23 -0
  397. package/src/primitives/actionBar/ActionBarReload.tsx +25 -0
  398. package/src/primitives/actionBar/index.ts +11 -0
  399. package/src/primitives/attachment/AttachmentName.tsx +10 -0
  400. package/src/primitives/attachment/AttachmentRemove.tsx +25 -0
  401. package/src/primitives/attachment/AttachmentRoot.tsx +13 -0
  402. package/src/primitives/attachment/AttachmentThumb.tsx +13 -0
  403. package/src/primitives/attachment/index.ts +7 -0
  404. package/src/primitives/branchPicker/BranchPickerCount.tsx +10 -0
  405. package/src/primitives/branchPicker/BranchPickerNext.tsx +37 -0
  406. package/src/primitives/branchPicker/BranchPickerNumber.tsx +10 -0
  407. package/src/primitives/branchPicker/BranchPickerPrevious.tsx +37 -0
  408. package/src/primitives/branchPicker/index.ts +16 -0
  409. package/src/primitives/chainOfThought/ChainOfThoughtAccordionTrigger.tsx +28 -0
  410. package/src/primitives/chainOfThought/ChainOfThoughtRoot.tsx +13 -0
  411. package/src/primitives/chainOfThought/index.ts +9 -0
  412. package/src/primitives/composer/ComposerAddAttachment.tsx +23 -0
  413. package/src/primitives/composer/ComposerAttachments.tsx +25 -0
  414. package/src/primitives/composer/ComposerCancel.tsx +25 -0
  415. package/src/primitives/composer/ComposerIf.tsx +1 -0
  416. package/src/primitives/composer/ComposerInput.tsx +49 -0
  417. package/src/primitives/composer/ComposerRoot.tsx +10 -0
  418. package/src/primitives/composer/ComposerSend.tsx +25 -0
  419. package/src/primitives/composer/EditComposerCancel.tsx +20 -0
  420. package/src/primitives/composer/EditComposerInput.tsx +40 -0
  421. package/src/primitives/composer/EditComposerSend.tsx +25 -0
  422. package/src/primitives/composer/index.ts +25 -0
  423. package/src/primitives/internal/Pressable.tsx +28 -0
  424. package/src/primitives/message/MessageAttachments.tsx +18 -0
  425. package/src/primitives/message/MessageContent.tsx +183 -0
  426. package/src/primitives/message/MessageIf.tsx +40 -0
  427. package/src/primitives/message/MessageParts.tsx +60 -0
  428. package/src/primitives/message/MessageRoot.tsx +10 -0
  429. package/src/primitives/message/index.ts +11 -0
  430. package/src/primitives/suggestion/SuggestionDescription.tsx +16 -0
  431. package/src/primitives/suggestion/SuggestionTitle.tsx +16 -0
  432. package/src/primitives/suggestion/SuggestionTrigger.tsx +55 -0
  433. package/src/primitives/suggestion/index.ts +12 -0
  434. package/src/primitives/thread/ThreadEmpty.tsx +12 -0
  435. package/src/primitives/thread/ThreadIf.tsx +23 -0
  436. package/src/primitives/thread/ThreadMessages.tsx +43 -0
  437. package/src/primitives/thread/ThreadRoot.tsx +14 -0
  438. package/src/primitives/thread/ThreadSuggestion.tsx +56 -0
  439. package/src/primitives/thread/index.ts +16 -0
  440. package/src/primitives/threadList/ThreadListItems.tsx +19 -0
  441. package/src/primitives/threadList/ThreadListNew.tsx +24 -0
  442. package/src/primitives/threadList/ThreadListRoot.tsx +13 -0
  443. package/src/primitives/threadList/index.ts +3 -0
  444. package/src/primitives/threadListItem/ThreadListItemArchive.tsx +24 -0
  445. package/src/primitives/threadListItem/ThreadListItemDelete.tsx +24 -0
  446. package/src/primitives/threadListItem/ThreadListItemRoot.tsx +13 -0
  447. package/src/primitives/threadListItem/ThreadListItemTrigger.tsx +24 -0
  448. package/src/primitives/threadListItem/ThreadListItemUnarchive.tsx +24 -0
  449. package/src/primitives/threadListItem/index.ts +21 -0
  450. package/src/runtimes/RemoteThreadListHookInstanceManager.tsx +180 -0
  451. package/src/runtimes/RemoteThreadListThreadListRuntimeCore.tsx +538 -0
  452. package/src/runtimes/index.ts +2 -0
  453. package/src/runtimes/useLocalRuntime.ts +105 -0
  454. package/src/runtimes/useRemoteThreadListRuntime.ts +80 -0
  455. package/src/types/index.ts +23 -0
  456. package/src/types/scopes/index.ts +59 -0
@@ -0,0 +1,110 @@
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
+ import { useCallback, useRef, useEffect, memo, useMemo, } from "react";
3
+ import { create } from "zustand";
4
+ import { useAui } from "@assistant-ui/store";
5
+ import { ThreadListItemRuntimeProvider } from "../context/providers/ThreadListItemRuntimeProvider.js";
6
+ import { BaseSubscribable, ThreadListRuntimeImpl, } from "@assistant-ui/core/internal";
7
+ export class RemoteThreadListHookInstanceManager extends BaseSubscribable {
8
+ useRuntimeHook;
9
+ instances = new Map();
10
+ useAliveThreadsKeysChanged = create(() => ({}));
11
+ parent;
12
+ constructor(runtimeHook, parent) {
13
+ super();
14
+ this.parent = parent;
15
+ this.useRuntimeHook = create(() => ({ useRuntime: runtimeHook }));
16
+ }
17
+ startThreadRuntime(threadId) {
18
+ if (!this.instances.has(threadId)) {
19
+ this.instances.set(threadId, {});
20
+ this.useAliveThreadsKeysChanged.setState({}, true);
21
+ }
22
+ return new Promise((resolve, reject) => {
23
+ const callback = () => {
24
+ const instance = this.instances.get(threadId);
25
+ if (!instance) {
26
+ dispose();
27
+ reject(new Error("Thread was deleted before runtime was started"));
28
+ }
29
+ else if (!instance.runtime) {
30
+ return; // misc update
31
+ }
32
+ else {
33
+ dispose();
34
+ resolve(instance.runtime);
35
+ }
36
+ };
37
+ const dispose = this.subscribe(callback);
38
+ callback();
39
+ });
40
+ }
41
+ getThreadRuntimeCore(threadId) {
42
+ const instance = this.instances.get(threadId);
43
+ if (!instance)
44
+ return undefined;
45
+ return instance.runtime;
46
+ }
47
+ stopThreadRuntime(threadId) {
48
+ this.instances.delete(threadId);
49
+ this.useAliveThreadsKeysChanged.setState({}, true);
50
+ }
51
+ setRuntimeHook(newRuntimeHook) {
52
+ const prevRuntimeHook = this.useRuntimeHook.getState().useRuntime;
53
+ if (prevRuntimeHook !== newRuntimeHook) {
54
+ this.useRuntimeHook.setState({ useRuntime: newRuntimeHook }, true);
55
+ }
56
+ }
57
+ _InnerActiveThreadProvider = ({ threadId }) => {
58
+ const { useRuntime } = this.useRuntimeHook();
59
+ const runtime = useRuntime();
60
+ const threadBinding = runtime.thread
61
+ .__internal_threadBinding;
62
+ const updateRuntime = useCallback(() => {
63
+ const aliveThread = this.instances.get(threadId);
64
+ if (!aliveThread)
65
+ throw new Error("Thread not found. This is a bug in assistant-ui.");
66
+ aliveThread.runtime = threadBinding.getState();
67
+ this._notifySubscribers();
68
+ }, [threadId, threadBinding]);
69
+ const isMounted = useRef(false);
70
+ if (!isMounted.current) {
71
+ updateRuntime();
72
+ }
73
+ useEffect(() => {
74
+ isMounted.current = true;
75
+ updateRuntime();
76
+ return threadBinding.outerSubscribe(updateRuntime);
77
+ }, [threadBinding, updateRuntime]);
78
+ const aui = useAui();
79
+ const initPromiseRef = useRef(undefined);
80
+ useEffect(() => {
81
+ const runtimeCore = threadBinding.getState();
82
+ const setGetInitializePromise = runtimeCore["__internal_setGetInitializePromise"];
83
+ if (typeof setGetInitializePromise === "function") {
84
+ setGetInitializePromise.call(runtimeCore, () => initPromiseRef.current);
85
+ }
86
+ }, [threadBinding]);
87
+ useEffect(() => {
88
+ return runtime.threads.main.unstable_on("initialize", () => {
89
+ const state = aui.threadListItem().getState();
90
+ if (state.status === "new") {
91
+ initPromiseRef.current = aui.threadListItem().initialize();
92
+ const dispose = runtime.thread.unstable_on("runEnd", () => {
93
+ dispose();
94
+ aui.threadListItem().generateTitle();
95
+ });
96
+ }
97
+ });
98
+ }, [runtime, aui]);
99
+ return null;
100
+ };
101
+ _OuterActiveThreadProvider = memo(({ threadId, provider: Provider }) => {
102
+ const runtime = useMemo(() => new ThreadListRuntimeImpl(this.parent).getItemById(threadId), [threadId]);
103
+ return (_jsx(ThreadListItemRuntimeProvider, { runtime: runtime, children: _jsx(Provider, { children: _jsx(this._InnerActiveThreadProvider, { threadId: threadId }) }) }));
104
+ });
105
+ __internal_RenderThreadRuntimes = ({ provider }) => {
106
+ this.useAliveThreadsKeysChanged(); // trigger re-render on alive threads change
107
+ return Array.from(this.instances.keys()).map((threadId) => (_jsx(this._OuterActiveThreadProvider, { threadId: threadId, provider: provider }, threadId)));
108
+ };
109
+ }
110
+ //# sourceMappingURL=RemoteThreadListHookInstanceManager.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"RemoteThreadListHookInstanceManager.js","sourceRoot":"","sources":["../../src/runtimes/RemoteThreadListHookInstanceManager.tsx"],"names":[],"mappings":";AAAA,OAAO,EAEL,WAAW,EACX,MAAM,EACN,SAAS,EACT,IAAI,EAGJ,OAAO,GACR,MAAM,OAAO,CAAC;AACf,OAAO,EAA2B,MAAM,EAAE,MAAM,SAAS,CAAC;AAC1D,OAAO,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAC7C,OAAO,EAAE,6BAA6B,EAAE,8DAA2D;AAMnG,OAAO,EACL,gBAAgB,EAEhB,qBAAqB,GACtB,MAAM,6BAA6B,CAAC;AAOrC,MAAM,OAAO,mCAAoC,SAAQ,gBAAgB;IAC/D,cAAc,CAEpB;IACM,SAAS,GAAG,IAAI,GAAG,EAAwC,CAAC;IAC5D,0BAA0B,GAAG,MAAM,CAAC,GAAG,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IAChD,MAAM,CAAwB;IAEtC,YACE,WAAiC,EACjC,MAA6B;QAE7B,KAAK,EAAE,CAAC;QACR,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,IAAI,CAAC,cAAc,GAAG,MAAM,CAAC,GAAG,EAAE,CAAC,CAAC,EAAE,UAAU,EAAE,WAAW,EAAE,CAAC,CAAC,CAAC;IACpE,CAAC;IAEM,kBAAkB,CAAC,QAAgB;QACxC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC;YAClC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC;YACjC,IAAI,CAAC,0BAA0B,CAAC,QAAQ,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC;QACrD,CAAC;QAED,OAAO,IAAI,OAAO,CAAoB,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;YACxD,MAAM,QAAQ,GAAG,GAAG,EAAE;gBACpB,MAAM,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;gBAC9C,IAAI,CAAC,QAAQ,EAAE,CAAC;oBACd,OAAO,EAAE,CAAC;oBACV,MAAM,CAAC,IAAI,KAAK,CAAC,+CAA+C,CAAC,CAAC,CAAC;gBACrE,CAAC;qBAAM,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE,CAAC;oBAC7B,OAAO,CAAC,cAAc;gBACxB,CAAC;qBAAM,CAAC;oBACN,OAAO,EAAE,CAAC;oBACV,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;gBAC5B,CAAC;YACH,CAAC,CAAC;YACF,MAAM,OAAO,GAAG,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC;YACzC,QAAQ,EAAE,CAAC;QACb,CAAC,CAAC,CAAC;IACL,CAAC;IAEM,oBAAoB,CAAC,QAAgB;QAC1C,MAAM,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;QAC9C,IAAI,CAAC,QAAQ;YAAE,OAAO,SAAS,CAAC;QAChC,OAAO,QAAQ,CAAC,OAAO,CAAC;IAC1B,CAAC;IAEM,iBAAiB,CAAC,QAAgB;QACvC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;QAChC,IAAI,CAAC,0BAA0B,CAAC,QAAQ,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC;IACrD,CAAC;IAEM,cAAc,CAAC,cAAoC;QACxD,MAAM,eAAe,GAAG,IAAI,CAAC,cAAc,CAAC,QAAQ,EAAE,CAAC,UAAU,CAAC;QAClE,IAAI,eAAe,KAAK,cAAc,EAAE,CAAC;YACvC,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,EAAE,UAAU,EAAE,cAAc,EAAE,EAAE,IAAI,CAAC,CAAC;QACrE,CAAC;IACH,CAAC;IAEO,0BAA0B,GAE7B,CAAC,EAAE,QAAQ,EAAE,EAAE,EAAE;QACpB,MAAM,EAAE,UAAU,EAAE,GAAG,IAAI,CAAC,cAAc,EAAE,CAAC;QAC7C,MAAM,OAAO,GAAG,UAAU,EAAE,CAAC;QAE7B,MAAM,aAAa,GAAI,OAAO,CAAC,MAA4B;aACxD,wBAAwB,CAAC;QAE5B,MAAM,aAAa,GAAG,WAAW,CAAC,GAAG,EAAE;YACrC,MAAM,WAAW,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;YACjD,IAAI,CAAC,WAAW;gBACd,MAAM,IAAI,KAAK,CAAC,kDAAkD,CAAC,CAAC;YAEtE,WAAW,CAAC,OAAO,GAAG,aAAa,CAAC,QAAQ,EAAE,CAAC;YAC/C,IAAI,CAAC,kBAAkB,EAAE,CAAC;QAC5B,CAAC,EAAE,CAAC,QAAQ,EAAE,aAAa,CAAC,CAAC,CAAC;QAE9B,MAAM,SAAS,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC;QAChC,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE,CAAC;YACvB,aAAa,EAAE,CAAC;QAClB,CAAC;QAED,SAAS,CAAC,GAAG,EAAE;YACb,SAAS,CAAC,OAAO,GAAG,IAAI,CAAC;YACzB,aAAa,EAAE,CAAC;YAChB,OAAO,aAAa,CAAC,cAAc,CAAC,aAAa,CAAC,CAAC;QACrD,CAAC,EAAE,CAAC,aAAa,EAAE,aAAa,CAAC,CAAC,CAAC;QAEnC,MAAM,GAAG,GAAG,MAAM,EAAE,CAAC;QACrB,MAAM,cAAc,GAAG,MAAM,CAA+B,SAAS,CAAC,CAAC;QAEvE,SAAS,CAAC,GAAG,EAAE;YACb,MAAM,WAAW,GAAG,aAAa,CAAC,QAAQ,EAAE,CAAC;YAC7C,MAAM,uBAAuB,GAAI,WAAuC,CACtE,oCAAoC,CACrC,CAAC;YACF,IAAI,OAAO,uBAAuB,KAAK,UAAU,EAAE,CAAC;gBAClD,uBAAuB,CAAC,IAAI,CAAC,WAAW,EAAE,GAAG,EAAE,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC;YAC1E,CAAC;QACH,CAAC,EAAE,CAAC,aAAa,CAAC,CAAC,CAAC;QAEpB,SAAS,CAAC,GAAG,EAAE;YACb,OAAO,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,WAAW,CAAC,YAAY,EAAE,GAAG,EAAE;gBACzD,MAAM,KAAK,GAAG,GAAG,CAAC,cAAc,EAAE,CAAC,QAAQ,EAAE,CAAC;gBAC9C,IAAI,KAAK,CAAC,MAAM,KAAK,KAAK,EAAE,CAAC;oBAC3B,cAAc,CAAC,OAAO,GAAG,GAAG,CAAC,cAAc,EAAE,CAAC,UAAU,EAAE,CAAC;oBAE3D,MAAM,OAAO,GAAG,OAAO,CAAC,MAAM,CAAC,WAAW,CAAC,QAAQ,EAAE,GAAG,EAAE;wBACxD,OAAO,EAAE,CAAC;wBAEV,GAAG,CAAC,cAAc,EAAE,CAAC,aAAa,EAAE,CAAC;oBACvC,CAAC,CAAC,CAAC;gBACL,CAAC;YACH,CAAC,CAAC,CAAC;QACL,CAAC,EAAE,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC,CAAC;QAEnB,OAAO,IAAI,CAAC;IACd,CAAC,CAAC;IAEM,0BAA0B,GAG7B,IAAI,CAAC,CAAC,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,EAAE;QAC7C,MAAM,OAAO,GAAG,OAAO,CACrB,GAAG,EAAE,CAAC,IAAI,qBAAqB,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,WAAW,CAAC,QAAQ,CAAC,EAClE,CAAC,QAAQ,CAAC,CACX,CAAC;QAEF,OAAO,CACL,KAAC,6BAA6B,IAAC,OAAO,EAAE,OAAO,YAC7C,KAAC,QAAQ,cACP,KAAC,IAAI,CAAC,0BAA0B,IAAC,QAAQ,EAAE,QAAQ,GAAI,GAC9C,GACmB,CACjC,CAAC;IACJ,CAAC,CAAC,CAAC;IAEI,+BAA+B,GAEjC,CAAC,EAAE,QAAQ,EAAE,EAAE,EAAE;QACpB,IAAI,CAAC,0BAA0B,EAAE,CAAC,CAAC,4CAA4C;QAE/E,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,CACzD,KAAC,IAAI,CAAC,0BAA0B,IAE9B,QAAQ,EAAE,QAAQ,EAClB,QAAQ,EAAE,QAAQ,IAFb,QAAQ,CAGb,CACH,CAAC,CAAC;IACL,CAAC,CAAC;CACH"}
@@ -0,0 +1,113 @@
1
+ import type { ThreadListRuntimeCore } from "@assistant-ui/core";
2
+ import { BaseSubscribable, type RemoteThreadData, type THREAD_MAPPING_ID, type RemoteThreadListOptions } from "@assistant-ui/core/internal";
3
+ import { FC } from "react";
4
+ import type { ModelContextProvider } from "@assistant-ui/core";
5
+ export declare class RemoteThreadListThreadListRuntimeCore extends BaseSubscribable implements ThreadListRuntimeCore {
6
+ private _options;
7
+ private readonly _hookManager;
8
+ private _loadThreadsPromise;
9
+ private _mainThreadId;
10
+ private readonly _state;
11
+ get threadItems(): Readonly<Record<THREAD_MAPPING_ID, RemoteThreadData>>;
12
+ getLoadThreadsPromise(): Promise<void>;
13
+ private readonly contextProvider;
14
+ constructor(options: RemoteThreadListOptions, contextProvider: ModelContextProvider);
15
+ private useProvider;
16
+ __internal_setOptions(options: RemoteThreadListOptions): void;
17
+ __internal_load(): void;
18
+ get isLoading(): boolean;
19
+ get threadIds(): readonly string[];
20
+ get archivedThreadIds(): readonly string[];
21
+ get newThreadId(): string | undefined;
22
+ get mainThreadId(): string;
23
+ getMainThreadRuntimeCore(): Readonly<{
24
+ getMessageById: (messageId: string) => {
25
+ parentId: string | null;
26
+ message: import("@assistant-ui/core").ThreadMessage;
27
+ index: number;
28
+ } | undefined;
29
+ getBranches: (messageId: string) => readonly string[];
30
+ switchToBranch: (branchId: string) => void;
31
+ append: (message: import("@assistant-ui/core").AppendMessage) => void;
32
+ startRun: (config: import("@assistant-ui/core").StartRunConfig) => void;
33
+ resumeRun: (config: import("@assistant-ui/core").ResumeRunConfig) => void;
34
+ cancelRun: () => void;
35
+ addToolResult: (options: import("@assistant-ui/core").AddToolResultOptions) => void;
36
+ resumeToolCall: (options: import("@assistant-ui/core").ResumeToolCallOptions) => void;
37
+ speak: (messageId: string) => void;
38
+ stopSpeaking: () => void;
39
+ submitFeedback: (feedback: import("@assistant-ui/core").SubmitFeedbackOptions) => void;
40
+ getModelContext: () => import("@assistant-ui/core").ModelContext;
41
+ composer: import("@assistant-ui/core").ThreadComposerRuntimeCore;
42
+ getEditComposer: (messageId: string) => import("@assistant-ui/core").ComposerRuntimeCore | undefined;
43
+ beginEdit: (messageId: string) => void;
44
+ speech: import("@assistant-ui/core").SpeechState | undefined;
45
+ capabilities: Readonly<import("@assistant-ui/core").RuntimeCapabilities>;
46
+ isDisabled: boolean;
47
+ isLoading: boolean;
48
+ messages: readonly import("@assistant-ui/core").ThreadMessage[];
49
+ state: import("assistant-stream/utils").ReadonlyJSONValue;
50
+ suggestions: readonly import("@assistant-ui/core").ThreadSuggestion[];
51
+ extras: unknown;
52
+ subscribe: (callback: () => void) => import("@assistant-ui/core").Unsubscribe;
53
+ import(repository: import("@assistant-ui/core").ExportedMessageRepository): void;
54
+ export(): import("@assistant-ui/core").ExportedMessageRepository;
55
+ exportExternalState(): any;
56
+ importExternalState(state: any): void;
57
+ reset(initialMessages?: readonly import("@assistant-ui/core").ThreadMessageLike[]): void;
58
+ unstable_on(event: import("@assistant-ui/core").ThreadRuntimeEventType, callback: () => void): import("@assistant-ui/core").Unsubscribe;
59
+ unstable_loadExternalState: (state: any) => void;
60
+ }>;
61
+ getThreadRuntimeCore(threadIdOrRemoteId: string): Readonly<{
62
+ getMessageById: (messageId: string) => {
63
+ parentId: string | null;
64
+ message: import("@assistant-ui/core").ThreadMessage;
65
+ index: number;
66
+ } | undefined;
67
+ getBranches: (messageId: string) => readonly string[];
68
+ switchToBranch: (branchId: string) => void;
69
+ append: (message: import("@assistant-ui/core").AppendMessage) => void;
70
+ startRun: (config: import("@assistant-ui/core").StartRunConfig) => void;
71
+ resumeRun: (config: import("@assistant-ui/core").ResumeRunConfig) => void;
72
+ cancelRun: () => void;
73
+ addToolResult: (options: import("@assistant-ui/core").AddToolResultOptions) => void;
74
+ resumeToolCall: (options: import("@assistant-ui/core").ResumeToolCallOptions) => void;
75
+ speak: (messageId: string) => void;
76
+ stopSpeaking: () => void;
77
+ submitFeedback: (feedback: import("@assistant-ui/core").SubmitFeedbackOptions) => void;
78
+ getModelContext: () => import("@assistant-ui/core").ModelContext;
79
+ composer: import("@assistant-ui/core").ThreadComposerRuntimeCore;
80
+ getEditComposer: (messageId: string) => import("@assistant-ui/core").ComposerRuntimeCore | undefined;
81
+ beginEdit: (messageId: string) => void;
82
+ speech: import("@assistant-ui/core").SpeechState | undefined;
83
+ capabilities: Readonly<import("@assistant-ui/core").RuntimeCapabilities>;
84
+ isDisabled: boolean;
85
+ isLoading: boolean;
86
+ messages: readonly import("@assistant-ui/core").ThreadMessage[];
87
+ state: import("assistant-stream/utils").ReadonlyJSONValue;
88
+ suggestions: readonly import("@assistant-ui/core").ThreadSuggestion[];
89
+ extras: unknown;
90
+ subscribe: (callback: () => void) => import("@assistant-ui/core").Unsubscribe;
91
+ import(repository: import("@assistant-ui/core").ExportedMessageRepository): void;
92
+ export(): import("@assistant-ui/core").ExportedMessageRepository;
93
+ exportExternalState(): any;
94
+ importExternalState(state: any): void;
95
+ reset(initialMessages?: readonly import("@assistant-ui/core").ThreadMessageLike[]): void;
96
+ unstable_on(event: import("@assistant-ui/core").ThreadRuntimeEventType, callback: () => void): import("@assistant-ui/core").Unsubscribe;
97
+ unstable_loadExternalState: (state: any) => void;
98
+ }>;
99
+ getItemById(threadIdOrRemoteId: string): RemoteThreadData | undefined;
100
+ switchToThread(threadIdOrRemoteId: string): Promise<void>;
101
+ switchToNewThread(): Promise<void>;
102
+ initialize: (threadId: string) => Promise<import("@assistant-ui/core").RemoteThreadInitializeResponse>;
103
+ generateTitle: (threadId: string) => Promise<void>;
104
+ rename(threadIdOrRemoteId: string, newTitle: string): Promise<void>;
105
+ private _ensureThreadIsNotMain;
106
+ archive(threadIdOrRemoteId: string): Promise<void>;
107
+ unarchive(threadIdOrRemoteId: string): Promise<void>;
108
+ delete(threadIdOrRemoteId: string): Promise<void>;
109
+ detach(threadIdOrRemoteId: string): Promise<void>;
110
+ private useBoundIds;
111
+ __internal_RenderComponent: FC;
112
+ }
113
+ //# sourceMappingURL=RemoteThreadListThreadListRuntimeCore.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"RemoteThreadListThreadListRuntimeCore.d.ts","sourceRoot":"","sources":["../../src/runtimes/RemoteThreadListThreadListRuntimeCore.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,oBAAoB,CAAC;AAChE,OAAO,EAEL,gBAAgB,EAGhB,KAAK,gBAAgB,EACrB,KAAK,iBAAiB,EAKtB,KAAK,uBAAuB,EAC7B,MAAM,6BAA6B,CAAC;AAErC,OAAO,EAEL,EAAE,EAKH,MAAM,OAAO,CAAC;AAGf,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,oBAAoB,CAAC;AAG/D,qBAAa,qCACX,SAAQ,gBACR,YAAW,qBAAqB;IAEhC,OAAO,CAAC,QAAQ,CAA2B;IAC3C,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAsC;IAEnE,OAAO,CAAC,mBAAmB,CAA4B;IAEvD,OAAO,CAAC,aAAa,CAAU;IAC/B,OAAO,CAAC,QAAQ,CAAC,MAAM,CAOpB;IAEH,IAAW,WAAW,0DAErB;IAEM,qBAAqB;IAsE5B,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAuB;gBAGrD,OAAO,EAAE,uBAAuB,EAChC,eAAe,EAAE,oBAAoB;IAkBvC,OAAO,CAAC,WAAW,CAAC;IAEb,qBAAqB,CAAC,OAAO,EAAE,uBAAuB;IActD,eAAe;IAItB,IAAW,SAAS,YAEnB;IAED,IAAW,SAAS,sBAEnB;IAED,IAAW,iBAAiB,sBAE3B;IAED,IAAW,WAAW,uBAErB;IAED,IAAW,YAAY,IAAI,MAAM,CAEhC;IAEM,wBAAwB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAMxB,oBAAoB,CAAC,kBAAkB,EAAE,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAS/C,WAAW,CAAC,kBAAkB,EAAE,MAAM;IAIhC,cAAc,CAAC,kBAAkB,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAkEzD,iBAAiB,IAAI,OAAO,CAAC,IAAI,CAAC;IAwCxC,UAAU,GAAU,UAAU,MAAM,0EAmDzC;IAEK,aAAa,GAAU,UAAU,MAAM,mBAoC5C;IAEK,MAAM,CAAC,kBAAkB,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;YA4B5D,sBAAsB;IASvB,OAAO,CAAC,kBAAkB,EAAE,MAAM;IAmBxC,SAAS,CAAC,kBAAkB,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAqB9C,MAAM,CAAC,kBAAkB,EAAE,MAAM;IAmBjC,MAAM,CAAC,kBAAkB,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAU9D,OAAO,CAAC,WAAW,CAA8B;IAE1C,0BAA0B,EAAE,EAAE,CA6BnC;CACH"}
@@ -0,0 +1,440 @@
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
+ import { generateId, BaseSubscribable, OptimisticState, EMPTY_THREAD_CORE, createThreadMappingId, getThreadData, updateStatusReducer, } from "@assistant-ui/core/internal";
3
+ import { RemoteThreadListHookInstanceManager } from "./RemoteThreadListHookInstanceManager.js";
4
+ import { Fragment, useEffect, useId, } from "react";
5
+ import { create } from "zustand";
6
+ import { AssistantMessageStream } from "assistant-stream";
7
+ import { RuntimeAdapterProvider } from "../context/providers/RuntimeAdapterProvider.js";
8
+ export class RemoteThreadListThreadListRuntimeCore extends BaseSubscribable {
9
+ _options;
10
+ _hookManager;
11
+ _loadThreadsPromise;
12
+ _mainThreadId;
13
+ _state = new OptimisticState({
14
+ isLoading: false,
15
+ newThreadId: undefined,
16
+ threadIds: [],
17
+ archivedThreadIds: [],
18
+ threadIdMap: {},
19
+ threadData: {},
20
+ });
21
+ get threadItems() {
22
+ return this._state.value.threadData;
23
+ }
24
+ getLoadThreadsPromise() {
25
+ if (!this._loadThreadsPromise) {
26
+ this._loadThreadsPromise = this._state
27
+ .optimisticUpdate({
28
+ execute: () => this._options.adapter.list(),
29
+ loading: (state) => {
30
+ return {
31
+ ...state,
32
+ isLoading: true,
33
+ };
34
+ },
35
+ then: (state, l) => {
36
+ const newThreadIds = [];
37
+ const newArchivedThreadIds = [];
38
+ const newThreadIdMap = {};
39
+ const newThreadData = {};
40
+ for (const thread of l.threads) {
41
+ switch (thread.status) {
42
+ case "regular":
43
+ newThreadIds.push(thread.remoteId);
44
+ break;
45
+ case "archived":
46
+ newArchivedThreadIds.push(thread.remoteId);
47
+ break;
48
+ default: {
49
+ const _exhaustiveCheck = thread.status;
50
+ throw new Error(`Unsupported state: ${_exhaustiveCheck}`);
51
+ }
52
+ }
53
+ const mappingId = createThreadMappingId(thread.remoteId);
54
+ newThreadIdMap[thread.remoteId] = mappingId;
55
+ newThreadData[mappingId] = {
56
+ id: thread.remoteId,
57
+ remoteId: thread.remoteId,
58
+ externalId: thread.externalId,
59
+ status: thread.status,
60
+ title: thread.title,
61
+ initializeTask: Promise.resolve({
62
+ remoteId: thread.remoteId,
63
+ externalId: thread.externalId,
64
+ }),
65
+ };
66
+ }
67
+ return {
68
+ ...state,
69
+ threadIds: newThreadIds,
70
+ archivedThreadIds: newArchivedThreadIds,
71
+ threadIdMap: {
72
+ ...state.threadIdMap,
73
+ ...newThreadIdMap,
74
+ },
75
+ threadData: {
76
+ ...state.threadData,
77
+ ...newThreadData,
78
+ },
79
+ };
80
+ },
81
+ })
82
+ .then(() => { });
83
+ }
84
+ return this._loadThreadsPromise;
85
+ }
86
+ contextProvider;
87
+ constructor(options, contextProvider) {
88
+ super();
89
+ this.contextProvider = contextProvider;
90
+ this._state.subscribe(() => this._notifySubscribers());
91
+ this._hookManager = new RemoteThreadListHookInstanceManager(options.runtimeHook, this);
92
+ this.useProvider = create(() => ({
93
+ Provider: (options.adapter.unstable_Provider ??
94
+ Fragment),
95
+ }));
96
+ this.__internal_setOptions(options);
97
+ this.switchToNewThread();
98
+ }
99
+ useProvider;
100
+ __internal_setOptions(options) {
101
+ if (this._options === options)
102
+ return;
103
+ this._options = options;
104
+ const Provider = (options.adapter.unstable_Provider ??
105
+ Fragment);
106
+ if (Provider !== this.useProvider.getState().Provider) {
107
+ this.useProvider.setState({ Provider }, true);
108
+ }
109
+ this._hookManager.setRuntimeHook(options.runtimeHook);
110
+ }
111
+ __internal_load() {
112
+ this.getLoadThreadsPromise(); // begin loading on initial bind
113
+ }
114
+ get isLoading() {
115
+ return this._state.value.isLoading;
116
+ }
117
+ get threadIds() {
118
+ return this._state.value.threadIds;
119
+ }
120
+ get archivedThreadIds() {
121
+ return this._state.value.archivedThreadIds;
122
+ }
123
+ get newThreadId() {
124
+ return this._state.value.newThreadId;
125
+ }
126
+ get mainThreadId() {
127
+ return this._mainThreadId;
128
+ }
129
+ getMainThreadRuntimeCore() {
130
+ const result = this._hookManager.getThreadRuntimeCore(this._mainThreadId);
131
+ if (!result)
132
+ return EMPTY_THREAD_CORE;
133
+ return result;
134
+ }
135
+ getThreadRuntimeCore(threadIdOrRemoteId) {
136
+ const data = this.getItemById(threadIdOrRemoteId);
137
+ if (!data)
138
+ throw new Error("Thread not found");
139
+ const result = this._hookManager.getThreadRuntimeCore(data.id);
140
+ if (!result)
141
+ throw new Error("Thread not found");
142
+ return result;
143
+ }
144
+ getItemById(threadIdOrRemoteId) {
145
+ return getThreadData(this._state.value, threadIdOrRemoteId);
146
+ }
147
+ async switchToThread(threadIdOrRemoteId) {
148
+ let data = this.getItemById(threadIdOrRemoteId);
149
+ if (!data) {
150
+ const remoteMetadata = await this._options.adapter.fetch(threadIdOrRemoteId);
151
+ const state = this._state.value;
152
+ const mappingId = createThreadMappingId(remoteMetadata.remoteId);
153
+ const newThreadData = {
154
+ ...state.threadData,
155
+ [mappingId]: {
156
+ id: mappingId,
157
+ initializeTask: Promise.resolve({
158
+ remoteId: remoteMetadata.remoteId,
159
+ externalId: remoteMetadata.externalId,
160
+ }),
161
+ remoteId: remoteMetadata.remoteId,
162
+ externalId: remoteMetadata.externalId,
163
+ status: remoteMetadata.status,
164
+ title: remoteMetadata.title,
165
+ },
166
+ };
167
+ const newThreadIdMap = {
168
+ ...state.threadIdMap,
169
+ [remoteMetadata.remoteId]: mappingId,
170
+ };
171
+ const newThreadIds = remoteMetadata.status === "regular"
172
+ ? [...state.threadIds, remoteMetadata.remoteId]
173
+ : state.threadIds;
174
+ const newArchivedThreadIds = remoteMetadata.status === "archived"
175
+ ? [...state.archivedThreadIds, remoteMetadata.remoteId]
176
+ : state.archivedThreadIds;
177
+ this._state.update({
178
+ ...state,
179
+ threadIds: newThreadIds,
180
+ archivedThreadIds: newArchivedThreadIds,
181
+ threadIdMap: newThreadIdMap,
182
+ threadData: newThreadData,
183
+ });
184
+ data = this.getItemById(threadIdOrRemoteId);
185
+ }
186
+ if (!data)
187
+ throw new Error("Thread not found");
188
+ if (this._mainThreadId === data.id)
189
+ return;
190
+ const task = this._hookManager.startThreadRuntime(data.id);
191
+ if (this.mainThreadId !== undefined) {
192
+ await task;
193
+ }
194
+ else {
195
+ task.then(() => this._notifySubscribers());
196
+ }
197
+ if (data.status === "archived")
198
+ await this.unarchive(data.id);
199
+ this._mainThreadId = data.id;
200
+ this._notifySubscribers();
201
+ }
202
+ async switchToNewThread() {
203
+ // an initialization transaction is in progress, wait for it to settle
204
+ while (this._state.baseValue.newThreadId !== undefined &&
205
+ this._state.value.newThreadId === undefined) {
206
+ await this._state.waitForUpdate();
207
+ }
208
+ const state = this._state.value;
209
+ let id = this._state.value.newThreadId;
210
+ if (id === undefined) {
211
+ do {
212
+ id = `__LOCALID_${generateId()}`;
213
+ } while (state.threadIdMap[id]);
214
+ const mappingId = createThreadMappingId(id);
215
+ this._state.update({
216
+ ...state,
217
+ newThreadId: id,
218
+ threadIdMap: {
219
+ ...state.threadIdMap,
220
+ [id]: mappingId,
221
+ },
222
+ threadData: {
223
+ ...state.threadData,
224
+ [mappingId]: {
225
+ status: "new",
226
+ id,
227
+ remoteId: undefined,
228
+ externalId: undefined,
229
+ title: undefined,
230
+ },
231
+ },
232
+ });
233
+ }
234
+ return this.switchToThread(id);
235
+ }
236
+ initialize = async (threadId) => {
237
+ if (this._state.value.newThreadId !== threadId) {
238
+ const data = this.getItemById(threadId);
239
+ if (!data)
240
+ throw new Error("Thread not found");
241
+ if (data.status === "new")
242
+ throw new Error("Unexpected new state");
243
+ return data.initializeTask;
244
+ }
245
+ return this._state.optimisticUpdate({
246
+ execute: () => {
247
+ return this._options.adapter.initialize(threadId);
248
+ },
249
+ optimistic: (state) => {
250
+ return updateStatusReducer(state, threadId, "regular");
251
+ },
252
+ loading: (state, task) => {
253
+ const mappingId = createThreadMappingId(threadId);
254
+ return {
255
+ ...state,
256
+ threadData: {
257
+ ...state.threadData,
258
+ [mappingId]: {
259
+ ...state.threadData[mappingId],
260
+ initializeTask: task,
261
+ },
262
+ },
263
+ };
264
+ },
265
+ then: (state, { remoteId, externalId }) => {
266
+ const data = getThreadData(state, threadId);
267
+ if (!data)
268
+ return state;
269
+ const mappingId = createThreadMappingId(threadId);
270
+ return {
271
+ ...state,
272
+ threadIdMap: {
273
+ ...state.threadIdMap,
274
+ [remoteId]: mappingId,
275
+ },
276
+ threadData: {
277
+ ...state.threadData,
278
+ [mappingId]: {
279
+ ...data,
280
+ initializeTask: Promise.resolve({ remoteId, externalId }),
281
+ remoteId,
282
+ externalId,
283
+ },
284
+ },
285
+ };
286
+ },
287
+ });
288
+ };
289
+ generateTitle = async (threadId) => {
290
+ const data = this.getItemById(threadId);
291
+ if (!data)
292
+ throw new Error("Thread not found");
293
+ if (data.status === "new")
294
+ throw new Error("Thread is not yet initialized");
295
+ const { remoteId } = await data.initializeTask;
296
+ const runtimeCore = this._hookManager.getThreadRuntimeCore(data.id);
297
+ if (!runtimeCore)
298
+ return; // thread is no longer running
299
+ const messages = runtimeCore.messages;
300
+ const stream = await this._options.adapter.generateTitle(remoteId, messages);
301
+ const messageStream = AssistantMessageStream.fromAssistantStream(stream);
302
+ for await (const result of messageStream) {
303
+ const textPart = result.parts.find((c) => c.type === "text");
304
+ const newTitle = textPart && "text" in textPart ? textPart.text : undefined;
305
+ const state = this._state.baseValue;
306
+ const currentData = getThreadData(state, data.id);
307
+ if (!currentData)
308
+ continue;
309
+ this._state.update({
310
+ ...state,
311
+ threadData: {
312
+ ...state.threadData,
313
+ [data.id]: {
314
+ ...currentData,
315
+ title: newTitle,
316
+ },
317
+ },
318
+ });
319
+ }
320
+ };
321
+ rename(threadIdOrRemoteId, newTitle) {
322
+ const data = this.getItemById(threadIdOrRemoteId);
323
+ if (!data)
324
+ throw new Error("Thread not found");
325
+ if (data.status === "new")
326
+ throw new Error("Thread is not yet initialized");
327
+ return this._state.optimisticUpdate({
328
+ execute: async () => {
329
+ const { remoteId } = await data.initializeTask;
330
+ return this._options.adapter.rename(remoteId, newTitle);
331
+ },
332
+ optimistic: (state) => {
333
+ const data = getThreadData(state, threadIdOrRemoteId);
334
+ if (!data)
335
+ return state;
336
+ return {
337
+ ...state,
338
+ threadData: {
339
+ ...state.threadData,
340
+ [data.id]: {
341
+ ...data,
342
+ title: newTitle,
343
+ },
344
+ },
345
+ };
346
+ },
347
+ });
348
+ }
349
+ async _ensureThreadIsNotMain(threadId) {
350
+ if (threadId === this.newThreadId)
351
+ throw new Error("Cannot ensure new thread is not main");
352
+ if (threadId === this._mainThreadId) {
353
+ await this.switchToNewThread();
354
+ }
355
+ }
356
+ async archive(threadIdOrRemoteId) {
357
+ const data = this.getItemById(threadIdOrRemoteId);
358
+ if (!data)
359
+ throw new Error("Thread not found");
360
+ if (data.status !== "regular")
361
+ throw new Error("Thread is not yet initialized or already archived");
362
+ await this._ensureThreadIsNotMain(data.id);
363
+ return this._state.optimisticUpdate({
364
+ execute: async () => {
365
+ const { remoteId } = await data.initializeTask;
366
+ return this._options.adapter.archive(remoteId);
367
+ },
368
+ optimistic: (state) => {
369
+ return updateStatusReducer(state, data.id, "archived");
370
+ },
371
+ });
372
+ }
373
+ unarchive(threadIdOrRemoteId) {
374
+ const data = this.getItemById(threadIdOrRemoteId);
375
+ if (!data)
376
+ throw new Error("Thread not found");
377
+ if (data.status !== "archived")
378
+ throw new Error("Thread is not archived");
379
+ return this._state.optimisticUpdate({
380
+ execute: async () => {
381
+ try {
382
+ const { remoteId } = await data.initializeTask;
383
+ return await this._options.adapter.unarchive(remoteId);
384
+ }
385
+ catch (error) {
386
+ await this._ensureThreadIsNotMain(data.id);
387
+ throw error;
388
+ }
389
+ },
390
+ optimistic: (state) => {
391
+ return updateStatusReducer(state, data.id, "regular");
392
+ },
393
+ });
394
+ }
395
+ async delete(threadIdOrRemoteId) {
396
+ const data = this.getItemById(threadIdOrRemoteId);
397
+ if (!data)
398
+ throw new Error("Thread not found");
399
+ if (data.status !== "regular" && data.status !== "archived")
400
+ throw new Error("Thread is not yet initialized");
401
+ await this._ensureThreadIsNotMain(data.id);
402
+ return this._state.optimisticUpdate({
403
+ execute: async () => {
404
+ const { remoteId } = await data.initializeTask;
405
+ return await this._options.adapter.delete(remoteId);
406
+ },
407
+ optimistic: (state) => {
408
+ return updateStatusReducer(state, data.id, "deleted");
409
+ },
410
+ });
411
+ }
412
+ async detach(threadIdOrRemoteId) {
413
+ const data = this.getItemById(threadIdOrRemoteId);
414
+ if (!data)
415
+ throw new Error("Thread not found");
416
+ if (data.status !== "regular" && data.status !== "archived")
417
+ throw new Error("Thread is not yet initialized");
418
+ await this._ensureThreadIsNotMain(data.id);
419
+ this._hookManager.stopThreadRuntime(data.id);
420
+ }
421
+ useBoundIds = create(() => []);
422
+ __internal_RenderComponent = () => {
423
+ const id = useId();
424
+ useEffect(() => {
425
+ this.useBoundIds.setState((s) => [...s, id], true);
426
+ return () => {
427
+ this.useBoundIds.setState((s) => s.filter((i) => i !== id), true);
428
+ };
429
+ }, [id]);
430
+ const boundIds = this.useBoundIds();
431
+ const { Provider } = this.useProvider();
432
+ const adapters = {
433
+ modelContext: this.contextProvider,
434
+ };
435
+ return ((boundIds.length === 0 || boundIds[0] === id) && (
436
+ // only render if the component is the first one mounted
437
+ _jsx(RuntimeAdapterProvider, { adapters: adapters, children: _jsx(this._hookManager.__internal_RenderThreadRuntimes, { provider: Provider }) })));
438
+ };
439
+ }
440
+ //# sourceMappingURL=RemoteThreadListThreadListRuntimeCore.js.map