@dxos/plugin-thread 0.8.4-main.422d1c7879 → 0.8.4-main.4f23b4e393

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 (397) hide show
  1. package/dist/lib/neutral/CallDebugPanel-CXWTCS7A.mjs +172 -0
  2. package/dist/lib/neutral/CallDebugPanel-CXWTCS7A.mjs.map +7 -0
  3. package/dist/lib/neutral/CallSidebar-4USJZ2SB.mjs +25 -0
  4. package/dist/lib/neutral/CallSidebar-4USJZ2SB.mjs.map +7 -0
  5. package/dist/lib/neutral/ChannelChat-6YTD5HWL.mjs +10 -0
  6. package/dist/lib/neutral/ChannelContainer-XHBF2NCK.mjs +9 -0
  7. package/dist/lib/neutral/ThreadCompanion-NQWPS2H6.mjs +208 -0
  8. package/dist/lib/neutral/ThreadCompanion-NQWPS2H6.mjs.map +7 -0
  9. package/dist/lib/neutral/ThreadContainer-XYEPEOSD.mjs +61 -0
  10. package/dist/lib/neutral/ThreadContainer-XYEPEOSD.mjs.map +7 -0
  11. package/dist/lib/neutral/ThreadPlugin.mjs +89 -0
  12. package/dist/lib/neutral/ThreadPlugin.mjs.map +7 -0
  13. package/dist/lib/neutral/ThreadPlugin.node.mjs +40 -0
  14. package/dist/lib/neutral/ThreadPlugin.node.mjs.map +7 -0
  15. package/dist/lib/neutral/ThreadSettings-5Z5XIHG3.mjs +15 -0
  16. package/dist/lib/neutral/ThreadSettings-5Z5XIHG3.mjs.map +7 -0
  17. package/dist/lib/{browser/add-message-VPPFFLFL.mjs → neutral/add-message-HV5R66K4.mjs} +12 -22
  18. package/dist/lib/neutral/add-message-HV5R66K4.mjs.map +7 -0
  19. package/dist/lib/neutral/app-graph-builder-JDLHZ4XO.mjs +173 -0
  20. package/dist/lib/neutral/app-graph-builder-JDLHZ4XO.mjs.map +7 -0
  21. package/dist/lib/neutral/append-channel-message-PO33DR5V.mjs +40 -0
  22. package/dist/lib/neutral/append-channel-message-PO33DR5V.mjs.map +7 -0
  23. package/dist/lib/neutral/blueprint-definition-S3EBOH4R.mjs +15 -0
  24. package/dist/lib/neutral/blueprint-definition-S3EBOH4R.mjs.map +7 -0
  25. package/dist/lib/neutral/blueprints/index.mjs +8 -0
  26. package/dist/lib/neutral/call-manager-JFA4DLWR.mjs +24 -0
  27. package/dist/lib/neutral/call-manager-JFA4DLWR.mjs.map +7 -0
  28. package/dist/lib/neutral/capabilities/index.mjs +29 -0
  29. package/dist/lib/neutral/capabilities/index.mjs.map +7 -0
  30. package/dist/lib/neutral/chunk-44D7D4ZX.mjs +20 -0
  31. package/dist/lib/neutral/chunk-44D7D4ZX.mjs.map +7 -0
  32. package/dist/lib/{browser/blueprints/index.mjs → neutral/chunk-5T5LPLBN.mjs} +5 -6
  33. package/dist/lib/neutral/chunk-5T5LPLBN.mjs.map +7 -0
  34. package/dist/lib/neutral/chunk-CROE4U4O.mjs +100 -0
  35. package/dist/lib/neutral/chunk-CROE4U4O.mjs.map +7 -0
  36. package/dist/lib/neutral/chunk-D5LGFCUY.mjs +55 -0
  37. package/dist/lib/neutral/chunk-D5LGFCUY.mjs.map +7 -0
  38. package/dist/lib/neutral/chunk-FWSMZWBO.mjs +178 -0
  39. package/dist/lib/neutral/chunk-FWSMZWBO.mjs.map +7 -0
  40. package/dist/lib/neutral/chunk-JLY4NVTA.mjs +38 -0
  41. package/dist/lib/neutral/chunk-JLY4NVTA.mjs.map +7 -0
  42. package/dist/lib/neutral/chunk-KRXHIW4P.mjs +164 -0
  43. package/dist/lib/neutral/chunk-KRXHIW4P.mjs.map +7 -0
  44. package/dist/lib/neutral/chunk-MXJYXUS2.mjs +8 -0
  45. package/dist/lib/neutral/chunk-MXJYXUS2.mjs.map +7 -0
  46. package/dist/lib/{browser/chunk-VPM44Z35.mjs → neutral/chunk-OZRSYMYO.mjs} +101 -85
  47. package/dist/lib/neutral/chunk-OZRSYMYO.mjs.map +7 -0
  48. package/dist/lib/{browser/index.mjs → neutral/chunk-PZ7WTAA2.mjs} +88 -900
  49. package/dist/lib/neutral/chunk-PZ7WTAA2.mjs.map +7 -0
  50. package/dist/lib/neutral/chunk-S2AKEA2K.mjs +202 -0
  51. package/dist/lib/neutral/chunk-S2AKEA2K.mjs.map +7 -0
  52. package/dist/lib/neutral/components/index.mjs +1230 -0
  53. package/dist/lib/neutral/components/index.mjs.map +7 -0
  54. package/dist/lib/neutral/containers/index.mjs +19 -0
  55. package/dist/lib/neutral/containers/index.mjs.map +7 -0
  56. package/dist/lib/{browser/create-UGT7V733.mjs → neutral/create-C3CICN35.mjs} +8 -11
  57. package/dist/lib/neutral/create-C3CICN35.mjs.map +7 -0
  58. package/dist/lib/neutral/create-channel-UEQESOFT.mjs +19 -0
  59. package/dist/lib/neutral/create-channel-UEQESOFT.mjs.map +7 -0
  60. package/dist/lib/neutral/create-object-HIEWSBZB.mjs +27 -0
  61. package/dist/lib/neutral/create-object-HIEWSBZB.mjs.map +7 -0
  62. package/dist/lib/{browser/create-proposals-CMK7S7VS.mjs → neutral/create-proposals-OZ4NCBBS.mjs} +5 -6
  63. package/dist/lib/neutral/create-proposals-OZ4NCBBS.mjs.map +7 -0
  64. package/dist/lib/{browser/delete-FSFVU6ZA.mjs → neutral/delete-AVFYFWMY.mjs} +8 -10
  65. package/dist/lib/neutral/delete-AVFYFWMY.mjs.map +7 -0
  66. package/dist/lib/{browser/delete-message-XL5M5J33.mjs → neutral/delete-message-EV2MKRTB.mjs} +9 -19
  67. package/dist/lib/neutral/delete-message-EV2MKRTB.mjs.map +7 -0
  68. package/dist/lib/neutral/hooks/index.mjs +19 -0
  69. package/dist/lib/neutral/hooks/index.mjs.map +7 -0
  70. package/dist/lib/neutral/index.mjs +68 -0
  71. package/dist/lib/neutral/index.mjs.map +7 -0
  72. package/dist/lib/neutral/markdown-BUORNCPG.mjs +83 -0
  73. package/dist/lib/neutral/markdown-BUORNCPG.mjs.map +7 -0
  74. package/dist/lib/neutral/meta.json +1 -0
  75. package/dist/lib/neutral/meta.mjs +10 -0
  76. package/dist/lib/neutral/meta.mjs.map +7 -0
  77. package/dist/lib/neutral/on-create-space-NQF7WGEB.mjs +23 -0
  78. package/dist/lib/neutral/on-create-space-NQF7WGEB.mjs.map +7 -0
  79. package/dist/lib/neutral/operation-handler-RU6K2S4L.mjs +13 -0
  80. package/dist/lib/neutral/operation-handler-RU6K2S4L.mjs.map +7 -0
  81. package/dist/lib/neutral/operations/index.mjs +8 -0
  82. package/dist/lib/neutral/operations/index.mjs.map +7 -0
  83. package/dist/lib/neutral/plugin.mjs +16 -0
  84. package/dist/lib/neutral/plugin.mjs.map +7 -0
  85. package/dist/lib/neutral/react-root-VMMNUSSL.mjs +18 -0
  86. package/dist/lib/neutral/react-root-VMMNUSSL.mjs.map +7 -0
  87. package/dist/lib/neutral/react-surface-WPSVOTVG.mjs +94 -0
  88. package/dist/lib/neutral/react-surface-WPSVOTVG.mjs.map +7 -0
  89. package/dist/lib/{browser/restore-2ZGMKUSD.mjs → neutral/restore-MGLYOJ3Y.mjs} +6 -7
  90. package/dist/lib/neutral/restore-MGLYOJ3Y.mjs.map +7 -0
  91. package/dist/lib/{browser/restore-message-OYEGWPII.mjs → neutral/restore-message-ZIOA2MQJ.mjs} +8 -17
  92. package/dist/lib/neutral/restore-message-ZIOA2MQJ.mjs.map +7 -0
  93. package/dist/lib/{browser/select-VG2XLULE.mjs → neutral/select-CVCGBDHA.mjs} +7 -9
  94. package/dist/lib/neutral/select-CVCGBDHA.mjs.map +7 -0
  95. package/dist/lib/neutral/settings-HK4EB6TF.mjs +30 -0
  96. package/dist/lib/neutral/settings-HK4EB6TF.mjs.map +7 -0
  97. package/dist/lib/neutral/state-UU7VEAKV.mjs +22 -0
  98. package/dist/lib/neutral/state-UU7VEAKV.mjs.map +7 -0
  99. package/dist/lib/neutral/testing/index.mjs +58 -0
  100. package/dist/lib/neutral/testing/index.mjs.map +7 -0
  101. package/dist/lib/{browser/toggle-resolved-MM6YC5BU.mjs → neutral/toggle-resolved-ZM4BHON5.mjs} +8 -17
  102. package/dist/lib/neutral/toggle-resolved-ZM4BHON5.mjs.map +7 -0
  103. package/dist/lib/neutral/translations.mjs +90 -0
  104. package/dist/lib/neutral/translations.mjs.map +7 -0
  105. package/dist/lib/neutral/types/index.mjs +12 -0
  106. package/dist/lib/neutral/types/index.mjs.map +7 -0
  107. package/dist/lib/neutral/undo-mappings-HOKL2L3M.mjs +54 -0
  108. package/dist/lib/neutral/undo-mappings-HOKL2L3M.mjs.map +7 -0
  109. package/dist/types/src/ThreadPlugin.d.ts +1 -0
  110. package/dist/types/src/ThreadPlugin.d.ts.map +1 -1
  111. package/dist/types/src/ThreadPlugin.node.d.ts +4 -0
  112. package/dist/types/src/ThreadPlugin.node.d.ts.map +1 -0
  113. package/dist/types/src/ThreadPlugin.test.d.ts +2 -0
  114. package/dist/types/src/ThreadPlugin.test.d.ts.map +1 -0
  115. package/dist/types/src/blueprints/thread-blueprint.d.ts +2 -2
  116. package/dist/types/src/blueprints/thread-blueprint.d.ts.map +1 -1
  117. package/dist/types/src/calls/call-manager.d.ts.map +1 -1
  118. package/dist/types/src/calls/call-swarm-synchronizer.d.ts.map +1 -1
  119. package/dist/types/src/calls/media-manager.d.ts.map +1 -1
  120. package/dist/types/src/calls/speaking-monitor.d.ts +0 -3
  121. package/dist/types/src/calls/speaking-monitor.d.ts.map +1 -1
  122. package/dist/types/src/calls/types.d.ts.map +1 -1
  123. package/dist/types/src/calls/util/audio.d.ts.map +1 -1
  124. package/dist/types/src/calls/util/calls-service.d.ts +2 -2
  125. package/dist/types/src/calls/util/calls-service.d.ts.map +1 -1
  126. package/dist/types/src/calls/util/history-cache.d.ts.map +1 -1
  127. package/dist/types/src/calls/util/media.d.ts.map +1 -1
  128. package/dist/types/src/calls/util/stub-media-streams.d.ts.map +1 -1
  129. package/dist/types/src/calls/util/task-scheduling.d.ts.map +1 -1
  130. package/dist/types/src/calls-service.stories.d.ts.map +1 -1
  131. package/dist/types/src/capabilities/app-graph-builder.d.ts.map +1 -1
  132. package/dist/types/src/capabilities/blueprint-definition.d.ts +2 -2
  133. package/dist/types/src/capabilities/blueprint-definition.d.ts.map +1 -1
  134. package/dist/types/src/capabilities/call-manager.d.ts.map +1 -1
  135. package/dist/types/src/capabilities/create-object.d.ts +11 -0
  136. package/dist/types/src/capabilities/create-object.d.ts.map +1 -0
  137. package/dist/types/src/capabilities/index.d.ts +9 -3
  138. package/dist/types/src/capabilities/index.d.ts.map +1 -1
  139. package/dist/types/src/capabilities/markdown.d.ts.map +1 -1
  140. package/dist/types/src/capabilities/operation-handler.d.ts +1 -1
  141. package/dist/types/src/capabilities/operation-handler.d.ts.map +1 -1
  142. package/dist/types/src/capabilities/react-root.d.ts.map +1 -1
  143. package/dist/types/src/capabilities/react-surface.d.ts.map +1 -1
  144. package/dist/types/src/capabilities/settings.d.ts.map +1 -1
  145. package/dist/types/src/capabilities/state.d.ts.map +1 -1
  146. package/dist/types/src/capabilities/undo-mappings.d.ts.map +1 -1
  147. package/dist/types/src/components/Call/Call.d.ts +32 -4
  148. package/dist/types/src/components/Call/Call.d.ts.map +1 -1
  149. package/dist/types/src/components/Call/Toolbar.d.ts +5 -5
  150. package/dist/types/src/components/Call/Toolbar.d.ts.map +1 -1
  151. package/dist/types/src/components/Chat/Chat.d.ts +51 -0
  152. package/dist/types/src/components/Chat/Chat.d.ts.map +1 -0
  153. package/dist/types/src/components/Chat/index.d.ts +2 -0
  154. package/dist/types/src/components/Chat/index.d.ts.map +1 -0
  155. package/dist/types/src/components/CommentsPanel/CommentsPanel.d.ts.map +1 -1
  156. package/dist/types/src/components/CommentsPanel/CommentsPanel.stories.d.ts +70 -70
  157. package/dist/types/src/components/CommentsPanel/CommentsPanel.stories.d.ts.map +1 -1
  158. package/dist/types/src/components/CommentsPanel/CommentsThread.d.ts.map +1 -1
  159. package/dist/types/src/components/Lobby/Lobby.d.ts +24 -3
  160. package/dist/types/src/components/Lobby/Lobby.d.ts.map +1 -1
  161. package/dist/types/src/components/Media/VideoObject.d.ts +1 -1
  162. package/dist/types/src/components/Media/VideoObject.stories.d.ts +1 -1
  163. package/dist/types/src/components/Media/VideoObject.stories.d.ts.map +1 -1
  164. package/dist/types/src/components/MessagePanel/MessagePanel.d.ts.map +1 -1
  165. package/dist/types/src/components/Participant/ParticipantGrid.d.ts.map +1 -1
  166. package/dist/types/src/components/ResponsiveGrid/ResponsiveGrid.d.ts.map +1 -1
  167. package/dist/types/src/components/ResponsiveGrid/ResponsiveGrid.stories.d.ts +70 -70
  168. package/dist/types/src/components/ResponsiveGrid/ResponsiveGrid.stories.d.ts.map +1 -1
  169. package/dist/types/src/components/ResponsiveGrid/ResponsiveGridItem.d.ts.map +1 -1
  170. package/dist/types/src/components/ResponsiveGrid/ResponsivePanel.d.ts.map +1 -1
  171. package/dist/types/src/components/ResponsiveGrid/ResponsivePanel.stories.d.ts +70 -70
  172. package/dist/types/src/components/ResponsiveGrid/ResponsivePanel.stories.d.ts.map +1 -1
  173. package/dist/types/src/components/ThreadSettings/ThreadSettings.d.ts.map +1 -1
  174. package/dist/types/src/components/ThreadSettings/ThreadSettings.stories.d.ts +70 -70
  175. package/dist/types/src/components/ThreadSettings/ThreadSettings.stories.d.ts.map +1 -1
  176. package/dist/types/src/components/index.d.ts +1 -0
  177. package/dist/types/src/components/index.d.ts.map +1 -1
  178. package/dist/types/src/containers/CallDebugPanel/CallDebugPanel.d.ts.map +1 -1
  179. package/dist/types/src/containers/ChannelChat/ChannelChat.d.ts +20 -0
  180. package/dist/types/src/containers/ChannelChat/ChannelChat.d.ts.map +1 -0
  181. package/dist/types/src/containers/ChannelChat/index.d.ts +4 -0
  182. package/dist/types/src/containers/ChannelChat/index.d.ts.map +1 -0
  183. package/dist/types/src/containers/ChannelContainer/ChannelContainer.d.ts +1 -1
  184. package/dist/types/src/containers/ChannelContainer/ChannelContainer.d.ts.map +1 -1
  185. package/dist/types/src/containers/ChannelContainer/ChannelContainer.stories.d.ts +70 -70
  186. package/dist/types/src/containers/ChannelContainer/ChannelContainer.stories.d.ts.map +1 -1
  187. package/dist/types/src/containers/ThreadCompanion/ThreadCompanion.d.ts.map +1 -1
  188. package/dist/types/src/containers/ThreadContainer/ThreadContainer.d.ts +20 -0
  189. package/dist/types/src/containers/ThreadContainer/ThreadContainer.d.ts.map +1 -0
  190. package/dist/types/src/containers/{ChatContainer/ChatContainer.stories.d.ts → ThreadContainer/ThreadContainer.stories.d.ts} +71 -71
  191. package/dist/types/src/containers/ThreadContainer/ThreadContainer.stories.d.ts.map +1 -0
  192. package/dist/types/src/containers/ThreadContainer/index.d.ts +4 -0
  193. package/dist/types/src/containers/ThreadContainer/index.d.ts.map +1 -0
  194. package/dist/types/src/containers/index.d.ts +2 -1
  195. package/dist/types/src/containers/index.d.ts.map +1 -1
  196. package/dist/types/src/extensions/threads.d.ts +3 -3
  197. package/dist/types/src/extensions/threads.d.ts.map +1 -1
  198. package/dist/types/src/hooks/analytics.d.ts.map +1 -1
  199. package/dist/types/src/hooks/useStatus.d.ts.map +1 -1
  200. package/dist/types/src/hooks/useVideoStreamTrack.d.ts.map +1 -1
  201. package/dist/types/src/index.d.ts +2 -2
  202. package/dist/types/src/index.d.ts.map +1 -1
  203. package/dist/types/src/operations/add-message.d.ts +3 -3
  204. package/dist/types/src/operations/add-message.d.ts.map +1 -1
  205. package/dist/types/src/operations/append-channel-message.d.ts +5 -0
  206. package/dist/types/src/operations/append-channel-message.d.ts.map +1 -0
  207. package/dist/types/src/operations/create-channel.d.ts +3 -3
  208. package/dist/types/src/operations/create-channel.d.ts.map +1 -1
  209. package/dist/types/src/operations/create-proposals.d.ts +3 -3
  210. package/dist/types/src/operations/create-proposals.d.ts.map +1 -1
  211. package/dist/types/src/operations/create.d.ts +3 -3
  212. package/dist/types/src/operations/create.d.ts.map +1 -1
  213. package/dist/types/src/operations/delete-message.d.ts +3 -3
  214. package/dist/types/src/operations/delete-message.d.ts.map +1 -1
  215. package/dist/types/src/operations/delete.d.ts +3 -3
  216. package/dist/types/src/operations/delete.d.ts.map +1 -1
  217. package/dist/types/src/operations/index.d.ts +1 -2
  218. package/dist/types/src/operations/index.d.ts.map +1 -1
  219. package/dist/types/src/operations/on-create-space.d.ts +3 -3
  220. package/dist/types/src/operations/on-create-space.d.ts.map +1 -1
  221. package/dist/types/src/operations/restore-message.d.ts +3 -3
  222. package/dist/types/src/operations/restore-message.d.ts.map +1 -1
  223. package/dist/types/src/operations/restore.d.ts +3 -3
  224. package/dist/types/src/operations/restore.d.ts.map +1 -1
  225. package/dist/types/src/operations/select.d.ts +3 -3
  226. package/dist/types/src/operations/select.d.ts.map +1 -1
  227. package/dist/types/src/operations/toggle-resolved.d.ts +3 -3
  228. package/dist/types/src/operations/toggle-resolved.d.ts.map +1 -1
  229. package/dist/types/src/plugin.d.ts +4 -0
  230. package/dist/types/src/plugin.d.ts.map +1 -0
  231. package/dist/types/src/testing/data.d.ts.map +1 -1
  232. package/dist/types/src/testing/index.d.ts +1 -1
  233. package/dist/types/src/testing/index.d.ts.map +1 -1
  234. package/dist/types/src/translations.d.ts +70 -70
  235. package/dist/types/src/translations.d.ts.map +1 -1
  236. package/dist/types/src/types/ThreadCapabilities.d.ts +26 -0
  237. package/dist/types/src/types/ThreadCapabilities.d.ts.map +1 -0
  238. package/dist/types/src/{operations/definitions.d.ts → types/ThreadOperation.d.ts} +864 -1673
  239. package/dist/types/src/types/ThreadOperation.d.ts.map +1 -0
  240. package/dist/types/src/types/index.d.ts +3 -2
  241. package/dist/types/src/types/index.d.ts.map +1 -1
  242. package/dist/types/src/types/types.d.ts +1 -1
  243. package/dist/types/src/types/types.d.ts.map +1 -1
  244. package/dist/types/src/util.d.ts +6 -3
  245. package/dist/types/src/util.d.ts.map +1 -1
  246. package/dist/types/tsconfig.tsbuildinfo +1 -1
  247. package/package.json +124 -86
  248. package/src/ThreadPlugin.node.ts +39 -0
  249. package/src/ThreadPlugin.test.ts +37 -0
  250. package/src/ThreadPlugin.tsx +13 -57
  251. package/src/blueprints/thread-blueprint.ts +3 -4
  252. package/src/calls/util/calls-service.ts +3 -1
  253. package/src/calls/util/stub-media-streams.ts +3 -1
  254. package/src/capabilities/app-graph-builder.ts +21 -19
  255. package/src/capabilities/blueprint-definition.ts +2 -0
  256. package/src/capabilities/call-manager.ts +1 -1
  257. package/src/capabilities/create-object.ts +29 -0
  258. package/src/capabilities/index.ts +3 -1
  259. package/src/capabilities/markdown.ts +6 -2
  260. package/src/capabilities/operation-handler.ts +1 -1
  261. package/src/capabilities/react-surface.tsx +13 -7
  262. package/src/capabilities/settings.ts +1 -3
  263. package/src/capabilities/undo-mappings.ts +1 -1
  264. package/src/components/Call/Call.tsx +5 -5
  265. package/src/components/Call/Toolbar.tsx +1 -1
  266. package/src/components/Chat/Chat.tsx +258 -0
  267. package/src/components/Chat/index.ts +5 -0
  268. package/src/components/CommentsPanel/CommentsPanel.stories.tsx +6 -4
  269. package/src/components/CommentsPanel/CommentsPanel.tsx +4 -4
  270. package/src/components/CommentsPanel/CommentsThread.tsx +2 -3
  271. package/src/components/Lobby/Lobby.tsx +5 -4
  272. package/src/components/MessagePanel/MessagePanel.tsx +8 -9
  273. package/src/components/ResponsiveGrid/ResponsiveGrid.stories.tsx +2 -1
  274. package/src/components/ResponsiveGrid/ResponsivePanel.stories.tsx +2 -1
  275. package/src/components/ResponsiveGrid/ResponsivePanel.tsx +3 -5
  276. package/src/components/ThreadSettings/ThreadSettings.stories.tsx +2 -1
  277. package/src/components/index.ts +1 -0
  278. package/src/containers/ChannelChat/ChannelChat.tsx +75 -0
  279. package/src/containers/ChannelChat/index.ts +8 -0
  280. package/src/containers/ChannelContainer/ChannelContainer.stories.tsx +54 -10
  281. package/src/containers/ChannelContainer/ChannelContainer.tsx +4 -4
  282. package/src/containers/ThreadCompanion/ThreadCompanion.tsx +10 -12
  283. package/src/containers/{ChatContainer/ChatContainer.stories.tsx → ThreadContainer/ThreadContainer.stories.tsx} +10 -11
  284. package/src/containers/ThreadContainer/ThreadContainer.tsx +75 -0
  285. package/src/containers/ThreadContainer/index.ts +8 -0
  286. package/src/containers/index.ts +2 -1
  287. package/src/extensions/command.ts +1 -1
  288. package/src/extensions/threads.ts +9 -9
  289. package/src/hooks/analytics.ts +1 -1
  290. package/src/index.ts +4 -3
  291. package/src/operations/add-message.ts +7 -7
  292. package/src/operations/append-channel-message.ts +37 -0
  293. package/src/operations/create-channel.ts +4 -4
  294. package/src/operations/create-proposals.ts +3 -3
  295. package/src/operations/create.ts +4 -4
  296. package/src/operations/delete-message.ts +6 -6
  297. package/src/operations/delete.ts +4 -4
  298. package/src/operations/index.ts +2 -4
  299. package/src/operations/on-create-space.ts +4 -4
  300. package/src/operations/restore-message.ts +5 -5
  301. package/src/operations/restore.ts +4 -4
  302. package/src/operations/select.ts +3 -3
  303. package/src/operations/toggle-resolved.ts +5 -5
  304. package/src/plugin.ts +11 -0
  305. package/src/testing/index.ts +1 -1
  306. package/src/translations.ts +1 -1
  307. package/src/types/ThreadCapabilities.ts +41 -0
  308. package/src/{operations/definitions.ts → types/ThreadOperation.ts} +14 -13
  309. package/src/types/index.ts +4 -2
  310. package/src/types/types.ts +0 -2
  311. package/src/util.ts +36 -4
  312. package/dist/lib/browser/add-message-VPPFFLFL.mjs.map +0 -7
  313. package/dist/lib/browser/blueprints/index.mjs.map +0 -7
  314. package/dist/lib/browser/chunk-MESW3R4Q.mjs +0 -61
  315. package/dist/lib/browser/chunk-MESW3R4Q.mjs.map +0 -7
  316. package/dist/lib/browser/chunk-VPM44Z35.mjs.map +0 -7
  317. package/dist/lib/browser/create-UGT7V733.mjs.map +0 -7
  318. package/dist/lib/browser/create-channel-EF67LCS6.mjs +0 -21
  319. package/dist/lib/browser/create-channel-EF67LCS6.mjs.map +0 -7
  320. package/dist/lib/browser/create-channel-thread-CCZTSWQ6.mjs +0 -28
  321. package/dist/lib/browser/create-channel-thread-CCZTSWQ6.mjs.map +0 -7
  322. package/dist/lib/browser/create-proposals-CMK7S7VS.mjs.map +0 -7
  323. package/dist/lib/browser/delete-FSFVU6ZA.mjs.map +0 -7
  324. package/dist/lib/browser/delete-message-XL5M5J33.mjs.map +0 -7
  325. package/dist/lib/browser/index.mjs.map +0 -7
  326. package/dist/lib/browser/meta.json +0 -1
  327. package/dist/lib/browser/on-create-space-VYS2JGVT.mjs +0 -25
  328. package/dist/lib/browser/on-create-space-VYS2JGVT.mjs.map +0 -7
  329. package/dist/lib/browser/operations/index.mjs +0 -14
  330. package/dist/lib/browser/operations/index.mjs.map +0 -7
  331. package/dist/lib/browser/restore-2ZGMKUSD.mjs.map +0 -7
  332. package/dist/lib/browser/restore-message-OYEGWPII.mjs.map +0 -7
  333. package/dist/lib/browser/select-VG2XLULE.mjs.map +0 -7
  334. package/dist/lib/browser/toggle-resolved-MM6YC5BU.mjs.map +0 -7
  335. package/dist/lib/browser/types/index.mjs +0 -12
  336. package/dist/lib/node-esm/add-message-XWKHLNS6.mjs +0 -98
  337. package/dist/lib/node-esm/add-message-XWKHLNS6.mjs.map +0 -7
  338. package/dist/lib/node-esm/blueprints/index.mjs +0 -38
  339. package/dist/lib/node-esm/blueprints/index.mjs.map +0 -7
  340. package/dist/lib/node-esm/chunk-HSLMI22Q.mjs +0 -11
  341. package/dist/lib/node-esm/chunk-JTHXNWKJ.mjs +0 -260
  342. package/dist/lib/node-esm/chunk-JTHXNWKJ.mjs.map +0 -7
  343. package/dist/lib/node-esm/chunk-SDRAQNSQ.mjs +0 -62
  344. package/dist/lib/node-esm/chunk-SDRAQNSQ.mjs.map +0 -7
  345. package/dist/lib/node-esm/create-XAYNDVU2.mjs +0 -56
  346. package/dist/lib/node-esm/create-XAYNDVU2.mjs.map +0 -7
  347. package/dist/lib/node-esm/create-channel-UYWUNB3L.mjs +0 -22
  348. package/dist/lib/node-esm/create-channel-UYWUNB3L.mjs.map +0 -7
  349. package/dist/lib/node-esm/create-channel-thread-UQF2SBHS.mjs +0 -29
  350. package/dist/lib/node-esm/create-channel-thread-UQF2SBHS.mjs.map +0 -7
  351. package/dist/lib/node-esm/create-proposals-5FJNURKH.mjs +0 -58
  352. package/dist/lib/node-esm/create-proposals-5FJNURKH.mjs.map +0 -7
  353. package/dist/lib/node-esm/delete-WRODXR3E.mjs +0 -60
  354. package/dist/lib/node-esm/delete-WRODXR3E.mjs.map +0 -7
  355. package/dist/lib/node-esm/delete-message-TAHCYTW2.mjs +0 -65
  356. package/dist/lib/node-esm/delete-message-TAHCYTW2.mjs.map +0 -7
  357. package/dist/lib/node-esm/index.mjs +0 -2335
  358. package/dist/lib/node-esm/index.mjs.map +0 -7
  359. package/dist/lib/node-esm/meta.json +0 -1
  360. package/dist/lib/node-esm/on-create-space-XDY2YXPV.mjs +0 -26
  361. package/dist/lib/node-esm/on-create-space-XDY2YXPV.mjs.map +0 -7
  362. package/dist/lib/node-esm/operations/index.mjs +0 -15
  363. package/dist/lib/node-esm/operations/index.mjs.map +0 -7
  364. package/dist/lib/node-esm/restore-T3QA7TSL.mjs +0 -34
  365. package/dist/lib/node-esm/restore-T3QA7TSL.mjs.map +0 -7
  366. package/dist/lib/node-esm/restore-message-WFTEVBEV.mjs +0 -43
  367. package/dist/lib/node-esm/restore-message-WFTEVBEV.mjs.map +0 -7
  368. package/dist/lib/node-esm/select-Q4UDWJJF.mjs +0 -27
  369. package/dist/lib/node-esm/select-Q4UDWJJF.mjs.map +0 -7
  370. package/dist/lib/node-esm/toggle-resolved-33XTAK2H.mjs +0 -46
  371. package/dist/lib/node-esm/toggle-resolved-33XTAK2H.mjs.map +0 -7
  372. package/dist/lib/node-esm/types/index.mjs +0 -13
  373. package/dist/types/src/containers/ChatContainer/ChatContainer.d.ts +0 -16
  374. package/dist/types/src/containers/ChatContainer/ChatContainer.d.ts.map +0 -1
  375. package/dist/types/src/containers/ChatContainer/ChatContainer.stories.d.ts.map +0 -1
  376. package/dist/types/src/containers/ChatContainer/index.d.ts +0 -4
  377. package/dist/types/src/containers/ChatContainer/index.d.ts.map +0 -1
  378. package/dist/types/src/operations/create-channel-thread.d.ts +0 -5
  379. package/dist/types/src/operations/create-channel-thread.d.ts.map +0 -1
  380. package/dist/types/src/operations/definitions.d.ts.map +0 -1
  381. package/dist/types/src/testing/stories.d.ts +0 -3
  382. package/dist/types/src/testing/stories.d.ts.map +0 -1
  383. package/dist/types/src/types/Channel.d.ts +0 -715
  384. package/dist/types/src/types/Channel.d.ts.map +0 -1
  385. package/dist/types/src/types/capabilities.d.ts +0 -24
  386. package/dist/types/src/types/capabilities.d.ts.map +0 -1
  387. package/src/containers/ChatContainer/ChatContainer.tsx +0 -131
  388. package/src/containers/ChatContainer/index.ts +0 -8
  389. package/src/operations/create-channel-thread.ts +0 -26
  390. package/src/testing/stories.ts +0 -51
  391. package/src/types/Channel.ts +0 -37
  392. package/src/types/capabilities.ts +0 -36
  393. /package/dist/lib/{browser/chunk-J5LGTIGS.mjs.map → neutral/ChannelChat-6YTD5HWL.mjs.map} +0 -0
  394. /package/dist/lib/{browser/types/index.mjs.map → neutral/ChannelContainer-XHBF2NCK.mjs.map} +0 -0
  395. /package/dist/lib/{node-esm/types → neutral/blueprints}/index.mjs.map +0 -0
  396. /package/dist/lib/{browser → neutral}/chunk-J5LGTIGS.mjs +0 -0
  397. /package/dist/lib/{node-esm/chunk-HSLMI22Q.mjs.map → neutral/chunk-J5LGTIGS.mjs.map} +0 -0
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@dxos/plugin-thread",
3
- "version": "0.8.4-main.422d1c7879",
3
+ "version": "0.8.4-main.4f23b4e393",
4
4
  "description": "DXOS Threads Surface plugin",
