@assistant-ui/react 0.7.8 → 0.7.10

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (350) hide show
  1. package/dist/api/AssistantRuntime.d.ts +4 -5
  2. package/dist/api/AssistantRuntime.d.ts.map +1 -1
  3. package/dist/api/AssistantRuntime.js +19 -22
  4. package/dist/api/AssistantRuntime.js.map +1 -1
  5. package/dist/api/AssistantRuntime.mjs +16 -19
  6. package/dist/api/AssistantRuntime.mjs.map +1 -1
  7. package/dist/api/ComposerRuntime.d.ts.map +1 -1
  8. package/dist/api/ComposerRuntime.js +4 -4
  9. package/dist/api/MessageRuntime.js +7 -7
  10. package/dist/api/ThreadListItemRuntime.d.ts +11 -2
  11. package/dist/api/ThreadListItemRuntime.d.ts.map +1 -1
  12. package/dist/api/ThreadListItemRuntime.js +16 -5
  13. package/dist/api/ThreadListItemRuntime.js.map +1 -1
  14. package/dist/api/ThreadListItemRuntime.mjs +16 -5
  15. package/dist/api/ThreadListItemRuntime.mjs.map +1 -1
  16. package/dist/api/ThreadListRuntime.d.ts +3 -0
  17. package/dist/api/ThreadListRuntime.d.ts.map +1 -1
  18. package/dist/api/ThreadListRuntime.js +31 -12
  19. package/dist/api/ThreadListRuntime.js.map +1 -1
  20. package/dist/api/ThreadListRuntime.mjs +27 -8
  21. package/dist/api/ThreadListRuntime.mjs.map +1 -1
  22. package/dist/api/ThreadRuntime.d.ts +10 -7
  23. package/dist/api/ThreadRuntime.d.ts.map +1 -1
  24. package/dist/api/ThreadRuntime.js +22 -12
  25. package/dist/api/ThreadRuntime.js.map +1 -1
  26. package/dist/api/ThreadRuntime.mjs +16 -6
  27. package/dist/api/ThreadRuntime.mjs.map +1 -1
  28. package/dist/api/subscribable/LazyMemoizeSubject.js +2 -2
  29. package/dist/api/subscribable/NestedSubscriptionSubject.js +1 -1
  30. package/dist/api/subscribable/ShallowMemoizeSubject.js +3 -3
  31. package/dist/context/index.js +6 -6
  32. package/dist/context/index.js.map +1 -1
  33. package/dist/context/providers/AssistantRuntimeProvider.d.ts.map +1 -1
  34. package/dist/context/providers/AssistantRuntimeProvider.js +12 -5
  35. package/dist/context/providers/AssistantRuntimeProvider.js.map +1 -1
  36. package/dist/context/providers/AssistantRuntimeProvider.mjs +8 -1
  37. package/dist/context/providers/AssistantRuntimeProvider.mjs.map +1 -1
  38. package/dist/context/providers/AttachmentRuntimeProvider.js +2 -2
  39. package/dist/context/providers/ContentPartRuntimeProvider.js +2 -2
  40. package/dist/context/providers/MessageRuntimeProvider.js +3 -3
  41. package/dist/context/providers/TextContentPartProvider.js +3 -3
  42. package/dist/context/providers/ThreadListItemRuntimeProvider.js +2 -2
  43. package/dist/context/providers/ThreadRuntimeProvider.d.ts +2 -0
  44. package/dist/context/providers/ThreadRuntimeProvider.d.ts.map +1 -1
  45. package/dist/context/providers/ThreadRuntimeProvider.js +6 -5
  46. package/dist/context/providers/ThreadRuntimeProvider.js.map +1 -1
  47. package/dist/context/providers/ThreadRuntimeProvider.mjs +3 -2
  48. package/dist/context/providers/ThreadRuntimeProvider.mjs.map +1 -1
  49. package/dist/context/providers/index.js +2 -2
  50. package/dist/context/react/AssistantContext.js +2 -2
  51. package/dist/context/react/AttachmentContext.js +1 -1
  52. package/dist/context/react/ComposerContext.js +3 -3
  53. package/dist/context/react/ContentPartContext.js +2 -2
  54. package/dist/context/react/MessageContext.js +2 -2
  55. package/dist/context/react/ThreadContext.js +2 -2
  56. package/dist/context/react/ThreadListItemContext.js +2 -2
  57. package/dist/context/react/index.js +6 -6
  58. package/dist/context/react/utils/createContextStoreHook.d.ts.map +1 -1
  59. package/dist/edge.js +1 -1
  60. package/dist/index.js +17 -17
  61. package/dist/index.js.map +1 -1
  62. package/dist/internal.d.ts +1 -2
  63. package/dist/internal.d.ts.map +1 -1
  64. package/dist/internal.js +10 -13
  65. package/dist/internal.js.map +1 -1
  66. package/dist/internal.mjs +0 -2
  67. package/dist/internal.mjs.map +1 -1
  68. package/dist/model-config/index.js +6 -6
  69. package/dist/model-config/makeAssistantTool.js +1 -1
  70. package/dist/model-config/makeAssistantToolUI.js +1 -1
  71. package/dist/model-config/useAssistantInstructions.js +1 -1
  72. package/dist/model-config/useAssistantTool.js +1 -1
  73. package/dist/model-config/useAssistantToolUI.js +1 -1
  74. package/dist/primitive-hooks/actionBar/useActionBarCopy.js +2 -2
  75. package/dist/primitive-hooks/actionBar/useActionBarEdit.js +1 -1
  76. package/dist/primitive-hooks/actionBar/useActionBarFeedbackNegative.js +1 -1
  77. package/dist/primitive-hooks/actionBar/useActionBarFeedbackPositive.js +1 -1
  78. package/dist/primitive-hooks/actionBar/useActionBarReload.js +3 -3
  79. package/dist/primitive-hooks/actionBar/useActionBarSpeak.js +1 -1
  80. package/dist/primitive-hooks/actionBar/useActionBarStopSpeaking.js +1 -1
  81. package/dist/primitive-hooks/attachment/useAttachmentRemove.js +1 -1
  82. package/dist/primitive-hooks/branchPicker/useBranchPickerCount.js +1 -1
  83. package/dist/primitive-hooks/branchPicker/useBranchPickerNext.js +1 -1
  84. package/dist/primitive-hooks/branchPicker/useBranchPickerNumber.js +1 -1
  85. package/dist/primitive-hooks/branchPicker/useBranchPickerPrevious.js +1 -1
  86. package/dist/primitive-hooks/composer/useComposerAddAttachment.js +1 -1
  87. package/dist/primitive-hooks/composer/useComposerCancel.js +1 -1
  88. package/dist/primitive-hooks/composer/useComposerIf.js +1 -1
  89. package/dist/primitive-hooks/composer/useComposerSend.js +3 -3
  90. package/dist/primitive-hooks/contentPart/index.js +3 -3
  91. package/dist/primitive-hooks/contentPart/useContentPartDisplay.js +1 -1
  92. package/dist/primitive-hooks/contentPart/useContentPartImage.js +1 -1
  93. package/dist/primitive-hooks/contentPart/useContentPartText.js +1 -1
  94. package/dist/primitive-hooks/index.js +2 -2
  95. package/dist/primitive-hooks/index.js.map +1 -1
  96. package/dist/primitive-hooks/message/useMessageIf.js +2 -2
  97. package/dist/primitive-hooks/thread/useThreadEmpty.js +1 -1
  98. package/dist/primitive-hooks/thread/useThreadIf.js +1 -1
  99. package/dist/primitive-hooks/thread/useThreadScrollToBottom.js +2 -2
  100. package/dist/primitive-hooks/thread/useThreadSuggestion.js +2 -2
  101. package/dist/primitive-hooks/thread/useThreadViewportAutoScroll.js +5 -5
  102. package/dist/primitives/actionBar/ActionBarCopy.js +2 -2
  103. package/dist/primitives/actionBar/ActionBarEdit.js +2 -2
  104. package/dist/primitives/actionBar/ActionBarFeedbackNegative.js +2 -2
  105. package/dist/primitives/actionBar/ActionBarFeedbackPositive.js +2 -2
  106. package/dist/primitives/actionBar/ActionBarReload.js +2 -2
  107. package/dist/primitives/actionBar/ActionBarRoot.js +1 -1
  108. package/dist/primitives/actionBar/ActionBarSpeak.js +2 -2
  109. package/dist/primitives/actionBar/ActionBarStopSpeaking.js +1 -1
  110. package/dist/primitives/actionBar/index.js +8 -8
  111. package/dist/primitives/actionBar/useActionBarFloatStatus.js +3 -3
  112. package/dist/primitives/assistantModal/AssistantModalAnchor.js +1 -1
  113. package/dist/primitives/assistantModal/AssistantModalContent.js +1 -1
  114. package/dist/primitives/assistantModal/AssistantModalRoot.js +2 -2
  115. package/dist/primitives/assistantModal/AssistantModalTrigger.js +1 -1
  116. package/dist/primitives/assistantModal/index.js +4 -4
  117. package/dist/primitives/attachment/AttachmentName.js +1 -1
  118. package/dist/primitives/attachment/AttachmentRemove.js +2 -2
  119. package/dist/primitives/attachment/AttachmentThumb.js +1 -1
  120. package/dist/primitives/attachment/index.js +4 -4
  121. package/dist/primitives/branchPicker/BranchPickerCount.js +1 -1
  122. package/dist/primitives/branchPicker/BranchPickerNext.js +2 -2
  123. package/dist/primitives/branchPicker/BranchPickerNumber.js +1 -1
  124. package/dist/primitives/branchPicker/BranchPickerPrevious.js +2 -2
  125. package/dist/primitives/branchPicker/BranchPickerRoot.js +1 -1
  126. package/dist/primitives/branchPicker/index.js +5 -5
  127. package/dist/primitives/composer/ComposerAddAttachment.js +2 -2
  128. package/dist/primitives/composer/ComposerAttachments.js +3 -3
  129. package/dist/primitives/composer/ComposerCancel.js +2 -2
  130. package/dist/primitives/composer/ComposerIf.js +1 -1
  131. package/dist/primitives/composer/ComposerInput.d.ts.map +1 -1
  132. package/dist/primitives/composer/ComposerInput.js +6 -4
  133. package/dist/primitives/composer/ComposerInput.js.map +1 -1
  134. package/dist/primitives/composer/ComposerInput.mjs +3 -1
  135. package/dist/primitives/composer/ComposerInput.mjs.map +1 -1
  136. package/dist/primitives/composer/ComposerRoot.js +1 -1
  137. package/dist/primitives/composer/ComposerSend.js +2 -2
  138. package/dist/primitives/composer/index.js +7 -7
  139. package/dist/primitives/contentPart/ContentPartDisplay.js +1 -1
  140. package/dist/primitives/contentPart/ContentPartImage.js +1 -1
  141. package/dist/primitives/contentPart/ContentPartInProgress.js +1 -1
  142. package/dist/primitives/contentPart/ContentPartText.js +2 -2
  143. package/dist/primitives/contentPart/index.js +4 -4
  144. package/dist/primitives/index.js +10 -10
  145. package/dist/primitives/message/MessageAttachments.js +3 -3
  146. package/dist/primitives/message/MessageContent.js +8 -8
  147. package/dist/primitives/message/MessageIf.js +1 -1
  148. package/dist/primitives/message/MessageRoot.js +2 -2
  149. package/dist/primitives/message/index.js +4 -4
  150. package/dist/primitives/thread/ThreadEmpty.js +1 -1
  151. package/dist/primitives/thread/ThreadIf.js +1 -1
  152. package/dist/primitives/thread/ThreadMessages.js +3 -3
  153. package/dist/primitives/thread/ThreadScrollToBottom.js +2 -2
  154. package/dist/primitives/thread/ThreadSuggestion.js +2 -2
  155. package/dist/primitives/thread/ThreadViewport.js +1 -1
  156. package/dist/primitives/thread/index.js +7 -7
  157. package/dist/primitives/threadList/ThreadListItems.js +2 -2
  158. package/dist/primitives/threadList/ThreadListNew.js +2 -2
  159. package/dist/primitives/threadList/ThreadListNew.js.map +1 -1
  160. package/dist/primitives/threadList/ThreadListNew.mjs +1 -1
  161. package/dist/primitives/threadList/ThreadListNew.mjs.map +1 -1
  162. package/dist/primitives/threadList/index.js +2 -2
  163. package/dist/primitives/threadListItem/ThreadListItemArchive.js +2 -2
  164. package/dist/primitives/threadListItem/ThreadListItemDelete.js +2 -2
  165. package/dist/primitives/threadListItem/ThreadListItemRoot.js +2 -2
  166. package/dist/primitives/threadListItem/ThreadListItemRoot.js.map +1 -1
  167. package/dist/primitives/threadListItem/ThreadListItemRoot.mjs +1 -1
  168. package/dist/primitives/threadListItem/ThreadListItemRoot.mjs.map +1 -1
  169. package/dist/primitives/threadListItem/ThreadListItemTitle.js +1 -1
  170. package/dist/primitives/threadListItem/ThreadListItemTrigger.js +2 -2
  171. package/dist/primitives/threadListItem/ThreadListItemUnarchive.js +2 -2
  172. package/dist/primitives/threadListItem/index.js +6 -6
  173. package/dist/runtimes/attachment/index.js +3 -3
  174. package/dist/runtimes/composer/DefaultEditComposerRuntimeCore.js +2 -2
  175. package/dist/runtimes/composer/DefaultThreadComposerRuntimeCore.js +1 -1
  176. package/dist/runtimes/core/BaseAssistantRuntimeCore.js +1 -1
  177. package/dist/runtimes/core/BaseThreadRuntimeCore.d.ts +2 -4
  178. package/dist/runtimes/core/BaseThreadRuntimeCore.d.ts.map +1 -1
  179. package/dist/runtimes/core/BaseThreadRuntimeCore.js +5 -9
  180. package/dist/runtimes/core/BaseThreadRuntimeCore.js.map +1 -1
  181. package/dist/runtimes/core/BaseThreadRuntimeCore.mjs +1 -5
  182. package/dist/runtimes/core/BaseThreadRuntimeCore.mjs.map +1 -1
  183. package/dist/runtimes/core/ThreadListRuntimeCore.d.ts +14 -6
  184. package/dist/runtimes/core/ThreadListRuntimeCore.d.ts.map +1 -1
  185. package/dist/runtimes/core/ThreadListRuntimeCore.js.map +1 -1
  186. package/dist/runtimes/core/ThreadRuntimeCore.d.ts +1 -15
  187. package/dist/runtimes/core/ThreadRuntimeCore.d.ts.map +1 -1
  188. package/dist/runtimes/core/ThreadRuntimeCore.js.map +1 -1
  189. package/dist/runtimes/core/index.d.ts +1 -1
  190. package/dist/runtimes/core/index.d.ts.map +1 -1
  191. package/dist/runtimes/core/index.js.map +1 -1
  192. package/dist/runtimes/dangerous-in-browser/DangerousInBrowserAdapter.js +6 -6
  193. package/dist/runtimes/dangerous-in-browser/index.js +1 -1
  194. package/dist/runtimes/dangerous-in-browser/useDangerousInBrowserRuntime.js +3 -3
  195. package/dist/runtimes/edge/EdgeChatAdapter.js +7 -7
  196. package/dist/runtimes/edge/EdgeRuntimeRequestOptions.js +1 -1
  197. package/dist/runtimes/edge/converters/fromCoreMessage.js +1 -1
  198. package/dist/runtimes/edge/converters/index.js +6 -6
  199. package/dist/runtimes/edge/createEdgeRuntimeAPI.js +9 -9
  200. package/dist/runtimes/edge/index.js +6 -6
  201. package/dist/runtimes/edge/index.js.map +1 -1
  202. package/dist/runtimes/edge/partial-json/parse-partial-json.js +1 -1
  203. package/dist/runtimes/edge/streams/assistantDecoderStream.js +1 -1
  204. package/dist/runtimes/edge/streams/assistantEncoderStream.js +1 -1
  205. package/dist/runtimes/edge/streams/runResultStream.js +1 -1
  206. package/dist/runtimes/edge/streams/utils/index.js +2 -2
  207. package/dist/runtimes/edge/streams/utils/streamPartDecoderStream.js +2 -2
  208. package/dist/runtimes/edge/streams/utils/streamPartEncoderStream.d.ts +1 -1
  209. package/dist/runtimes/edge/streams/utils/streamPartEncoderStream.d.ts.map +1 -1
  210. package/dist/runtimes/edge/streams/utils/streamPartEncoderStream.js +1 -1
  211. package/dist/runtimes/edge/useEdgeRuntime.js +3 -3
  212. package/dist/runtimes/external-store/ExternalStoreAdapter.d.ts +20 -3
  213. package/dist/runtimes/external-store/ExternalStoreAdapter.d.ts.map +1 -1
  214. package/dist/runtimes/external-store/ExternalStoreAdapter.js.map +1 -1
  215. package/dist/runtimes/external-store/ExternalStoreRuntimeCore.d.ts +0 -1
  216. package/dist/runtimes/external-store/ExternalStoreRuntimeCore.d.ts.map +1 -1
  217. package/dist/runtimes/external-store/ExternalStoreRuntimeCore.js +6 -13
  218. package/dist/runtimes/external-store/ExternalStoreRuntimeCore.js.map +1 -1
  219. package/dist/runtimes/external-store/ExternalStoreRuntimeCore.mjs +3 -10
  220. package/dist/runtimes/external-store/ExternalStoreRuntimeCore.mjs.map +1 -1
  221. package/dist/runtimes/external-store/ExternalStoreThreadListRuntimeCore.d.ts +9 -11
  222. package/dist/runtimes/external-store/ExternalStoreThreadListRuntimeCore.d.ts.map +1 -1
  223. package/dist/runtimes/external-store/ExternalStoreThreadListRuntimeCore.js +19 -27
  224. package/dist/runtimes/external-store/ExternalStoreThreadListRuntimeCore.js.map +1 -1
  225. package/dist/runtimes/external-store/ExternalStoreThreadListRuntimeCore.mjs +19 -27
  226. package/dist/runtimes/external-store/ExternalStoreThreadListRuntimeCore.mjs.map +1 -1
  227. package/dist/runtimes/external-store/ExternalStoreThreadRuntimeCore.d.ts +2 -2
  228. package/dist/runtimes/external-store/ExternalStoreThreadRuntimeCore.d.ts.map +1 -1
  229. package/dist/runtimes/external-store/ExternalStoreThreadRuntimeCore.js +10 -13
  230. package/dist/runtimes/external-store/ExternalStoreThreadRuntimeCore.js.map +1 -1
  231. package/dist/runtimes/external-store/ExternalStoreThreadRuntimeCore.mjs +4 -7
  232. package/dist/runtimes/external-store/ExternalStoreThreadRuntimeCore.mjs.map +1 -1
  233. package/dist/runtimes/external-store/external-message-converter.js +4 -4
  234. package/dist/runtimes/external-store/index.js +3 -3
  235. package/dist/runtimes/external-store/useExternalStoreRuntime.js +3 -3
  236. package/dist/runtimes/index.js +16 -16
  237. package/dist/runtimes/index.js.map +1 -1
  238. package/dist/runtimes/local/LocalRuntimeCore.d.ts +0 -1
  239. package/dist/runtimes/local/LocalRuntimeCore.d.ts.map +1 -1
  240. package/dist/runtimes/local/LocalRuntimeCore.js +7 -16
  241. package/dist/runtimes/local/LocalRuntimeCore.js.map +1 -1
  242. package/dist/runtimes/local/LocalRuntimeCore.mjs +3 -12
  243. package/dist/runtimes/local/LocalRuntimeCore.mjs.map +1 -1
  244. package/dist/runtimes/local/LocalThreadListRuntimeCore.d.ts +17 -15
  245. package/dist/runtimes/local/LocalThreadListRuntimeCore.d.ts.map +1 -1
  246. package/dist/runtimes/local/LocalThreadListRuntimeCore.js +95 -93
  247. package/dist/runtimes/local/LocalThreadListRuntimeCore.js.map +1 -1
  248. package/dist/runtimes/local/LocalThreadListRuntimeCore.mjs +94 -92
  249. package/dist/runtimes/local/LocalThreadListRuntimeCore.mjs.map +1 -1
  250. package/dist/runtimes/local/LocalThreadRuntimeCore.d.ts +4 -3
  251. package/dist/runtimes/local/LocalThreadRuntimeCore.d.ts.map +1 -1
  252. package/dist/runtimes/local/LocalThreadRuntimeCore.js +15 -14
  253. package/dist/runtimes/local/LocalThreadRuntimeCore.js.map +1 -1
  254. package/dist/runtimes/local/LocalThreadRuntimeCore.mjs +11 -10
  255. package/dist/runtimes/local/LocalThreadRuntimeCore.mjs.map +1 -1
  256. package/dist/runtimes/local/index.js +1 -1
  257. package/dist/runtimes/local/useLocalRuntime.d.ts.map +1 -1
  258. package/dist/runtimes/local/useLocalRuntime.js +7 -10
  259. package/dist/runtimes/local/useLocalRuntime.js.map +1 -1
  260. package/dist/runtimes/local/useLocalRuntime.mjs +4 -7
  261. package/dist/runtimes/local/useLocalRuntime.mjs.map +1 -1
  262. package/dist/runtimes/speech/index.js +1 -1
  263. package/dist/runtimes/utils/MessageRepository.js +2 -2
  264. package/dist/styles/index.css +12 -0
  265. package/dist/styles/index.css.map +1 -1
  266. package/dist/styles/tailwindcss/thread.css +1 -1
  267. package/dist/styles/tailwindcss/thread.css.json +1 -1
  268. package/dist/ui/assistant-action-bar.js +5 -5
  269. package/dist/ui/assistant-message.js +7 -7
  270. package/dist/ui/assistant-modal.js +5 -5
  271. package/dist/ui/attachment-ui.js +7 -7
  272. package/dist/ui/base/avatar.js +1 -1
  273. package/dist/ui/base/index.js +5 -5
  274. package/dist/ui/base/tooltip-icon-button.js +2 -2
  275. package/dist/ui/base/tooltip.js +1 -1
  276. package/dist/ui/branch-picker.js +5 -5
  277. package/dist/ui/composer.js +7 -7
  278. package/dist/ui/content-part.js +2 -2
  279. package/dist/ui/edit-composer.js +4 -4
  280. package/dist/ui/index.d.ts +4 -4
  281. package/dist/ui/index.d.ts.map +1 -1
  282. package/dist/ui/index.js +15 -15
  283. package/dist/ui/index.js.map +1 -1
  284. package/dist/ui/index.mjs +18 -18
  285. package/dist/ui/index.mjs.map +1 -1
  286. package/dist/ui/thread-config.d.ts +1 -1
  287. package/dist/ui/thread-config.d.ts.map +1 -1
  288. package/dist/ui/thread-config.js +2 -2
  289. package/dist/ui/thread-config.js.map +1 -1
  290. package/dist/ui/thread-config.mjs.map +1 -1
  291. package/dist/ui/thread-list-item.d.ts +2 -11
  292. package/dist/ui/thread-list-item.d.ts.map +1 -1
  293. package/dist/ui/thread-list-item.js +20 -33
  294. package/dist/ui/thread-list-item.js.map +1 -1
  295. package/dist/ui/thread-list-item.mjs +16 -29
  296. package/dist/ui/thread-list-item.mjs.map +1 -1
  297. package/dist/ui/thread-list.d.ts +10 -3
  298. package/dist/ui/thread-list.d.ts.map +1 -1
  299. package/dist/ui/thread-list.js +8 -9
  300. package/dist/ui/thread-list.js.map +1 -1
  301. package/dist/ui/thread-list.mjs +3 -4
  302. package/dist/ui/thread-list.mjs.map +1 -1
  303. package/dist/ui/thread-welcome.js +5 -5
  304. package/dist/ui/thread.js +10 -10
  305. package/dist/ui/user-action-bar.js +5 -5
  306. package/dist/ui/user-message.js +6 -6
  307. package/dist/utils/ProxyConfigProvider.js +1 -1
  308. package/dist/utils/combined/createCombinedStore.d.ts.map +1 -1
  309. package/dist/utils/combined/useCombinedStore.d.ts.map +1 -1
  310. package/dist/utils/combined/useCombinedStore.js +1 -1
  311. package/dist/utils/hooks/useOnResizeContent.js +1 -1
  312. package/dist/utils/hooks/useOnScrollToBottom.js +1 -1
  313. package/dist/utils/smooth/SmoothContext.js +2 -2
  314. package/dist/utils/smooth/index.js +3 -3
  315. package/dist/utils/smooth/useSmooth.js +3 -3
  316. package/package.json +1 -1
  317. package/src/api/AssistantRuntime.ts +21 -25
  318. package/src/api/ThreadListItemRuntime.ts +36 -7
  319. package/src/api/ThreadListRuntime.ts +31 -9
  320. package/src/api/ThreadRuntime.ts +38 -10
  321. package/src/context/providers/AssistantRuntimeProvider.tsx +4 -1
  322. package/src/context/providers/ThreadRuntimeProvider.tsx +9 -2
  323. package/src/internal.ts +1 -1
  324. package/src/primitives/composer/ComposerInput.tsx +3 -1
  325. package/src/primitives/threadList/ThreadListNew.tsx +1 -1
  326. package/src/primitives/threadListItem/ThreadListItemRoot.tsx +1 -1
  327. package/src/runtimes/core/BaseThreadRuntimeCore.tsx +1 -9
  328. package/src/runtimes/core/ThreadListRuntimeCore.tsx +16 -7
  329. package/src/runtimes/core/ThreadRuntimeCore.tsx +1 -19
  330. package/src/runtimes/core/index.ts +0 -1
  331. package/src/runtimes/external-store/ExternalStoreAdapter.tsx +20 -3
  332. package/src/runtimes/external-store/ExternalStoreRuntimeCore.tsx +5 -12
  333. package/src/runtimes/external-store/ExternalStoreThreadListRuntimeCore.tsx +22 -35
  334. package/src/runtimes/external-store/ExternalStoreThreadRuntimeCore.tsx +3 -7
  335. package/src/runtimes/local/LocalRuntimeCore.tsx +7 -14
  336. package/src/runtimes/local/LocalThreadListRuntimeCore.tsx +110 -103
  337. package/src/runtimes/local/LocalThreadRuntimeCore.tsx +11 -10
  338. package/src/runtimes/local/useLocalRuntime.tsx +5 -12
  339. package/src/styles/tailwindcss/thread.css +1 -1
  340. package/src/ui/index.ts +6 -6
  341. package/src/ui/thread-config.tsx +1 -1
  342. package/src/ui/thread-list-item.tsx +24 -32
  343. package/src/ui/thread-list.tsx +13 -7
  344. package/dist/runtimes/local/LocalThreadMetadataRuntimeCore.d.ts +0 -19
  345. package/dist/runtimes/local/LocalThreadMetadataRuntimeCore.d.ts.map +0 -1
  346. package/dist/runtimes/local/LocalThreadMetadataRuntimeCore.js +0 -87
  347. package/dist/runtimes/local/LocalThreadMetadataRuntimeCore.js.map +0 -1
  348. package/dist/runtimes/local/LocalThreadMetadataRuntimeCore.mjs +0 -62
  349. package/dist/runtimes/local/LocalThreadMetadataRuntimeCore.mjs.map +0 -1
  350. package/src/runtimes/local/LocalThreadMetadataRuntimeCore.tsx +0 -79
