@assistant-ui/react 0.5.100 → 0.7.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (709) hide show
  1. package/dist/api/AssistantRuntime.d.ts +2 -52
  2. package/dist/api/AssistantRuntime.d.ts.map +1 -1
  3. package/dist/api/AssistantRuntime.js +0 -8
  4. package/dist/api/AssistantRuntime.js.map +1 -1
  5. package/dist/api/AssistantRuntime.mjs +0 -8
  6. package/dist/api/AssistantRuntime.mjs.map +1 -1
  7. package/dist/api/AttachmentRuntime.d.ts +0 -12
  8. package/dist/api/AttachmentRuntime.d.ts.map +1 -1
  9. package/dist/api/AttachmentRuntime.js.map +1 -1
  10. package/dist/api/AttachmentRuntime.mjs.map +1 -1
  11. package/dist/api/ComposerRuntime.d.ts +5 -121
  12. package/dist/api/ComposerRuntime.d.ts.map +1 -1
  13. package/dist/api/ComposerRuntime.js +4 -84
  14. package/dist/api/ComposerRuntime.js.map +1 -1
  15. package/dist/api/ComposerRuntime.mjs +4 -84
  16. package/dist/api/ComposerRuntime.mjs.map +1 -1
  17. package/dist/api/ContentPartRuntime.d.ts +0 -4
  18. package/dist/api/ContentPartRuntime.d.ts.map +1 -1
  19. package/dist/api/ContentPartRuntime.js.map +1 -1
  20. package/dist/api/ContentPartRuntime.mjs.map +1 -1
  21. package/dist/api/MessageRuntime.d.ts +1 -12
  22. package/dist/api/MessageRuntime.d.ts.map +1 -1
  23. package/dist/api/MessageRuntime.js +9 -5
  24. package/dist/api/MessageRuntime.js.map +1 -1
  25. package/dist/api/MessageRuntime.mjs +8 -4
  26. package/dist/api/MessageRuntime.mjs.map +1 -1
  27. package/dist/api/ThreadListItemRuntime.d.ts +9 -5
  28. package/dist/api/ThreadListItemRuntime.d.ts.map +1 -1
  29. package/dist/api/ThreadListItemRuntime.js +10 -6
  30. package/dist/api/ThreadListItemRuntime.js.map +1 -1
  31. package/dist/api/ThreadListItemRuntime.mjs +10 -6
  32. package/dist/api/ThreadListItemRuntime.mjs.map +1 -1
  33. package/dist/api/ThreadListRuntime.d.ts +5 -23
  34. package/dist/api/ThreadListRuntime.d.ts.map +1 -1
  35. package/dist/api/ThreadListRuntime.js +23 -26
  36. package/dist/api/ThreadListRuntime.js.map +1 -1
  37. package/dist/api/ThreadListRuntime.mjs +23 -26
  38. package/dist/api/ThreadListRuntime.mjs.map +1 -1
  39. package/dist/api/ThreadRuntime.d.ts +17 -164
  40. package/dist/api/ThreadRuntime.d.ts.map +1 -1
  41. package/dist/api/ThreadRuntime.js +2 -94
  42. package/dist/api/ThreadRuntime.js.map +1 -1
  43. package/dist/api/ThreadRuntime.mjs +2 -94
  44. package/dist/api/ThreadRuntime.mjs.map +1 -1
  45. package/dist/context/providers/AssistantRuntimeProvider.d.ts.map +1 -1
  46. package/dist/context/providers/AssistantRuntimeProvider.js +0 -1
  47. package/dist/context/providers/AssistantRuntimeProvider.js.map +1 -1
  48. package/dist/context/providers/AssistantRuntimeProvider.mjs +0 -1
  49. package/dist/context/providers/AssistantRuntimeProvider.mjs.map +1 -1
  50. package/dist/context/providers/TextContentPartProvider.d.ts.map +1 -1
  51. package/dist/context/providers/TextContentPartProvider.js +0 -2
  52. package/dist/context/providers/TextContentPartProvider.js.map +1 -1
  53. package/dist/context/providers/TextContentPartProvider.mjs +0 -2
  54. package/dist/context/providers/TextContentPartProvider.mjs.map +1 -1
  55. package/dist/context/providers/ThreadListItemRuntimeProvider.d.ts +1 -4
  56. package/dist/context/providers/ThreadListItemRuntimeProvider.d.ts.map +1 -1
  57. package/dist/context/providers/ThreadRuntimeProvider.d.ts.map +1 -1
  58. package/dist/context/providers/ThreadRuntimeProvider.js +1 -13
  59. package/dist/context/providers/ThreadRuntimeProvider.js.map +1 -1
  60. package/dist/context/providers/ThreadRuntimeProvider.mjs +1 -13
  61. package/dist/context/providers/ThreadRuntimeProvider.mjs.map +1 -1
  62. package/dist/context/react/AssistantContext.d.ts +16 -88
  63. package/dist/context/react/AssistantContext.d.ts.map +1 -1
  64. package/dist/context/react/AssistantContext.js +0 -15
  65. package/dist/context/react/AssistantContext.js.map +1 -1
  66. package/dist/context/react/AssistantContext.mjs +0 -11
  67. package/dist/context/react/AssistantContext.mjs.map +1 -1
  68. package/dist/context/react/AttachmentContext.d.ts +16 -32
  69. package/dist/context/react/AttachmentContext.d.ts.map +1 -1
  70. package/dist/context/react/ComposerContext.d.ts +0 -5
  71. package/dist/context/react/ComposerContext.d.ts.map +1 -1
  72. package/dist/context/react/ComposerContext.js +3 -5
  73. package/dist/context/react/ComposerContext.js.map +1 -1
  74. package/dist/context/react/ComposerContext.mjs +2 -3
  75. package/dist/context/react/ComposerContext.mjs.map +1 -1
  76. package/dist/context/react/ContentPartContext.d.ts +0 -5
  77. package/dist/context/react/ContentPartContext.d.ts.map +1 -1
  78. package/dist/context/react/ContentPartContext.js +3 -5
  79. package/dist/context/react/ContentPartContext.js.map +1 -1
  80. package/dist/context/react/ContentPartContext.mjs +2 -3
  81. package/dist/context/react/ContentPartContext.mjs.map +1 -1
  82. package/dist/context/react/MessageContext.d.ts +0 -10
  83. package/dist/context/react/MessageContext.d.ts.map +1 -1
  84. package/dist/context/react/MessageContext.js +2 -6
  85. package/dist/context/react/MessageContext.js.map +1 -1
  86. package/dist/context/react/MessageContext.mjs +2 -4
  87. package/dist/context/react/MessageContext.mjs.map +1 -1
  88. package/dist/context/react/ThreadContext.d.ts +25 -1635
  89. package/dist/context/react/ThreadContext.d.ts.map +1 -1
  90. package/dist/context/react/ThreadContext.js +4 -30
  91. package/dist/context/react/ThreadContext.js.map +1 -1
  92. package/dist/context/react/ThreadContext.mjs +4 -22
  93. package/dist/context/react/ThreadContext.mjs.map +1 -1
  94. package/dist/context/react/ThreadListItemContext.d.ts +6 -24
  95. package/dist/context/react/ThreadListItemContext.d.ts.map +1 -1
  96. package/dist/context/react/index.d.ts +5 -101
  97. package/dist/context/react/index.d.ts.map +1 -1
  98. package/dist/context/react/index.js +0 -38
  99. package/dist/context/react/index.js.map +1 -1
  100. package/dist/context/react/index.mjs +5 -49
  101. package/dist/context/react/index.mjs.map +1 -1
  102. package/dist/index.d.ts +0 -1
  103. package/dist/index.d.ts.map +1 -1
  104. package/dist/index.js +0 -2
  105. package/dist/index.js.map +1 -1
  106. package/dist/index.mjs +0 -1
  107. package/dist/index.mjs.map +1 -1
  108. package/dist/internal.d.ts +1 -0
  109. package/dist/internal.d.ts.map +1 -1
  110. package/dist/internal.js +3 -0
  111. package/dist/internal.js.map +1 -1
  112. package/dist/internal.mjs +2 -0
  113. package/dist/internal.mjs.map +1 -1
  114. package/dist/model-config/useAssistantToolUI.d.ts.map +1 -1
  115. package/dist/model-config/useAssistantToolUI.js.map +1 -1
  116. package/dist/model-config/useAssistantToolUI.mjs.map +1 -1
  117. package/dist/primitive-hooks/contentPart/useContentPartDisplay.d.ts +0 -3
  118. package/dist/primitive-hooks/contentPart/useContentPartDisplay.d.ts.map +1 -1
  119. package/dist/primitive-hooks/contentPart/useContentPartDisplay.js.map +1 -1
  120. package/dist/primitive-hooks/contentPart/useContentPartDisplay.mjs.map +1 -1
  121. package/dist/primitive-hooks/contentPart/useContentPartImage.d.ts +0 -3
  122. package/dist/primitive-hooks/contentPart/useContentPartImage.d.ts.map +1 -1
  123. package/dist/primitive-hooks/contentPart/useContentPartImage.js.map +1 -1
  124. package/dist/primitive-hooks/contentPart/useContentPartImage.mjs.map +1 -1
  125. package/dist/primitive-hooks/contentPart/useContentPartText.d.ts +0 -3
  126. package/dist/primitive-hooks/contentPart/useContentPartText.d.ts.map +1 -1
  127. package/dist/primitive-hooks/contentPart/useContentPartText.js.map +1 -1
  128. package/dist/primitive-hooks/contentPart/useContentPartText.mjs.map +1 -1
  129. package/dist/primitive-hooks/index.d.ts +0 -5
  130. package/dist/primitive-hooks/index.d.ts.map +1 -1
  131. package/dist/primitive-hooks/index.js +1 -11
  132. package/dist/primitive-hooks/index.js.map +1 -1
  133. package/dist/primitive-hooks/index.mjs +0 -5
  134. package/dist/primitive-hooks/index.mjs.map +1 -1
  135. package/dist/primitives/actionBar/ActionBarCopy.d.ts +1 -5
  136. package/dist/primitives/actionBar/ActionBarCopy.d.ts.map +1 -1
  137. package/dist/primitives/actionBar/ActionBarCopy.js.map +1 -1
  138. package/dist/primitives/actionBar/ActionBarCopy.mjs.map +1 -1
  139. package/dist/primitives/actionBar/ActionBarEdit.d.ts +0 -4
  140. package/dist/primitives/actionBar/ActionBarEdit.d.ts.map +1 -1
  141. package/dist/primitives/actionBar/ActionBarEdit.js.map +1 -1
  142. package/dist/primitives/actionBar/ActionBarEdit.mjs.map +1 -1
  143. package/dist/primitives/actionBar/ActionBarFeedbackNegative.d.ts +0 -4
  144. package/dist/primitives/actionBar/ActionBarFeedbackNegative.d.ts.map +1 -1
  145. package/dist/primitives/actionBar/ActionBarFeedbackNegative.js.map +1 -1
  146. package/dist/primitives/actionBar/ActionBarFeedbackNegative.mjs.map +1 -1
  147. package/dist/primitives/actionBar/ActionBarFeedbackPositive.d.ts +0 -4
  148. package/dist/primitives/actionBar/ActionBarFeedbackPositive.d.ts.map +1 -1
  149. package/dist/primitives/actionBar/ActionBarFeedbackPositive.js.map +1 -1
  150. package/dist/primitives/actionBar/ActionBarFeedbackPositive.mjs.map +1 -1
  151. package/dist/primitives/actionBar/ActionBarReload.d.ts +0 -4
  152. package/dist/primitives/actionBar/ActionBarReload.d.ts.map +1 -1
  153. package/dist/primitives/actionBar/ActionBarReload.js.map +1 -1
  154. package/dist/primitives/actionBar/ActionBarReload.mjs.map +1 -1
  155. package/dist/primitives/actionBar/ActionBarRoot.d.ts +0 -4
  156. package/dist/primitives/actionBar/ActionBarRoot.d.ts.map +1 -1
  157. package/dist/primitives/actionBar/ActionBarRoot.js.map +1 -1
  158. package/dist/primitives/actionBar/ActionBarRoot.mjs.map +1 -1
  159. package/dist/primitives/actionBar/ActionBarSpeak.d.ts +0 -4
  160. package/dist/primitives/actionBar/ActionBarSpeak.d.ts.map +1 -1
  161. package/dist/primitives/actionBar/ActionBarSpeak.js.map +1 -1
  162. package/dist/primitives/actionBar/ActionBarSpeak.mjs.map +1 -1
  163. package/dist/primitives/actionBar/ActionBarStopSpeaking.d.ts +0 -4
  164. package/dist/primitives/actionBar/ActionBarStopSpeaking.d.ts.map +1 -1
  165. package/dist/primitives/actionBar/ActionBarStopSpeaking.js.map +1 -1
  166. package/dist/primitives/actionBar/ActionBarStopSpeaking.mjs.map +1 -1
  167. package/dist/primitives/assistantModal/AssistantModalContent.d.ts +0 -4
  168. package/dist/primitives/assistantModal/AssistantModalContent.d.ts.map +1 -1
  169. package/dist/primitives/assistantModal/AssistantModalContent.js.map +1 -1
  170. package/dist/primitives/assistantModal/AssistantModalContent.mjs.map +1 -1
  171. package/dist/primitives/assistantModal/AssistantModalRoot.d.ts +0 -4
  172. package/dist/primitives/assistantModal/AssistantModalRoot.d.ts.map +1 -1
  173. package/dist/primitives/assistantModal/AssistantModalRoot.js.map +1 -1
  174. package/dist/primitives/assistantModal/AssistantModalRoot.mjs.map +1 -1
  175. package/dist/primitives/assistantModal/AssistantModalTrigger.d.ts +0 -4
  176. package/dist/primitives/assistantModal/AssistantModalTrigger.d.ts.map +1 -1
  177. package/dist/primitives/assistantModal/AssistantModalTrigger.js.map +1 -1
  178. package/dist/primitives/assistantModal/AssistantModalTrigger.mjs.map +1 -1
  179. package/dist/primitives/branchPicker/BranchPickerCount.d.ts +0 -4
  180. package/dist/primitives/branchPicker/BranchPickerCount.d.ts.map +1 -1
  181. package/dist/primitives/branchPicker/BranchPickerCount.js.map +1 -1
  182. package/dist/primitives/branchPicker/BranchPickerCount.mjs.map +1 -1
  183. package/dist/primitives/branchPicker/BranchPickerNext.d.ts +0 -4
  184. package/dist/primitives/branchPicker/BranchPickerNext.d.ts.map +1 -1
  185. package/dist/primitives/branchPicker/BranchPickerNext.js.map +1 -1
  186. package/dist/primitives/branchPicker/BranchPickerNext.mjs.map +1 -1
  187. package/dist/primitives/branchPicker/BranchPickerNumber.d.ts +0 -4
  188. package/dist/primitives/branchPicker/BranchPickerNumber.d.ts.map +1 -1
  189. package/dist/primitives/branchPicker/BranchPickerNumber.js.map +1 -1
  190. package/dist/primitives/branchPicker/BranchPickerNumber.mjs.map +1 -1
  191. package/dist/primitives/branchPicker/BranchPickerPrevious.d.ts +0 -4
  192. package/dist/primitives/branchPicker/BranchPickerPrevious.d.ts.map +1 -1
  193. package/dist/primitives/branchPicker/BranchPickerPrevious.js.map +1 -1
  194. package/dist/primitives/branchPicker/BranchPickerPrevious.mjs.map +1 -1
  195. package/dist/primitives/branchPicker/BranchPickerRoot.d.ts +0 -4
  196. package/dist/primitives/branchPicker/BranchPickerRoot.d.ts.map +1 -1
  197. package/dist/primitives/branchPicker/BranchPickerRoot.js.map +1 -1
  198. package/dist/primitives/branchPicker/BranchPickerRoot.mjs.map +1 -1
  199. package/dist/primitives/composer/ComposerAddAttachment.d.ts +1 -5
  200. package/dist/primitives/composer/ComposerAddAttachment.d.ts.map +1 -1
  201. package/dist/primitives/composer/ComposerAddAttachment.js +2 -2
  202. package/dist/primitives/composer/ComposerAddAttachment.js.map +1 -1
  203. package/dist/primitives/composer/ComposerAddAttachment.mjs +1 -1
  204. package/dist/primitives/composer/ComposerAddAttachment.mjs.map +1 -1
  205. package/dist/primitives/composer/ComposerAttachments.d.ts +0 -4
  206. package/dist/primitives/composer/ComposerAttachments.d.ts.map +1 -1
  207. package/dist/primitives/composer/ComposerAttachments.js.map +1 -1
  208. package/dist/primitives/composer/ComposerAttachments.mjs.map +1 -1
  209. package/dist/primitives/composer/ComposerCancel.d.ts +0 -4
  210. package/dist/primitives/composer/ComposerCancel.d.ts.map +1 -1
  211. package/dist/primitives/composer/ComposerCancel.js.map +1 -1
  212. package/dist/primitives/composer/ComposerCancel.mjs.map +1 -1
  213. package/dist/primitives/composer/ComposerIf.d.ts +0 -4
  214. package/dist/primitives/composer/ComposerIf.d.ts.map +1 -1
  215. package/dist/primitives/composer/ComposerIf.js.map +1 -1
  216. package/dist/primitives/composer/ComposerIf.mjs.map +1 -1
  217. package/dist/primitives/composer/ComposerInput.d.ts +0 -4
  218. package/dist/primitives/composer/ComposerInput.d.ts.map +1 -1
  219. package/dist/primitives/composer/ComposerInput.js.map +1 -1
  220. package/dist/primitives/composer/ComposerInput.mjs.map +1 -1
  221. package/dist/primitives/composer/ComposerRoot.d.ts +0 -1
  222. package/dist/primitives/composer/ComposerRoot.d.ts.map +1 -1
  223. package/dist/primitives/composer/ComposerRoot.js +2 -2
  224. package/dist/primitives/composer/ComposerRoot.js.map +1 -1
  225. package/dist/primitives/composer/ComposerRoot.mjs +1 -1
  226. package/dist/primitives/composer/ComposerRoot.mjs.map +1 -1
  227. package/dist/primitives/composer/ComposerSend.d.ts +1 -5
  228. package/dist/primitives/composer/ComposerSend.d.ts.map +1 -1
  229. package/dist/primitives/composer/ComposerSend.js +2 -2
  230. package/dist/primitives/composer/ComposerSend.js.map +1 -1
  231. package/dist/primitives/composer/ComposerSend.mjs +1 -1
  232. package/dist/primitives/composer/ComposerSend.mjs.map +1 -1
  233. package/dist/primitives/contentPart/ContentPartDisplay.d.ts +0 -4
  234. package/dist/primitives/contentPart/ContentPartDisplay.d.ts.map +1 -1
  235. package/dist/primitives/contentPart/ContentPartDisplay.js.map +1 -1
  236. package/dist/primitives/contentPart/ContentPartDisplay.mjs.map +1 -1
  237. package/dist/primitives/contentPart/ContentPartImage.d.ts +0 -4
  238. package/dist/primitives/contentPart/ContentPartImage.d.ts.map +1 -1
  239. package/dist/primitives/contentPart/ContentPartImage.js.map +1 -1
  240. package/dist/primitives/contentPart/ContentPartImage.mjs.map +1 -1
  241. package/dist/primitives/contentPart/ContentPartInProgress.d.ts +0 -4
  242. package/dist/primitives/contentPart/ContentPartInProgress.d.ts.map +1 -1
  243. package/dist/primitives/contentPart/ContentPartInProgress.js.map +1 -1
  244. package/dist/primitives/contentPart/ContentPartInProgress.mjs.map +1 -1
  245. package/dist/primitives/contentPart/ContentPartText.d.ts +0 -4
  246. package/dist/primitives/contentPart/ContentPartText.d.ts.map +1 -1
  247. package/dist/primitives/contentPart/ContentPartText.js.map +1 -1
  248. package/dist/primitives/contentPart/ContentPartText.mjs.map +1 -1
  249. package/dist/primitives/index.d.ts +0 -7
  250. package/dist/primitives/index.d.ts.map +1 -1
  251. package/dist/primitives/index.js.map +1 -1
  252. package/dist/primitives/index.mjs.map +1 -1
  253. package/dist/primitives/message/MessageAttachments.d.ts +0 -4
  254. package/dist/primitives/message/MessageAttachments.d.ts.map +1 -1
  255. package/dist/primitives/message/MessageAttachments.js +2 -4
  256. package/dist/primitives/message/MessageAttachments.js.map +1 -1
  257. package/dist/primitives/message/MessageAttachments.mjs +2 -4
  258. package/dist/primitives/message/MessageAttachments.mjs.map +1 -1
  259. package/dist/primitives/message/MessageContent.d.ts +0 -4
  260. package/dist/primitives/message/MessageContent.d.ts.map +1 -1
  261. package/dist/primitives/message/MessageContent.js +6 -6
  262. package/dist/primitives/message/MessageContent.js.map +1 -1
  263. package/dist/primitives/message/MessageContent.mjs +7 -7
  264. package/dist/primitives/message/MessageContent.mjs.map +1 -1
  265. package/dist/primitives/message/MessageIf.d.ts +0 -4
  266. package/dist/primitives/message/MessageIf.d.ts.map +1 -1
  267. package/dist/primitives/message/MessageIf.js.map +1 -1
  268. package/dist/primitives/message/MessageIf.mjs.map +1 -1
  269. package/dist/primitives/message/MessageRoot.d.ts +0 -4
  270. package/dist/primitives/message/MessageRoot.d.ts.map +1 -1
  271. package/dist/primitives/message/MessageRoot.js.map +1 -1
  272. package/dist/primitives/message/MessageRoot.mjs.map +1 -1
  273. package/dist/primitives/message/index.d.ts +0 -1
  274. package/dist/primitives/message/index.d.ts.map +1 -1
  275. package/dist/primitives/message/index.js +0 -3
  276. package/dist/primitives/message/index.js.map +1 -1
  277. package/dist/primitives/message/index.mjs +0 -2
  278. package/dist/primitives/message/index.mjs.map +1 -1
  279. package/dist/primitives/thread/ThreadEmpty.d.ts +0 -4
  280. package/dist/primitives/thread/ThreadEmpty.d.ts.map +1 -1
  281. package/dist/primitives/thread/ThreadEmpty.js +2 -2
  282. package/dist/primitives/thread/ThreadEmpty.js.map +1 -1
  283. package/dist/primitives/thread/ThreadEmpty.mjs +1 -1
  284. package/dist/primitives/thread/ThreadEmpty.mjs.map +1 -1
  285. package/dist/primitives/thread/ThreadIf.d.ts +0 -4
  286. package/dist/primitives/thread/ThreadIf.d.ts.map +1 -1
  287. package/dist/primitives/thread/ThreadIf.js.map +1 -1
  288. package/dist/primitives/thread/ThreadIf.mjs.map +1 -1
  289. package/dist/primitives/thread/ThreadMessages.d.ts +0 -4
  290. package/dist/primitives/thread/ThreadMessages.d.ts.map +1 -1
  291. package/dist/primitives/thread/ThreadMessages.js.map +1 -1
  292. package/dist/primitives/thread/ThreadMessages.mjs.map +1 -1
  293. package/dist/primitives/thread/ThreadRoot.d.ts +0 -4
  294. package/dist/primitives/thread/ThreadRoot.d.ts.map +1 -1
  295. package/dist/primitives/thread/ThreadRoot.js.map +1 -1
  296. package/dist/primitives/thread/ThreadRoot.mjs.map +1 -1
  297. package/dist/primitives/thread/ThreadScrollToBottom.d.ts +0 -4
  298. package/dist/primitives/thread/ThreadScrollToBottom.d.ts.map +1 -1
  299. package/dist/primitives/thread/ThreadScrollToBottom.js.map +1 -1
  300. package/dist/primitives/thread/ThreadScrollToBottom.mjs.map +1 -1
  301. package/dist/primitives/thread/ThreadSuggestion.d.ts +0 -4
  302. package/dist/primitives/thread/ThreadSuggestion.d.ts.map +1 -1
  303. package/dist/primitives/thread/ThreadSuggestion.js.map +1 -1
  304. package/dist/primitives/thread/ThreadSuggestion.mjs.map +1 -1
  305. package/dist/primitives/thread/ThreadViewport.d.ts +0 -4
  306. package/dist/primitives/thread/ThreadViewport.d.ts.map +1 -1
  307. package/dist/primitives/thread/ThreadViewport.js.map +1 -1
  308. package/dist/primitives/thread/ThreadViewport.mjs.map +1 -1
  309. package/dist/primitives/threadListItem/ThreadListItemArchive.d.ts.map +1 -1
  310. package/dist/primitives/threadListItem/ThreadListItemArchive.js +3 -2
  311. package/dist/primitives/threadListItem/ThreadListItemArchive.js.map +1 -1
  312. package/dist/primitives/threadListItem/ThreadListItemArchive.mjs +3 -2
  313. package/dist/primitives/threadListItem/ThreadListItemArchive.mjs.map +1 -1
  314. package/dist/primitives/threadListItem/ThreadListItemRoot.d.ts +14 -0
  315. package/dist/primitives/threadListItem/ThreadListItemRoot.d.ts.map +1 -0
  316. package/dist/primitives/threadListItem/ThreadListItemRoot.js +47 -0
  317. package/dist/primitives/threadListItem/ThreadListItemRoot.js.map +1 -0
  318. package/dist/primitives/threadListItem/ThreadListItemRoot.mjs +23 -0
  319. package/dist/primitives/threadListItem/ThreadListItemRoot.mjs.map +1 -0
  320. package/dist/primitives/threadListItem/ThreadListItemTitle.d.ts +8 -0
  321. package/dist/primitives/threadListItem/ThreadListItemTitle.d.ts.map +1 -0
  322. package/dist/primitives/{message/MessageInProgress.js → threadListItem/ThreadListItemTitle.js} +13 -10
  323. package/dist/primitives/threadListItem/ThreadListItemTitle.js.map +1 -0
  324. package/dist/primitives/threadListItem/ThreadListItemTitle.mjs +14 -0
  325. package/dist/primitives/threadListItem/ThreadListItemTitle.mjs.map +1 -0
  326. package/dist/primitives/threadListItem/ThreadListItemTrigger.d.ts +13 -0
  327. package/dist/primitives/threadListItem/ThreadListItemTrigger.d.ts.map +1 -0
  328. package/dist/{runtimes/core/subscribeToMainThread.js → primitives/threadListItem/ThreadListItemTrigger.js} +17 -22
  329. package/dist/primitives/threadListItem/ThreadListItemTrigger.js.map +1 -0
  330. package/dist/primitives/threadListItem/ThreadListItemTrigger.mjs +21 -0
  331. package/dist/primitives/threadListItem/ThreadListItemTrigger.mjs.map +1 -0
  332. package/dist/primitives/threadListItem/index.d.ts +3 -0
  333. package/dist/primitives/threadListItem/index.d.ts.map +1 -1
  334. package/dist/primitives/threadListItem/index.js +9 -0
  335. package/dist/primitives/threadListItem/index.js.map +1 -1
  336. package/dist/primitives/threadListItem/index.mjs +6 -0
  337. package/dist/primitives/threadListItem/index.mjs.map +1 -1
  338. package/dist/runtimes/attachment/AttachmentAdapter.d.ts +3 -7
  339. package/dist/runtimes/attachment/AttachmentAdapter.d.ts.map +1 -1
  340. package/dist/runtimes/attachment/AttachmentAdapter.js.map +1 -1
  341. package/dist/runtimes/attachment/CompositeAttachmentAdapter.d.ts +2 -6
  342. package/dist/runtimes/attachment/CompositeAttachmentAdapter.d.ts.map +1 -1
  343. package/dist/runtimes/attachment/CompositeAttachmentAdapter.js +1 -2
  344. package/dist/runtimes/attachment/CompositeAttachmentAdapter.js.map +1 -1
  345. package/dist/runtimes/attachment/CompositeAttachmentAdapter.mjs +1 -2
  346. package/dist/runtimes/attachment/CompositeAttachmentAdapter.mjs.map +1 -1
  347. package/dist/runtimes/composer/BaseComposerRuntimeCore.d.ts.map +1 -1
  348. package/dist/runtimes/composer/BaseComposerRuntimeCore.js +0 -6
  349. package/dist/runtimes/composer/BaseComposerRuntimeCore.js.map +1 -1
  350. package/dist/runtimes/composer/BaseComposerRuntimeCore.mjs +0 -6
  351. package/dist/runtimes/composer/BaseComposerRuntimeCore.mjs.map +1 -1
  352. package/dist/runtimes/core/BaseThreadRuntimeCore.d.ts +5 -4
  353. package/dist/runtimes/core/BaseThreadRuntimeCore.d.ts.map +1 -1
  354. package/dist/runtimes/core/BaseThreadRuntimeCore.js +8 -4
  355. package/dist/runtimes/core/BaseThreadRuntimeCore.js.map +1 -1
  356. package/dist/runtimes/core/BaseThreadRuntimeCore.mjs +8 -4
  357. package/dist/runtimes/core/BaseThreadRuntimeCore.mjs.map +1 -1
  358. package/dist/runtimes/core/ComposerRuntimeCore.d.ts +0 -3
  359. package/dist/runtimes/core/ComposerRuntimeCore.d.ts.map +1 -1
  360. package/dist/runtimes/core/ComposerRuntimeCore.js.map +1 -1
  361. package/dist/runtimes/core/ThreadListRuntimeCore.d.ts +7 -10
  362. package/dist/runtimes/core/ThreadListRuntimeCore.d.ts.map +1 -1
  363. package/dist/runtimes/core/ThreadListRuntimeCore.js.map +1 -1
  364. package/dist/runtimes/core/ThreadRuntimeCore.d.ts +14 -1
  365. package/dist/runtimes/core/ThreadRuntimeCore.d.ts.map +1 -1
  366. package/dist/runtimes/core/ThreadRuntimeCore.js.map +1 -1
  367. package/dist/runtimes/core/index.d.ts +1 -2
  368. package/dist/runtimes/core/index.d.ts.map +1 -1
  369. package/dist/runtimes/core/index.js +0 -12
  370. package/dist/runtimes/core/index.js.map +1 -1
  371. package/dist/runtimes/core/index.mjs +0 -5
  372. package/dist/runtimes/core/index.mjs.map +1 -1
  373. package/dist/runtimes/edge/converters/toCoreMessages.d.ts +1 -1
  374. package/dist/runtimes/edge/converters/toCoreMessages.d.ts.map +1 -1
  375. package/dist/runtimes/edge/converters/toCoreMessages.js.map +1 -1
  376. package/dist/runtimes/edge/converters/toCoreMessages.mjs.map +1 -1
  377. package/dist/runtimes/edge/createEdgeRuntimeAPI.d.ts +0 -4
  378. package/dist/runtimes/edge/createEdgeRuntimeAPI.d.ts.map +1 -1
  379. package/dist/runtimes/edge/createEdgeRuntimeAPI.js +0 -2
  380. package/dist/runtimes/edge/createEdgeRuntimeAPI.js.map +1 -1
  381. package/dist/runtimes/edge/createEdgeRuntimeAPI.mjs +0 -2
  382. package/dist/runtimes/edge/createEdgeRuntimeAPI.mjs.map +1 -1
  383. package/dist/runtimes/edge/streams/runResultStream.js +0 -2
  384. package/dist/runtimes/edge/streams/runResultStream.js.map +1 -1
  385. package/dist/runtimes/edge/streams/runResultStream.mjs +0 -2
  386. package/dist/runtimes/edge/streams/runResultStream.mjs.map +1 -1
  387. package/dist/runtimes/external-store/ExternalStoreAdapter.d.ts +3 -16
  388. package/dist/runtimes/external-store/ExternalStoreAdapter.d.ts.map +1 -1
  389. package/dist/runtimes/external-store/ExternalStoreAdapter.js.map +1 -1
  390. package/dist/runtimes/external-store/ExternalStoreRuntimeCore.d.ts.map +1 -1
  391. package/dist/runtimes/external-store/ExternalStoreRuntimeCore.js +0 -3
  392. package/dist/runtimes/external-store/ExternalStoreRuntimeCore.js.map +1 -1
  393. package/dist/runtimes/external-store/ExternalStoreRuntimeCore.mjs +0 -3
  394. package/dist/runtimes/external-store/ExternalStoreRuntimeCore.mjs.map +1 -1
  395. package/dist/runtimes/external-store/ExternalStoreThreadListRuntimeCore.d.ts +9 -11
  396. package/dist/runtimes/external-store/ExternalStoreThreadListRuntimeCore.d.ts.map +1 -1
  397. package/dist/runtimes/external-store/ExternalStoreThreadListRuntimeCore.js +29 -7
  398. package/dist/runtimes/external-store/ExternalStoreThreadListRuntimeCore.js.map +1 -1
  399. package/dist/runtimes/external-store/ExternalStoreThreadListRuntimeCore.mjs +29 -7
  400. package/dist/runtimes/external-store/ExternalStoreThreadListRuntimeCore.mjs.map +1 -1
  401. package/dist/runtimes/external-store/ExternalStoreThreadRuntimeCore.d.ts +0 -1
  402. package/dist/runtimes/external-store/ExternalStoreThreadRuntimeCore.d.ts.map +1 -1
  403. package/dist/runtimes/external-store/ExternalStoreThreadRuntimeCore.js +4 -3
  404. package/dist/runtimes/external-store/ExternalStoreThreadRuntimeCore.js.map +1 -1
  405. package/dist/runtimes/external-store/ExternalStoreThreadRuntimeCore.mjs +4 -3
  406. package/dist/runtimes/external-store/ExternalStoreThreadRuntimeCore.mjs.map +1 -1
  407. package/dist/runtimes/external-store/ThreadMessageLike.d.ts.map +1 -1
  408. package/dist/runtimes/external-store/ThreadMessageLike.js +2 -0
  409. package/dist/runtimes/external-store/ThreadMessageLike.js.map +1 -1
  410. package/dist/runtimes/external-store/ThreadMessageLike.mjs +2 -0
  411. package/dist/runtimes/external-store/ThreadMessageLike.mjs.map +1 -1
  412. package/dist/runtimes/local/ChatModelAdapter.d.ts +0 -8
  413. package/dist/runtimes/local/ChatModelAdapter.d.ts.map +1 -1
  414. package/dist/runtimes/local/ChatModelAdapter.js.map +1 -1
  415. package/dist/runtimes/local/LocalRuntimeOptions.d.ts +1 -6
  416. package/dist/runtimes/local/LocalRuntimeOptions.d.ts.map +1 -1
  417. package/dist/runtimes/local/LocalRuntimeOptions.js +1 -2
  418. package/dist/runtimes/local/LocalRuntimeOptions.js.map +1 -1
  419. package/dist/runtimes/local/LocalRuntimeOptions.mjs +1 -2
  420. package/dist/runtimes/local/LocalRuntimeOptions.mjs.map +1 -1
  421. package/dist/runtimes/local/LocalThreadListRuntimeCore.d.ts +16 -20
  422. package/dist/runtimes/local/LocalThreadListRuntimeCore.d.ts.map +1 -1
  423. package/dist/runtimes/local/LocalThreadListRuntimeCore.js +112 -72
  424. package/dist/runtimes/local/LocalThreadListRuntimeCore.js.map +1 -1
  425. package/dist/runtimes/local/LocalThreadListRuntimeCore.mjs +112 -72
  426. package/dist/runtimes/local/LocalThreadListRuntimeCore.mjs.map +1 -1
  427. package/dist/runtimes/local/LocalThreadMetadataRuntimeCore.d.ts +19 -0
  428. package/dist/runtimes/local/LocalThreadMetadataRuntimeCore.d.ts.map +1 -0
  429. package/dist/runtimes/local/LocalThreadMetadataRuntimeCore.js +87 -0
  430. package/dist/runtimes/local/LocalThreadMetadataRuntimeCore.js.map +1 -0
  431. package/dist/runtimes/local/LocalThreadMetadataRuntimeCore.mjs +62 -0
  432. package/dist/runtimes/local/LocalThreadMetadataRuntimeCore.mjs.map +1 -0
  433. package/dist/runtimes/local/LocalThreadRuntimeCore.d.ts +1 -1
  434. package/dist/runtimes/local/LocalThreadRuntimeCore.d.ts.map +1 -1
  435. package/dist/runtimes/local/LocalThreadRuntimeCore.js +15 -11
  436. package/dist/runtimes/local/LocalThreadRuntimeCore.js.map +1 -1
  437. package/dist/runtimes/local/LocalThreadRuntimeCore.mjs +15 -11
  438. package/dist/runtimes/local/LocalThreadRuntimeCore.mjs.map +1 -1
  439. package/dist/styles/index.css.map +1 -1
  440. package/dist/types/AssistantTypes.d.ts +1 -18
  441. package/dist/types/AssistantTypes.d.ts.map +1 -1
  442. package/dist/types/AssistantTypes.js.map +1 -1
  443. package/dist/types/AttachmentTypes.d.ts +1 -1
  444. package/dist/types/AttachmentTypes.d.ts.map +1 -1
  445. package/dist/types/AttachmentTypes.js.map +1 -1
  446. package/dist/types/ContentPartComponentTypes.d.ts +4 -28
  447. package/dist/types/ContentPartComponentTypes.d.ts.map +1 -1
  448. package/dist/types/ContentPartComponentTypes.js.map +1 -1
  449. package/dist/ui/assistant-message.d.ts +1 -10
  450. package/dist/ui/assistant-message.d.ts.map +1 -1
  451. package/dist/ui/assistant-message.js.map +1 -1
  452. package/dist/ui/assistant-message.mjs.map +1 -1
  453. package/dist/ui/composer.d.ts +1 -25
  454. package/dist/ui/composer.d.ts.map +1 -1
  455. package/dist/ui/composer.js.map +1 -1
  456. package/dist/ui/composer.mjs.map +1 -1
  457. package/dist/ui/index.d.ts +6 -14
  458. package/dist/ui/index.d.ts.map +1 -1
  459. package/dist/ui/index.js +0 -4
  460. package/dist/ui/index.js.map +1 -1
  461. package/dist/ui/index.mjs +14 -24
  462. package/dist/ui/index.mjs.map +1 -1
  463. package/dist/ui/thread-welcome.d.ts +5 -17
  464. package/dist/ui/thread-welcome.d.ts.map +1 -1
  465. package/dist/ui/thread-welcome.js.map +1 -1
  466. package/dist/ui/thread-welcome.mjs.map +1 -1
  467. package/dist/ui/thread.d.ts +1 -19
  468. package/dist/ui/thread.d.ts.map +1 -1
  469. package/dist/ui/thread.js.map +1 -1
  470. package/dist/ui/thread.mjs.map +1 -1
  471. package/dist/ui/user-message.d.ts +1 -18
  472. package/dist/ui/user-message.d.ts.map +1 -1
  473. package/dist/ui/user-message.js.map +1 -1
  474. package/dist/ui/user-message.mjs.map +1 -1
  475. package/dist/utils/smooth/SmoothContext.js +2 -2
  476. package/dist/utils/smooth/SmoothContext.js.map +1 -1
  477. package/dist/utils/smooth/SmoothContext.mjs +3 -3
  478. package/dist/utils/smooth/SmoothContext.mjs.map +1 -1
  479. package/dist/utils/smooth/useSmooth.d.ts.map +1 -1
  480. package/dist/utils/smooth/useSmooth.js +0 -1
  481. package/dist/utils/smooth/useSmooth.js.map +1 -1
  482. package/dist/utils/smooth/useSmooth.mjs +0 -1
  483. package/dist/utils/smooth/useSmooth.mjs.map +1 -1
  484. package/package.json +5 -5
  485. package/src/api/AssistantRuntime.ts +1 -23
  486. package/src/api/AttachmentRuntime.ts +0 -12
  487. package/src/api/ComposerRuntime.ts +11 -207
  488. package/src/api/ContentPartRuntime.ts +0 -4
  489. package/src/api/MessageRuntime.ts +7 -11
  490. package/src/api/ThreadListItemRuntime.ts +16 -8
  491. package/src/api/ThreadListRuntime.ts +34 -53
  492. package/src/api/ThreadRuntime.ts +11 -203
  493. package/src/context/providers/AssistantRuntimeProvider.tsx +0 -1
  494. package/src/context/providers/TextContentPartProvider.tsx +0 -2
  495. package/src/context/providers/ThreadRuntimeProvider.tsx +1 -17
  496. package/src/context/react/AssistantContext.ts +0 -25
  497. package/src/context/react/ComposerContext.ts +1 -1
  498. package/src/context/react/ContentPartContext.ts +1 -1
  499. package/src/context/react/MessageContext.ts +2 -2
  500. package/src/context/react/ThreadContext.ts +5 -42
  501. package/src/context/react/index.ts +2 -125
  502. package/src/index.ts +0 -1
  503. package/src/internal.ts +1 -0
  504. package/src/model-config/useAssistantToolUI.tsx +0 -1
  505. package/src/primitive-hooks/contentPart/useContentPartDisplay.tsx +1 -1
  506. package/src/primitive-hooks/contentPart/useContentPartImage.tsx +1 -2
  507. package/src/primitive-hooks/contentPart/useContentPartText.tsx +1 -1
  508. package/src/primitive-hooks/index.ts +0 -5
  509. package/src/primitives/actionBar/ActionBarCopy.tsx +0 -5
  510. package/src/primitives/actionBar/ActionBarEdit.tsx +0 -5
  511. package/src/primitives/actionBar/ActionBarFeedbackNegative.tsx +0 -6
  512. package/src/primitives/actionBar/ActionBarFeedbackPositive.tsx +0 -6
  513. package/src/primitives/actionBar/ActionBarReload.tsx +0 -5
  514. package/src/primitives/actionBar/ActionBarRoot.tsx +0 -5
  515. package/src/primitives/actionBar/ActionBarSpeak.tsx +0 -5
  516. package/src/primitives/actionBar/ActionBarStopSpeaking.tsx +0 -6
  517. package/src/primitives/assistantModal/AssistantModalContent.tsx +1 -7
  518. package/src/primitives/assistantModal/AssistantModalRoot.tsx +0 -6
  519. package/src/primitives/assistantModal/AssistantModalTrigger.tsx +0 -6
  520. package/src/primitives/branchPicker/BranchPickerCount.tsx +0 -5
  521. package/src/primitives/branchPicker/BranchPickerNext.tsx +0 -6
  522. package/src/primitives/branchPicker/BranchPickerNumber.tsx +0 -5
  523. package/src/primitives/branchPicker/BranchPickerPrevious.tsx +1 -6
  524. package/src/primitives/branchPicker/BranchPickerRoot.tsx +0 -5
  525. package/src/primitives/composer/ComposerAddAttachment.tsx +2 -7
  526. package/src/primitives/composer/ComposerAttachments.tsx +0 -6
  527. package/src/primitives/composer/ComposerCancel.tsx +0 -5
  528. package/src/primitives/composer/ComposerIf.tsx +0 -5
  529. package/src/primitives/composer/ComposerInput.tsx +0 -5
  530. package/src/primitives/composer/ComposerRoot.tsx +1 -3
  531. package/src/primitives/composer/ComposerSend.tsx +2 -7
  532. package/src/primitives/contentPart/ContentPartDisplay.tsx +0 -6
  533. package/src/primitives/contentPart/ContentPartImage.tsx +0 -5
  534. package/src/primitives/contentPart/ContentPartInProgress.tsx +0 -6
  535. package/src/primitives/contentPart/ContentPartText.tsx +0 -5
  536. package/src/primitives/index.ts +0 -8
  537. package/src/primitives/message/MessageAttachments.tsx +2 -10
  538. package/src/primitives/message/MessageContent.tsx +7 -15
  539. package/src/primitives/message/MessageIf.tsx +0 -5
  540. package/src/primitives/message/MessageRoot.tsx +0 -5
  541. package/src/primitives/message/index.ts +0 -1
  542. package/src/primitives/thread/ThreadEmpty.tsx +1 -6
  543. package/src/primitives/thread/ThreadIf.tsx +0 -5
  544. package/src/primitives/thread/ThreadMessages.tsx +0 -5
  545. package/src/primitives/thread/ThreadRoot.tsx +0 -5
  546. package/src/primitives/thread/ThreadScrollToBottom.tsx +0 -6
  547. package/src/primitives/thread/ThreadSuggestion.tsx +0 -5
  548. package/src/primitives/thread/ThreadViewport.tsx +0 -5
  549. package/src/primitives/threadListItem/ThreadListItemArchive.ts +3 -2
  550. package/src/primitives/threadListItem/ThreadListItemRoot.tsx +29 -0
  551. package/src/primitives/threadListItem/ThreadListItemTitle.tsx +19 -0
  552. package/src/primitives/threadListItem/ThreadListItemTrigger.ts +25 -0
  553. package/src/primitives/threadListItem/index.ts +4 -1
  554. package/src/runtimes/attachment/AttachmentAdapter.ts +2 -12
  555. package/src/runtimes/attachment/CompositeAttachmentAdapter.ts +1 -1
  556. package/src/runtimes/composer/BaseComposerRuntimeCore.tsx +0 -8
  557. package/src/runtimes/core/BaseThreadRuntimeCore.tsx +11 -5
  558. package/src/runtimes/core/ComposerRuntimeCore.tsx +0 -3
  559. package/src/runtimes/core/ThreadListRuntimeCore.tsx +7 -11
  560. package/src/runtimes/core/ThreadRuntimeCore.tsx +18 -1
  561. package/src/runtimes/core/index.ts +1 -2
  562. package/src/runtimes/edge/converters/toCoreMessages.ts +1 -1
  563. package/src/runtimes/edge/createEdgeRuntimeAPI.ts +0 -6
  564. package/src/runtimes/edge/streams/runResultStream.ts +0 -2
  565. package/src/runtimes/external-store/ExternalStoreAdapter.tsx +3 -17
  566. package/src/runtimes/external-store/ExternalStoreRuntimeCore.tsx +0 -3
  567. package/src/runtimes/external-store/ExternalStoreThreadListRuntimeCore.tsx +39 -7
  568. package/src/runtimes/external-store/ExternalStoreThreadRuntimeCore.tsx +4 -3
  569. package/src/runtimes/external-store/ThreadMessageLike.tsx +4 -3
  570. package/src/runtimes/local/ChatModelAdapter.tsx +0 -9
  571. package/src/runtimes/local/LocalRuntimeOptions.tsx +1 -7
  572. package/src/runtimes/local/LocalThreadListRuntimeCore.tsx +140 -96
  573. package/src/runtimes/local/LocalThreadMetadataRuntimeCore.tsx +79 -0
  574. package/src/runtimes/local/LocalThreadRuntimeCore.tsx +16 -11
  575. package/src/types/AssistantTypes.ts +1 -20
  576. package/src/types/AttachmentTypes.ts +1 -2
  577. package/src/types/ContentPartComponentTypes.tsx +4 -31
  578. package/src/ui/assistant-message.tsx +0 -5
  579. package/src/ui/composer.tsx +0 -5
  580. package/src/ui/index.ts +5 -23
  581. package/src/ui/thread-welcome.tsx +6 -9
  582. package/src/ui/thread.tsx +0 -5
  583. package/src/ui/user-message.tsx +2 -12
  584. package/src/utils/smooth/SmoothContext.tsx +3 -3
  585. package/src/utils/smooth/useSmooth.tsx +0 -1
  586. package/dist/hooks/index.d.ts +0 -3
  587. package/dist/hooks/index.d.ts.map +0 -1
  588. package/dist/hooks/index.js +0 -34
  589. package/dist/hooks/index.js.map +0 -1
  590. package/dist/hooks/index.mjs +0 -8
  591. package/dist/hooks/index.mjs.map +0 -1
  592. package/dist/hooks/useAppendMessage.d.ts +0 -6
  593. package/dist/hooks/useAppendMessage.d.ts.map +0 -1
  594. package/dist/hooks/useAppendMessage.js +0 -42
  595. package/dist/hooks/useAppendMessage.js.map +0 -1
  596. package/dist/hooks/useAppendMessage.mjs +0 -17
  597. package/dist/hooks/useAppendMessage.mjs.map +0 -1
  598. package/dist/hooks/useSwitchToNewThread.d.ts +0 -5
  599. package/dist/hooks/useSwitchToNewThread.d.ts.map +0 -1
  600. package/dist/hooks/useSwitchToNewThread.js +0 -39
  601. package/dist/hooks/useSwitchToNewThread.js.map +0 -1
  602. package/dist/hooks/useSwitchToNewThread.mjs +0 -14
  603. package/dist/hooks/useSwitchToNewThread.mjs.map +0 -1
  604. package/dist/primitive-hooks/actionBar/index.d.ts +0 -34
  605. package/dist/primitive-hooks/actionBar/index.d.ts.map +0 -1
  606. package/dist/primitive-hooks/actionBar/index.js +0 -49
  607. package/dist/primitive-hooks/actionBar/index.js.map +0 -1
  608. package/dist/primitive-hooks/actionBar/index.mjs +0 -20
  609. package/dist/primitive-hooks/actionBar/index.mjs.map +0 -1
  610. package/dist/primitive-hooks/branchPicker/index.d.ts +0 -17
  611. package/dist/primitive-hooks/branchPicker/index.d.ts.map +0 -1
  612. package/dist/primitive-hooks/branchPicker/index.js +0 -40
  613. package/dist/primitive-hooks/branchPicker/index.js.map +0 -1
  614. package/dist/primitive-hooks/branchPicker/index.mjs +0 -12
  615. package/dist/primitive-hooks/branchPicker/index.mjs.map +0 -1
  616. package/dist/primitive-hooks/composer/index.d.ts +0 -17
  617. package/dist/primitive-hooks/composer/index.d.ts.map +0 -1
  618. package/dist/primitive-hooks/composer/index.js +0 -40
  619. package/dist/primitive-hooks/composer/index.js.map +0 -1
  620. package/dist/primitive-hooks/composer/index.mjs +0 -12
  621. package/dist/primitive-hooks/composer/index.mjs.map +0 -1
  622. package/dist/primitive-hooks/message/index.d.ts +0 -5
  623. package/dist/primitive-hooks/message/index.d.ts.map +0 -1
  624. package/dist/primitive-hooks/message/index.js +0 -31
  625. package/dist/primitive-hooks/message/index.js.map +0 -1
  626. package/dist/primitive-hooks/message/index.mjs +0 -6
  627. package/dist/primitive-hooks/message/index.mjs.map +0 -1
  628. package/dist/primitive-hooks/thread/index.d.ts +0 -17
  629. package/dist/primitive-hooks/thread/index.d.ts.map +0 -1
  630. package/dist/primitive-hooks/thread/index.js +0 -40
  631. package/dist/primitive-hooks/thread/index.js.map +0 -1
  632. package/dist/primitive-hooks/thread/index.mjs +0 -12
  633. package/dist/primitive-hooks/thread/index.mjs.map +0 -1
  634. package/dist/primitives/actionBar/types.d.ts +0 -9
  635. package/dist/primitives/actionBar/types.d.ts.map +0 -1
  636. package/dist/primitives/actionBar/types.js +0 -19
  637. package/dist/primitives/actionBar/types.js.map +0 -1
  638. package/dist/primitives/actionBar/types.mjs +0 -1
  639. package/dist/primitives/actionBar/types.mjs.map +0 -1
  640. package/dist/primitives/assistantModal/types.d.ts +0 -4
  641. package/dist/primitives/assistantModal/types.d.ts.map +0 -1
  642. package/dist/primitives/assistantModal/types.js +0 -19
  643. package/dist/primitives/assistantModal/types.js.map +0 -1
  644. package/dist/primitives/assistantModal/types.mjs +0 -1
  645. package/dist/primitives/assistantModal/types.mjs.map +0 -1
  646. package/dist/primitives/attachment/types.d.ts +0 -1
  647. package/dist/primitives/attachment/types.d.ts.map +0 -1
  648. package/dist/primitives/attachment/types.js +0 -2
  649. package/dist/primitives/attachment/types.js.map +0 -1
  650. package/dist/primitives/attachment/types.mjs +0 -1
  651. package/dist/primitives/attachment/types.mjs.map +0 -1
  652. package/dist/primitives/branchPicker/types.d.ts +0 -6
  653. package/dist/primitives/branchPicker/types.d.ts.map +0 -1
  654. package/dist/primitives/branchPicker/types.js +0 -19
  655. package/dist/primitives/branchPicker/types.js.map +0 -1
  656. package/dist/primitives/branchPicker/types.mjs +0 -1
  657. package/dist/primitives/branchPicker/types.mjs.map +0 -1
  658. package/dist/primitives/composer/types.d.ts +0 -6
  659. package/dist/primitives/composer/types.d.ts.map +0 -1
  660. package/dist/primitives/composer/types.js +0 -19
  661. package/dist/primitives/composer/types.js.map +0 -1
  662. package/dist/primitives/composer/types.mjs +0 -1
  663. package/dist/primitives/composer/types.mjs.map +0 -1
  664. package/dist/primitives/contentPart/types.d.ts +0 -5
  665. package/dist/primitives/contentPart/types.d.ts.map +0 -1
  666. package/dist/primitives/contentPart/types.js +0 -19
  667. package/dist/primitives/contentPart/types.js.map +0 -1
  668. package/dist/primitives/contentPart/types.mjs +0 -1
  669. package/dist/primitives/contentPart/types.mjs.map +0 -1
  670. package/dist/primitives/message/MessageInProgress.d.ts +0 -13
  671. package/dist/primitives/message/MessageInProgress.d.ts.map +0 -1
  672. package/dist/primitives/message/MessageInProgress.js.map +0 -1
  673. package/dist/primitives/message/MessageInProgress.mjs +0 -11
  674. package/dist/primitives/message/MessageInProgress.mjs.map +0 -1
  675. package/dist/primitives/message/types.d.ts +0 -5
  676. package/dist/primitives/message/types.d.ts.map +0 -1
  677. package/dist/primitives/message/types.js +0 -19
  678. package/dist/primitives/message/types.js.map +0 -1
  679. package/dist/primitives/message/types.mjs +0 -1
  680. package/dist/primitives/message/types.mjs.map +0 -1
  681. package/dist/primitives/thread/types.d.ts +0 -8
  682. package/dist/primitives/thread/types.d.ts.map +0 -1
  683. package/dist/primitives/thread/types.js +0 -19
  684. package/dist/primitives/thread/types.js.map +0 -1
  685. package/dist/primitives/thread/types.mjs +0 -1
  686. package/dist/primitives/thread/types.mjs.map +0 -1
  687. package/dist/runtimes/core/subscribeToMainThread.d.ts +0 -6
  688. package/dist/runtimes/core/subscribeToMainThread.d.ts.map +0 -1
  689. package/dist/runtimes/core/subscribeToMainThread.js.map +0 -1
  690. package/dist/runtimes/core/subscribeToMainThread.mjs +0 -23
  691. package/dist/runtimes/core/subscribeToMainThread.mjs.map +0 -1
  692. package/src/hooks/index.ts +0 -2
  693. package/src/hooks/useAppendMessage.tsx +0 -19
  694. package/src/hooks/useSwitchToNewThread.tsx +0 -14
  695. package/src/primitive-hooks/actionBar/index.ts +0 -39
  696. package/src/primitive-hooks/branchPicker/index.ts +0 -18
  697. package/src/primitive-hooks/composer/index.ts +0 -17
  698. package/src/primitive-hooks/message/index.ts +0 -4
  699. package/src/primitive-hooks/thread/index.ts +0 -16
  700. package/src/primitives/actionBar/types.ts +0 -8
  701. package/src/primitives/assistantModal/types.ts +0 -3
  702. package/src/primitives/attachment/types.ts +0 -0
  703. package/src/primitives/branchPicker/types.ts +0 -5
  704. package/src/primitives/composer/types.ts +0 -5
  705. package/src/primitives/contentPart/types.ts +0 -4
  706. package/src/primitives/message/MessageInProgress.tsx +0 -22
  707. package/src/primitives/message/types.ts +0 -4
  708. package/src/primitives/thread/types.ts +0 -7
  709. package/src/runtimes/core/subscribeToMainThread.ts +0 -30