5
5
  "homepage": "https://dxos.org",
6
6
  "bugs": "https://github.com/dxos/dxos/issues",
@@ -13,40 +13,81 @@
13
13
  "sideEffects": true,
14
14
  "type": "module",
15
15
  "imports": {
16
- "#blueprints": "./src/blueprints/index.ts",
17
- "#capabilities": "./src/capabilities/index.ts",
18
- "#components": "./src/components/index.ts",
19
- "#containers": "./src/containers/index.ts",
20
- "#hooks": "./src/hooks/index.ts",
21
- "#meta": "./src/meta.ts",
22
- "#operations": "./src/operations/index.ts",
23
- "#testing": "./src/testing/index.ts",
24
- "#types": "./src/types/index.ts"
16
+ "#blueprints": {
17
+ "source": "./src/blueprints/index.ts",
18
+ "types": "./dist/types/src/blueprints/index.d.ts",
19
+ "default": "./dist/lib/neutral/blueprints/index.mjs"
20
+ },
21
+ "#capabilities": {
22
+ "source": "./src/capabilities/index.ts",
23
+ "types": "./dist/types/src/capabilities/index.d.ts",
24
+ "default": "./dist/lib/neutral/capabilities/index.mjs"
25
+ },
26
+ "#components": {
27
+ "source": "./src/components/index.ts",
28
+ "types": "./dist/types/src/components/index.d.ts",
29
+ "default": "./dist/lib/neutral/components/index.mjs"
30
+ },
31
+ "#containers": {
32
+ "source": "./src/containers/index.ts",
33
+ "types": "./dist/types/src/containers/index.d.ts",
34
+ "default": "./dist/lib/neutral/containers/index.mjs"
35
+ },
36
+ "#hooks": {
37
+ "source": "./src/hooks/index.ts",
38
+ "types": "./dist/types/src/hooks/index.d.ts",
39
+ "default": "./dist/lib/neutral/hooks/index.mjs"
40
+ },
41
+ "#meta": {
42
+ "source": "./src/meta.ts",
43
+ "types": "./dist/types/src/meta.d.ts",
44
+ "default": "./dist/lib/neutral/meta.mjs"
45
+ },
46
+ "#operations": {
47
+ "source": "./src/operations/index.ts",
48
+ "types": "./dist/types/src/operations/index.d.ts",
49
+ "default": "./dist/lib/neutral/operations/index.mjs"
50
+ },
51
+ "#plugin": {
52
+ "source": {
53
+ "node": "./src/ThreadPlugin.node.ts",
54
+ "default": "./src/ThreadPlugin.tsx"
55
+ },
56
+ "types": "./dist/types/src/ThreadPlugin.d.ts",
57
+ "node": "./dist/lib/neutral/ThreadPlugin.node.mjs",
58
+ "default": "./dist/lib/neutral/ThreadPlugin.mjs"
59
+ },
60
+ "#testing": {
61
+ "source": "./src/testing/index.ts",
62
+ "types": "./dist/types/src/testing/index.d.ts",
63
+ "default": "./dist/lib/neutral/testing/index.mjs"
64
+ },
65
+ "#translations": {
66
+ "source": "./src/translations.ts",
67
+ "types": "./dist/types/src/translations.d.ts",
68
+ "default": "./dist/lib/neutral/translations.mjs"
69
+ },
70
+ "#types": {
71
+ "source": "./src/types/index.ts",
72
+ "types": "./dist/types/src/types/index.d.ts",
73
+ "default": "./dist/lib/neutral/types/index.mjs"
74
+ }
25
75
  },