@@ -1,6 +1,6 @@
1
1
  import { AssistantRuntimeCore } from "../runtimes/core/AssistantRuntimeCore";
2
2
  import { ModelConfigProvider } from "../types/ModelConfigTypes";
3
- import { ThreadRuntime, ThreadRuntimeCoreBinding } from "./ThreadRuntime";
3
+ import { ThreadListItemRuntimeBinding, ThreadRuntime, ThreadRuntimeCoreBinding } from "./ThreadRuntime";
4
4
  import { Unsubscribe } from "../types";
5
5
  import { ThreadListRuntime, ThreadListRuntimeImpl } from "./ThreadListRuntime";
6
6
  export type AssistantRuntime = {
@@ -31,14 +31,13 @@ export type AssistantRuntime = {
31
31
  };
32
32
  export declare class AssistantRuntimeImpl implements Omit<AssistantRuntimeCore, "thread" | "threadList">, AssistantRuntime {
33
33
  private readonly _core;
34
- private readonly _thread;
35
34
  readonly threadList: ThreadListRuntimeImpl;
36
- protected constructor(_core: AssistantRuntimeCore, _thread: ThreadRuntime);
35
+ readonly _thread: ThreadRuntime;
36
+ protected constructor(_core: AssistantRuntimeCore, runtimeFactory?: new (binding: ThreadRuntimeCoreBinding, threadListItemBinding: ThreadListItemRuntimeBinding) => ThreadRuntime);
37
37
  get thread(): ThreadRuntime;
38
38
  switchToNewThread(): Promise<void>;
39
39
  switchToThread(threadId: string): Promise<void>;
40
40
  registerModelConfigProvider(provider: ModelConfigProvider): Unsubscribe;
41
- protected static createMainThreadRuntime(_core: AssistantRuntimeCore, CustomThreadRuntime?: new (binding: ThreadRuntimeCoreBinding) => ThreadRuntime): ThreadRuntime;
42
- static create(_core: AssistantRuntimeCore, CustomThreadRuntime?: new (binding: ThreadRuntimeCoreBinding) => ThreadRuntime): AssistantRuntime;
41
+ static create(_core: AssistantRuntimeCore, runtimeFactory?: new (binding: ThreadRuntimeCoreBinding, threadListItemBinding: ThreadListItemRuntimeBinding) => ThreadRuntime): AssistantRuntime;
43
42
  }
44
43
  //# sourceMappingURL=AssistantRuntime.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"AssistantRuntime.d.ts","sourceRoot":"","sources":["../../src/api/AssistantRuntime.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,oBAAoB,EAAE,MAAM,uCAAuC,CAAC;AAE7E,OAAO,EAAE,mBAAmB,EAAE,MAAM,2BAA2B,CAAC;AAChE,OAAO,EACL,aAAa,EACb,wBAAwB,EAEzB,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AACvC,OAAO,EAAE,iBAAiB,EAAE,qBAAqB,EAAE,MAAM,qBAAqB,CAAC;AAE/E,MAAM,MAAM,gBAAgB,GAAG;IAC7B;;OAEG;IACH,QAAQ,CAAC,MAAM,EAAE,aAAa,CAAC;IAE/B;;OAEG;IACH,QAAQ,CAAC,UAAU,EAAE,iBAAiB,CAAC;IAEvC;;OAEG;IACH,iBAAiB,IAAI,IAAI,CAAC;IAE1B;;;;OAIG;IACH,cAAc,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IAEvC;;;;OAIG;IACH,2BAA2B,CAAC,QAAQ,EAAE,mBAAmB,GAAG,WAAW,CAAC;CACzE,CAAC;AAEF,qBAAa,oBACX,YACE,IAAI,CAAC,oBAAoB,EAAE,QAAQ,GAAG,YAAY,CAAC,EACnD,gBAAgB;IAKhB,OAAO,CAAC,QAAQ,CAAC,KAAK;IACtB,OAAO,CAAC,QAAQ,CAAC,OAAO;IAJ1B,SAAgB,UAAU,wBAAC;IAE3B,SAAS,aACU,KAAK,EAAE,oBAAoB,EAC3B,OAAO,EAAE,aAAa;IAKzC,IAAW,MAAM,kBAEhB;IAEM,iBAAiB;IAIjB,cAAc,CAAC,QAAQ,EAAE,MAAM;IAI/B,2BAA2B,CAAC,QAAQ,EAAE,mBAAmB;IAIhE,SAAS,CAAC,MAAM,CAAC,uBAAuB,CACtC,KAAK,EAAE,oBAAoB,EAC3B,mBAAmB,GAAE,KACnB,OAAO,EAAE,wBAAwB,KAC9B,aAAiC;WAc1B,MAAM,CAClB,KAAK,EAAE,oBAAoB,EAC3B,mBAAmB,GAAE,KACnB,OAAO,EAAE,wBAAwB,KAC9B,aAAiC,GAKjC,gBAAgB;CAExB"}
1
+ {"version":3,"file":"AssistantRuntime.d.ts","sourceRoot":"","sources":["../../src/api/AssistantRuntime.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,oBAAoB,EAAE,MAAM,uCAAuC,CAAC;AAE7E,OAAO,EAAE,mBAAmB,EAAE,MAAM,2BAA2B,CAAC;AAChE,OAAO,EACL,4BAA4B,EAC5B,aAAa,EACb,wBAAwB,EAEzB,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AACvC,OAAO,EAAE,iBAAiB,EAAE,qBAAqB,EAAE,MAAM,qBAAqB,CAAC;AAE/E,MAAM,MAAM,gBAAgB,GAAG;IAC7B;;OAEG;IACH,QAAQ,CAAC,MAAM,EAAE,aAAa,CAAC;IAE/B;;OAEG;IACH,QAAQ,CAAC,UAAU,EAAE,iBAAiB,CAAC;IAEvC;;OAEG;IACH,iBAAiB,IAAI,IAAI,CAAC;IAE1B;;;;OAIG;IACH,cAAc,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IAEvC;;;;OAIG;IACH,2BAA2B,CAAC,QAAQ,EAAE,mBAAmB,GAAG,WAAW,CAAC;CACzE,CAAC;AAEF,qBAAa,oBACX,YACE,IAAI,CAAC,oBAAoB,EAAE,QAAQ,GAAG,YAAY,CAAC,EACnD,gBAAgB;IAMhB,OAAO,CAAC,QAAQ,CAAC,KAAK;IAJxB,SAAgB,UAAU,wBAAC;IAC3B,SAAgB,OAAO,EAAE,aAAa,CAAC;IAEvC,SAAS,aACU,KAAK,EAAE,oBAAoB,EAC5C,cAAc,GAAE,KACd,OAAO,EAAE,wBAAwB,EACjC,qBAAqB,EAAE,4BAA4B,KAChD,aAAiC;IAgBxC,IAAW,MAAM,kBAEhB;IAEM,iBAAiB;IAIjB,cAAc,CAAC,QAAQ,EAAE,MAAM;IAI/B,2BAA2B,CAAC,QAAQ,EAAE,mBAAmB;WAIlD,MAAM,CAClB,KAAK,EAAE,oBAAoB,EAC3B,cAAc,GAAE,KACd,OAAO,EAAE,wBAAwB,EACjC,qBAAqB,EAAE,4BAA4B,KAChD,aAAiC,GACrC,gBAAgB;CAGpB"}
@@ -23,16 +23,28 @@ __export(AssistantRuntime_exports, {
23
23
  AssistantRuntimeImpl: () => AssistantRuntimeImpl
24
24
  });
25
25
  module.exports = __toCommonJS(AssistantRuntime_exports);
26
- var import_NestedSubscriptionSubject = require("./subscribable/NestedSubscriptionSubject.cjs");
27
- var import_ThreadRuntime = require("./ThreadRuntime.cjs");
28
- var import_ThreadListRuntime = require("./ThreadListRuntime.cjs");
26
+ var import_NestedSubscriptionSubject = require("./subscribable/NestedSubscriptionSubject.js");
27
+ var import_ThreadRuntime = require("./ThreadRuntime.js");
28
+ var import_ThreadListRuntime = require("./ThreadListRuntime.js");
29
29
  var AssistantRuntimeImpl = class _AssistantRuntimeImpl {
30
- constructor(_core, _thread) {
30
+ constructor(_core, runtimeFactory = import_ThreadRuntime.ThreadRuntimeImpl) {
31
31
  this._core = _core;
32
- this._thread = _thread;
33
32
  this.threadList = new import_ThreadListRuntime.ThreadListRuntimeImpl(_core.threadList);
33
+ this._thread = new runtimeFactory(
34
+ new import_NestedSubscriptionSubject.NestedSubscriptionSubject({
35
+ path: {
36
+ ref: "threads.main",
37
+ threadSelector: { type: "main" }
38
+ },
39
+ getState: () => _core.threadList.getMainThreadRuntimeCore(),
40
+ subscribe: (callback) => _core.threadList.subscribe(callback)
41
+ }),
42
+ this.threadList.mainThreadListItem
43
+ // TODO capture "main" threadListItem from context around useLocalRuntime / useExternalStoreRuntime
44
+ );
34
45
  }
35
46
  threadList;
47
+ _thread;
36
48
  get thread() {
37
49
  return this._thread;
38
50
  }
@@ -45,23 +57,8 @@ var AssistantRuntimeImpl = class _AssistantRuntimeImpl {
45
57
  registerModelConfigProvider(provider) {
46
58
  return this._core.registerModelConfigProvider(provider);
47
59
  }
48
- static createMainThreadRuntime(_core, CustomThreadRuntime = import_ThreadRuntime.ThreadRuntimeImpl) {
49
- return new CustomThreadRuntime(
50
- new import_NestedSubscriptionSubject.NestedSubscriptionSubject({
51
- path: {
52
- ref: "threads.main",
53
- threadSelector: { type: "main" }
54
- },
55
- getState: () => _core.threadList.mainThread,
56
- subscribe: (callback) => _core.threadList.subscribe(callback)
57
- })
58
- );
59
- }
60
- static create(_core, CustomThreadRuntime = import_ThreadRuntime.ThreadRuntimeImpl) {
61
- return new _AssistantRuntimeImpl(
62
- _core,
63
- _AssistantRuntimeImpl.createMainThreadRuntime(_core, CustomThreadRuntime)
64
- );
60
+ static create(_core, runtimeFactory = import_ThreadRuntime.ThreadRuntimeImpl) {
61
+ return new _AssistantRuntimeImpl(_core, runtimeFactory);
65
62
  }
66
63
  };
67
64
  // Annotate the CommonJS export names for ESM import in node:
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/api/AssistantRuntime.ts"],"sourcesContent":["import { AssistantRuntimeCore } from \"../runtimes/core/AssistantRuntimeCore\";\nimport { NestedSubscriptionSubject } from \"./subscribable/NestedSubscriptionSubject\";\nimport { ModelConfigProvider } from \"../types/ModelConfigTypes\";\nimport {\n ThreadRuntime,\n ThreadRuntimeCoreBinding,\n ThreadRuntimeImpl,\n} from \"./ThreadRuntime\";\nimport { Unsubscribe } from \"../types\";\nimport { ThreadListRuntime, ThreadListRuntimeImpl } from \"./ThreadListRuntime\";\n\nexport type AssistantRuntime = {\n /**\n * The currently selected main thread.\n */\n readonly thread: ThreadRuntime;\n\n /**\n * The thread manager, to rename, archive and delete threads.\n */\n readonly threadList: ThreadListRuntime;\n\n /**\n * Switch to a new thread.\n */\n switchToNewThread(): void;\n\n /**\n * Switch to a thread.\n *\n * @param threadId The thread ID to switch to.\n */\n switchToThread(threadId: string): void;\n\n /**\n * Register a model config provider. Model config providers are configuration such as system message, temperature, etc. that are set in the frontend.\n *\n * @param provider The model config provider to register.\n */\n registerModelConfigProvider(provider: ModelConfigProvider): Unsubscribe;\n};\n\nexport class AssistantRuntimeImpl\n implements\n Omit<AssistantRuntimeCore, \"thread\" | \"threadList\">,\n AssistantRuntime\n{\n public readonly threadList;\n\n protected constructor(\n private readonly _core: AssistantRuntimeCore,\n private readonly _thread: ThreadRuntime,\n ) {\n this.threadList = new ThreadListRuntimeImpl(_core.threadList);\n }\n\n public get thread() {\n return this._thread;\n }\n\n public switchToNewThread() {\n return this._core.threadList.switchToNewThread();\n }\n\n public switchToThread(threadId: string) {\n return this._core.threadList.switchToThread(threadId);\n }\n\n public registerModelConfigProvider(provider: ModelConfigProvider) {\n return this._core.registerModelConfigProvider(provider);\n }\n\n protected static createMainThreadRuntime(\n _core: AssistantRuntimeCore,\n CustomThreadRuntime: new (\n binding: ThreadRuntimeCoreBinding,\n ) => ThreadRuntime = ThreadRuntimeImpl,\n ) {\n return new CustomThreadRuntime(\n new NestedSubscriptionSubject({\n path: {\n ref: \"threads.main\",\n threadSelector: { type: \"main\" },\n },\n getState: () => _core.threadList.mainThread,\n subscribe: (callback) => _core.threadList.subscribe(callback),\n }),\n );\n }\n\n public static create(\n _core: AssistantRuntimeCore,\n CustomThreadRuntime: new (\n binding: ThreadRuntimeCoreBinding,\n ) => ThreadRuntime = ThreadRuntimeImpl,\n ) {\n return new AssistantRuntimeImpl(\n _core,\n AssistantRuntimeImpl.createMainThreadRuntime(_core, CustomThreadRuntime),\n ) as AssistantRuntime;\n }\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AACA,uCAA0C;AAE1C,2BAIO;AAEP,+BAAyD;AAiClD,IAAM,uBAAN,MAAM,sBAIb;AAAA,EAGY,YACS,OACA,SACjB;AAFiB;AACA;AAEjB,SAAK,aAAa,IAAI,+CAAsB,MAAM,UAAU;AAAA,EAC9D;AAAA,EAPgB;AAAA,EAShB,IAAW,SAAS;AAClB,WAAO,KAAK;AAAA,EACd;AAAA,EAEO,oBAAoB;AACzB,WAAO,KAAK,MAAM,WAAW,kBAAkB;AAAA,EACjD;AAAA,EAEO,eAAe,UAAkB;AACtC,WAAO,KAAK,MAAM,WAAW,eAAe,QAAQ;AAAA,EACtD;AAAA,EAEO,4BAA4B,UAA+B;AAChE,WAAO,KAAK,MAAM,4BAA4B,QAAQ;AAAA,EACxD;AAAA,EAEA,OAAiB,wBACf,OACA,sBAEqB,wCACrB;AACA,WAAO,IAAI;AAAA,MACT,IAAI,2DAA0B;AAAA,QAC5B,MAAM;AAAA,UACJ,KAAK;AAAA,UACL,gBAAgB,EAAE,MAAM,OAAO;AAAA,QACjC;AAAA,QACA,UAAU,MAAM,MAAM,WAAW;AAAA,QACjC,WAAW,CAAC,aAAa,MAAM,WAAW,UAAU,QAAQ;AAAA,MAC9D,CAAC;AAAA,IACH;AAAA,EACF;AAAA,EAEA,OAAc,OACZ,OACA,sBAEqB,wCACrB;AACA,WAAO,IAAI;AAAA,MACT;AAAA,MACA,sBAAqB,wBAAwB,OAAO,mBAAmB;AAAA,IACzE;AAAA,EACF;AACF;","names":[]}
1
+ {"version":3,"sources":["../../src/api/AssistantRuntime.ts"],"sourcesContent":["import { AssistantRuntimeCore } from \"../runtimes/core/AssistantRuntimeCore\";\nimport { NestedSubscriptionSubject } from \"./subscribable/NestedSubscriptionSubject\";\nimport { ModelConfigProvider } from \"../types/ModelConfigTypes\";\nimport {\n ThreadListItemRuntimeBinding,\n ThreadRuntime,\n ThreadRuntimeCoreBinding,\n ThreadRuntimeImpl,\n} from \"./ThreadRuntime\";\nimport { Unsubscribe } from \"../types\";\nimport { ThreadListRuntime, ThreadListRuntimeImpl } from \"./ThreadListRuntime\";\n\nexport type AssistantRuntime = {\n /**\n * The currently selected main thread.\n */\n readonly thread: ThreadRuntime;\n\n /**\n * The thread manager, to rename, archive and delete threads.\n */\n readonly threadList: ThreadListRuntime;\n\n /**\n * Switch to a new thread.\n */\n switchToNewThread(): void;\n\n /**\n * Switch to a thread.\n *\n * @param threadId The thread ID to switch to.\n */\n switchToThread(threadId: string): void;\n\n /**\n * Register a model config provider. Model config providers are configuration such as system message, temperature, etc. that are set in the frontend.\n *\n * @param provider The model config provider to register.\n */\n registerModelConfigProvider(provider: ModelConfigProvider): Unsubscribe;\n};\n\nexport class AssistantRuntimeImpl\n implements\n Omit<AssistantRuntimeCore, \"thread\" | \"threadList\">,\n AssistantRuntime\n{\n public readonly threadList;\n public readonly _thread: ThreadRuntime;\n\n protected constructor(\n private readonly _core: AssistantRuntimeCore,\n runtimeFactory: new (\n binding: ThreadRuntimeCoreBinding,\n threadListItemBinding: ThreadListItemRuntimeBinding,\n ) => ThreadRuntime = ThreadRuntimeImpl,\n ) {\n this.threadList = new ThreadListRuntimeImpl(_core.threadList);\n this._thread = new runtimeFactory(\n new NestedSubscriptionSubject({\n path: {\n ref: \"threads.main\",\n threadSelector: { type: \"main\" },\n },\n getState: () => _core.threadList.getMainThreadRuntimeCore(),\n subscribe: (callback) => _core.threadList.subscribe(callback),\n }),\n this.threadList.mainThreadListItem, // TODO capture \"main\" threadListItem from context around useLocalRuntime / useExternalStoreRuntime\n );\n }\n\n public get thread() {\n return this._thread;\n }\n\n public switchToNewThread() {\n return this._core.threadList.switchToNewThread();\n }\n\n public switchToThread(threadId: string) {\n return this._core.threadList.switchToThread(threadId);\n }\n\n public registerModelConfigProvider(provider: ModelConfigProvider) {\n return this._core.registerModelConfigProvider(provider);\n }\n\n public static create(\n _core: AssistantRuntimeCore,\n runtimeFactory: new (\n binding: ThreadRuntimeCoreBinding,\n threadListItemBinding: ThreadListItemRuntimeBinding,\n ) => ThreadRuntime = ThreadRuntimeImpl,\n ): AssistantRuntime {\n return new AssistantRuntimeImpl(_core, runtimeFactory);\n }\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AACA,uCAA0C;AAE1C,2BAKO;AAEP,+BAAyD;AAiClD,IAAM,uBAAN,MAAM,sBAIb;AAAA,EAIY,YACS,OACjB,iBAGqB,wCACrB;AALiB;AAMjB,SAAK,aAAa,IAAI,+CAAsB,MAAM,UAAU;AAC5D,SAAK,UAAU,IAAI;AAAA,MACjB,IAAI,2DAA0B;AAAA,QAC5B,MAAM;AAAA,UACJ,KAAK;AAAA,UACL,gBAAgB,EAAE,MAAM,OAAO;AAAA,QACjC;AAAA,QACA,UAAU,MAAM,MAAM,WAAW,yBAAyB;AAAA,QAC1D,WAAW,CAAC,aAAa,MAAM,WAAW,UAAU,QAAQ;AAAA,MAC9D,CAAC;AAAA,MACD,KAAK,WAAW;AAAA;AAAA,IAClB;AAAA,EACF;AAAA,EAtBgB;AAAA,EACA;AAAA,EAuBhB,IAAW,SAAS;AAClB,WAAO,KAAK;AAAA,EACd;AAAA,EAEO,oBAAoB;AACzB,WAAO,KAAK,MAAM,WAAW,kBAAkB;AAAA,EACjD;AAAA,EAEO,eAAe,UAAkB;AACtC,WAAO,KAAK,MAAM,WAAW,eAAe,QAAQ;AAAA,EACtD;AAAA,EAEO,4BAA4B,UAA+B;AAChE,WAAO,KAAK,MAAM,4BAA4B,QAAQ;AAAA,EACxD;AAAA,EAEA,OAAc,OACZ,OACA,iBAGqB,wCACH;AAClB,WAAO,IAAI,sBAAqB,OAAO,cAAc;AAAA,EACvD;AACF;","names":[]}
@@ -5,12 +5,24 @@ import {
5
5
  } from "./ThreadRuntime.mjs";
6
6
  import { ThreadListRuntimeImpl } from "./ThreadListRuntime.mjs";
7
7
  var AssistantRuntimeImpl = class _AssistantRuntimeImpl {
8
- constructor(_core, _thread) {
8
+ constructor(_core, runtimeFactory = ThreadRuntimeImpl) {
9
9
  this._core = _core;
10
- this._thread = _thread;
11
10
  this.threadList = new ThreadListRuntimeImpl(_core.threadList);
11
+ this._thread = new runtimeFactory(
12
+ new NestedSubscriptionSubject({
13
+ path: {
14
+ ref: "threads.main",
15
+ threadSelector: { type: "main" }
16
+ },
17
+ getState: () => _core.threadList.getMainThreadRuntimeCore(),
18
+ subscribe: (callback) => _core.threadList.subscribe(callback)
19
+ }),
20
+ this.threadList.mainThreadListItem
21
+ // TODO capture "main" threadListItem from context around useLocalRuntime / useExternalStoreRuntime
22
+ );
12
23
  }
13
24
  threadList;
25
+ _thread;
14
26
  get thread() {
15
27
  return this._thread;
16
28
  }
@@ -23,23 +35,8 @@ var AssistantRuntimeImpl = class _AssistantRuntimeImpl {
23
35
  registerModelConfigProvider(provider) {
24
36
  return this._core.registerModelConfigProvider(provider);
25
37
  }
26
- static createMainThreadRuntime(_core, CustomThreadRuntime = ThreadRuntimeImpl) {
27
- return new CustomThreadRuntime(
28
- new NestedSubscriptionSubject({
29
- path: {
30
- ref: "threads.main",
31
- threadSelector: { type: "main" }
32
- },
33
- getState: () => _core.threadList.mainThread,
34
- subscribe: (callback) => _core.threadList.subscribe(callback)
35
- })
36
- );
37
- }
38
- static create(_core, CustomThreadRuntime = ThreadRuntimeImpl) {
39
- return new _AssistantRuntimeImpl(
40
- _core,
41
- _AssistantRuntimeImpl.createMainThreadRuntime(_core, CustomThreadRuntime)
42
- );
38
+ static create(_core, runtimeFactory = ThreadRuntimeImpl) {
39
+ return new _AssistantRuntimeImpl(_core, runtimeFactory);
43
40
  }
44
41
  };
45
42
  export {
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/api/AssistantRuntime.ts"],"sourcesContent":["import { AssistantRuntimeCore } from \"../runtimes/core/AssistantRuntimeCore\";\nimport { NestedSubscriptionSubject } from \"./subscribable/NestedSubscriptionSubject\";\nimport { ModelConfigProvider } from \"../types/ModelConfigTypes\";\nimport {\n ThreadRuntime,\n ThreadRuntimeCoreBinding,\n ThreadRuntimeImpl,\n} from \"./ThreadRuntime\";\nimport { Unsubscribe } from \"../types\";\nimport { ThreadListRuntime, ThreadListRuntimeImpl } from \"./ThreadListRuntime\";\n\nexport type AssistantRuntime = {\n /**\n * The currently selected main thread.\n */\n readonly thread: ThreadRuntime;\n\n /**\n * The thread manager, to rename, archive and delete threads.\n */\n readonly threadList: ThreadListRuntime;\n\n /**\n * Switch to a new thread.\n */\n switchToNewThread(): void;\n\n /**\n * Switch to a thread.\n *\n * @param threadId The thread ID to switch to.\n */\n switchToThread(threadId: string): void;\n\n /**\n * Register a model config provider. Model config providers are configuration such as system message, temperature, etc. that are set in the frontend.\n *\n * @param provider The model config provider to register.\n */\n registerModelConfigProvider(provider: ModelConfigProvider): Unsubscribe;\n};\n\nexport class AssistantRuntimeImpl\n implements\n Omit<AssistantRuntimeCore, \"thread\" | \"threadList\">,\n AssistantRuntime\n{\n public readonly threadList;\n\n protected constructor(\n private readonly _core: AssistantRuntimeCore,\n private readonly _thread: ThreadRuntime,\n ) {\n this.threadList = new ThreadListRuntimeImpl(_core.threadList);\n }\n\n public get thread() {\n return this._thread;\n }\n\n public switchToNewThread() {\n return this._core.threadList.switchToNewThread();\n }\n\n public switchToThread(threadId: string) {\n return this._core.threadList.switchToThread(threadId);\n }\n\n public registerModelConfigProvider(provider: ModelConfigProvider) {\n return this._core.registerModelConfigProvider(provider);\n }\n\n protected static createMainThreadRuntime(\n _core: AssistantRuntimeCore,\n CustomThreadRuntime: new (\n binding: ThreadRuntimeCoreBinding,\n ) => ThreadRuntime = ThreadRuntimeImpl,\n ) {\n return new CustomThreadRuntime(\n new NestedSubscriptionSubject({\n path: {\n ref: \"threads.main\",\n threadSelector: { type: \"main\" },\n },\n getState: () => _core.threadList.mainThread,\n subscribe: (callback) => _core.threadList.subscribe(callback),\n }),\n );\n }\n\n public static create(\n _core: AssistantRuntimeCore,\n CustomThreadRuntime: new (\n binding: ThreadRuntimeCoreBinding,\n ) => ThreadRuntime = ThreadRuntimeImpl,\n ) {\n return new AssistantRuntimeImpl(\n _core,\n AssistantRuntimeImpl.createMainThreadRuntime(_core, CustomThreadRuntime),\n ) as AssistantRuntime;\n }\n}\n"],"mappings":";AACA,SAAS,iCAAiC;AAE1C;AAAA,EAGE;AAAA,OACK;AAEP,SAA4B,6BAA6B;AAiClD,IAAM,uBAAN,MAAM,sBAIb;AAAA,EAGY,YACS,OACA,SACjB;AAFiB;AACA;AAEjB,SAAK,aAAa,IAAI,sBAAsB,MAAM,UAAU;AAAA,EAC9D;AAAA,EAPgB;AAAA,EAShB,IAAW,SAAS;AAClB,WAAO,KAAK;AAAA,EACd;AAAA,EAEO,oBAAoB;AACzB,WAAO,KAAK,MAAM,WAAW,kBAAkB;AAAA,EACjD;AAAA,EAEO,eAAe,UAAkB;AACtC,WAAO,KAAK,MAAM,WAAW,eAAe,QAAQ;AAAA,EACtD;AAAA,EAEO,4BAA4B,UAA+B;AAChE,WAAO,KAAK,MAAM,4BAA4B,QAAQ;AAAA,EACxD;AAAA,EAEA,OAAiB,wBACf,OACA,sBAEqB,mBACrB;AACA,WAAO,IAAI;AAAA,MACT,IAAI,0BAA0B;AAAA,QAC5B,MAAM;AAAA,UACJ,KAAK;AAAA,UACL,gBAAgB,EAAE,MAAM,OAAO;AAAA,QACjC;AAAA,QACA,UAAU,MAAM,MAAM,WAAW;AAAA,QACjC,WAAW,CAAC,aAAa,MAAM,WAAW,UAAU,QAAQ;AAAA,MAC9D,CAAC;AAAA,IACH;AAAA,EACF;AAAA,EAEA,OAAc,OACZ,OACA,sBAEqB,mBACrB;AACA,WAAO,IAAI;AAAA,MACT;AAAA,MACA,sBAAqB,wBAAwB,OAAO,mBAAmB;AAAA,IACzE;AAAA,EACF;AACF;","names":[]}
1
+ {"version":3,"sources":["../../src/api/AssistantRuntime.ts"],"sourcesContent":["import { AssistantRuntimeCore } from \"../runtimes/core/AssistantRuntimeCore\";\nimport { NestedSubscriptionSubject } from \"./subscribable/NestedSubscriptionSubject\";\nimport { ModelConfigProvider } from \"../types/ModelConfigTypes\";\nimport {\n ThreadListItemRuntimeBinding,\n ThreadRuntime,\n ThreadRuntimeCoreBinding,\n ThreadRuntimeImpl,\n} from \"./ThreadRuntime\";\nimport { Unsubscribe } from \"../types\";\nimport { ThreadListRuntime, ThreadListRuntimeImpl } from \"./ThreadListRuntime\";\n\nexport type AssistantRuntime = {\n /**\n * The currently selected main thread.\n */\n readonly thread: ThreadRuntime;\n\n /**\n * The thread manager, to rename, archive and delete threads.\n */\n readonly threadList: ThreadListRuntime;\n\n /**\n * Switch to a new thread.\n */\n switchToNewThread(): void;\n\n /**\n * Switch to a thread.\n *\n * @param threadId The thread ID to switch to.\n */\n switchToThread(threadId: string): void;\n\n /**\n * Register a model config provider. Model config providers are configuration such as system message, temperature, etc. that are set in the frontend.\n *\n * @param provider The model config provider to register.\n */\n registerModelConfigProvider(provider: ModelConfigProvider): Unsubscribe;\n};\n\nexport class AssistantRuntimeImpl\n implements\n Omit<AssistantRuntimeCore, \"thread\" | \"threadList\">,\n AssistantRuntime\n{\n public readonly threadList;\n public readonly _thread: ThreadRuntime;\n\n protected constructor(\n private readonly _core: AssistantRuntimeCore,\n runtimeFactory: new (\n binding: ThreadRuntimeCoreBinding,\n threadListItemBinding: ThreadListItemRuntimeBinding,\n ) => ThreadRuntime = ThreadRuntimeImpl,\n ) {\n this.threadList = new ThreadListRuntimeImpl(_core.threadList);\n this._thread = new runtimeFactory(\n new NestedSubscriptionSubject({\n path: {\n ref: \"threads.main\",\n threadSelector: { type: \"main\" },\n },\n getState: () => _core.threadList.getMainThreadRuntimeCore(),\n subscribe: (callback) => _core.threadList.subscribe(callback),\n }),\n this.threadList.mainThreadListItem, // TODO capture \"main\" threadListItem from context around useLocalRuntime / useExternalStoreRuntime\n );\n }\n\n public get thread() {\n return this._thread;\n }\n\n public switchToNewThread() {\n return this._core.threadList.switchToNewThread();\n }\n\n public switchToThread(threadId: string) {\n return this._core.threadList.switchToThread(threadId);\n }\n\n public registerModelConfigProvider(provider: ModelConfigProvider) {\n return this._core.registerModelConfigProvider(provider);\n }\n\n public static create(\n _core: AssistantRuntimeCore,\n runtimeFactory: new (\n binding: ThreadRuntimeCoreBinding,\n threadListItemBinding: ThreadListItemRuntimeBinding,\n ) => ThreadRuntime = ThreadRuntimeImpl,\n ): AssistantRuntime {\n return new AssistantRuntimeImpl(_core, runtimeFactory);\n }\n}\n"],"mappings":";AACA,SAAS,iCAAiC;AAE1C;AAAA,EAIE;AAAA,OACK;AAEP,SAA4B,6BAA6B;AAiClD,IAAM,uBAAN,MAAM,sBAIb;AAAA,EAIY,YACS,OACjB,iBAGqB,mBACrB;AALiB;AAMjB,SAAK,aAAa,IAAI,sBAAsB,MAAM,UAAU;AAC5D,SAAK,UAAU,IAAI;AAAA,MACjB,IAAI,0BAA0B;AAAA,QAC5B,MAAM;AAAA,UACJ,KAAK;AAAA,UACL,gBAAgB,EAAE,MAAM,OAAO;AAAA,QACjC;AAAA,QACA,UAAU,MAAM,MAAM,WAAW,yBAAyB;AAAA,QAC1D,WAAW,CAAC,aAAa,MAAM,WAAW,UAAU,QAAQ;AAAA,MAC9D,CAAC;AAAA,MACD,KAAK,WAAW;AAAA;AAAA,IAClB;AAAA,EACF;AAAA,EAtBgB;AAAA,EACA;AAAA,EAuBhB,IAAW,SAAS;AAClB,WAAO,KAAK;AAAA,EACd;AAAA,EAEO,oBAAoB;AACzB,WAAO,KAAK,MAAM,WAAW,kBAAkB;AAAA,EACjD;AAAA,EAEO,eAAe,UAAkB;AACtC,WAAO,KAAK,MAAM,WAAW,eAAe,QAAQ;AAAA,EACtD;AAAA,EAEO,4BAA4B,UAA+B;AAChE,WAAO,KAAK,MAAM,4BAA4B,QAAQ;AAAA,EACxD;AAAA,EAEA,OAAc,OACZ,OACA,iBAGqB,mBACH;AAClB,WAAO,IAAI,sBAAqB,OAAO,cAAc;AAAA,EACvD;AACF;","names":[]}
@@ -1 +1 @@
1
- {"version":3,"file":"ComposerRuntime.d.ts","sourceRoot":"","sources":["../../src/api/ComposerRuntime.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ComposerRuntime.d.ts","sourceRoot":"","sources":["../../src/api/ComposerRuntime.ts"],"names":[],"mappings":"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"}
@@ -25,10 +25,10 @@ __export(ComposerRuntime_exports, {
25
25
  ThreadComposerRuntimeImpl: () => ThreadComposerRuntimeImpl
26
26
  });
27
27
  module.exports = __toCommonJS(ComposerRuntime_exports);
28
- var import_LazyMemoizeSubject = require("./subscribable/LazyMemoizeSubject.cjs");
29
- var import_AttachmentRuntime = require("./AttachmentRuntime.cjs");
30
- var import_ShallowMemoizeSubject = require("./subscribable/ShallowMemoizeSubject.cjs");
31
- var import_SKIP_UPDATE = require("./subscribable/SKIP_UPDATE.cjs");
28
+ var import_LazyMemoizeSubject = require("./subscribable/LazyMemoizeSubject.js");
29
+ var import_AttachmentRuntime = require("./AttachmentRuntime.js");
30
+ var import_ShallowMemoizeSubject = require("./subscribable/ShallowMemoizeSubject.js");
31
+ var import_SKIP_UPDATE = require("./subscribable/SKIP_UPDATE.js");
32
32
  var EMPTY_ARRAY = Object.freeze([]);
33
33
  var getThreadComposerState = (runtime) => {
34
34
  return Object.freeze({
@@ -25,13 +25,13 @@ __export(MessageRuntime_exports, {
25
25
  toContentPartStatus: () => toContentPartStatus
26
26
  });
27
27
  module.exports = __toCommonJS(MessageRuntime_exports);
28
- var import_getThreadMessageText = require("../utils/getThreadMessageText.cjs");
29
- var import_AttachmentRuntime = require("./AttachmentRuntime.cjs");
30
- var import_ComposerRuntime = require("./ComposerRuntime.cjs");
31
- var import_ContentPartRuntime = require("./ContentPartRuntime.cjs");
32
- var import_NestedSubscriptionSubject = require("./subscribable/NestedSubscriptionSubject.cjs");
33
- var import_SKIP_UPDATE = require("./subscribable/SKIP_UPDATE.cjs");
34
- var import_ShallowMemoizeSubject = require("./subscribable/ShallowMemoizeSubject.cjs");
28
+ var import_getThreadMessageText = require("../utils/getThreadMessageText.js");
29
+ var import_AttachmentRuntime = require("./AttachmentRuntime.js");
30
+ var import_ComposerRuntime = require("./ComposerRuntime.js");
31
+ var import_ContentPartRuntime = require("./ContentPartRuntime.js");
32
+ var import_NestedSubscriptionSubject = require("./subscribable/NestedSubscriptionSubject.js");
33
+ var import_SKIP_UPDATE = require("./subscribable/SKIP_UPDATE.js");
34
+ var import_ShallowMemoizeSubject = require("./subscribable/ShallowMemoizeSubject.js");
35
35
  var COMPLETE_STATUS = Object.freeze({
36
36
  type: "complete"
37
37
  });
@@ -1,10 +1,17 @@
1
- import { ThreadMetadata } from "../runtimes/core/ThreadRuntimeCore";
2
1
  import { Unsubscribe } from "../types";
3
2
  import { ThreadListItemRuntimePath } from "./RuntimePathTypes";
4
3
  import { SubscribableWithState } from "./subscribable/Subscribable";
5
4
  import { ThreadListRuntimeCoreBinding } from "./ThreadListRuntime";
6
- export type ThreadListItemState = ThreadMetadata & {
5
+ export type ThreadListItemEventType = "switched-to" | "switched-away";
6
+ export type ThreadListItemState = {
7
7
  readonly isMain: boolean;
8
+ readonly id: string;
9
+ /**
10
+ * @deprecated This field was renamed to `id`. This field will be removed in 0.8.0.
11
+ */
12
+ readonly threadId: string;
13
+ readonly state: "archived" | "regular" | "new" | "deleted";
14
+ readonly title?: string | undefined;
8
15
  };
9
16
  export type ThreadListItemRuntime = {
10
17
  readonly path: ThreadListItemRuntimePath;
@@ -15,6 +22,7 @@ export type ThreadListItemRuntime = {
15
22
  unarchive(): Promise<void>;
16
23
  delete(): Promise<void>;
17
24
  subscribe(callback: () => void): Unsubscribe;
25
+ unstable_on(event: ThreadListItemEventType, callback: () => void): Unsubscribe;
18
26
  };
19
27
  export type ThreadListItemStateBinding = SubscribableWithState<ThreadListItemState, ThreadListItemRuntimePath>;
20
28
  export declare class ThreadListItemRuntimeImpl implements ThreadListItemRuntime {
@@ -28,6 +36,7 @@ export declare class ThreadListItemRuntimeImpl implements ThreadListItemRuntime
28
36
  archive(): Promise<void>;
29
37
  unarchive(): Promise<void>;
30
38
  delete(): Promise<void>;
39
+ unstable_on(event: ThreadListItemEventType, callback: () => void): Unsubscribe;
31
40
  subscribe(callback: () => void): Unsubscribe;
32
41
  }
33
42
  //# sourceMappingURL=ThreadListItemRuntime.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"ThreadListItemRuntime.d.ts","sourceRoot":"","sources":["../../src/api/ThreadListItemRuntime.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,oCAAoC,CAAC;AACpE,OAAO,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AACvC,OAAO,EAAE,yBAAyB,EAAE,MAAM,oBAAoB,CAAC;AAC/D,OAAO,EAAE,qBAAqB,EAAE,MAAM,6BAA6B,CAAC;AACpE,OAAO,EAAE,4BAA4B,EAAE,MAAM,qBAAqB,CAAC;AAEnE,MAAM,MAAM,mBAAmB,GAAG,cAAc,GAAG;IACjD,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAC;CAC1B,CAAC;AAEF,MAAM,MAAM,qBAAqB,GAAG;IAClC,QAAQ,CAAC,IAAI,EAAE,yBAAyB,CAAC;IACzC,QAAQ,IAAI,mBAAmB,CAAC;IAEhC,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IAC1B,MAAM,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACxC,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IACzB,SAAS,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IAC3B,MAAM,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IAExB,SAAS,CAAC,QAAQ,EAAE,MAAM,IAAI,GAAG,WAAW,CAAC;CAC9C,CAAC;AAEF,MAAM,MAAM,0BAA0B,GAAG,qBAAqB,CAC5D,mBAAmB,EACnB,yBAAyB,CAC1B,CAAC;AAEF,qBAAa,yBAA0B,YAAW,qBAAqB;IAMnE,OAAO,CAAC,KAAK;IACb,OAAO,CAAC,kBAAkB;IAN5B,IAAW,IAAI,8BAEd;gBAGS,KAAK,EAAE,0BAA0B,EACjC,kBAAkB,EAAE,4BAA4B;IAGnD,QAAQ,IAAI,mBAAmB;IAI/B,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC;IAKzB,MAAM,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAMvC,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;IAMxB,SAAS,IAAI,OAAO,CAAC,IAAI,CAAC;IAM1B,MAAM,IAAI,OAAO,CAAC,IAAI,CAAC;IAMvB,SAAS,CAAC,QAAQ,EAAE,MAAM,IAAI,GAAG,WAAW;CAGpD"}
1
+ {"version":3,"file":"ThreadListItemRuntime.d.ts","sourceRoot":"","sources":["../../src/api/ThreadListItemRuntime.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AACvC,OAAO,EAAE,yBAAyB,EAAE,MAAM,oBAAoB,CAAC;AAC/D,OAAO,EAAE,qBAAqB,EAAE,MAAM,6BAA6B,CAAC;AACpE,OAAO,EAAE,4BAA4B,EAAE,MAAM,qBAAqB,CAAC;AAEnE,MAAM,MAAM,uBAAuB,GAAG,aAAa,GAAG,eAAe,CAAC;AAEtE,MAAM,MAAM,mBAAmB,GAAG;IAChC,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAC;IAEzB,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IAEpB;;OAEG;IACH,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAE1B,QAAQ,CAAC,KAAK,EAAE,UAAU,GAAG,SAAS,GAAG,KAAK,GAAG,SAAS,CAAC;IAC3D,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;CACrC,CAAC;AAEF,MAAM,MAAM,qBAAqB,GAAG;IAClC,QAAQ,CAAC,IAAI,EAAE,yBAAyB,CAAC;IACzC,QAAQ,IAAI,mBAAmB,CAAC;IAEhC,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IAC1B,MAAM,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACxC,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IACzB,SAAS,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IAC3B,MAAM,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IAExB,SAAS,CAAC,QAAQ,EAAE,MAAM,IAAI,GAAG,WAAW,CAAC;IAE7C,WAAW,CACT,KAAK,EAAE,uBAAuB,EAC9B,QAAQ,EAAE,MAAM,IAAI,GACnB,WAAW,CAAC;CAChB,CAAC;AAEF,MAAM,MAAM,0BAA0B,GAAG,qBAAqB,CAC5D,mBAAmB,EACnB,yBAAyB,CAC1B,CAAC;AAEF,qBAAa,yBAA0B,YAAW,qBAAqB;IAMnE,OAAO,CAAC,KAAK;IACb,OAAO,CAAC,kBAAkB;IAN5B,IAAW,IAAI,8BAEd;gBAGS,KAAK,EAAE,0BAA0B,EACjC,kBAAkB,EAAE,4BAA4B;IAGnD,QAAQ,IAAI,mBAAmB;IAI/B,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC;IAKzB,MAAM,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAMvC,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;IAMxB,SAAS,IAAI,OAAO,CAAC,IAAI,CAAC;IAM1B,MAAM,IAAI,OAAO,CAAC,IAAI,CAAC;IAMvB,WAAW,CAAC,KAAK,EAAE,uBAAuB,EAAE,QAAQ,EAAE,MAAM,IAAI;IAahE,SAAS,CAAC,QAAQ,EAAE,MAAM,IAAI,GAAG,WAAW;CAGpD"}
@@ -36,23 +36,34 @@ var ThreadListItemRuntimeImpl = class {
36
36
  }
37
37
  switchTo() {
38
38
  const state = this._core.getState();
39
- return this._threadListBinding.switchToThread(state.threadId);
39
+ return this._threadListBinding.switchToThread(state.id);
40
40
  }
41
41
  rename(newTitle) {
42
42
  const state = this._core.getState();
43
- return this._threadListBinding.rename(state.threadId, newTitle);
43
+ return this._threadListBinding.rename(state.id, newTitle);
44
44
  }
45
45
  archive() {
46
46
  const state = this._core.getState();
47
- return this._threadListBinding.archive(state.threadId);
47
+ return this._threadListBinding.archive(state.id);
48
48
  }
49
49
  unarchive() {
50
50
  const state = this._core.getState();
51
- return this._threadListBinding.unarchive(state.threadId);
51
+ return this._threadListBinding.unarchive(state.id);
52
52
  }
53
53
  delete() {
54
54
  const state = this._core.getState();
55
- return this._threadListBinding.delete(state.threadId);
55
+ return this._threadListBinding.delete(state.id);
56
+ }
57
+ unstable_on(event, callback) {
58
+ let prevIsMain = this._core.getState().isMain;
59
+ return this.subscribe(() => {
60
+ const newIsMain = this._core.getState().isMain;
61
+ if (prevIsMain === newIsMain) return;
62
+ prevIsMain = newIsMain;
63
+ if (event === "switched-to" && !newIsMain) return;
64
+ if (event === "switched-away" && newIsMain) return;
65
+ callback();
66
+ });
56
67
  }
57
68
  subscribe(callback) {
58
69
  return this._core.subscribe(callback);
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/api/ThreadListItemRuntime.ts"],"sourcesContent":["import { ThreadMetadata } from \"../runtimes/core/ThreadRuntimeCore\";\nimport { Unsubscribe } from \"../types\";\nimport { ThreadListItemRuntimePath } from \"./RuntimePathTypes\";\nimport { SubscribableWithState } from \"./subscribable/Subscribable\";\nimport { ThreadListRuntimeCoreBinding } from \"./ThreadListRuntime\";\n\nexport type ThreadListItemState = ThreadMetadata & {\n readonly isMain: boolean;\n};\n\nexport type ThreadListItemRuntime = {\n readonly path: ThreadListItemRuntimePath;\n getState(): ThreadListItemState;\n\n switchTo(): Promise<void>;\n rename(newTitle: string): Promise<void>;\n archive(): Promise<void>;\n unarchive(): Promise<void>;\n delete(): Promise<void>;\n\n subscribe(callback: () => void): Unsubscribe;\n};\n\nexport type ThreadListItemStateBinding = SubscribableWithState<\n ThreadListItemState,\n ThreadListItemRuntimePath\n>;\n\nexport class ThreadListItemRuntimeImpl implements ThreadListItemRuntime {\n public get path() {\n return this._core.path;\n }\n\n constructor(\n private _core: ThreadListItemStateBinding,\n private _threadListBinding: ThreadListRuntimeCoreBinding,\n ) {}\n\n public getState(): ThreadListItemState {\n return this._core.getState();\n }\n\n public switchTo(): Promise<void> {\n const state = this._core.getState();\n return this._threadListBinding.switchToThread(state.threadId);\n }\n\n public rename(newTitle: string): Promise<void> {\n const state = this._core.getState();\n\n return this._threadListBinding.rename(state.threadId, newTitle);\n }\n\n public archive(): Promise<void> {\n const state = this._core.getState();\n\n return this._threadListBinding.archive(state.threadId);\n }\n\n public unarchive(): Promise<void> {\n const state = this._core.getState();\n\n return this._threadListBinding.unarchive(state.threadId);\n }\n\n public delete(): Promise<void> {\n const state = this._core.getState();\n\n return this._threadListBinding.delete(state.threadId);\n }\n\n public subscribe(callback: () => void): Unsubscribe {\n return this._core.subscribe(callback);\n }\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AA4BO,IAAM,4BAAN,MAAiE;AAAA,EAKtE,YACU,OACA,oBACR;AAFQ;AACA;AAAA,EACP;AAAA,EAPH,IAAW,OAAO;AAChB,WAAO,KAAK,MAAM;AAAA,EACpB;AAAA,EAOO,WAAgC;AACrC,WAAO,KAAK,MAAM,SAAS;AAAA,EAC7B;AAAA,EAEO,WAA0B;AAC/B,UAAM,QAAQ,KAAK,MAAM,SAAS;AAClC,WAAO,KAAK,mBAAmB,eAAe,MAAM,QAAQ;AAAA,EAC9D;AAAA,EAEO,OAAO,UAAiC;AAC7C,UAAM,QAAQ,KAAK,MAAM,SAAS;AAElC,WAAO,KAAK,mBAAmB,OAAO,MAAM,UAAU,QAAQ;AAAA,EAChE;AAAA,EAEO,UAAyB;AAC9B,UAAM,QAAQ,KAAK,MAAM,SAAS;AAElC,WAAO,KAAK,mBAAmB,QAAQ,MAAM,QAAQ;AAAA,EACvD;AAAA,EAEO,YAA2B;AAChC,UAAM,QAAQ,KAAK,MAAM,SAAS;AAElC,WAAO,KAAK,mBAAmB,UAAU,MAAM,QAAQ;AAAA,EACzD;AAAA,EAEO,SAAwB;AAC7B,UAAM,QAAQ,KAAK,MAAM,SAAS;AAElC,WAAO,KAAK,mBAAmB,OAAO,MAAM,QAAQ;AAAA,EACtD;AAAA,EAEO,UAAU,UAAmC;AAClD,WAAO,KAAK,MAAM,UAAU,QAAQ;AAAA,EACtC;AACF;","names":[]}
1
+ {"version":3,"sources":["../../src/api/ThreadListItemRuntime.ts"],"sourcesContent":["import { Unsubscribe } from \"../types\";\nimport { ThreadListItemRuntimePath } from \"./RuntimePathTypes\";\nimport { SubscribableWithState } from \"./subscribable/Subscribable\";\nimport { ThreadListRuntimeCoreBinding } from \"./ThreadListRuntime\";\n\nexport type ThreadListItemEventType = \"switched-to\" | \"switched-away\";\n\nexport type ThreadListItemState = {\n readonly isMain: boolean;\n\n readonly id: string;\n\n /**\n * @deprecated This field was renamed to `id`. This field will be removed in 0.8.0.\n */\n readonly threadId: string;\n\n readonly state: \"archived\" | \"regular\" | \"new\" | \"deleted\";\n readonly title?: string | undefined;\n};\n\nexport type ThreadListItemRuntime = {\n readonly path: ThreadListItemRuntimePath;\n getState(): ThreadListItemState;\n\n switchTo(): Promise<void>;\n rename(newTitle: string): Promise<void>;\n archive(): Promise<void>;\n unarchive(): Promise<void>;\n delete(): Promise<void>;\n\n subscribe(callback: () => void): Unsubscribe;\n\n unstable_on(\n event: ThreadListItemEventType,\n callback: () => void,\n ): Unsubscribe;\n};\n\nexport type ThreadListItemStateBinding = SubscribableWithState<\n ThreadListItemState,\n ThreadListItemRuntimePath\n>;\n\nexport class ThreadListItemRuntimeImpl implements ThreadListItemRuntime {\n public get path() {\n return this._core.path;\n }\n\n constructor(\n private _core: ThreadListItemStateBinding,\n private _threadListBinding: ThreadListRuntimeCoreBinding,\n ) {}\n\n public getState(): ThreadListItemState {\n return this._core.getState();\n }\n\n public switchTo(): Promise<void> {\n const state = this._core.getState();\n return this._threadListBinding.switchToThread(state.id);\n }\n\n public rename(newTitle: string): Promise<void> {\n const state = this._core.getState();\n\n return this._threadListBinding.rename(state.id, newTitle);\n }\n\n public archive(): Promise<void> {\n const state = this._core.getState();\n\n return this._threadListBinding.archive(state.id);\n }\n\n public unarchive(): Promise<void> {\n const state = this._core.getState();\n\n return this._threadListBinding.unarchive(state.id);\n }\n\n public delete(): Promise<void> {\n const state = this._core.getState();\n\n return this._threadListBinding.delete(state.id);\n }\n\n public unstable_on(event: ThreadListItemEventType, callback: () => void) {\n let prevIsMain = this._core.getState().isMain;\n return this.subscribe(() => {\n const newIsMain = this._core.getState().isMain;\n if (prevIsMain === newIsMain) return;\n prevIsMain = newIsMain;\n\n if (event === \"switched-to\" && !newIsMain) return;\n if (event === \"switched-away\" && newIsMain) return;\n callback();\n });\n }\n\n public subscribe(callback: () => void): Unsubscribe {\n return this._core.subscribe(callback);\n }\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AA4CO,IAAM,4BAAN,MAAiE;AAAA,EAKtE,YACU,OACA,oBACR;AAFQ;AACA;AAAA,EACP;AAAA,EAPH,IAAW,OAAO;AAChB,WAAO,KAAK,MAAM;AAAA,EACpB;AAAA,EAOO,WAAgC;AACrC,WAAO,KAAK,MAAM,SAAS;AAAA,EAC7B;AAAA,EAEO,WAA0B;AAC/B,UAAM,QAAQ,KAAK,MAAM,SAAS;AAClC,WAAO,KAAK,mBAAmB,eAAe,MAAM,EAAE;AAAA,EACxD;AAAA,EAEO,OAAO,UAAiC;AAC7C,UAAM,QAAQ,KAAK,MAAM,SAAS;AAElC,WAAO,KAAK,mBAAmB,OAAO,MAAM,IAAI,QAAQ;AAAA,EAC1D;AAAA,EAEO,UAAyB;AAC9B,UAAM,QAAQ,KAAK,MAAM,SAAS;AAElC,WAAO,KAAK,mBAAmB,QAAQ,MAAM,EAAE;AAAA,EACjD;AAAA,EAEO,YAA2B;AAChC,UAAM,QAAQ,KAAK,MAAM,SAAS;AAElC,WAAO,KAAK,mBAAmB,UAAU,MAAM,EAAE;AAAA,EACnD;AAAA,EAEO,SAAwB;AAC7B,UAAM,QAAQ,KAAK,MAAM,SAAS;AAElC,WAAO,KAAK,mBAAmB,OAAO,MAAM,EAAE;AAAA,EAChD;AAAA,EAEO,YAAY,OAAgC,UAAsB;AACvE,QAAI,aAAa,KAAK,MAAM,SAAS,EAAE;AACvC,WAAO,KAAK,UAAU,MAAM;AAC1B,YAAM,YAAY,KAAK,MAAM,SAAS,EAAE;AACxC,UAAI,eAAe,UAAW;AAC9B,mBAAa;AAEb,UAAI,UAAU,iBAAiB,CAAC,UAAW;AAC3C,UAAI,UAAU,mBAAmB,UAAW;AAC5C,eAAS;AAAA,IACX,CAAC;AAAA,EACH;AAAA,EAEO,UAAU,UAAmC;AAClD,WAAO,KAAK,MAAM,UAAU,QAAQ;AAAA,EACtC;AACF;","names":[]}
@@ -12,23 +12,34 @@ var ThreadListItemRuntimeImpl = class {
12
12
  }
13
13
  switchTo() {
14
14
  const state = this._core.getState();
15
- return this._threadListBinding.switchToThread(state.threadId);
15
+ return this._threadListBinding.switchToThread(state.id);
16
16
  }
17
17
  rename(newTitle) {
18
18
  const state = this._core.getState();
19
- return this._threadListBinding.rename(state.threadId, newTitle);
19
+ return this._threadListBinding.rename(state.id, newTitle);
20
20
  }
21
21
  archive() {
22
22
  const state = this._core.getState();
23
- return this._threadListBinding.archive(state.threadId);
23
+ return this._threadListBinding.archive(state.id);
24
24
  }
25
25
  unarchive() {
26
26
  const state = this._core.getState();
27
- return this._threadListBinding.unarchive(state.threadId);
27
+ return this._threadListBinding.unarchive(state.id);
28
28
  }
29
29
  delete() {
30
30
  const state = this._core.getState();
31
- return this._threadListBinding.delete(state.threadId);
31
+ return this._threadListBinding.delete(state.id);
32
+ }
33
+ unstable_on(event, callback) {
34
+ let prevIsMain = this._core.getState().isMain;
35
+ return this.subscribe(() => {
36
+ const newIsMain = this._core.getState().isMain;
37
+ if (prevIsMain === newIsMain) return;
38
+ prevIsMain = newIsMain;
39
+ if (event === "switched-to" && !newIsMain) return;
40
+ if (event === "switched-away" && newIsMain) return;
41
+ callback();
42
+ });
32
43
  }
33
44
  subscribe(callback) {
34
45
  return this._core.subscribe(callback);
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/api/ThreadListItemRuntime.ts"],"sourcesContent":["import { ThreadMetadata } from \"../runtimes/core/ThreadRuntimeCore\";\nimport { Unsubscribe } from \"../types\";\nimport { ThreadListItemRuntimePath } from \"./RuntimePathTypes\";\nimport { SubscribableWithState } from \"./subscribable/Subscribable\";\nimport { ThreadListRuntimeCoreBinding } from \"./ThreadListRuntime\";\n\nexport type ThreadListItemState = ThreadMetadata & {\n readonly isMain: boolean;\n};\n\nexport type ThreadListItemRuntime = {\n readonly path: ThreadListItemRuntimePath;\n getState(): ThreadListItemState;\n\n switchTo(): Promise<void>;\n rename(newTitle: string): Promise<void>;\n archive(): Promise<void>;\n unarchive(): Promise<void>;\n delete(): Promise<void>;\n\n subscribe(callback: () => void): Unsubscribe;\n};\n\nexport type ThreadListItemStateBinding = SubscribableWithState<\n ThreadListItemState,\n ThreadListItemRuntimePath\n>;\n\nexport class ThreadListItemRuntimeImpl implements ThreadListItemRuntime {\n public get path() {\n return this._core.path;\n }\n\n constructor(\n private _core: ThreadListItemStateBinding,\n private _threadListBinding: ThreadListRuntimeCoreBinding,\n ) {}\n\n public getState(): ThreadListItemState {\n return this._core.getState();\n }\n\n public switchTo(): Promise<void> {\n const state = this._core.getState();\n return this._threadListBinding.switchToThread(state.threadId);\n }\n\n public rename(newTitle: string): Promise<void> {\n const state = this._core.getState();\n\n return this._threadListBinding.rename(state.threadId, newTitle);\n }\n\n public archive(): Promise<void> {\n const state = this._core.getState();\n\n return this._threadListBinding.archive(state.threadId);\n }\n\n public unarchive(): Promise<void> {\n const state = this._core.getState();\n\n return this._threadListBinding.unarchive(state.threadId);\n }\n\n public delete(): Promise<void> {\n const state = this._core.getState();\n\n return this._threadListBinding.delete(state.threadId);\n }\n\n public subscribe(callback: () => void): Unsubscribe {\n return this._core.subscribe(callback);\n }\n}\n"],"mappings":";AA4BO,IAAM,4BAAN,MAAiE;AAAA,EAKtE,YACU,OACA,oBACR;AAFQ;AACA;AAAA,EACP;AAAA,EAPH,IAAW,OAAO;AAChB,WAAO,KAAK,MAAM;AAAA,EACpB;AAAA,EAOO,WAAgC;AACrC,WAAO,KAAK,MAAM,SAAS;AAAA,EAC7B;AAAA,EAEO,WAA0B;AAC/B,UAAM,QAAQ,KAAK,MAAM,SAAS;AAClC,WAAO,KAAK,mBAAmB,eAAe,MAAM,QAAQ;AAAA,EAC9D;AAAA,EAEO,OAAO,UAAiC;AAC7C,UAAM,QAAQ,KAAK,MAAM,SAAS;AAElC,WAAO,KAAK,mBAAmB,OAAO,MAAM,UAAU,QAAQ;AAAA,EAChE;AAAA,EAEO,UAAyB;AAC9B,UAAM,QAAQ,KAAK,MAAM,SAAS;AAElC,WAAO,KAAK,mBAAmB,QAAQ,MAAM,QAAQ;AAAA,EACvD;AAAA,EAEO,YAA2B;AAChC,UAAM,QAAQ,KAAK,MAAM,SAAS;AAElC,WAAO,KAAK,mBAAmB,UAAU,MAAM,QAAQ;AAAA,EACzD;AAAA,EAEO,SAAwB;AAC7B,UAAM,QAAQ,KAAK,MAAM,SAAS;AAElC,WAAO,KAAK,mBAAmB,OAAO,MAAM,QAAQ;AAAA,EACtD;AAAA,EAEO,UAAU,UAAmC;AAClD,WAAO,KAAK,MAAM,UAAU,QAAQ;AAAA,EACtC;AACF;","names":[]}
1
+ {"version":3,"sources":["../../src/api/ThreadListItemRuntime.ts"],"sourcesContent":["import { Unsubscribe } from \"../types\";\nimport { ThreadListItemRuntimePath } from \"./RuntimePathTypes\";\nimport { SubscribableWithState } from \"./subscribable/Subscribable\";\nimport { ThreadListRuntimeCoreBinding } from \"./ThreadListRuntime\";\n\nexport type ThreadListItemEventType = \"switched-to\" | \"switched-away\";\n\nexport type ThreadListItemState = {\n readonly isMain: boolean;\n\n readonly id: string;\n\n /**\n * @deprecated This field was renamed to `id`. This field will be removed in 0.8.0.\n */\n readonly threadId: string;\n\n readonly state: \"archived\" | \"regular\" | \"new\" | \"deleted\";\n readonly title?: string | undefined;\n};\n\nexport type ThreadListItemRuntime = {\n readonly path: ThreadListItemRuntimePath;\n getState(): ThreadListItemState;\n\n switchTo(): Promise<void>;\n rename(newTitle: string): Promise<void>;\n archive(): Promise<void>;\n unarchive(): Promise<void>;\n delete(): Promise<void>;\n\n subscribe(callback: () => void): Unsubscribe;\n\n unstable_on(\n event: ThreadListItemEventType,\n callback: () => void,\n ): Unsubscribe;\n};\n\nexport type ThreadListItemStateBinding = SubscribableWithState<\n ThreadListItemState,\n ThreadListItemRuntimePath\n>;\n\nexport class ThreadListItemRuntimeImpl implements ThreadListItemRuntime {\n public get path() {\n return this._core.path;\n }\n\n constructor(\n private _core: ThreadListItemStateBinding,\n private _threadListBinding: ThreadListRuntimeCoreBinding,\n ) {}\n\n public getState(): ThreadListItemState {\n return this._core.getState();\n }\n\n public switchTo(): Promise<void> {\n const state = this._core.getState();\n return this._threadListBinding.switchToThread(state.id);\n }\n\n public rename(newTitle: string): Promise<void> {\n const state = this._core.getState();\n\n return this._threadListBinding.rename(state.id, newTitle);\n }\n\n public archive(): Promise<void> {\n const state = this._core.getState();\n\n return this._threadListBinding.archive(state.id);\n }\n\n public unarchive(): Promise<void> {\n const state = this._core.getState();\n\n return this._threadListBinding.unarchive(state.id);\n }\n\n public delete(): Promise<void> {\n const state = this._core.getState();\n\n return this._threadListBinding.delete(state.id);\n }\n\n public unstable_on(event: ThreadListItemEventType, callback: () => void) {\n let prevIsMain = this._core.getState().isMain;\n return this.subscribe(() => {\n const newIsMain = this._core.getState().isMain;\n if (prevIsMain === newIsMain) return;\n prevIsMain = newIsMain;\n\n if (event === \"switched-to\" && !newIsMain) return;\n if (event === \"switched-away\" && newIsMain) return;\n callback();\n });\n }\n\n public subscribe(callback: () => void): Unsubscribe {\n return this._core.subscribe(callback);\n }\n}\n"],"mappings":";AA4CO,IAAM,4BAAN,MAAiE;AAAA,EAKtE,YACU,OACA,oBACR;AAFQ;AACA;AAAA,EACP;AAAA,EAPH,IAAW,OAAO;AAChB,WAAO,KAAK,MAAM;AAAA,EACpB;AAAA,EAOO,WAAgC;AACrC,WAAO,KAAK,MAAM,SAAS;AAAA,EAC7B;AAAA,EAEO,WAA0B;AAC/B,UAAM,QAAQ,KAAK,MAAM,SAAS;AAClC,WAAO,KAAK,mBAAmB,eAAe,MAAM,EAAE;AAAA,EACxD;AAAA,EAEO,OAAO,UAAiC;AAC7C,UAAM,QAAQ,KAAK,MAAM,SAAS;AAElC,WAAO,KAAK,mBAAmB,OAAO,MAAM,IAAI,QAAQ;AAAA,EAC1D;AAAA,EAEO,UAAyB;AAC9B,UAAM,QAAQ,KAAK,MAAM,SAAS;AAElC,WAAO,KAAK,mBAAmB,QAAQ,MAAM,EAAE;AAAA,EACjD;AAAA,EAEO,YAA2B;AAChC,UAAM,QAAQ,KAAK,MAAM,SAAS;AAElC,WAAO,KAAK,mBAAmB,UAAU,MAAM,EAAE;AAAA,EACnD;AAAA,EAEO,SAAwB;AAC7B,UAAM,QAAQ,KAAK,MAAM,SAAS;AAElC,WAAO,KAAK,mBAAmB,OAAO,MAAM,EAAE;AAAA,EAChD;AAAA,EAEO,YAAY,OAAgC,UAAsB;AACvE,QAAI,aAAa,KAAK,MAAM,SAAS,EAAE;AACvC,WAAO,KAAK,UAAU,MAAM;AAC1B,YAAM,YAAY,KAAK,MAAM,SAAS,EAAE;AACxC,UAAI,eAAe,UAAW;AAC9B,mBAAa;AAEb,UAAI,UAAU,iBAAiB,CAAC,UAAW;AAC3C,UAAI,UAAU,mBAAmB,UAAW;AAC5C,eAAS;AAAA,IACX,CAAC;AAAA,EACH;AAAA,EAEO,UAAU,UAAmC;AAClD,WAAO,KAAK,MAAM,UAAU,QAAQ;AAAA,EACtC;AACF;","names":[]}
@@ -10,6 +10,7 @@ export type ThreadListState = {
10
10
  export type ThreadListRuntime = {
11
11
  getState(): ThreadListState;
12
12
  subscribe(callback: () => void): Unsubscribe;
13
+ readonly mainThreadListItem: ThreadListItemRuntime;
13
14
  getThreadListItemById(threadId: string): ThreadListItemRuntime;
14
15
  getThreadListItemByIndex(idx: number): ThreadListItemRuntime;
15
16
  getThreadListArchivedItemByIndex(idx: number): ThreadListItemRuntime;
@@ -21,6 +22,8 @@ export declare class ThreadListRuntimeImpl implements ThreadListRuntime {
21
22
  constructor(_core: ThreadListRuntimeCoreBinding);
22
23
  getState(): ThreadListState;
23
24
  subscribe(callback: () => void): Unsubscribe;
25
+ private _mainThreadListItemRuntime;
26
+ get mainThreadListItem(): ThreadListItemRuntimeImpl;
24
27
  getThreadListItemByIndex(idx: number): ThreadListItemRuntimeImpl;
25
28
  getThreadListArchivedItemByIndex(idx: number): ThreadListItemRuntimeImpl;
26
29
  getThreadListItemById(threadId: string): ThreadListItemRuntimeImpl;
@@ -1 +1 @@
1
- {"version":3,"file":"ThreadListRuntime.d.ts","sourceRoot":"","sources":["../../src/api/ThreadListRuntime.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,qBAAqB,EAAE,MAAM,wCAAwC,CAAC;AAC/E,OAAO,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AACvC,OAAO,EACL,qBAAqB,EACrB,yBAAyB,EAE1B,MAAM,yBAAyB,CAAC;AAIjC,MAAM,MAAM,eAAe,GAAG;IAC5B,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,SAAS,EAAE,MAAM,GAAG,SAAS,CAAC;IACvC,QAAQ,CAAC,OAAO,EAAE,SAAS,MAAM,EAAE,CAAC;IACpC,QAAQ,CAAC,eAAe,EAAE,SAAS,MAAM,EAAE,CAAC;CAC7C,CAAC;AAEF,MAAM,MAAM,iBAAiB,GAAG;IAC9B,QAAQ,IAAI,eAAe,CAAC;IAE5B,SAAS,CAAC,QAAQ,EAAE,MAAM,IAAI,GAAG,WAAW,CAAC;IAE7C,qBAAqB,CAAC,QAAQ,EAAE,MAAM,GAAG,qBAAqB,CAAC;IAC/D,wBAAwB,CAAC,GAAG,EAAE,MAAM,GAAG,qBAAqB,CAAC;IAC7D,gCAAgC,CAAC,GAAG,EAAE,MAAM,GAAG,qBAAqB,CAAC;CACtE,CAAC;AA6BF,MAAM,MAAM,4BAA4B,GAAG,qBAAqB,CAAC;AAEjE,qBAAa,qBAAsB,YAAW,iBAAiB;IAEjD,OAAO,CAAC,KAAK;IADzB,OAAO,CAAC,SAAS,CAAC;gBACE,KAAK,EAAE,4BAA4B;IAUhD,QAAQ,IAAI,eAAe;IAI3B,SAAS,CAAC,QAAQ,EAAE,MAAM,IAAI,GAAG,WAAW;IAI5C,wBAAwB,CAAC,GAAG,EAAE,MAAM;IAgBpC,gCAAgC,CAAC,GAAG,EAAE,MAAM;IAmB5C,qBAAqB,CAAC,QAAQ,EAAE,MAAM;CAe9C"}
1
+ {"version":3,"file":"ThreadListRuntime.d.ts","sourceRoot":"","sources":["../../src/api/ThreadListRuntime.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,qBAAqB,EAAE,MAAM,wCAAwC,CAAC;AAC/E,OAAO,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AACvC,OAAO,EACL,qBAAqB,EACrB,yBAAyB,EAE1B,MAAM,yBAAyB,CAAC;AAIjC,MAAM,MAAM,eAAe,GAAG;IAC5B,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,SAAS,EAAE,MAAM,GAAG,SAAS,CAAC;IACvC,QAAQ,CAAC,OAAO,EAAE,SAAS,MAAM,EAAE,CAAC;IACpC,QAAQ,CAAC,eAAe,EAAE,SAAS,MAAM,EAAE,CAAC;CAC7C,CAAC;AAEF,MAAM,MAAM,iBAAiB,GAAG;IAC9B,QAAQ,IAAI,eAAe,CAAC;IAE5B,SAAS,CAAC,QAAQ,EAAE,MAAM,IAAI,GAAG,WAAW,CAAC;IAE7C,QAAQ,CAAC,kBAAkB,EAAE,qBAAqB,CAAC;IACnD,qBAAqB,CAAC,QAAQ,EAAE,MAAM,GAAG,qBAAqB,CAAC;IAC/D,wBAAwB,CAAC,GAAG,EAAE,MAAM,GAAG,qBAAqB,CAAC;IAC7D,gCAAgC,CAAC,GAAG,EAAE,MAAM,GAAG,qBAAqB,CAAC;CACtE,CAAC;AA8BF,MAAM,MAAM,4BAA4B,GAAG,qBAAqB,CAAC;AAEjE,qBAAa,qBAAsB,YAAW,iBAAiB;IAEjD,OAAO,CAAC,KAAK;IADzB,OAAO,CAAC,SAAS,CAAC;gBACE,KAAK,EAAE,4BAA4B;IAwBhD,QAAQ,IAAI,eAAe;IAI3B,SAAS,CAAC,QAAQ,EAAE,MAAM,IAAI,GAAG,WAAW;IAInD,OAAO,CAAC,0BAA0B,CAAC;IAEnC,IAAW,kBAAkB,8BAE5B;IAEM,wBAAwB,CAAC,GAAG,EAAE,MAAM;IAgBpC,gCAAgC,CAAC,GAAG,EAAE,MAAM;IAmB5C,qBAAqB,CAAC,QAAQ,EAAE,MAAM;CAe9C"}
@@ -23,27 +23,29 @@ __export(ThreadListRuntime_exports, {
23
23
  ThreadListRuntimeImpl: () => ThreadListRuntimeImpl
24
24
  });
25
25
  module.exports = __toCommonJS(ThreadListRuntime_exports);
26
- var import_LazyMemoizeSubject = require("./subscribable/LazyMemoizeSubject.cjs");
27
- var import_ThreadListItemRuntime = require("./ThreadListItemRuntime.cjs");
28
- var import_SKIP_UPDATE = require("./subscribable/SKIP_UPDATE.cjs");
29
- var import_ShallowMemoizeSubject = require("./subscribable/ShallowMemoizeSubject.cjs");
26
+ var import_LazyMemoizeSubject = require("./subscribable/LazyMemoizeSubject.js");
27
+ var import_ThreadListItemRuntime = require("./ThreadListItemRuntime.js");
28
+ var import_SKIP_UPDATE = require("./subscribable/SKIP_UPDATE.js");
29
+ var import_ShallowMemoizeSubject = require("./subscribable/ShallowMemoizeSubject.js");
30
30
  var getThreadListState = (threadList) => {
31
31
  return {
32
- mainThreadId: threadList.mainThread.metadata.threadId,
33
- newThread: threadList.newThread,
34
- threads: threadList.threads,
35
- archivedThreads: threadList.archivedThreads
32
+ mainThreadId: threadList.mainThreadId,
33
+ newThread: threadList.newThreadId,
34
+ threads: threadList.threadIds,
35
+ archivedThreads: threadList.archivedThreadIds
36
36
  };
37
37
  };
38
38
  var getThreadListItemState = (threadList, threadId) => {
39
39
  if (threadId === void 0) return import_SKIP_UPDATE.SKIP_UPDATE;
40
- const threadData = threadList.getThreadMetadataById(threadId);
40
+ const threadData = threadList.getItemById(threadId);
41
41
  if (!threadData) return import_SKIP_UPDATE.SKIP_UPDATE;
42
42
  return {
43
+ id: threadData.threadId,
43
44
  threadId: threadData.threadId,
45
+ // TODO remove in 0.8.0
44
46
  title: threadData.title,
45
47
  state: threadData.state,
46
- isMain: threadList.mainThread.metadata.threadId === threadId
48
+ isMain: threadData.threadId === threadList.mainThreadId
47
49
  };
48
50
  };
49
51
  var ThreadListRuntimeImpl = class {
@@ -55,6 +57,19 @@ var ThreadListRuntimeImpl = class {
55
57
  subscribe: (callback) => _core.subscribe(callback)
56
58
  });
57
59
  this._getState = stateBinding.getState.bind(stateBinding);
60
+ this._mainThreadListItemRuntime = new import_ThreadListItemRuntime.ThreadListItemRuntimeImpl(
61
+ new import_ShallowMemoizeSubject.ShallowMemoizeSubject({
62
+ path: {
63
+ ref: `threadItems[main]`,
64
+ threadSelector: { type: "main" }
65
+ },
66
+ getState: () => {
67
+ return getThreadListItemState(this._core, this._core.mainThreadId);
68
+ },
69
+ subscribe: (callback) => this._core.subscribe(callback)
70
+ }),
71
+ this._core
72
+ );
58
73
  }
59
74
  _getState;
60
75
  getState() {
@@ -63,6 +78,10 @@ var ThreadListRuntimeImpl = class {
63
78
  subscribe(callback) {
64
79
  return this._core.subscribe(callback);
65
80
  }
81
+ _mainThreadListItemRuntime;
82
+ get mainThreadListItem() {
83
+ return this._mainThreadListItemRuntime;
84
+ }
66
85
  getThreadListItemByIndex(idx) {
67
86
  return new import_ThreadListItemRuntime.ThreadListItemRuntimeImpl(
68
87
  new import_ShallowMemoizeSubject.ShallowMemoizeSubject({
@@ -71,7 +90,7 @@ var ThreadListRuntimeImpl = class {
71
90
  threadSelector: { type: "index", index: idx }
72
91
  },
73
92
  getState: () => {
74
- return getThreadListItemState(this._core, this._core.threads[idx]);
93
+ return getThreadListItemState(this._core, this._core.threadIds[idx]);
75
94
  },
76
95
  subscribe: (callback) => this._core.subscribe(callback)
77
96
  }),
@@ -88,7 +107,7 @@ var ThreadListRuntimeImpl = class {
88
107
  getState: () => {
89
108
  return getThreadListItemState(
90
109
  this._core,
91
- this._core.archivedThreads[idx]
110
+ this._core.archivedThreadIds[idx]
92
111
  );
93
112
  },
94
113
  subscribe: (callback) => this._core.subscribe(callback)
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/api/ThreadListRuntime.ts"],"sourcesContent":["import { LazyMemoizeSubject } from \"./subscribable/LazyMemoizeSubject\";\nimport { ThreadListRuntimeCore } from \"../runtimes/core/ThreadListRuntimeCore\";\nimport { Unsubscribe } from \"../types\";\nimport {\n ThreadListItemRuntime,\n ThreadListItemRuntimeImpl,\n ThreadListItemState,\n} from \"./ThreadListItemRuntime\";\nimport { SKIP_UPDATE } from \"./subscribable/SKIP_UPDATE\";\nimport { ShallowMemoizeSubject } from \"./subscribable/ShallowMemoizeSubject\";\n\nexport type ThreadListState = {\n readonly mainThreadId: string;\n readonly newThread: string | undefined;\n readonly threads: readonly string[];\n readonly archivedThreads: readonly string[];\n};\n\nexport type ThreadListRuntime = {\n getState(): ThreadListState;\n\n subscribe(callback: () => void): Unsubscribe;\n\n getThreadListItemById(threadId: string): ThreadListItemRuntime;\n getThreadListItemByIndex(idx: number): ThreadListItemRuntime;\n getThreadListArchivedItemByIndex(idx: number): ThreadListItemRuntime;\n};\n\nconst getThreadListState = (\n threadList: ThreadListRuntimeCore,\n): ThreadListState => {\n return {\n mainThreadId: threadList.mainThread.metadata.threadId,\n newThread: threadList.newThread,\n threads: threadList.threads,\n archivedThreads: threadList.archivedThreads,\n };\n};\n\nconst getThreadListItemState = (\n threadList: ThreadListRuntimeCore,\n threadId: string | undefined,\n): ThreadListItemState | SKIP_UPDATE => {\n if (threadId === undefined) return SKIP_UPDATE;\n\n const threadData = threadList.getThreadMetadataById(threadId);\n if (!threadData) return SKIP_UPDATE;\n return {\n threadId: threadData.threadId,\n title: threadData.title,\n state: threadData.state,\n isMain: threadList.mainThread.metadata.threadId === threadId,\n };\n};\n\nexport type ThreadListRuntimeCoreBinding = ThreadListRuntimeCore;\n\nexport class ThreadListRuntimeImpl implements ThreadListRuntime {\n private _getState;\n constructor(private _core: ThreadListRuntimeCoreBinding) {\n const stateBinding = new LazyMemoizeSubject({\n path: {},\n getState: () => getThreadListState(_core),\n subscribe: (callback) => _core.subscribe(callback),\n });\n\n this._getState = stateBinding.getState.bind(stateBinding);\n }\n\n public getState(): ThreadListState {\n return this._getState();\n }\n\n public subscribe(callback: () => void): Unsubscribe {\n return this._core.subscribe(callback);\n }\n\n public getThreadListItemByIndex(idx: number) {\n return new ThreadListItemRuntimeImpl(\n new ShallowMemoizeSubject({\n path: {\n ref: `threadItems[${idx}]`,\n threadSelector: { type: \"index\", index: idx },\n },\n getState: () => {\n return getThreadListItemState(this._core, this._core.threads[idx]);\n },\n subscribe: (callback) => this._core.subscribe(callback),\n }),\n this._core,\n );\n }\n\n public getThreadListArchivedItemByIndex(idx: number) {\n return new ThreadListItemRuntimeImpl(\n new ShallowMemoizeSubject({\n path: {\n ref: `archivedThreadItems[${idx}]`,\n threadSelector: { type: \"archiveIndex\", index: idx },\n },\n getState: () => {\n return getThreadListItemState(\n this._core,\n this._core.archivedThreads[idx],\n );\n },\n subscribe: (callback) => this._core.subscribe(callback),\n }),\n this._core,\n );\n }\n\n public getThreadListItemById(threadId: string) {\n return new ThreadListItemRuntimeImpl(\n new ShallowMemoizeSubject({\n path: {\n ref: `threadItems[threadId=${threadId}]`,\n threadSelector: { type: \"threadId\", threadId },\n },\n getState: () => {\n return getThreadListItemState(this._core, threadId);\n },\n subscribe: (callback) => this._core.subscribe(callback),\n }),\n this._core,\n );\n }\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,gCAAmC;AAGnC,mCAIO;AACP,yBAA4B;AAC5B,mCAAsC;AAmBtC,IAAM,qBAAqB,CACzB,eACoB;AACpB,SAAO;AAAA,IACL,cAAc,WAAW,WAAW,SAAS;AAAA,IAC7C,WAAW,WAAW;AAAA,IACtB,SAAS,WAAW;AAAA,IACpB,iBAAiB,WAAW;AAAA,EAC9B;AACF;AAEA,IAAM,yBAAyB,CAC7B,YACA,aACsC;AACtC,MAAI,aAAa,OAAW,QAAO;AAEnC,QAAM,aAAa,WAAW,sBAAsB,QAAQ;AAC5D,MAAI,CAAC,WAAY,QAAO;AACxB,SAAO;AAAA,IACL,UAAU,WAAW;AAAA,IACrB,OAAO,WAAW;AAAA,IAClB,OAAO,WAAW;AAAA,IAClB,QAAQ,WAAW,WAAW,SAAS,aAAa;AAAA,EACtD;AACF;AAIO,IAAM,wBAAN,MAAyD;AAAA,EAE9D,YAAoB,OAAqC;AAArC;AAClB,UAAM,eAAe,IAAI,6CAAmB;AAAA,MAC1C,MAAM,CAAC;AAAA,MACP,UAAU,MAAM,mBAAmB,KAAK;AAAA,MACxC,WAAW,CAAC,aAAa,MAAM,UAAU,QAAQ;AAAA,IACnD,CAAC;AAED,SAAK,YAAY,aAAa,SAAS,KAAK,YAAY;AAAA,EAC1D;AAAA,EATQ;AAAA,EAWD,WAA4B;AACjC,WAAO,KAAK,UAAU;AAAA,EACxB;AAAA,EAEO,UAAU,UAAmC;AAClD,WAAO,KAAK,MAAM,UAAU,QAAQ;AAAA,EACtC;AAAA,EAEO,yBAAyB,KAAa;AAC3C,WAAO,IAAI;AAAA,MACT,IAAI,mDAAsB;AAAA,QACxB,MAAM;AAAA,UACJ,KAAK,eAAe,GAAG;AAAA,UACvB,gBAAgB,EAAE,MAAM,SAAS,OAAO,IAAI;AAAA,QAC9C;AAAA,QACA,UAAU,MAAM;AACd,iBAAO,uBAAuB,KAAK,OAAO,KAAK,MAAM,QAAQ,GAAG,CAAC;AAAA,QACnE;AAAA,QACA,WAAW,CAAC,aAAa,KAAK,MAAM,UAAU,QAAQ;AAAA,MACxD,CAAC;AAAA,MACD,KAAK;AAAA,IACP;AAAA,EACF;AAAA,EAEO,iCAAiC,KAAa;AACnD,WAAO,IAAI;AAAA,MACT,IAAI,mDAAsB;AAAA,QACxB,MAAM;AAAA,UACJ,KAAK,uBAAuB,GAAG;AAAA,UAC/B,gBAAgB,EAAE,MAAM,gBAAgB,OAAO,IAAI;AAAA,QACrD;AAAA,QACA,UAAU,MAAM;AACd,iBAAO;AAAA,YACL,KAAK;AAAA,YACL,KAAK,MAAM,gBAAgB,GAAG;AAAA,UAChC;AAAA,QACF;AAAA,QACA,WAAW,CAAC,aAAa,KAAK,MAAM,UAAU,QAAQ;AAAA,MACxD,CAAC;AAAA,MACD,KAAK;AAAA,IACP;AAAA,EACF;AAAA,EAEO,sBAAsB,UAAkB;AAC7C,WAAO,IAAI;AAAA,MACT,IAAI,mDAAsB;AAAA,QACxB,MAAM;AAAA,UACJ,KAAK,wBAAwB,QAAQ;AAAA,UACrC,gBAAgB,EAAE,MAAM,YAAY,SAAS;AAAA,QAC/C;AAAA,QACA,UAAU,MAAM;AACd,iBAAO,uBAAuB,KAAK,OAAO,QAAQ;AAAA,QACpD;AAAA,QACA,WAAW,CAAC,aAAa,KAAK,MAAM,UAAU,QAAQ;AAAA,MACxD,CAAC;AAAA,MACD,KAAK;AAAA,IACP;AAAA,EACF;AACF;","names":[]}
1
+ {"version":3,"sources":["../../src/api/ThreadListRuntime.ts"],"sourcesContent":["import { LazyMemoizeSubject } from \"./subscribable/LazyMemoizeSubject\";\nimport { ThreadListRuntimeCore } from \"../runtimes/core/ThreadListRuntimeCore\";\nimport { Unsubscribe } from \"../types\";\nimport {\n ThreadListItemRuntime,\n ThreadListItemRuntimeImpl,\n ThreadListItemState,\n} from \"./ThreadListItemRuntime\";\nimport { SKIP_UPDATE } from \"./subscribable/SKIP_UPDATE\";\nimport { ShallowMemoizeSubject } from \"./subscribable/ShallowMemoizeSubject\";\n\nexport type ThreadListState = {\n readonly mainThreadId: string;\n readonly newThread: string | undefined;\n readonly threads: readonly string[];\n readonly archivedThreads: readonly string[];\n};\n\nexport type ThreadListRuntime = {\n getState(): ThreadListState;\n\n subscribe(callback: () => void): Unsubscribe;\n\n readonly mainThreadListItem: ThreadListItemRuntime;\n getThreadListItemById(threadId: string): ThreadListItemRuntime;\n getThreadListItemByIndex(idx: number): ThreadListItemRuntime;\n getThreadListArchivedItemByIndex(idx: number): ThreadListItemRuntime;\n};\n\nconst getThreadListState = (\n threadList: ThreadListRuntimeCore,\n): ThreadListState => {\n return {\n mainThreadId: threadList.mainThreadId,\n newThread: threadList.newThreadId,\n threads: threadList.threadIds,\n archivedThreads: threadList.archivedThreadIds,\n };\n};\n\nconst getThreadListItemState = (\n threadList: ThreadListRuntimeCore,\n threadId: string | undefined,\n): ThreadListItemState | SKIP_UPDATE => {\n if (threadId === undefined) return SKIP_UPDATE;\n\n const threadData = threadList.getItemById(threadId);\n if (!threadData) return SKIP_UPDATE;\n return {\n id: threadData.threadId,\n threadId: threadData.threadId, // TODO remove in 0.8.0\n title: threadData.title,\n state: threadData.state,\n isMain: threadData.threadId === threadList.mainThreadId,\n };\n};\n\nexport type ThreadListRuntimeCoreBinding = ThreadListRuntimeCore;\n\nexport class ThreadListRuntimeImpl implements ThreadListRuntime {\n private _getState;\n constructor(private _core: ThreadListRuntimeCoreBinding) {\n const stateBinding = new LazyMemoizeSubject({\n path: {},\n getState: () => getThreadListState(_core),\n subscribe: (callback) => _core.subscribe(callback),\n });\n\n this._getState = stateBinding.getState.bind(stateBinding);\n\n this._mainThreadListItemRuntime = new ThreadListItemRuntimeImpl(\n new ShallowMemoizeSubject({\n path: {\n ref: `threadItems[main]`,\n threadSelector: { type: \"main\" },\n },\n getState: () => {\n return getThreadListItemState(this._core, this._core.mainThreadId);\n },\n subscribe: (callback) => this._core.subscribe(callback),\n }),\n this._core,\n );\n }\n\n public getState(): ThreadListState {\n return this._getState();\n }\n\n public subscribe(callback: () => void): Unsubscribe {\n return this._core.subscribe(callback);\n }\n\n private _mainThreadListItemRuntime;\n\n public get mainThreadListItem() {\n return this._mainThreadListItemRuntime;\n }\n\n public getThreadListItemByIndex(idx: number) {\n return new ThreadListItemRuntimeImpl(\n new ShallowMemoizeSubject({\n path: {\n ref: `threadItems[${idx}]`,\n threadSelector: { type: \"index\", index: idx },\n },\n getState: () => {\n return getThreadListItemState(this._core, this._core.threadIds[idx]);\n },\n subscribe: (callback) => this._core.subscribe(callback),\n }),\n this._core,\n );\n }\n\n public getThreadListArchivedItemByIndex(idx: number) {\n return new ThreadListItemRuntimeImpl(\n new ShallowMemoizeSubject({\n path: {\n ref: `archivedThreadItems[${idx}]`,\n threadSelector: { type: \"archiveIndex\", index: idx },\n },\n getState: () => {\n return getThreadListItemState(\n this._core,\n this._core.archivedThreadIds[idx],\n );\n },\n subscribe: (callback) => this._core.subscribe(callback),\n }),\n this._core,\n );\n }\n\n public getThreadListItemById(threadId: string) {\n return new ThreadListItemRuntimeImpl(\n new ShallowMemoizeSubject({\n path: {\n ref: `threadItems[threadId=${threadId}]`,\n threadSelector: { type: \"threadId\", threadId },\n },\n getState: () => {\n return getThreadListItemState(this._core, threadId);\n },\n subscribe: (callback) => this._core.subscribe(callback),\n }),\n this._core,\n );\n }\n}\n"],"mappings":"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","names":[]}