@@ -27,18 +27,15 @@ var import_idUtils = require("../../utils/idUtils.cjs");
27
27
  var LocalThreadListRuntimeCore = class {
28
28
  constructor(_threadFactory) {
29
29
  this._threadFactory = _threadFactory;
30
- const threadId = (0, import_idUtils.generateId)();
31
- this._threadData.set(threadId, {
32
- data: { messages: [] },
33
- metadata: { threadId },
34
- isArchived: false
35
- });
36
- this._threads = [{ threadId }];
37
- this._mainThread = this._threadFactory(threadId, { messages: [] });
30
+ this.switchToNewThread();
38
31
  }
39
32
  _threadData = /* @__PURE__ */ new Map();
40
33
  _threads = [];
41
34
  _archivedThreads = [];
35
+ _newThread;
36
+ get newThread() {
37
+ return this._newThread;
38
+ }
42
39
  get threads() {
43
40
  return this._threads;
44
41
  }
@@ -50,87 +47,130 @@ var LocalThreadListRuntimeCore = class {
50
47
  return this._mainThread;
51
48
  }
52
49
  getThreadMetadataById(threadId) {
53
- return this._threadData.get(threadId)?.metadata;
50
+ return this._threadData.get(threadId)?.runtime.metadata;
54
51
  }
55
52
  switchToThread(threadId) {
56
- if (this._mainThread.threadId === threadId) return;
53
+ if (this._mainThread?.metadata.threadId === threadId)
54
+ return Promise.resolve();
57
55
  const data = this._threadData.get(threadId);
58
56
  if (!data) throw new Error("Thread not found");
59
- const thread = this._threadFactory(threadId, data.data);
60
- this._performThreadSwitch(thread);
57
+ if (data.runtime.metadata.state === "archived") this.unarchive(threadId);
58
+ this._mainThread?._notifyEventSubscribers("switched-away");
59
+ this._mainThread = data.runtime;
60
+ this._notifySubscribers();
61
+ data.runtime._notifyEventSubscribers("switched-to");
62
+ return Promise.resolve();
61
63
  }
62
64
  switchToNewThread() {
63
- const threadId = (0, import_idUtils.generateId)();
64
- this._threadData.set(threadId, {
65
- data: { messages: [] },
66
- metadata: { threadId },
67
- isArchived: false
68
- });
69
- this._threads = [{ threadId }];
70
- const thread = this._threadFactory(threadId, { messages: [] });
71
- this._performThreadSwitch(thread);
72
- }
73
- _performThreadSwitch(newThreadCore) {
74
- const data = this._threadData.get(this._mainThread.threadId);
75
- if (!data) throw new Error("Thread not found");
76
- const exprt = this._mainThread.export();
77
- data.data = exprt;
78
- this._mainThread._notifyEventSubscribers("switched-away");
79
- this._mainThread = newThreadCore;
80
- newThreadCore._notifyEventSubscribers("switched-to");
81
- this._notifySubscribers();
65
+ if (this._newThread === void 0) {
66
+ let threadId;
67
+ do {
68
+ threadId = (0, import_idUtils.generateId)();
69
+ } while (this._threadData.has(threadId));
70
+ const runtime = this._threadFactory(threadId, { messages: [] });
71
+ const dispose = runtime.metadata.subscribe(() => {
72
+ this._syncState(threadId, runtime.metadata);
73
+ threadId = runtime.metadata.threadId;
74
+ });
75
+ this._threadData.set(threadId, { runtime, lastState: "new", dispose });
76
+ this._newThread = threadId;
77
+ }
78
+ this.switchToThread(this._newThread);
79
+ return Promise.resolve();
82
80
  }
83
- _performMoveOp(threadId, operation) {
84
- const data = this._threadData.get(threadId);
81
+ async _syncState(lastThreadId, { state, threadId }) {
82
+ const data = this._threadData.get(lastThreadId);
85
83
  if (!data) throw new Error("Thread not found");
86
- if (operation === "archive" && data.isArchived) return;
87
- if (operation === "unarchive" && !data.isArchived) return;
88
- if (operation === "archive") {
89
- data.isArchived = true;
90
- this._archivedThreads = [...this._archivedThreads, data.metadata];
91
- }
92
- if (operation === "unarchive") {
93
- data.isArchived = false;
94
- this._threads = [...this._threads, data.metadata];
95
- }
96
- if (operation === "delete") {
97
- this._threadData.delete(threadId);
98
- }
99
- if (operation === "archive" || operation === "delete" && data.isArchived) {
100
- this._archivedThreads = this._archivedThreads.filter(
101
- (t) => t.threadId !== threadId
102
- );
84
+ const lastState = data.lastState;
85
+ if (lastState === state && lastThreadId === threadId) return;
86
+ if (lastThreadId !== threadId) {
87
+ this._threadData.delete(lastThreadId);
88
+ if (lastState === "new") {
89
+ this._newThread = threadId;
90
+ }
91
+ if (lastState === "regular") {
92
+ this._threads = this._threads.map(
93
+ (t) => t === lastThreadId ? threadId : t
94
+ );
95
+ }
96
+ if (lastState === "archived") {
97
+ this._archivedThreads = this._archivedThreads.map(
98
+ (t) => t === lastThreadId ? threadId : t
99
+ );
100
+ }
103
101
  }
104
- if (operation === "unarchive" || operation === "delete" && !data.isArchived) {
105
- this._threads = this._threads.filter((t) => t.threadId !== threadId);
102
+ if (lastState !== state) {
103
+ if (lastState === "new") {
104
+ this._newThread = void 0;
105
+ }
106
+ if (lastState === "regular") {
107
+ this._threads = this._threads.filter((t) => t !== threadId);
108
+ }
109
+ if (lastState === "archived") {
110
+ this._archivedThreads = this._archivedThreads.filter(
111
+ (t) => t !== threadId
112
+ );
113
+ }
114
+ if (state === "new") {
115
+ if (this._newThread) {
116
+ this.delete(this._newThread);
117
+ }
118
+ this._newThread = threadId;
119
+ }
120
+ if (state === "archived") {
121
+ this._archivedThreads = [
122
+ ...this._archivedThreads,
123
+ data.runtime.metadata.threadId
124
+ ];
125
+ }
126
+ if (state === "regular") {
127
+ this._threads = [...this._threads, data.runtime.metadata.threadId];
128
+ }
129
+ if (state === "deleted") {
130
+ data.dispose();
131
+ this._threadData.delete(threadId);
132
+ }
133
+ data.lastState = state;
106
134
  }
107
135
  this._notifySubscribers();
136
+ if (threadId === this._mainThread.metadata.threadId && (state === "archived" || state === "deleted")) {
137
+ const lastThread = this._threads[0];
138
+ if (lastThread) {
139
+ await this.switchToThread(lastThread);
140
+ } else {
141
+ await this.switchToNewThread();
142
+ }
143
+ }
108
144
  }
109
- async rename(threadId, newTitle) {
145
+ rename(threadId, newTitle) {
110
146
  const data = this._threadData.get(threadId);
111
147
  if (!data) throw new Error("Thread not found");
112
- data.metadata = {
113
- ...data.metadata,
114
- title: newTitle
115
- };
116
- const threadList = data.isArchived ? this.archivedThreads : this.threads;
117
- const idx = threadList.findIndex((t) => t.threadId === threadId);
118
- const updatedThreadList = threadList.toSpliced(idx, 1, data.metadata);
119
- if (data.isArchived) {
120
- this._archivedThreads = updatedThreadList;
121
- } else {
122
- this._threads = updatedThreadList;
123
- }
124
- this._notifySubscribers();
148
+ data.runtime.metadata.rename(newTitle);
149
+ return Promise.resolve();
125
150
  }
126
- async archive(threadId) {
127
- this._performMoveOp(threadId, "archive");
151
+ archive(threadId) {
152
+ const data = this._threadData.get(threadId);
153
+ if (!data) throw new Error("Thread not found");
154
+ if (data.lastState !== "regular")
155
+ throw new Error("Thread is not yet created or archived");
156
+ data.runtime.metadata.archive();
157
+ return Promise.resolve();
128
158
  }
129
- async unarchive(threadId) {
130
- this._performMoveOp(threadId, "unarchive");
159
+ unarchive(threadId) {
160
+ const data = this._threadData.get(threadId);
161
+ if (!data) throw new Error("Thread not found");
162
+ if (data.lastState !== "archived")
163
+ throw new Error("Thread is not archived");
164
+ data.runtime.metadata.unarchive();
165
+ return Promise.resolve();
131
166
  }
132
- async delete(threadId) {
133
- this._performMoveOp(threadId, "delete");
167
+ delete(threadId) {
168
+ const data = this._threadData.get(threadId);
169
+ if (!data) throw new Error("Thread not found");
170
+ if (data.lastState !== "regular" && data.lastState !== "archived")
171
+ throw new Error("Thread is not yet created or already deleted");
172
+ data.runtime.metadata.delete();
173
+ return Promise.resolve();
134
174
  }
135
175
  _subscriptions = /* @__PURE__ */ new Set();
136
176
  subscribe(callback) {
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/runtimes/local/LocalThreadListRuntimeCore.tsx"],"sourcesContent":["import type { Unsubscribe } from \"../../types\";\nimport {\n ThreadListMetadata,\n ThreadListRuntimeCore,\n} from \"../core/ThreadListRuntimeCore\";\nimport { ExportedMessageRepository } from \"../utils/MessageRepository\";\nimport { generateId } from \"../../utils/idUtils\";\nimport { LocalThreadRuntimeCore } from \"./LocalThreadRuntimeCore\";\n\nexport type LocalThreadData = {\n data: ExportedMessageRepository;\n metadata: ThreadListMetadata;\n isArchived: boolean;\n};\n\nexport type LocalThreadFactory = (\n threadId: string,\n data: ExportedMessageRepository,\n) => LocalThreadRuntimeCore;\n\nexport class LocalThreadListRuntimeCore implements ThreadListRuntimeCore {\n private _threadData = new Map<string, LocalThreadData>();\n\n private _threads: readonly ThreadListMetadata[] = [];\n private _archivedThreads: readonly ThreadListMetadata[] = [];\n\n public get threads() {\n return this._threads;\n }\n\n public get archivedThreads() {\n return this._archivedThreads;\n }\n\n private _mainThread: LocalThreadRuntimeCore;\n\n public get mainThread(): LocalThreadRuntimeCore {\n return this._mainThread;\n }\n\n constructor(private _threadFactory: LocalThreadFactory) {\n const threadId = generateId();\n this._threadData.set(threadId, {\n data: { messages: [] },\n metadata: { threadId },\n isArchived: false,\n });\n this._threads = [{ threadId }];\n this._mainThread = this._threadFactory(threadId, { messages: [] });\n }\n\n public getThreadMetadataById(threadId: string) {\n return this._threadData.get(threadId)?.metadata;\n }\n\n public switchToThread(threadId: string): void {\n if (this._mainThread.threadId === threadId) return;\n\n const data = this._threadData.get(threadId);\n if (!data) throw new Error(\"Thread not found\");\n\n const thread = this._threadFactory(threadId, data.data);\n this._performThreadSwitch(thread);\n }\n\n public switchToNewThread(): void {\n const threadId = generateId();\n this._threadData.set(threadId, {\n data: { messages: [] },\n metadata: { threadId },\n isArchived: false,\n });\n this._threads = [{ threadId }];\n const thread = this._threadFactory(threadId, { messages: [] });\n this._performThreadSwitch(thread);\n }\n\n private _performThreadSwitch(newThreadCore: LocalThreadRuntimeCore) {\n const data = this._threadData.get(this._mainThread.threadId);\n if (!data) throw new Error(\"Thread not found\");\n\n const exprt = this._mainThread.export();\n data.data = exprt;\n\n this._mainThread._notifyEventSubscribers(\"switched-away\");\n this._mainThread = newThreadCore;\n newThreadCore._notifyEventSubscribers(\"switched-to\");\n\n this._notifySubscribers();\n }\n\n private _performMoveOp(\n threadId: string,\n operation: \"archive\" | \"unarchive\" | \"delete\",\n ) {\n const data = this._threadData.get(threadId);\n if (!data) throw new Error(\"Thread not found\");\n\n if (operation === \"archive\" && data.isArchived) return;\n if (operation === \"unarchive\" && !data.isArchived) return;\n\n if (operation === \"archive\") {\n data.isArchived = true;\n this._archivedThreads = [...this._archivedThreads, data.metadata];\n }\n if (operation === \"unarchive\") {\n data.isArchived = false;\n this._threads = [...this._threads, data.metadata];\n }\n if (operation === \"delete\") {\n this._threadData.delete(threadId);\n }\n\n if (\n operation === \"archive\" ||\n (operation === \"delete\" && data.isArchived)\n ) {\n this._archivedThreads = this._archivedThreads.filter(\n (t) => t.threadId !== threadId,\n );\n }\n\n if (\n operation === \"unarchive\" ||\n (operation === \"delete\" && !data.isArchived)\n ) {\n this._threads = this._threads.filter((t) => t.threadId !== threadId);\n }\n\n this._notifySubscribers();\n }\n\n public async rename(threadId: string, newTitle: string): Promise<void> {\n const data = this._threadData.get(threadId);\n if (!data) throw new Error(\"Thread not found\");\n\n data.metadata = {\n ...data.metadata,\n title: newTitle,\n };\n\n const threadList = data.isArchived ? this.archivedThreads : this.threads;\n const idx = threadList.findIndex((t) => t.threadId === threadId);\n const updatedThreadList = threadList.toSpliced(idx, 1, data.metadata);\n if (data.isArchived) {\n this._archivedThreads = updatedThreadList;\n } else {\n this._threads = updatedThreadList;\n }\n this._notifySubscribers();\n }\n\n public async archive(threadId: string): Promise<void> {\n this._performMoveOp(threadId, \"archive\");\n }\n\n public async unarchive(threadId: string): Promise<void> {\n this._performMoveOp(threadId, \"unarchive\");\n }\n\n public async delete(threadId: string): Promise<void> {\n this._performMoveOp(threadId, \"delete\");\n }\n\n private _subscriptions = new Set<() => void>();\n\n public subscribe(callback: () => void): Unsubscribe {\n this._subscriptions.add(callback);\n return () => this._subscriptions.delete(callback);\n }\n\n private _notifySubscribers() {\n for (const callback of this._subscriptions) callback();\n }\n}\n"],"mappings":"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","names":[]}
1
+ {"version":3,"sources":["../../../src/runtimes/local/LocalThreadListRuntimeCore.tsx"],"sourcesContent":["import type { Unsubscribe } from \"../../types\";\nimport { ThreadListRuntimeCore } from \"../core/ThreadListRuntimeCore\";\nimport { ExportedMessageRepository } from \"../utils/MessageRepository\";\nimport { generateId } from \"../../utils/idUtils\";\nimport { LocalThreadRuntimeCore } from \"./LocalThreadRuntimeCore\";\nimport { ThreadMetadata } from \"../core/ThreadRuntimeCore\";\n\nexport type ThreadListAdapter = {\n subscribe(callback: () => void): Unsubscribe;\n};\n\nexport type LocalThreadData = {\n runtime: LocalThreadRuntimeCore;\n lastState: ThreadMetadata[\"state\"];\n dispose: Unsubscribe;\n};\n\nexport type LocalThreadFactory = (\n threadId: string,\n data: ExportedMessageRepository,\n) => LocalThreadRuntimeCore;\n\nexport class LocalThreadListRuntimeCore implements ThreadListRuntimeCore {\n private _threadData = new Map<string, LocalThreadData>();\n private _threads: readonly string[] = [];\n private _archivedThreads: readonly string[] = [];\n private _newThread: string | undefined;\n\n public get newThread() {\n return this._newThread;\n }\n\n public get threads() {\n return this._threads;\n }\n\n public get archivedThreads() {\n return this._archivedThreads;\n }\n\n private _mainThread!: LocalThreadRuntimeCore;\n\n public get mainThread(): LocalThreadRuntimeCore {\n return this._mainThread;\n }\n\n constructor(private _threadFactory: LocalThreadFactory) {\n this.switchToNewThread();\n }\n\n public getThreadMetadataById(threadId: string) {\n return this._threadData.get(threadId)?.runtime.metadata;\n }\n\n public switchToThread(threadId: string): Promise<void> {\n if (this._mainThread?.metadata.threadId === threadId)\n return Promise.resolve();\n\n const data = this._threadData.get(threadId);\n if (!data) throw new Error(\"Thread not found\");\n\n if (data.runtime.metadata.state === \"archived\") this.unarchive(threadId);\n\n this._mainThread?._notifyEventSubscribers(\"switched-away\");\n this._mainThread = data.runtime;\n this._notifySubscribers();\n\n data.runtime._notifyEventSubscribers(\"switched-to\");\n return Promise.resolve();\n }\n\n public switchToNewThread(): Promise<void> {\n if (this._newThread === undefined) {\n let threadId: string;\n do {\n threadId = generateId();\n } while (this._threadData.has(threadId));\n\n const runtime = this._threadFactory(threadId, { messages: [] });\n const dispose = runtime.metadata.subscribe(() => {\n this._syncState(threadId, runtime.metadata);\n threadId = runtime.metadata.threadId;\n });\n this._threadData.set(threadId, { runtime, lastState: \"new\", dispose });\n this._newThread = threadId;\n }\n\n this.switchToThread(this._newThread);\n return Promise.resolve();\n }\n\n private async _syncState(\n lastThreadId: string,\n { state, threadId }: ThreadMetadata,\n ) {\n const data = this._threadData.get(lastThreadId);\n if (!data) throw new Error(\"Thread not found\");\n const lastState = data.lastState;\n if (lastState === state && lastThreadId === threadId) return;\n\n if (lastThreadId !== threadId) {\n this._threadData.delete(lastThreadId);\n if (lastState === \"new\") {\n this._newThread = threadId;\n }\n if (lastState === \"regular\") {\n this._threads = this._threads.map((t) =>\n t === lastThreadId ? threadId : t,\n );\n }\n if (lastState === \"archived\") {\n this._archivedThreads = this._archivedThreads.map((t) =>\n t === lastThreadId ? threadId : t,\n );\n }\n }\n\n if (lastState !== state) {\n if (lastState === \"new\") {\n this._newThread = undefined;\n }\n\n if (lastState === \"regular\") {\n this._threads = this._threads.filter((t) => t !== threadId);\n }\n\n if (lastState === \"archived\") {\n this._archivedThreads = this._archivedThreads.filter(\n (t) => t !== threadId,\n );\n }\n\n if (state === \"new\") {\n if (this._newThread) {\n this.delete(this._newThread);\n }\n this._newThread = threadId;\n }\n if (state === \"archived\") {\n this._archivedThreads = [\n ...this._archivedThreads,\n data.runtime.metadata.threadId,\n ];\n }\n if (state === \"regular\") {\n this._threads = [...this._threads, data.runtime.metadata.threadId];\n }\n if (state === \"deleted\") {\n data.dispose();\n this._threadData.delete(threadId);\n }\n\n data.lastState = state;\n }\n\n this._notifySubscribers();\n\n if (\n threadId === this._mainThread.metadata.threadId &&\n (state === \"archived\" || state === \"deleted\")\n ) {\n const lastThread = this._threads[0];\n if (lastThread) {\n await this.switchToThread(lastThread);\n } else {\n await this.switchToNewThread();\n }\n }\n }\n\n public rename(threadId: string, newTitle: string): Promise<void> {\n const data = this._threadData.get(threadId);\n if (!data) throw new Error(\"Thread not found\");\n data.runtime.metadata.rename(newTitle);\n\n return Promise.resolve();\n }\n\n public archive(threadId: string): Promise<void> {\n const data = this._threadData.get(threadId);\n if (!data) throw new Error(\"Thread not found\");\n if (data.lastState !== \"regular\")\n throw new Error(\"Thread is not yet created or archived\");\n data.runtime.metadata.archive();\n\n return Promise.resolve();\n }\n\n public unarchive(threadId: string): Promise<void> {\n const data = this._threadData.get(threadId);\n if (!data) throw new Error(\"Thread not found\");\n if (data.lastState !== \"archived\")\n throw new Error(\"Thread is not archived\");\n data.runtime.metadata.unarchive();\n\n return Promise.resolve();\n }\n\n public delete(threadId: string): Promise<void> {\n const data = this._threadData.get(threadId);\n if (!data) throw new Error(\"Thread not found\");\n if (data.lastState !== \"regular\" && data.lastState !== \"archived\")\n throw new Error(\"Thread is not yet created or already deleted\");\n data.runtime.metadata.delete();\n\n return Promise.resolve();\n }\n\n private _subscriptions = new Set<() => void>();\n\n public subscribe(callback: () => void): Unsubscribe {\n this._subscriptions.add(callback);\n return () => this._subscriptions.delete(callback);\n }\n\n private _notifySubscribers() {\n for (const callback of this._subscriptions) callback();\n }\n}\n"],"mappings":"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","names":[]}
@@ -3,18 +3,15 @@ import { generateId } from "../../utils/idUtils.mjs";
3
3
  var LocalThreadListRuntimeCore = class {
4
4
  constructor(_threadFactory) {
5
5
  this._threadFactory = _threadFactory;
6
- const threadId = generateId();
7
- this._threadData.set(threadId, {
8
- data: { messages: [] },
9
- metadata: { threadId },
10
- isArchived: false
11
- });
12
- this._threads = [{ threadId }];
13
- this._mainThread = this._threadFactory(threadId, { messages: [] });
6
+ this.switchToNewThread();
14
7
  }
15
8
  _threadData = /* @__PURE__ */ new Map();
16
9
  _threads = [];
17
10
  _archivedThreads = [];
11
+ _newThread;
12
+ get newThread() {
13
+ return this._newThread;
14
+ }
18
15
  get threads() {
19
16
  return this._threads;
20
17
  }
@@ -26,87 +23,130 @@ var LocalThreadListRuntimeCore = class {
26
23
  return this._mainThread;
27
24
  }
28
25
  getThreadMetadataById(threadId) {
29
- return this._threadData.get(threadId)?.metadata;
26
+ return this._threadData.get(threadId)?.runtime.metadata;
30
27
  }
31
28
  switchToThread(threadId) {
32
- if (this._mainThread.threadId === threadId) return;
29
+ if (this._mainThread?.metadata.threadId === threadId)
30
+ return Promise.resolve();
33
31
  const data = this._threadData.get(threadId);
34
32
  if (!data) throw new Error("Thread not found");
35
- const thread = this._threadFactory(threadId, data.data);
36
- this._performThreadSwitch(thread);
33
+ if (data.runtime.metadata.state === "archived") this.unarchive(threadId);
34
+ this._mainThread?._notifyEventSubscribers("switched-away");
35
+ this._mainThread = data.runtime;
36
+ this._notifySubscribers();
37
+ data.runtime._notifyEventSubscribers("switched-to");
38
+ return Promise.resolve();
37
39
  }
38
40
  switchToNewThread() {
39
- const threadId = generateId();
40
- this._threadData.set(threadId, {
41
- data: { messages: [] },
42
- metadata: { threadId },
43
- isArchived: false
44
- });
45
- this._threads = [{ threadId }];
46
- const thread = this._threadFactory(threadId, { messages: [] });
47
- this._performThreadSwitch(thread);
48
- }
49
- _performThreadSwitch(newThreadCore) {
50
- const data = this._threadData.get(this._mainThread.threadId);
51
- if (!data) throw new Error("Thread not found");
52
- const exprt = this._mainThread.export();
53
- data.data = exprt;
54
- this._mainThread._notifyEventSubscribers("switched-away");
55
- this._mainThread = newThreadCore;
56
- newThreadCore._notifyEventSubscribers("switched-to");
57
- this._notifySubscribers();
41
+ if (this._newThread === void 0) {
42
+ let threadId;
43
+ do {
44
+ threadId = generateId();
45
+ } while (this._threadData.has(threadId));
46
+ const runtime = this._threadFactory(threadId, { messages: [] });
47
+ const dispose = runtime.metadata.subscribe(() => {
48
+ this._syncState(threadId, runtime.metadata);
49
+ threadId = runtime.metadata.threadId;
50
+ });
51
+ this._threadData.set(threadId, { runtime, lastState: "new", dispose });
52
+ this._newThread = threadId;
53
+ }
54
+ this.switchToThread(this._newThread);
55
+ return Promise.resolve();
58
56
  }
59
- _performMoveOp(threadId, operation) {
60
- const data = this._threadData.get(threadId);
57
+ async _syncState(lastThreadId, { state, threadId }) {
58
+ const data = this._threadData.get(lastThreadId);
61
59
  if (!data) throw new Error("Thread not found");
62
- if (operation === "archive" && data.isArchived) return;
63
- if (operation === "unarchive" && !data.isArchived) return;
64
- if (operation === "archive") {
65
- data.isArchived = true;
66
- this._archivedThreads = [...this._archivedThreads, data.metadata];
67
- }
68
- if (operation === "unarchive") {
69
- data.isArchived = false;
70
- this._threads = [...this._threads, data.metadata];
71
- }
72
- if (operation === "delete") {
73
- this._threadData.delete(threadId);
74
- }
75
- if (operation === "archive" || operation === "delete" && data.isArchived) {
76
- this._archivedThreads = this._archivedThreads.filter(
77
- (t) => t.threadId !== threadId
78
- );
60
+ const lastState = data.lastState;
61
+ if (lastState === state && lastThreadId === threadId) return;
62
+ if (lastThreadId !== threadId) {
63
+ this._threadData.delete(lastThreadId);
64
+ if (lastState === "new") {
65
+ this._newThread = threadId;
66
+ }
67
+ if (lastState === "regular") {
68
+ this._threads = this._threads.map(
69
+ (t) => t === lastThreadId ? threadId : t
70
+ );
71
+ }
72
+ if (lastState === "archived") {
73
+ this._archivedThreads = this._archivedThreads.map(
74
+ (t) => t === lastThreadId ? threadId : t
75
+ );
76
+ }
79
77
  }
80
- if (operation === "unarchive" || operation === "delete" && !data.isArchived) {
81
- this._threads = this._threads.filter((t) => t.threadId !== threadId);
78
+ if (lastState !== state) {
79
+ if (lastState === "new") {
80
+ this._newThread = void 0;
81
+ }
82
+ if (lastState === "regular") {
83
+ this._threads = this._threads.filter((t) => t !== threadId);
84
+ }
85
+ if (lastState === "archived") {
86
+ this._archivedThreads = this._archivedThreads.filter(
87
+ (t) => t !== threadId
88
+ );
89
+ }
90
+ if (state === "new") {
91
+ if (this._newThread) {
92
+ this.delete(this._newThread);
93
+ }
94
+ this._newThread = threadId;
95
+ }
96
+ if (state === "archived") {
97
+ this._archivedThreads = [
98
+ ...this._archivedThreads,
99
+ data.runtime.metadata.threadId
100
+ ];
101
+ }
102
+ if (state === "regular") {
103
+ this._threads = [...this._threads, data.runtime.metadata.threadId];
104
+ }
105
+ if (state === "deleted") {
106
+ data.dispose();
107
+ this._threadData.delete(threadId);
108
+ }
109
+ data.lastState = state;
82
110
  }
83
111
  this._notifySubscribers();
112
+ if (threadId === this._mainThread.metadata.threadId && (state === "archived" || state === "deleted")) {
113
+ const lastThread = this._threads[0];
114
+ if (lastThread) {
115
+ await this.switchToThread(lastThread);
116
+ } else {
117
+ await this.switchToNewThread();
118
+ }
119
+ }
84
120
  }
85
- async rename(threadId, newTitle) {
121
+ rename(threadId, newTitle) {
86
122
  const data = this._threadData.get(threadId);
87
123
  if (!data) throw new Error("Thread not found");
88
- data.metadata = {
89
- ...data.metadata,
90
- title: newTitle
91
- };
92
- const threadList = data.isArchived ? this.archivedThreads : this.threads;
93
- const idx = threadList.findIndex((t) => t.threadId === threadId);
94
- const updatedThreadList = threadList.toSpliced(idx, 1, data.metadata);
95
- if (data.isArchived) {
96
- this._archivedThreads = updatedThreadList;
97
- } else {
98
- this._threads = updatedThreadList;
99
- }
100
- this._notifySubscribers();
124
+ data.runtime.metadata.rename(newTitle);
125
+ return Promise.resolve();
101
126
  }
102
- async archive(threadId) {
103
- this._performMoveOp(threadId, "archive");
127
+ archive(threadId) {
128
+ const data = this._threadData.get(threadId);
129
+ if (!data) throw new Error("Thread not found");
130
+ if (data.lastState !== "regular")
131
+ throw new Error("Thread is not yet created or archived");
132
+ data.runtime.metadata.archive();
133
+ return Promise.resolve();
104
134
  }
105
- async unarchive(threadId) {
106
- this._performMoveOp(threadId, "unarchive");
135
+ unarchive(threadId) {
136
+ const data = this._threadData.get(threadId);
137
+ if (!data) throw new Error("Thread not found");
138
+ if (data.lastState !== "archived")
139
+ throw new Error("Thread is not archived");
140
+ data.runtime.metadata.unarchive();
141
+ return Promise.resolve();
107
142
  }
108
- async delete(threadId) {
109
- this._performMoveOp(threadId, "delete");
143
+ delete(threadId) {
144
+ const data = this._threadData.get(threadId);
145
+ if (!data) throw new Error("Thread not found");
146
+ if (data.lastState !== "regular" && data.lastState !== "archived")
147
+ throw new Error("Thread is not yet created or already deleted");
148
+ data.runtime.metadata.delete();
149
+ return Promise.resolve();
110
150
  }
111
151
  _subscriptions = /* @__PURE__ */ new Set();
112
152
  subscribe(callback) {
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/runtimes/local/LocalThreadListRuntimeCore.tsx"],"sourcesContent":["import type { Unsubscribe } from \"../../types\";\nimport {\n ThreadListMetadata,\n ThreadListRuntimeCore,\n} from \"../core/ThreadListRuntimeCore\";\nimport { ExportedMessageRepository } from \"../utils/MessageRepository\";\nimport { generateId } from \"../../utils/idUtils\";\nimport { LocalThreadRuntimeCore } from \"./LocalThreadRuntimeCore\";\n\nexport type LocalThreadData = {\n data: ExportedMessageRepository;\n metadata: ThreadListMetadata;\n isArchived: boolean;\n};\n\nexport type LocalThreadFactory = (\n threadId: string,\n data: ExportedMessageRepository,\n) => LocalThreadRuntimeCore;\n\nexport class LocalThreadListRuntimeCore implements ThreadListRuntimeCore {\n private _threadData = new Map<string, LocalThreadData>();\n\n private _threads: readonly ThreadListMetadata[] = [];\n private _archivedThreads: readonly ThreadListMetadata[] = [];\n\n public get threads() {\n return this._threads;\n }\n\n public get archivedThreads() {\n return this._archivedThreads;\n }\n\n private _mainThread: LocalThreadRuntimeCore;\n\n public get mainThread(): LocalThreadRuntimeCore {\n return this._mainThread;\n }\n\n constructor(private _threadFactory: LocalThreadFactory) {\n const threadId = generateId();\n this._threadData.set(threadId, {\n data: { messages: [] },\n metadata: { threadId },\n isArchived: false,\n });\n this._threads = [{ threadId }];\n this._mainThread = this._threadFactory(threadId, { messages: [] });\n }\n\n public getThreadMetadataById(threadId: string) {\n return this._threadData.get(threadId)?.metadata;\n }\n\n public switchToThread(threadId: string): void {\n if (this._mainThread.threadId === threadId) return;\n\n const data = this._threadData.get(threadId);\n if (!data) throw new Error(\"Thread not found\");\n\n const thread = this._threadFactory(threadId, data.data);\n this._performThreadSwitch(thread);\n }\n\n public switchToNewThread(): void {\n const threadId = generateId();\n this._threadData.set(threadId, {\n data: { messages: [] },\n metadata: { threadId },\n isArchived: false,\n });\n this._threads = [{ threadId }];\n const thread = this._threadFactory(threadId, { messages: [] });\n this._performThreadSwitch(thread);\n }\n\n private _performThreadSwitch(newThreadCore: LocalThreadRuntimeCore) {\n const data = this._threadData.get(this._mainThread.threadId);\n if (!data) throw new Error(\"Thread not found\");\n\n const exprt = this._mainThread.export();\n data.data = exprt;\n\n this._mainThread._notifyEventSubscribers(\"switched-away\");\n this._mainThread = newThreadCore;\n newThreadCore._notifyEventSubscribers(\"switched-to\");\n\n this._notifySubscribers();\n }\n\n private _performMoveOp(\n threadId: string,\n operation: \"archive\" | \"unarchive\" | \"delete\",\n ) {\n const data = this._threadData.get(threadId);\n if (!data) throw new Error(\"Thread not found\");\n\n if (operation === \"archive\" && data.isArchived) return;\n if (operation === \"unarchive\" && !data.isArchived) return;\n\n if (operation === \"archive\") {\n data.isArchived = true;\n this._archivedThreads = [...this._archivedThreads, data.metadata];\n }\n if (operation === \"unarchive\") {\n data.isArchived = false;\n this._threads = [...this._threads, data.metadata];\n }\n if (operation === \"delete\") {\n this._threadData.delete(threadId);\n }\n\n if (\n operation === \"archive\" ||\n (operation === \"delete\" && data.isArchived)\n ) {\n this._archivedThreads = this._archivedThreads.filter(\n (t) => t.threadId !== threadId,\n );\n }\n\n if (\n operation === \"unarchive\" ||\n (operation === \"delete\" && !data.isArchived)\n ) {\n this._threads = this._threads.filter((t) => t.threadId !== threadId);\n }\n\n this._notifySubscribers();\n }\n\n public async rename(threadId: string, newTitle: string): Promise<void> {\n const data = this._threadData.get(threadId);\n if (!data) throw new Error(\"Thread not found\");\n\n data.metadata = {\n ...data.metadata,\n title: newTitle,\n };\n\n const threadList = data.isArchived ? this.archivedThreads : this.threads;\n const idx = threadList.findIndex((t) => t.threadId === threadId);\n const updatedThreadList = threadList.toSpliced(idx, 1, data.metadata);\n if (data.isArchived) {\n this._archivedThreads = updatedThreadList;\n } else {\n this._threads = updatedThreadList;\n }\n this._notifySubscribers();\n }\n\n public async archive(threadId: string): Promise<void> {\n this._performMoveOp(threadId, \"archive\");\n }\n\n public async unarchive(threadId: string): Promise<void> {\n this._performMoveOp(threadId, \"unarchive\");\n }\n\n public async delete(threadId: string): Promise<void> {\n this._performMoveOp(threadId, \"delete\");\n }\n\n private _subscriptions = new Set<() => void>();\n\n public subscribe(callback: () => void): Unsubscribe {\n this._subscriptions.add(callback);\n return () => this._subscriptions.delete(callback);\n }\n\n private _notifySubscribers() {\n for (const callback of this._subscriptions) callback();\n }\n}\n"],"mappings":";AAMA,SAAS,kBAAkB;AAcpB,IAAM,6BAAN,MAAkE;AAAA,EAoBvE,YAAoB,gBAAoC;AAApC;AAClB,UAAM,WAAW,WAAW;AAC5B,SAAK,YAAY,IAAI,UAAU;AAAA,MAC7B,MAAM,EAAE,UAAU,CAAC,EAAE;AAAA,MACrB,UAAU,EAAE,SAAS;AAAA,MACrB,YAAY;AAAA,IACd,CAAC;AACD,SAAK,WAAW,CAAC,EAAE,SAAS,CAAC;AAC7B,SAAK,cAAc,KAAK,eAAe,UAAU,EAAE,UAAU,CAAC,EAAE,CAAC;AAAA,EACnE;AAAA,EA5BQ,cAAc,oBAAI,IAA6B;AAAA,EAE/C,WAA0C,CAAC;AAAA,EAC3C,mBAAkD,CAAC;AAAA,EAE3D,IAAW,UAAU;AACnB,WAAO,KAAK;AAAA,EACd;AAAA,EAEA,IAAW,kBAAkB;AAC3B,WAAO,KAAK;AAAA,EACd;AAAA,EAEQ;AAAA,EAER,IAAW,aAAqC;AAC9C,WAAO,KAAK;AAAA,EACd;AAAA,EAaO,sBAAsB,UAAkB;AAC7C,WAAO,KAAK,YAAY,IAAI,QAAQ,GAAG;AAAA,EACzC;AAAA,EAEO,eAAe,UAAwB;AAC5C,QAAI,KAAK,YAAY,aAAa,SAAU;AAE5C,UAAM,OAAO,KAAK,YAAY,IAAI,QAAQ;AAC1C,QAAI,CAAC,KAAM,OAAM,IAAI,MAAM,kBAAkB;AAE7C,UAAM,SAAS,KAAK,eAAe,UAAU,KAAK,IAAI;AACtD,SAAK,qBAAqB,MAAM;AAAA,EAClC;AAAA,EAEO,oBAA0B;AAC/B,UAAM,WAAW,WAAW;AAC5B,SAAK,YAAY,IAAI,UAAU;AAAA,MAC7B,MAAM,EAAE,UAAU,CAAC,EAAE;AAAA,MACrB,UAAU,EAAE,SAAS;AAAA,MACrB,YAAY;AAAA,IACd,CAAC;AACD,SAAK,WAAW,CAAC,EAAE,SAAS,CAAC;AAC7B,UAAM,SAAS,KAAK,eAAe,UAAU,EAAE,UAAU,CAAC,EAAE,CAAC;AAC7D,SAAK,qBAAqB,MAAM;AAAA,EAClC;AAAA,EAEQ,qBAAqB,eAAuC;AAClE,UAAM,OAAO,KAAK,YAAY,IAAI,KAAK,YAAY,QAAQ;AAC3D,QAAI,CAAC,KAAM,OAAM,IAAI,MAAM,kBAAkB;AAE7C,UAAM,QAAQ,KAAK,YAAY,OAAO;AACtC,SAAK,OAAO;AAEZ,SAAK,YAAY,wBAAwB,eAAe;AACxD,SAAK,cAAc;AACnB,kBAAc,wBAAwB,aAAa;AAEnD,SAAK,mBAAmB;AAAA,EAC1B;AAAA,EAEQ,eACN,UACA,WACA;AACA,UAAM,OAAO,KAAK,YAAY,IAAI,QAAQ;AAC1C,QAAI,CAAC,KAAM,OAAM,IAAI,MAAM,kBAAkB;AAE7C,QAAI,cAAc,aAAa,KAAK,WAAY;AAChD,QAAI,cAAc,eAAe,CAAC,KAAK,WAAY;AAEnD,QAAI,cAAc,WAAW;AAC3B,WAAK,aAAa;AAClB,WAAK,mBAAmB,CAAC,GAAG,KAAK,kBAAkB,KAAK,QAAQ;AAAA,IAClE;AACA,QAAI,cAAc,aAAa;AAC7B,WAAK,aAAa;AAClB,WAAK,WAAW,CAAC,GAAG,KAAK,UAAU,KAAK,QAAQ;AAAA,IAClD;AACA,QAAI,cAAc,UAAU;AAC1B,WAAK,YAAY,OAAO,QAAQ;AAAA,IAClC;AAEA,QACE,cAAc,aACb,cAAc,YAAY,KAAK,YAChC;AACA,WAAK,mBAAmB,KAAK,iBAAiB;AAAA,QAC5C,CAAC,MAAM,EAAE,aAAa;AAAA,MACxB;AAAA,IACF;AAEA,QACE,cAAc,eACb,cAAc,YAAY,CAAC,KAAK,YACjC;AACA,WAAK,WAAW,KAAK,SAAS,OAAO,CAAC,MAAM,EAAE,aAAa,QAAQ;AAAA,IACrE;AAEA,SAAK,mBAAmB;AAAA,EAC1B;AAAA,EAEA,MAAa,OAAO,UAAkB,UAAiC;AACrE,UAAM,OAAO,KAAK,YAAY,IAAI,QAAQ;AAC1C,QAAI,CAAC,KAAM,OAAM,IAAI,MAAM,kBAAkB;AAE7C,SAAK,WAAW;AAAA,MACd,GAAG,KAAK;AAAA,MACR,OAAO;AAAA,IACT;AAEA,UAAM,aAAa,KAAK,aAAa,KAAK,kBAAkB,KAAK;AACjE,UAAM,MAAM,WAAW,UAAU,CAAC,MAAM,EAAE,aAAa,QAAQ;AAC/D,UAAM,oBAAoB,WAAW,UAAU,KAAK,GAAG,KAAK,QAAQ;AACpE,QAAI,KAAK,YAAY;AACnB,WAAK,mBAAmB;AAAA,IAC1B,OAAO;AACL,WAAK,WAAW;AAAA,IAClB;AACA,SAAK,mBAAmB;AAAA,EAC1B;AAAA,EAEA,MAAa,QAAQ,UAAiC;AACpD,SAAK,eAAe,UAAU,SAAS;AAAA,EACzC;AAAA,EAEA,MAAa,UAAU,UAAiC;AACtD,SAAK,eAAe,UAAU,WAAW;AAAA,EAC3C;AAAA,EAEA,MAAa,OAAO,UAAiC;AACnD,SAAK,eAAe,UAAU,QAAQ;AAAA,EACxC;AAAA,EAEQ,iBAAiB,oBAAI,IAAgB;AAAA,EAEtC,UAAU,UAAmC;AAClD,SAAK,eAAe,IAAI,QAAQ;AAChC,WAAO,MAAM,KAAK,eAAe,OAAO,QAAQ;AAAA,EAClD;AAAA,EAEQ,qBAAqB;AAC3B,eAAW,YAAY,KAAK,eAAgB,UAAS;AAAA,EACvD;AACF;","names":[]}
1
+ {"version":3,"sources":["../../../src/runtimes/local/LocalThreadListRuntimeCore.tsx"],"sourcesContent":["import type { Unsubscribe } from \"../../types\";\nimport { ThreadListRuntimeCore } from \"../core/ThreadListRuntimeCore\";\nimport { ExportedMessageRepository } from \"../utils/MessageRepository\";\nimport { generateId } from \"../../utils/idUtils\";\nimport { LocalThreadRuntimeCore } from \"./LocalThreadRuntimeCore\";\nimport { ThreadMetadata } from \"../core/ThreadRuntimeCore\";\n\nexport type ThreadListAdapter = {\n subscribe(callback: () => void): Unsubscribe;\n};\n\nexport type LocalThreadData = {\n runtime: LocalThreadRuntimeCore;\n lastState: ThreadMetadata[\"state\"];\n dispose: Unsubscribe;\n};\n\nexport type LocalThreadFactory = (\n threadId: string,\n data: ExportedMessageRepository,\n) => LocalThreadRuntimeCore;\n\nexport class LocalThreadListRuntimeCore implements ThreadListRuntimeCore {\n private _threadData = new Map<string, LocalThreadData>();\n private _threads: readonly string[] = [];\n private _archivedThreads: readonly string[] = [];\n private _newThread: string | undefined;\n\n public get newThread() {\n return this._newThread;\n }\n\n public get threads() {\n return this._threads;\n }\n\n public get archivedThreads() {\n return this._archivedThreads;\n }\n\n private _mainThread!: LocalThreadRuntimeCore;\n\n public get mainThread(): LocalThreadRuntimeCore {\n return this._mainThread;\n }\n\n constructor(private _threadFactory: LocalThreadFactory) {\n this.switchToNewThread();\n }\n\n public getThreadMetadataById(threadId: string) {\n return this._threadData.get(threadId)?.runtime.metadata;\n }\n\n public switchToThread(threadId: string): Promise<void> {\n if (this._mainThread?.metadata.threadId === threadId)\n return Promise.resolve();\n\n const data = this._threadData.get(threadId);\n if (!data) throw new Error(\"Thread not found\");\n\n if (data.runtime.metadata.state === \"archived\") this.unarchive(threadId);\n\n this._mainThread?._notifyEventSubscribers(\"switched-away\");\n this._mainThread = data.runtime;\n this._notifySubscribers();\n\n data.runtime._notifyEventSubscribers(\"switched-to\");\n return Promise.resolve();\n }\n\n public switchToNewThread(): Promise<void> {\n if (this._newThread === undefined) {\n let threadId: string;\n do {\n threadId = generateId();\n } while (this._threadData.has(threadId));\n\n const runtime = this._threadFactory(threadId, { messages: [] });\n const dispose = runtime.metadata.subscribe(() => {\n this._syncState(threadId, runtime.metadata);\n threadId = runtime.metadata.threadId;\n });\n this._threadData.set(threadId, { runtime, lastState: \"new\", dispose });\n this._newThread = threadId;\n }\n\n this.switchToThread(this._newThread);\n return Promise.resolve();\n }\n\n private async _syncState(\n lastThreadId: string,\n { state, threadId }: ThreadMetadata,\n ) {\n const data = this._threadData.get(lastThreadId);\n if (!data) throw new Error(\"Thread not found\");\n const lastState = data.lastState;\n if (lastState === state && lastThreadId === threadId) return;\n\n if (lastThreadId !== threadId) {\n this._threadData.delete(lastThreadId);\n if (lastState === \"new\") {\n this._newThread = threadId;\n }\n if (lastState === \"regular\") {\n this._threads = this._threads.map((t) =>\n t === lastThreadId ? threadId : t,\n );\n }\n if (lastState === \"archived\") {\n this._archivedThreads = this._archivedThreads.map((t) =>\n t === lastThreadId ? threadId : t,\n );\n }\n }\n\n if (lastState !== state) {\n if (lastState === \"new\") {\n this._newThread = undefined;\n }\n\n if (lastState === \"regular\") {\n this._threads = this._threads.filter((t) => t !== threadId);\n }\n\n if (lastState === \"archived\") {\n this._archivedThreads = this._archivedThreads.filter(\n (t) => t !== threadId,\n );\n }\n\n if (state === \"new\") {\n if (this._newThread) {\n this.delete(this._newThread);\n }\n this._newThread = threadId;\n }\n if (state === \"archived\") {\n this._archivedThreads = [\n ...this._archivedThreads,\n data.runtime.metadata.threadId,\n ];\n }\n if (state === \"regular\") {\n this._threads = [...this._threads, data.runtime.metadata.threadId];\n }\n if (state === \"deleted\") {\n data.dispose();\n this._threadData.delete(threadId);\n }\n\n data.lastState = state;\n }\n\n this._notifySubscribers();\n\n if (\n threadId === this._mainThread.metadata.threadId &&\n (state === \"archived\" || state === \"deleted\")\n ) {\n const lastThread = this._threads[0];\n if (lastThread) {\n await this.switchToThread(lastThread);\n } else {\n await this.switchToNewThread();\n }\n }\n }\n\n public rename(threadId: string, newTitle: string): Promise<void> {\n const data = this._threadData.get(threadId);\n if (!data) throw new Error(\"Thread not found\");\n data.runtime.metadata.rename(newTitle);\n\n return Promise.resolve();\n }\n\n public archive(threadId: string): Promise<void> {\n const data = this._threadData.get(threadId);\n if (!data) throw new Error(\"Thread not found\");\n if (data.lastState !== \"regular\")\n throw new Error(\"Thread is not yet created or archived\");\n data.runtime.metadata.archive();\n\n return Promise.resolve();\n }\n\n public unarchive(threadId: string): Promise<void> {\n const data = this._threadData.get(threadId);\n if (!data) throw new Error(\"Thread not found\");\n if (data.lastState !== \"archived\")\n throw new Error(\"Thread is not archived\");\n data.runtime.metadata.unarchive();\n\n return Promise.resolve();\n }\n\n public delete(threadId: string): Promise<void> {\n const data = this._threadData.get(threadId);\n if (!data) throw new Error(\"Thread not found\");\n if (data.lastState !== \"regular\" && data.lastState !== \"archived\")\n throw new Error(\"Thread is not yet created or already deleted\");\n data.runtime.metadata.delete();\n\n return Promise.resolve();\n }\n\n private _subscriptions = new Set<() => void>();\n\n public subscribe(callback: () => void): Unsubscribe {\n this._subscriptions.add(callback);\n return () => this._subscriptions.delete(callback);\n }\n\n private _notifySubscribers() {\n for (const callback of this._subscriptions) callback();\n }\n}\n"],"mappings":"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","names":[]}
@@ -0,0 +1,19 @@
1
+ import { ThreadMetadataRuntimeCore } from "../core/ThreadRuntimeCore";
2
+ export declare class LocalThreadMetadataRuntimeCore implements ThreadMetadataRuntimeCore {
3
+ private _threadId;
4
+ private _state;
5
+ private _title;
6
+ private _subscribers;
7
+ constructor(_threadId: string);
8
+ get threadId(): string;
9
+ get state(): "archived" | "regular" | "new" | "deleted";
10
+ get title(): string | undefined;
11
+ rename(newTitle: string): Promise<void>;
12
+ archive(): Promise<void>;
13
+ unarchive(): Promise<void>;
14
+ delete(): Promise<void>;
15
+ create(title?: string): Promise<void>;
16
+ subscribe(callback: () => void): () => boolean;
17
+ private _notifySubscribers;
18
+ }
19
+ //# sourceMappingURL=LocalThreadMetadataRuntimeCore.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"LocalThreadMetadataRuntimeCore.d.ts","sourceRoot":"","sources":["../../../src/runtimes/local/LocalThreadMetadataRuntimeCore.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,yBAAyB,EAAE,MAAM,2BAA2B,CAAC;AAEtE,qBAAa,8BACX,YAAW,yBAAyB;IAMxB,OAAO,CAAC,SAAS;IAJ7B,OAAO,CAAC,MAAM,CAAqD;IACnE,OAAO,CAAC,MAAM,CAAqB;IACnC,OAAO,CAAC,YAAY,CAAyB;gBAEzB,SAAS,EAAE,MAAM;IAErC,IAAW,QAAQ,WAElB;IAED,IAAW,KAAK,+CAEf;IAED,IAAW,KAAK,uBAEf;IAEM,MAAM,CAAC,QAAQ,EAAE,MAAM;IAOvB,OAAO;IAWP,SAAS;IAST,MAAM;IAUN,MAAM,CAAC,KAAK,CAAC,EAAE,MAAM;IAUrB,SAAS,CAAC,QAAQ,EAAE,MAAM,IAAI;IAKrC,OAAO,CAAC,kBAAkB;CAG3B"}
@@ -0,0 +1,87 @@
1
+ "use strict";
2
+ var __defProp = Object.defineProperty;
3
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
+ var __getOwnPropNames = Object.getOwnPropertyNames;
5
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
6
+ var __export = (target, all) => {
7
+ for (var name in all)
8
+ __defProp(target, name, { get: all[name], enumerable: true });
9
+ };
10
+ var __copyProps = (to, from, except, desc) => {
11
+ if (from && typeof from === "object" || typeof from === "function") {
12
+ for (let key of __getOwnPropNames(from))
13
+ if (!__hasOwnProp.call(to, key) && key !== except)
14
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
15
+ }
16
+ return to;
17
+ };
18
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
19
+
20
+ // src/runtimes/local/LocalThreadMetadataRuntimeCore.tsx
21
+ var LocalThreadMetadataRuntimeCore_exports = {};
22
+ __export(LocalThreadMetadataRuntimeCore_exports, {
23
+ LocalThreadMetadataRuntimeCore: () => LocalThreadMetadataRuntimeCore
24
+ });
25
+ module.exports = __toCommonJS(LocalThreadMetadataRuntimeCore_exports);
26
+ var LocalThreadMetadataRuntimeCore = class {
27
+ constructor(_threadId) {
28
+ this._threadId = _threadId;
29
+ }
30
+ _state = "new";
31
+ _title;
32
+ _subscribers = /* @__PURE__ */ new Set();
33
+ get threadId() {
34
+ return this._threadId;
35
+ }
36
+ get state() {
37
+ return this._state;
38
+ }
39
+ get title() {
40
+ return this._title;
41
+ }
42
+ rename(newTitle) {
43
+ this._title = newTitle;
44
+ this._notifySubscribers();
45
+ return Promise.resolve();
46
+ }
47
+ archive() {
48
+ if (this._state === "new") throw new Error("Thread not created");
49
+ if (this._state === "archived") throw new Error("Thread already archived");
50
+ if (this._state === "deleted") throw new Error("Thread deleted");
51
+ this._state = "archived";
52
+ this._notifySubscribers();
53
+ return Promise.resolve();
54
+ }
55
+ unarchive() {
56
+ if (this._state !== "archived") throw new Error("Thread not archived");
57
+ this._state = "regular";
58
+ this._notifySubscribers();
59
+ return Promise.resolve();
60
+ }
61
+ delete() {
62
+ if (this._state === "new") throw new Error("Thread not created");
63
+ if (this._state === "deleted") throw new Error("Thread already deleted");
64
+ this._state = "deleted";
65
+ this._notifySubscribers();
66
+ return Promise.resolve();
67
+ }
68
+ create(title) {
69
+ if (this.state !== "new") throw new Error("Thread not new");
70
+ this._state = "regular";
71
+ this._title = title ?? this._title;
72
+ this._notifySubscribers();
73
+ return Promise.resolve();
74
+ }
75
+ subscribe(callback) {
76
+ this._subscribers.add(callback);
77
+ return () => this._subscribers.delete(callback);
78
+ }
79
+ _notifySubscribers() {
80
+ for (const callback of this._subscribers) callback();
81
+ }
82
+ };
83
+ // Annotate the CommonJS export names for ESM import in node:
84
+ 0 && (module.exports = {
85
+ LocalThreadMetadataRuntimeCore
86
+ });
87
+ //# sourceMappingURL=LocalThreadMetadataRuntimeCore.js.map