26
76
  "exports": {
27
77
  ".": {
28
78
  "source": "./src/index.ts",
29
- "browser": "./dist/lib/browser/index.mjs",
30
- "node": "./dist/lib/node-esm/index.mjs",
31
- "types": "./dist/types/src/index.d.ts"
79
+ "types": "./dist/types/src/index.d.ts",
80
+ "default": "./dist/lib/neutral/index.mjs"
32
81
  },
33
- "./blueprints": {
34
- "source": "./src/blueprints/index.ts",
35
- "browser": "./dist/lib/browser/blueprints/index.mjs",
36
- "node": "./dist/lib/node-esm/blueprints/index.mjs",
37
- "types": "./dist/types/src/blueprints/index.d.ts"
82
+ "./plugin": {
83
+ "source": "./src/plugin.ts",
84
+ "types": "./dist/types/src/plugin.d.ts",
85
+ "default": "./dist/lib/neutral/plugin.mjs"
38
86
  },
39
- "./operations": {
40
- "source": "./src/operations/index.ts",
41
- "browser": "./dist/lib/browser/operations/index.mjs",
42
- "node": "./dist/lib/node-esm/operations/index.mjs",
43
- "types": "./dist/types/src/operations/index.d.ts"
44
- },
45
- "./types": {
46
- "source": "./src/types/index.ts",
47
- "browser": "./dist/lib/browser/types/index.mjs",
48
- "node": "./dist/lib/node-esm/types/index.mjs",
49
- "types": "./dist/types/src/types/index.d.ts"
87
+ "./translations": {
88
+ "source": "./src/translations.ts",
89
+ "types": "./dist/types/src/translations.d.ts",
90
+ "default": "./dist/lib/neutral/translations.mjs"
50
91
  }
51
92
  },
52
93
  "types": "dist/types/src/index.d.ts",
@@ -57,7 +98,7 @@
57
98
  "dependencies": {
58
99
  "@codemirror/language": "^6.11.3",
59
100
  "@codemirror/state": "^6.5.2",
60
- "@codemirror/view": "^6.38.4",
101
+ "@codemirror/view": "^6.38.5",
61
102
  "@effect-atom/atom": "^0.5.1",
62
103
  "@effect-atom/atom-react": "^0.5.0",
63
104
  "@effect/ai": "0.33.2",
@@ -69,50 +110,51 @@
69
110
  "md5-hex": "5.0.0",
70
111
  "react-resize-detector": "^11.0.1",
71
112
  "wavefile": "^11.0.0",
72
- "@dxos/app-framework": "0.8.4-main.422d1c7879",
73
- "@dxos/assistant": "0.8.4-main.422d1c7879",
74
- "@dxos/async": "0.8.4-main.422d1c7879",
75
- "@dxos/app-toolkit": "0.8.4-main.422d1c7879",
76
- "@dxos/blueprints": "0.8.4-main.422d1c7879",
77
- "@dxos/codec-protobuf": "0.8.4-main.422d1c7879",
78
- "@dxos/context": "0.8.4-main.422d1c7879",
79
- "@dxos/debug": "0.8.4-main.422d1c7879",
80
- "@dxos/display-name": "0.8.4-main.422d1c7879",
81
- "@dxos/echo-react": "0.8.4-main.422d1c7879",
82
- "@dxos/devtools": "0.8.4-main.422d1c7879",
83
- "@dxos/echo-db": "0.8.4-main.422d1c7879",
84
- "@dxos/effect": "0.8.4-main.422d1c7879",
85
- "@dxos/functions": "0.8.4-main.422d1c7879",
86
- "@dxos/invariant": "0.8.4-main.422d1c7879",
87
- "@dxos/log": "0.8.4-main.422d1c7879",
88
- "@dxos/operation": "0.8.4-main.422d1c7879",
89
- "@dxos/keys": "0.8.4-main.422d1c7879",
90
- "@dxos/plugin-client": "0.8.4-main.422d1c7879",
91
- "@dxos/plugin-attention": "0.8.4-main.422d1c7879",
92
- "@dxos/plugin-deck": "0.8.4-main.422d1c7879",
93
- "@dxos/echo": "0.8.4-main.422d1c7879",
94
- "@dxos/plugin-graph": "0.8.4-main.422d1c7879",
95
- "@dxos/plugin-markdown": "0.8.4-main.422d1c7879",
96
- "@dxos/plugin-observability": "0.8.4-main.422d1c7879",
97
- "@dxos/protocols": "0.8.4-main.422d1c7879",
98
- "@dxos/react-client": "0.8.4-main.422d1c7879",
99
- "@dxos/plugin-settings": "0.8.4-main.422d1c7879",
100
- "@dxos/react-ui-attention": "0.8.4-main.422d1c7879",
101
- "@dxos/plugin-space": "0.8.4-main.422d1c7879",
102
- "@dxos/react-ui-dnd": "0.8.4-main.422d1c7879",
103
- "@dxos/react-ui-menu": "0.8.4-main.422d1c7879",
104
- "@dxos/react-ui-editor": "0.8.4-main.422d1c7879",
105
- "@dxos/react-ui-form": "0.8.4-main.422d1c7879",
106
- "@dxos/react-ui-mosaic": "0.8.4-main.422d1c7879",
107
- "@dxos/react-ui-sfx": "0.8.4-main.422d1c7879",
108
- "@dxos/react-ui-stack": "0.8.4-main.422d1c7879",
109
- "@dxos/react-ui-syntax-highlighter": "0.8.4-main.422d1c7879",
110
- "@dxos/react-ui-thread": "0.8.4-main.422d1c7879",
111
- "@dxos/react-ui-tabs": "0.8.4-main.422d1c7879",
112
- "@dxos/schema": "0.8.4-main.422d1c7879",
113
- "@dxos/types": "0.8.4-main.422d1c7879",
114
- "@dxos/util": "0.8.4-main.422d1c7879",
115
- "@dxos/ui-editor": "0.8.4-main.422d1c7879"
113
+ "@dxos/app-framework": "0.8.4-main.4f23b4e393",
114
+ "@dxos/app-toolkit": "0.8.4-main.4f23b4e393",
115
+ "@dxos/assistant": "0.8.4-main.4f23b4e393",
116
+ "@dxos/client-protocol": "0.8.4-main.4f23b4e393",
117
+ "@dxos/async": "0.8.4-main.4f23b4e393",
118
+ "@dxos/context": "0.8.4-main.4f23b4e393",
119
+ "@dxos/compute": "0.8.4-main.4f23b4e393",
120
+ "@dxos/debug": "0.8.4-main.4f23b4e393",
121
+ "@dxos/devtools": "0.8.4-main.4f23b4e393",
122
+ "@dxos/display-name": "0.8.4-main.4f23b4e393",
123
+ "@dxos/echo": "0.8.4-main.4f23b4e393",
124
+ "@dxos/echo-db": "0.8.4-main.4f23b4e393",
125
+ "@dxos/echo-react": "0.8.4-main.4f23b4e393",
126
+ "@dxos/invariant": "0.8.4-main.4f23b4e393",
127
+ "@dxos/keys": "0.8.4-main.4f23b4e393",
128
+ "@dxos/effect": "0.8.4-main.4f23b4e393",
129
+ "@dxos/operation": "0.8.4-main.4f23b4e393",
130
+ "@dxos/log": "0.8.4-main.4f23b4e393",
131
+ "@dxos/plugin-attention": "0.8.4-main.4f23b4e393",
132
+ "@dxos/plugin-deck": "0.8.4-main.4f23b4e393",
133
+ "@dxos/codec-protobuf": "0.8.4-main.4f23b4e393",
134
+ "@dxos/plugin-client": "0.8.4-main.4f23b4e393",
135
+ "@dxos/plugin-graph": "0.8.4-main.4f23b4e393",
136
+ "@dxos/plugin-markdown": "0.8.4-main.4f23b4e393",
137
+ "@dxos/plugin-observability": "0.8.4-main.4f23b4e393",
138
+ "@dxos/plugin-space": "0.8.4-main.4f23b4e393",
139
+ "@dxos/protocols": "0.8.4-main.4f23b4e393",
140
+ "@dxos/react-client": "0.8.4-main.4f23b4e393",
141
+ "@dxos/react-ui-dnd": "0.8.4-main.4f23b4e393",
142
+ "@dxos/react-ui-attention": "0.8.4-main.4f23b4e393",
143
+ "@dxos/plugin-settings": "0.8.4-main.4f23b4e393",
144
+ "@dxos/react-ui-form": "0.8.4-main.4f23b4e393",
145
+ "@dxos/react-ui-editor": "0.8.4-main.4f23b4e393",
146
+ "@dxos/react-ui-menu": "0.8.4-main.4f23b4e393",
147
+ "@dxos/react-ui-sfx": "0.8.4-main.4f23b4e393",
148
+ "@dxos/react-ui-mosaic": "0.8.4-main.4f23b4e393",
149
+ "@dxos/random": "0.8.4-main.4f23b4e393",
150
+ "@dxos/react-ui-stack": "0.8.4-main.4f23b4e393",
151
+ "@dxos/react-ui-syntax-highlighter": "0.8.4-main.4f23b4e393",
152
+ "@dxos/react-ui-tabs": "0.8.4-main.4f23b4e393",
153
+ "@dxos/react-ui-thread": "0.8.4-main.4f23b4e393",
154
+ "@dxos/schema": "0.8.4-main.4f23b4e393",
155
+ "@dxos/types": "0.8.4-main.4f23b4e393",
156
+ "@dxos/ui-editor": "0.8.4-main.4f23b4e393",
157
+ "@dxos/util": "0.8.4-main.4f23b4e393"
116
158
  },
117
159
  "devDependencies": {
118
160
  "@effect-atom/atom-react": "^0.5.0",
@@ -122,13 +164,12 @@
122
164
  "effect": "3.20.0",
123
165
  "react": "~19.2.3",
124
166
  "react-dom": "~19.2.3",
125
- "vite": "^7.1.11",
126
- "@dxos/plugin-theme": "0.8.4-main.422d1c7879",
127
- "@dxos/react-ui": "0.8.4-main.422d1c7879",
128
- "@dxos/plugin-testing": "0.8.4-main.422d1c7879",
129
- "@dxos/storybook-utils": "0.8.4-main.422d1c7879",
130
- "@dxos/random": "0.8.4-main.422d1c7879",
131
- "@dxos/ui-theme": "0.8.4-main.422d1c7879"
167
+ "vite": "^8.0.10",
168
+ "@dxos/plugin-testing": "0.8.4-main.4f23b4e393",
169
+ "@dxos/plugin-theme": "0.8.4-main.4f23b4e393",
170
+ "@dxos/storybook-utils": "0.8.4-main.4f23b4e393",
171
+ "@dxos/ui-theme": "0.8.4-main.4f23b4e393",
172
+ "@dxos/react-ui": "0.8.4-main.4f23b4e393"
132
173
  },
133
174
  "peerDependencies": {
134
175
  "@effect-atom/atom-react": "^0.5.0",
@@ -136,10 +177,7 @@
136
177
  "effect": "3.20.0",
137
178
  "react": "~19.2.3",
138
179
  "react-dom": "~19.2.3",
139
- "@dxos/react-ui": "0.8.4-main.422d1c7879",
140
- "@dxos/ui-theme": "0.8.4-main.422d1c7879"
141
- },
142
- "publishConfig": {
143
- "access": "public"
180
+ "@dxos/react-ui": "0.8.4-main.4f23b4e393",
181
+ "@dxos/ui-theme": "0.8.4-main.4f23b4e393"
144
182
  }
145
183
  }
@@ -0,0 +1,39 @@
1
+ //
2
+ // Copyright 2023 DXOS.org
3
+ //
4
+
5
+ import * as Effect from 'effect/Effect';
6
+
7
+ import { Capability, Plugin } from '@dxos/app-framework';
8
+ import { AppPlugin } from '@dxos/app-toolkit';
9
+ import { Operation } from '@dxos/compute';
10
+ import { SpaceCapabilities, SpaceEvents } from '@dxos/plugin-space';
11
+ import { AnchoredTo, Channel, Message, Thread } from '@dxos/types';
12
+
13
+ import { AppGraphBuilder, BlueprintDefinition, CreateObject, OperationHandler, UndoMappings } from '#capabilities';
14
+ import { meta } from '#meta';
15
+ import { ThreadOperation } from '#types';
16
+
17
+ export const ThreadPlugin = Plugin.define(meta).pipe(
18
+ AppPlugin.addAppGraphModule({ activate: AppGraphBuilder }),
19
+ AppPlugin.addBlueprintDefinitionModule({ activate: BlueprintDefinition }),
20
+ AppPlugin.addCreateObjectModule({ activate: CreateObject }),
21
+ AppPlugin.addOperationHandlerModule({ activate: OperationHandler }),
22
+ AppPlugin.addUndoMappingsModule({ activate: UndoMappings }),
23
+ AppPlugin.addSchemaModule({
24
+ schema: [AnchoredTo.AnchoredTo, Channel.Channel, Message.Message, Thread.Thread],
25
+ }),
26
+ Plugin.addModule({
27
+ id: 'on-space-created',
28
+ activatesOn: SpaceEvents.SpaceCreated,
29
+ activate: () =>
30
+ Effect.succeed(
31
+ Capability.contributes(SpaceCapabilities.OnCreateSpace, (params) =>
32
+ Operation.invoke(ThreadOperation.OnCreateSpace, params),
33
+ ),
34
+ ),
35
+ }),
36
+ Plugin.make,
37
+ );
38
+
39
+ export default ThreadPlugin;
@@ -0,0 +1,37 @@
1
+ //
2
+ // Copyright 2026 DXOS.org
3
+ //
4
+
5
+ import { describe, test } from 'vitest';
6
+
7
+ import { AppActivationEvents } from '@dxos/app-toolkit';
8
+ import { ClientPlugin } from '@dxos/plugin-client/plugin';
9
+ import { createComposerTestApp } from '@dxos/plugin-testing/harness';
10
+
11
+ import { ThreadPlugin } from '#plugin';
12
+
13
+ import { meta } from './meta';
14
+
15
+ const moduleId = (name: string) => `${meta.id}.module.${name}`;
16
+
17
+ describe('ThreadPlugin', () => {
18
+ test('modules activate on the expected events', async ({ expect }) => {
19
+ await using harness = await createComposerTestApp({
20
+ plugins: [ClientPlugin({}), ThreadPlugin()],
21
+ });
22
+
23
+ // After autoStart: AppGraphBuilder, CreateObject, schema, OperationHandler, UndoMappings all auto-cascade.
24
+ expect(harness.manager.getActive()).toEqual(
25
+ expect.arrayContaining([moduleId('AppGraphBuilder'), moduleId('CreateObject'), moduleId('schema')]),
26
+ );
27
+
28
+ // SetupArtifactDefinition is fired by AssistantPlugin, which can't be included here due to a workspace cycle.
29
+ await harness.fire(AppActivationEvents.SetupArtifactDefinition);
30
+ expect(harness.manager.getActive()).toContain(moduleId('BlueprintDefinition'));
31
+
32
+ // Operation handlers auto-cascade from OperationPlugin.
33
+ expect(harness.manager.getActive()).toEqual(
34
+ expect.arrayContaining([moduleId('OperationHandler'), moduleId('UndoMappings')]),
35
+ );
36
+ });
37
+ });
@@ -3,23 +3,21 @@
3
3
  //
4
4
 
5
5
  import * as Effect from 'effect/Effect';
6
- import * as Option from 'effect/Option';
7
6
 
8
7
  import { Capability, Plugin } from '@dxos/app-framework';
9
8
  import { AppActivationEvents, AppPlugin } from '@dxos/app-toolkit';
10
- import { Annotation, Ref, Type } from '@dxos/echo';
11
- import { Operation } from '@dxos/operation';
12
- import { ClientEvents } from '@dxos/plugin-client/types';
9
+ import { Operation } from '@dxos/compute';
10
+ import { ClientEvents } from '@dxos/plugin-client';
13
11
  import { MarkdownEvents } from '@dxos/plugin-markdown';
14
- import { SpaceOperation } from '@dxos/plugin-space/operations';
15
- import { SpaceCapabilities, SpaceEvents, type CreateObject } from '@dxos/plugin-space/types';
16
- import { translations as threadTranslations } from '@dxos/react-ui-thread';
17
- import { AnchoredTo, Message, Thread } from '@dxos/types';
12
+ import { SpaceCapabilities, SpaceEvents } from '@dxos/plugin-space';
13
+ import { translations as threadTranslations } from '@dxos/react-ui-thread/translations';
14
+ import { AnchoredTo, Channel, Message, Thread } from '@dxos/types';
18
15
 
19
16
  import {
20
17
  AppGraphBuilder,
21
18
  BlueprintDefinition,
22
19
  CallManager,
20
+ CreateObject,
23
21
  Markdown,
24
22
  OperationHandler,
25
23
  UndoMappings,
@@ -27,11 +25,9 @@ import {
27
25
  ReactSurface,
28
26
  ThreadState,
29
27
  } from '#capabilities';
30
- import { THREAD_ITEM, meta } from '#meta';
31
- import { ThreadOperation } from '#operations';
32
- import { Channel } from '#types';
33
-
34
- import { translations } from './translations';
28
+ import { meta } from '#meta';
29
+ import { translations } from '#translations';
30
+ import { ThreadOperation } from '#types';
35
31
 
36
32
  // TODO(Zan): Every instance of `cursor` should be replaced with `anchor`.
37
33
  // NOTE(burdon): Review/discuss CursorConverter semantics.
@@ -42,51 +38,9 @@ import { translations } from './translations';
42
38
  export const ThreadPlugin = Plugin.define(meta).pipe(
43
39
  AppPlugin.addAppGraphModule({ activate: AppGraphBuilder }),
44
40
  AppPlugin.addBlueprintDefinitionModule({ activate: BlueprintDefinition }),
45
- AppPlugin.addMetadataModule({
46
- metadata: [
47
- {
48
- id: Type.getTypename(Channel.Channel),
49
- metadata: {
50
- icon: Annotation.IconAnnotation.get(Channel.Channel).pipe(Option.getOrThrow).icon,
51
- iconHue: Annotation.IconAnnotation.get(Channel.Channel).pipe(Option.getOrThrow).hue ?? 'white',
52
- createObject: ((props, options) =>
53
- Effect.gen(function* () {
54
- const object = Channel.make(props);
55
- return yield* Operation.invoke(SpaceOperation.AddObject, {
56
- object,
57
- target: options.target,
58
- hidden: true,
59
- targetNodeId: options.targetNodeId,
60
- });
61
- })) satisfies CreateObject,
62
- },
63
- },
64
- {
65
- id: Type.getTypename(Thread.Thread),
66
- metadata: {
67
- // TODO(wittjosiah): Move out of metadata.
68
- loadReferences: async (thread: Thread.Thread) => await Ref.Array.loadAll(thread.messages ?? []),
69
- },
70
- },
71
- {
72
- id: THREAD_ITEM,
73
- metadata: {
74
- parse: (item: Thread.Thread, type: string) => {
75
- switch (type) {
76
- case 'node':
77
- return { id: item.id, label: item.name, data: item };
78
- case 'object':
79
- return item;
80
- case 'view-object':
81
- return { id: `${item.id}-view`, object: item };
82
- }
83
- },
84
- },
85
- },
86
- ],
87
- }),
41
+ AppPlugin.addCreateObjectModule({ activate: CreateObject }),
88
42
  AppPlugin.addOperationHandlerModule({ activate: OperationHandler }),
89
- AppPlugin.addOperationHandlerModule({ id: 'undo-mappings', activate: UndoMappings }),
43
+ AppPlugin.addUndoMappingsModule({ activate: UndoMappings }),
90
44
  AppPlugin.addReactRootModule({ activate: ReactRoot }),
91
45
  AppPlugin.addSchemaModule({
92
46
  schema: [AnchoredTo.AnchoredTo, Channel.Channel, Message.Message, Thread.Thread],
@@ -129,3 +83,5 @@ export const ThreadPlugin = Plugin.define(meta).pipe(
129
83
  }),
130
84
  Plugin.make,
131
85
  );
86
+
87
+ export default ThreadPlugin;
@@ -2,11 +2,10 @@
2
2
  // Copyright 2025 DXOS.org
3
3
  //
4
4
 
5
- import { type AppCapabilities } from '@dxos/app-toolkit';
6
- import { Blueprint, Template } from '@dxos/blueprints';
5
+ import { Blueprint, Template } from '@dxos/compute';
7
6
  import { trim } from '@dxos/util';
8
7
 
9
- import { ThreadOperation } from '#operations';
8
+ import { ThreadOperation } from '#types';
10
9
 
11
10
  const BLUEPRINT_KEY = 'org.dxos.blueprint.thread';
12
11
 
@@ -29,7 +28,7 @@ const make = () =>
29
28
  }),
30
29
  });
31
30
 
32
- const blueprint: AppCapabilities.BlueprintDefinition = {
31
+ const blueprint: Blueprint.Definition = {
33
32
  key: BLUEPRINT_KEY,
34
33
  make,
35
34
  };
@@ -547,7 +547,9 @@ const waitForTransceiverToSendData = async (ctx: Context, transceiver: RTCRtpTra
547
547
  ctx.onDispose(() => waitForData.throw(new Error('Transceiver was closed')));
548
548
 
549
549
  const checkStats = async () => {
550
- if (ctx.disposed) return;
550
+ if (ctx.disposed) {
551
+ return;
552
+ }
551
553
 
552
554
  try {
553
555
  const stats = await transceiver.sender.getStats();
@@ -74,7 +74,9 @@ export const createInaudibleAudioStreamTrack = async ({ ctx }: { ctx: Context })
74
74
 
75
75
  let oscillatorStarted = false;
76
76
  const ensureOscillatorStarted = () => {
77
- if (oscillatorStarted) return;
77
+ if (oscillatorStarted) {
78
+ return;
79
+ }
78
80
  oscillator.start();
79
81
  oscillatorStarted = true;
80
82
  };
@@ -8,16 +8,17 @@ import * as Option from 'effect/Option';
8
8
 
9
9
  import { Capability } from '@dxos/app-framework';
10
10
  import { AppCapabilities, AppNode } from '@dxos/app-toolkit';
11
+ import { Operation } from '@dxos/compute';
11
12
  import { Obj } from '@dxos/echo';
12
- import { Operation } from '@dxos/operation';
13
- import { AttentionCapabilities } from '@dxos/plugin-attention/types';
13
+ import { AttentionCapabilities } from '@dxos/plugin-attention';
14
14
  import { GraphBuilder, NodeMatcher } from '@dxos/plugin-graph';
15
15
  import { linkedSegment } from '@dxos/react-ui-attention';
16
16
  import { type SelectionManager, type SelectionMode, defaultSelection } from '@dxos/react-ui-attention';
17
+ import { Channel } from '@dxos/types';
17
18
 
18
19
  import { meta } from '#meta';
19
- import { ThreadOperation } from '#operations';
20
- import { Channel, ThreadCapabilities, type ThreadState } from '#types';
20
+ import { ThreadOperation } from '#types';
21
+ import { ThreadCapabilities, type ThreadState } from '#types';
21
22
 
22
23
  import { getAnchor } from '../util';
23
24
 
@@ -61,8 +62,8 @@ export default Capability.makeModule(
61
62
  Effect.fnUntraced(function* () {
62
63
  const capabilities = yield* Capability.Service;
63
64
 
64
- const resolve = (typename: string) =>
65
- capabilities.getAll(AppCapabilities.Metadata).find(({ id }: { id: string }) => id === typename)?.metadata ?? {};
65
+ const getCommentConfig = (typename: string) =>
66
+ capabilities.getAll(AppCapabilities.CommentConfig).find(({ id }) => id === typename);
66
67
 
67
68
  const extensions = yield* Effect.all([
68
69
  GraphBuilder.createExtension({
@@ -121,8 +122,8 @@ export default Capability.makeModule(
121
122
  if (!Obj.isObject(node.data) || Option.isNone(whenCommentableObject(node))) {
122
123
  return Option.none();
123
124
  }
124
- const metadata = resolve(Obj.getTypename(node.data)!);
125
- return typeof metadata.comments === 'string' ? Option.some(node) : Option.none();
125
+ const commentConfig = getCommentConfig(Obj.getTypename(node.data)!);
126
+ return commentConfig ? Option.some(node) : Option.none();
126
127
  },
127
128
  connector: () =>
128
129
  Effect.succeed([
@@ -141,23 +142,23 @@ export default Capability.makeModule(
141
142
  if (!Obj.isObject(node.data) || Option.isNone(whenCommentableObject(node))) {
142
143
  return Option.none();
143
144
  }
144
- const metadata = resolve(Obj.getTypename(node.data)!);
145
- return typeof metadata.comments === 'string' ? Option.some(node) : Option.none();
145
+ const commentConfig = getCommentConfig(Obj.getTypename(node.data)!);
146
+ return commentConfig ? Option.some(node) : Option.none();
146
147
  },
147
148
  actions: (matched, get) => {
148
149
  const object = matched.data;
149
- const objectDxn = Obj.getDXN(object).toString();
150
+ const objectDXN = Obj.getDXN(object).toString();
150
151
  const stateAtom = capabilities.atom(ThreadCapabilities.State);
151
152
  const selectionManager = capabilities.get(AttentionCapabilities.Selection);
152
- const metadata = resolve(Obj.getTypename(object)!);
153
+ const commentConfig = getCommentConfig(Obj.getTypename(object)!)!;
153
154
 
154
155
  const disabled = get(
155
156
  commentDisabledFamily({
156
157
  stateAtom,
157
158
  selectionManager,
158
- objectId: objectDxn,
159
- commentsType: metadata.comments as string,
160
- selectionMode: metadata.selectionMode,
159
+ objectId: objectDXN,
160
+ commentsType: commentConfig.comments,
161
+ selectionMode: commentConfig.selectionMode as SelectionMode | undefined,
161
162
  }),
162
163
  );
163
164
 
@@ -165,10 +166,11 @@ export default Capability.makeModule(
165
166
  {
166
167
  id: 'comment',
167
168
  data: Effect.fnUntraced(function* () {
168
- const metadata = resolve(Obj.getTypename(object)!);
169
- const selection = selectionManager.getSelection(objectDxn);
170
- const anchor = metadata.comments === 'anchored' ? getAnchor(selection) : Date.now().toString();
171
- const name = metadata.getAnchorLabel?.(object, anchor);
169
+ const config = getCommentConfig(Obj.getTypename(object)!)!;
170
+ const selection = selectionManager.getSelection(objectDXN);
171
+ const anchor =
172
+ (config.comments === 'anchored' ? getAnchor(selection) : undefined) ?? Date.now().toString();
173
+ const name = config.getAnchorLabel?.(object, anchor);
172
174
  yield* Operation.invoke(ThreadOperation.Create, {
173
175
  anchor,
174
176
  name,
@@ -6,6 +6,8 @@ import * as Effect from 'effect/Effect';
6
6
 
7
7
  import { Capability } from '@dxos/app-framework';
8
8
  import { AppCapabilities } from '@dxos/app-toolkit';
9
+ // eslint-disable-next-line unused-imports/no-unused-imports
10
+ import type { Blueprint } from '@dxos/compute';
9
11
 
10
12
  import { ThreadBlueprint } from '#blueprints';
11
13
 
@@ -5,7 +5,7 @@
5
5
  import * as Effect from 'effect/Effect';
6
6
 
7
7
  import { Capabilities, Capability } from '@dxos/app-framework';
8
- import { ClientCapabilities } from '@dxos/plugin-client/types';
8
+ import { ClientCapabilities } from '@dxos/plugin-client';
9
9
 
10
10
  import { ThreadCapabilities } from '#types';
11
11
 
@@ -0,0 +1,29 @@
1
+ //
2
+ // Copyright 2023 DXOS.org
3
+ //
4
+
5
+ import * as Effect from 'effect/Effect';
6
+
7
+ import { Capability } from '@dxos/app-framework';
8
+ import { Operation } from '@dxos/compute';
9
+ import { SpaceOperation } from '@dxos/plugin-space';
10
+ import { SpaceCapabilities } from '@dxos/plugin-space';
11
+ import { Channel } from '@dxos/types';
12
+
13
+ export default Capability.makeModule(
14
+ Effect.fnUntraced(function* () {
15
+ return Capability.contributes(SpaceCapabilities.CreateObjectEntry, {
16
+ id: Channel.Channel.typename,
17
+ createObject: (props, options) =>
18
+ Effect.gen(function* () {
19
+ const object = Channel.make(props);
20
+ return yield* Operation.invoke(SpaceOperation.AddObject, {
21
+ object,
22
+ target: options.target,
23
+ hidden: true,
24
+ targetNodeId: options.targetNodeId,
25
+ });
26
+ }),
27
+ });
28
+ }),
29
+ );
@@ -3,10 +3,12 @@
3
3
  //
4
4
 
5
5
  import { Capability } from '@dxos/app-framework';
6
- import { OperationHandlerSet } from '@dxos/operation';
6
+ // eslint-disable-next-line unused-imports/no-unused-imports
7
+ import type { Blueprint, OperationHandlerSet } from '@dxos/compute';
7
8
 
8
9
  export const AppGraphBuilder = Capability.lazy('AppGraphBuilder', () => import('./app-graph-builder'));
9
10
  export const BlueprintDefinition = Capability.lazy('BlueprintDefinition', () => import('./blueprint-definition'));
11
+ export const CreateObject = Capability.lazy('CreateObject', () => import('./create-object'));
10
12
  export const CallManager = Capability.lazy('CallManager', () => import('./call-manager'));
11
13
  export const Markdown = Capability.lazy('Markdown', () => import('./markdown'));
12
14
  export const OperationHandler = Capability.lazy<OperationHandlerSet.OperationHandlerSet>(