@dxos/plugin-thread 0.8.4-main.ae835ea → 0.8.4-main.bc2380dfbc

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 (571) hide show
  1. package/LICENSE +102 -5
  2. package/README.md +1 -1
  3. package/dist/lib/neutral/ChannelArticle-ACZD7YFT.mjs +28 -0
  4. package/dist/lib/neutral/ChannelArticle-ACZD7YFT.mjs.map +7 -0
  5. package/dist/lib/neutral/ChannelChat-6YTD5HWL.mjs +10 -0
  6. package/dist/lib/neutral/ThreadCompanion-NQWPS2H6.mjs +208 -0
  7. package/dist/lib/neutral/ThreadCompanion-NQWPS2H6.mjs.map +7 -0
  8. package/dist/lib/neutral/ThreadContainer-XYEPEOSD.mjs +61 -0
  9. package/dist/lib/neutral/ThreadContainer-XYEPEOSD.mjs.map +7 -0
  10. package/dist/lib/neutral/ThreadPlugin.mjs +80 -0
  11. package/dist/lib/neutral/ThreadPlugin.mjs.map +7 -0
  12. package/dist/lib/neutral/ThreadPlugin.node.mjs +40 -0
  13. package/dist/lib/neutral/ThreadPlugin.node.mjs.map +7 -0
  14. package/dist/lib/neutral/ThreadPlugin.workerd.mjs +24 -0
  15. package/dist/lib/neutral/ThreadPlugin.workerd.mjs.map +7 -0
  16. package/dist/lib/neutral/ThreadSettings-5MKTDK3A.mjs +15 -0
  17. package/dist/lib/neutral/ThreadSettings-5MKTDK3A.mjs.map +7 -0
  18. package/dist/lib/neutral/add-message-FBIROBEZ.mjs +87 -0
  19. package/dist/lib/neutral/add-message-FBIROBEZ.mjs.map +7 -0
  20. package/dist/lib/neutral/app-graph-builder-7Q6MA6RT.mjs +120 -0
  21. package/dist/lib/neutral/app-graph-builder-7Q6MA6RT.mjs.map +7 -0
  22. package/dist/lib/neutral/append-channel-message-FTFAD3PK.mjs +40 -0
  23. package/dist/lib/neutral/append-channel-message-FTFAD3PK.mjs.map +7 -0
  24. package/dist/lib/neutral/blueprint-definition-S3EBOH4R.mjs +15 -0
  25. package/dist/lib/neutral/blueprint-definition-S3EBOH4R.mjs.map +7 -0
  26. package/dist/lib/neutral/blueprints/index.mjs +8 -0
  27. package/dist/lib/neutral/capabilities/index.mjs +25 -0
  28. package/dist/lib/neutral/capabilities/index.mjs.map +7 -0
  29. package/dist/lib/neutral/chunk-5T5LPLBN.mjs +36 -0
  30. package/dist/lib/neutral/chunk-5T5LPLBN.mjs.map +7 -0
  31. package/dist/lib/{browser/chunk-K2DUJRFJ.mjs → neutral/chunk-7GHUS3IX.mjs} +4 -11
  32. package/dist/lib/neutral/chunk-7GHUS3IX.mjs.map +7 -0
  33. package/dist/lib/neutral/chunk-D5LGFCUY.mjs +55 -0
  34. package/dist/lib/neutral/chunk-D5LGFCUY.mjs.map +7 -0
  35. package/dist/lib/neutral/chunk-J5LGTIGS.mjs +10 -0
  36. package/dist/lib/{browser/chunk-CP7E2HRE.mjs → neutral/chunk-JLY4NVTA.mjs} +12 -5
  37. package/dist/lib/neutral/chunk-JLY4NVTA.mjs.map +7 -0
  38. package/dist/lib/neutral/chunk-KRXHIW4P.mjs +164 -0
  39. package/dist/lib/neutral/chunk-KRXHIW4P.mjs.map +7 -0
  40. package/dist/lib/neutral/chunk-PE7IH7EL.mjs +271 -0
  41. package/dist/lib/neutral/chunk-PE7IH7EL.mjs.map +7 -0
  42. package/dist/lib/neutral/chunk-QFDT33VT.mjs +69 -0
  43. package/dist/lib/neutral/chunk-QFDT33VT.mjs.map +7 -0
  44. package/dist/lib/neutral/chunk-QMLVLKE3.mjs +8 -0
  45. package/dist/lib/neutral/chunk-QMLVLKE3.mjs.map +7 -0
  46. package/dist/lib/neutral/components/index.mjs +539 -0
  47. package/dist/lib/neutral/components/index.mjs.map +7 -0
  48. package/dist/lib/neutral/containers/index.mjs +15 -0
  49. package/dist/lib/neutral/containers/index.mjs.map +7 -0
  50. package/dist/lib/neutral/create-OAQJ6LXN.mjs +52 -0
  51. package/dist/lib/neutral/create-OAQJ6LXN.mjs.map +7 -0
  52. package/dist/lib/neutral/create-channel-3E4FJ662.mjs +19 -0
  53. package/dist/lib/neutral/create-channel-3E4FJ662.mjs.map +7 -0
  54. package/dist/lib/neutral/create-object-HIEWSBZB.mjs +27 -0
  55. package/dist/lib/neutral/create-object-HIEWSBZB.mjs.map +7 -0
  56. package/dist/lib/neutral/create-proposals-GRYZXRMV.mjs +56 -0
  57. package/dist/lib/neutral/create-proposals-GRYZXRMV.mjs.map +7 -0
  58. package/dist/lib/neutral/delete-HCCG5RVR.mjs +57 -0
  59. package/dist/lib/neutral/delete-HCCG5RVR.mjs.map +7 -0
  60. package/dist/lib/neutral/delete-message-DHFRACB4.mjs +54 -0
  61. package/dist/lib/neutral/delete-message-DHFRACB4.mjs.map +7 -0
  62. package/dist/lib/neutral/hooks/index.mjs +10 -0
  63. package/dist/lib/neutral/index.mjs +28 -0
  64. package/dist/lib/neutral/markdown-BUORNCPG.mjs +83 -0
  65. package/dist/lib/neutral/markdown-BUORNCPG.mjs.map +7 -0
  66. package/dist/lib/neutral/meta.json +1 -0
  67. package/dist/lib/neutral/meta.mjs +10 -0
  68. package/dist/lib/neutral/on-create-space-OEBRKOAM.mjs +23 -0
  69. package/dist/lib/neutral/on-create-space-OEBRKOAM.mjs.map +7 -0
  70. package/dist/lib/neutral/operation-handler-RU6K2S4L.mjs +13 -0
  71. package/dist/lib/neutral/operation-handler-RU6K2S4L.mjs.map +7 -0
  72. package/dist/lib/neutral/operations/index.mjs +8 -0
  73. package/dist/lib/neutral/operations/index.mjs.map +7 -0
  74. package/dist/lib/neutral/plugin.mjs +16 -0
  75. package/dist/lib/neutral/plugin.mjs.map +7 -0
  76. package/dist/lib/neutral/react-surface-XY23GVZH.mjs +76 -0
  77. package/dist/lib/neutral/react-surface-XY23GVZH.mjs.map +7 -0
  78. package/dist/lib/neutral/restore-P4ZLXLF7.mjs +32 -0
  79. package/dist/lib/neutral/restore-P4ZLXLF7.mjs.map +7 -0
  80. package/dist/lib/neutral/restore-message-AUBOP2DF.mjs +33 -0
  81. package/dist/lib/neutral/restore-message-AUBOP2DF.mjs.map +7 -0
  82. package/dist/lib/neutral/select-LIVAMBCE.mjs +24 -0
  83. package/dist/lib/neutral/select-LIVAMBCE.mjs.map +7 -0
  84. package/dist/lib/neutral/settings-HK4EB6TF.mjs +30 -0
  85. package/dist/lib/neutral/settings-HK4EB6TF.mjs.map +7 -0
  86. package/dist/lib/neutral/state-UU7VEAKV.mjs +22 -0
  87. package/dist/lib/neutral/state-UU7VEAKV.mjs.map +7 -0
  88. package/dist/lib/neutral/testing/index.mjs +58 -0
  89. package/dist/lib/neutral/testing/index.mjs.map +7 -0
  90. package/dist/lib/neutral/toggle-resolved-RQBDQZSV.mjs +36 -0
  91. package/dist/lib/neutral/toggle-resolved-RQBDQZSV.mjs.map +7 -0
  92. package/dist/lib/neutral/translations.mjs +90 -0
  93. package/dist/lib/neutral/translations.mjs.map +7 -0
  94. package/dist/lib/neutral/types/index.mjs +12 -0
  95. package/dist/lib/neutral/types/index.mjs.map +7 -0
  96. package/dist/lib/neutral/undo-mappings-HOKL2L3M.mjs +54 -0
  97. package/dist/lib/neutral/undo-mappings-HOKL2L3M.mjs.map +7 -0
  98. package/dist/types/src/ThreadPlugin.d.ts +3 -1
  99. package/dist/types/src/ThreadPlugin.d.ts.map +1 -1
  100. package/dist/types/src/ThreadPlugin.node.d.ts +4 -0
  101. package/dist/types/src/ThreadPlugin.node.d.ts.map +1 -0
  102. package/dist/types/src/ThreadPlugin.test.d.ts +2 -0
  103. package/dist/types/src/ThreadPlugin.test.d.ts.map +1 -0
  104. package/dist/types/src/ThreadPlugin.workerd.d.ts +4 -0
  105. package/dist/types/src/ThreadPlugin.workerd.d.ts.map +1 -0
  106. package/dist/types/src/blueprints/index.d.ts +2 -0
  107. package/dist/types/src/blueprints/index.d.ts.map +1 -0
  108. package/dist/types/src/blueprints/thread-blueprint.d.ts +4 -0
  109. package/dist/types/src/blueprints/thread-blueprint.d.ts.map +1 -0
  110. package/dist/types/src/capabilities/app-graph-builder.d.ts +4 -2
  111. package/dist/types/src/capabilities/app-graph-builder.d.ts.map +1 -1
  112. package/dist/types/src/capabilities/blueprint-definition.d.ts +6 -0
  113. package/dist/types/src/capabilities/blueprint-definition.d.ts.map +1 -0
  114. package/dist/types/src/capabilities/create-object.d.ts +11 -0
  115. package/dist/types/src/capabilities/create-object.d.ts.map +1 -0
  116. package/dist/types/src/capabilities/index.d.ts +15 -15
  117. package/dist/types/src/capabilities/index.d.ts.map +1 -1
  118. package/dist/types/src/capabilities/markdown.d.ts +3 -2
  119. package/dist/types/src/capabilities/markdown.d.ts.map +1 -1
  120. package/dist/types/src/capabilities/operation-handler.d.ts +6 -0
  121. package/dist/types/src/capabilities/operation-handler.d.ts.map +1 -0
  122. package/dist/types/src/capabilities/react-surface.d.ts +3 -2
  123. package/dist/types/src/capabilities/react-surface.d.ts.map +1 -1
  124. package/dist/types/src/capabilities/settings.d.ts +5 -2
  125. package/dist/types/src/capabilities/settings.d.ts.map +1 -1
  126. package/dist/types/src/capabilities/state.d.ts +5 -5
  127. package/dist/types/src/capabilities/state.d.ts.map +1 -1
  128. package/dist/types/src/capabilities/undo-mappings.d.ts +5 -0
  129. package/dist/types/src/capabilities/undo-mappings.d.ts.map +1 -0
  130. package/dist/types/src/components/Chat/Chat.d.ts +51 -0
  131. package/dist/types/src/components/Chat/Chat.d.ts.map +1 -0
  132. package/dist/types/src/components/Chat/index.d.ts +2 -0
  133. package/dist/types/src/components/Chat/index.d.ts.map +1 -0
  134. package/dist/types/src/components/CommentsPanel/CommentsPanel.d.ts +13 -0
  135. package/dist/types/src/components/CommentsPanel/CommentsPanel.d.ts.map +1 -0
  136. package/dist/types/src/components/CommentsPanel/CommentsPanel.stories.d.ts +160 -0
  137. package/dist/types/src/components/CommentsPanel/CommentsPanel.stories.d.ts.map +1 -0
  138. package/dist/types/src/components/CommentsPanel/CommentsThread.d.ts +14 -0
  139. package/dist/types/src/components/CommentsPanel/CommentsThread.d.ts.map +1 -0
  140. package/dist/types/src/components/CommentsPanel/index.d.ts +3 -0
  141. package/dist/types/src/components/CommentsPanel/index.d.ts.map +1 -0
  142. package/dist/types/src/components/MessagePanel/MessagePanel.d.ts +15 -0
  143. package/dist/types/src/components/MessagePanel/MessagePanel.d.ts.map +1 -0
  144. package/dist/types/src/components/MessagePanel/index.d.ts +2 -0
  145. package/dist/types/src/components/MessagePanel/index.d.ts.map +1 -0
  146. package/dist/types/src/components/ThreadSettings/ThreadSettings.d.ts +6 -0
  147. package/dist/types/src/components/ThreadSettings/ThreadSettings.d.ts.map +1 -0
  148. package/dist/types/src/components/ThreadSettings/ThreadSettings.stories.d.ts +161 -0
  149. package/dist/types/src/components/ThreadSettings/ThreadSettings.stories.d.ts.map +1 -0
  150. package/dist/types/src/components/ThreadSettings/index.d.ts +2 -0
  151. package/dist/types/src/components/ThreadSettings/index.d.ts.map +1 -0
  152. package/dist/types/src/components/index.d.ts +5 -10
  153. package/dist/types/src/components/index.d.ts.map +1 -1
  154. package/dist/types/src/containers/ChannelArticle/ChannelArticle.d.ts +13 -0
  155. package/dist/types/src/containers/ChannelArticle/ChannelArticle.d.ts.map +1 -0
  156. package/dist/types/src/containers/ChannelArticle/ChannelArticle.stories.d.ts +162 -0
  157. package/dist/types/src/containers/ChannelArticle/ChannelArticle.stories.d.ts.map +1 -0
  158. package/dist/types/src/containers/ChannelArticle/index.d.ts +2 -0
  159. package/dist/types/src/containers/ChannelArticle/index.d.ts.map +1 -0
  160. package/dist/types/src/containers/ChannelChat/ChannelChat.d.ts +20 -0
  161. package/dist/types/src/containers/ChannelChat/ChannelChat.d.ts.map +1 -0
  162. package/dist/types/src/containers/ChannelChat/index.d.ts +4 -0
  163. package/dist/types/src/containers/ChannelChat/index.d.ts.map +1 -0
  164. package/dist/types/src/containers/ThreadCompanion/ThreadCompanion.d.ts +8 -0
  165. package/dist/types/src/containers/ThreadCompanion/ThreadCompanion.d.ts.map +1 -0
  166. package/dist/types/src/containers/ThreadCompanion/index.d.ts +2 -0
  167. package/dist/types/src/containers/ThreadCompanion/index.d.ts.map +1 -0
  168. package/dist/types/src/containers/ThreadContainer/ThreadContainer.d.ts +20 -0
  169. package/dist/types/src/containers/ThreadContainer/ThreadContainer.d.ts.map +1 -0
  170. package/dist/types/src/containers/ThreadContainer/ThreadContainer.stories.d.ts +162 -0
  171. package/dist/types/src/containers/ThreadContainer/ThreadContainer.stories.d.ts.map +1 -0
  172. package/dist/types/src/containers/ThreadContainer/index.d.ts +4 -0
  173. package/dist/types/src/containers/ThreadContainer/index.d.ts.map +1 -0
  174. package/dist/types/src/containers/index.d.ts +6 -0
  175. package/dist/types/src/containers/index.d.ts.map +1 -0
  176. package/dist/types/src/{components/command-extension.d.ts → extensions/command.d.ts} +1 -1
  177. package/dist/types/src/extensions/command.d.ts.map +1 -0
  178. package/dist/types/src/extensions/index.d.ts +1 -0
  179. package/dist/types/src/extensions/index.d.ts.map +1 -1
  180. package/dist/types/src/extensions/threads.d.ts +9 -4
  181. package/dist/types/src/extensions/threads.d.ts.map +1 -1
  182. package/dist/types/src/hooks/analytics.d.ts +2 -3
  183. package/dist/types/src/hooks/analytics.d.ts.map +1 -1
  184. package/dist/types/src/hooks/index.d.ts +0 -4
  185. package/dist/types/src/hooks/index.d.ts.map +1 -1
  186. package/dist/types/src/hooks/useStatus.d.ts.map +1 -1
  187. package/dist/types/src/index.d.ts +2 -3
  188. package/dist/types/src/index.d.ts.map +1 -1
  189. package/dist/types/src/meta.d.ts +2 -2
  190. package/dist/types/src/meta.d.ts.map +1 -1
  191. package/dist/types/src/operations/add-message.d.ts +5 -0
  192. package/dist/types/src/operations/add-message.d.ts.map +1 -0
  193. package/dist/types/src/operations/append-channel-message.d.ts +5 -0
  194. package/dist/types/src/operations/append-channel-message.d.ts.map +1 -0
  195. package/dist/types/src/operations/create-channel.d.ts +5 -0
  196. package/dist/types/src/operations/create-channel.d.ts.map +1 -0
  197. package/dist/types/src/operations/create-proposals.d.ts +5 -0
  198. package/dist/types/src/operations/create-proposals.d.ts.map +1 -0
  199. package/dist/types/src/operations/create.d.ts +5 -0
  200. package/dist/types/src/operations/create.d.ts.map +1 -0
  201. package/dist/types/src/operations/delete-message.d.ts +5 -0
  202. package/dist/types/src/operations/delete-message.d.ts.map +1 -0
  203. package/dist/types/src/operations/delete.d.ts +5 -0
  204. package/dist/types/src/operations/delete.d.ts.map +1 -0
  205. package/dist/types/src/operations/index.d.ts +3 -0
  206. package/dist/types/src/operations/index.d.ts.map +1 -0
  207. package/dist/types/src/operations/on-create-space.d.ts +5 -0
  208. package/dist/types/src/operations/on-create-space.d.ts.map +1 -0
  209. package/dist/types/src/operations/restore-message.d.ts +5 -0
  210. package/dist/types/src/operations/restore-message.d.ts.map +1 -0
  211. package/dist/types/src/operations/restore.d.ts +5 -0
  212. package/dist/types/src/operations/restore.d.ts.map +1 -0
  213. package/dist/types/src/operations/select.d.ts +5 -0
  214. package/dist/types/src/operations/select.d.ts.map +1 -0
  215. package/dist/types/src/operations/toggle-resolved.d.ts +5 -0
  216. package/dist/types/src/operations/toggle-resolved.d.ts.map +1 -0
  217. package/dist/types/src/plugin.d.ts +4 -0
  218. package/dist/types/src/plugin.d.ts.map +1 -0
  219. package/dist/types/src/{components/testing.d.ts → testing/data.d.ts} +2 -2
  220. package/dist/types/src/testing/data.d.ts.map +1 -0
  221. package/dist/types/src/testing/index.d.ts +1 -1
  222. package/dist/types/src/testing/index.d.ts.map +1 -1
  223. package/dist/types/src/translations.d.ts +140 -138
  224. package/dist/types/src/translations.d.ts.map +1 -1
  225. package/dist/types/src/types/Settings.d.ts +5 -0
  226. package/dist/types/src/types/Settings.d.ts.map +1 -0
  227. package/dist/types/src/types/ThreadCapabilities.d.ts +13 -0
  228. package/dist/types/src/types/ThreadCapabilities.d.ts.map +1 -0
  229. package/dist/types/src/types/ThreadOperation.d.ts +1995 -0
  230. package/dist/types/src/types/ThreadOperation.d.ts.map +1 -0
  231. package/dist/types/src/types/index.d.ts +3 -2
  232. package/dist/types/src/types/index.d.ts.map +1 -1
  233. package/dist/types/src/types/types.d.ts +2 -442
  234. package/dist/types/src/types/types.d.ts.map +1 -1
  235. package/dist/types/src/util.d.ts +6 -3
  236. package/dist/types/src/util.d.ts.map +1 -1
  237. package/dist/types/tsconfig.tsbuildinfo +1 -1
  238. package/package.json +151 -86
  239. package/src/ThreadPlugin.node.ts +39 -0
  240. package/src/ThreadPlugin.test.ts +37 -0
  241. package/src/ThreadPlugin.tsx +43 -130
  242. package/src/ThreadPlugin.workerd.ts +20 -0
  243. package/src/blueprints/index.ts +5 -0
  244. package/src/blueprints/thread-blueprint.ts +36 -0
  245. package/src/capabilities/app-graph-builder.ts +124 -167
  246. package/src/capabilities/blueprint-definition.ts +19 -0
  247. package/src/capabilities/create-object.ts +29 -0
  248. package/src/capabilities/index.ts +15 -12
  249. package/src/capabilities/markdown.ts +53 -36
  250. package/src/capabilities/operation-handler.ts +16 -0
  251. package/src/capabilities/react-surface.tsx +64 -78
  252. package/src/capabilities/settings.ts +26 -12
  253. package/src/capabilities/state.ts +14 -18
  254. package/src/capabilities/undo-mappings.ts +46 -0
  255. package/src/components/Chat/Chat.tsx +258 -0
  256. package/src/components/Chat/index.ts +5 -0
  257. package/src/components/CommentsPanel/CommentsPanel.stories.tsx +95 -0
  258. package/src/components/{CommentsContainer.tsx → CommentsPanel/CommentsPanel.tsx} +19 -20
  259. package/src/components/{CommentsThreadContainer.tsx → CommentsPanel/CommentsThread.tsx} +44 -47
  260. package/src/components/CommentsPanel/index.ts +6 -0
  261. package/src/components/{MessageContainer.tsx → MessagePanel/MessagePanel.tsx} +83 -47
  262. package/src/components/MessagePanel/index.ts +5 -0
  263. package/src/components/ThreadSettings/ThreadSettings.stories.tsx +32 -0
  264. package/src/components/ThreadSettings/ThreadSettings.tsx +19 -0
  265. package/src/components/ThreadSettings/index.ts +5 -0
  266. package/src/components/index.ts +5 -12
  267. package/src/containers/ChannelArticle/ChannelArticle.stories.tsx +105 -0
  268. package/src/containers/ChannelArticle/ChannelArticle.tsx +42 -0
  269. package/src/containers/ChannelArticle/index.ts +5 -0
  270. package/src/containers/ChannelChat/ChannelChat.tsx +75 -0
  271. package/src/containers/ChannelChat/index.ts +8 -0
  272. package/src/containers/ThreadCompanion/ThreadCompanion.tsx +215 -0
  273. package/src/containers/ThreadCompanion/index.ts +5 -0
  274. package/src/{components/Chat.stories.tsx → containers/ThreadContainer/ThreadContainer.stories.tsx} +27 -26
  275. package/src/containers/ThreadContainer/ThreadContainer.tsx +75 -0
  276. package/src/containers/ThreadContainer/index.ts +8 -0
  277. package/src/containers/index.ts +10 -0
  278. package/src/{components/command-extension.ts → extensions/command.ts} +3 -3
  279. package/src/extensions/index.ts +1 -0
  280. package/src/extensions/threads.ts +84 -39
  281. package/src/hooks/analytics.ts +22 -21
  282. package/src/hooks/index.ts +0 -4
  283. package/src/index.ts +4 -4
  284. package/src/meta.ts +5 -6
  285. package/src/operations/add-message.ts +81 -0
  286. package/src/operations/append-channel-message.ts +37 -0
  287. package/src/operations/create-channel.ts +20 -0
  288. package/src/operations/create-proposals.ts +49 -0
  289. package/src/operations/create.ts +48 -0
  290. package/src/operations/delete-message.ts +53 -0
  291. package/src/operations/delete.ts +63 -0
  292. package/src/operations/index.ts +20 -0
  293. package/src/operations/on-create-space.ts +27 -0
  294. package/src/operations/restore-message.ts +38 -0
  295. package/src/operations/restore.ts +38 -0
  296. package/src/operations/select.ts +24 -0
  297. package/src/operations/toggle-resolved.ts +41 -0
  298. package/src/plugin.ts +11 -0
  299. package/src/{components/testing.ts → testing/data.ts} +10 -12
  300. package/src/testing/index.ts +1 -1
  301. package/src/translations.ts +74 -76
  302. package/src/types/Settings.ts +10 -0
  303. package/src/types/ThreadCapabilities.ts +26 -0
  304. package/src/types/ThreadOperation.ts +178 -0
  305. package/src/types/index.ts +4 -2
  306. package/src/types/types.ts +3 -109
  307. package/src/util.ts +37 -5
  308. package/dist/lib/browser/ChannelContainer-SVV4ZX5T.mjs +0 -16
  309. package/dist/lib/browser/ChatContainer-ALFWQ65B.mjs +0 -15
  310. package/dist/lib/browser/app-graph-builder-ACBXRBOS.mjs +0 -171
  311. package/dist/lib/browser/app-graph-builder-ACBXRBOS.mjs.map +0 -7
  312. package/dist/lib/browser/call-manager-P3MYR2JS.mjs +0 -24
  313. package/dist/lib/browser/call-manager-P3MYR2JS.mjs.map +0 -7
  314. package/dist/lib/browser/chunk-6CUDBEYP.mjs +0 -377
  315. package/dist/lib/browser/chunk-6CUDBEYP.mjs.map +0 -7
  316. package/dist/lib/browser/chunk-BBTXGRIR.mjs +0 -18
  317. package/dist/lib/browser/chunk-BBTXGRIR.mjs.map +0 -7
  318. package/dist/lib/browser/chunk-CP7E2HRE.mjs.map +0 -7
  319. package/dist/lib/browser/chunk-DJOUMWEL.mjs +0 -988
  320. package/dist/lib/browser/chunk-DJOUMWEL.mjs.map +0 -7
  321. package/dist/lib/browser/chunk-HDEQRBOC.mjs +0 -181
  322. package/dist/lib/browser/chunk-HDEQRBOC.mjs.map +0 -7
  323. package/dist/lib/browser/chunk-IQSXEHOW.mjs +0 -618
  324. package/dist/lib/browser/chunk-IQSXEHOW.mjs.map +0 -7
  325. package/dist/lib/browser/chunk-K2DUJRFJ.mjs.map +0 -7
  326. package/dist/lib/browser/chunk-L6F2AG6W.mjs +0 -23
  327. package/dist/lib/browser/chunk-L6F2AG6W.mjs.map +0 -7
  328. package/dist/lib/browser/chunk-US5ZQYC3.mjs +0 -1793
  329. package/dist/lib/browser/chunk-US5ZQYC3.mjs.map +0 -7
  330. package/dist/lib/browser/chunk-UTSLSZED.mjs +0 -178
  331. package/dist/lib/browser/chunk-UTSLSZED.mjs.map +0 -7
  332. package/dist/lib/browser/chunk-XYUJXHYV.mjs +0 -106
  333. package/dist/lib/browser/chunk-XYUJXHYV.mjs.map +0 -7
  334. package/dist/lib/browser/index.mjs +0 -313
  335. package/dist/lib/browser/index.mjs.map +0 -7
  336. package/dist/lib/browser/intent-resolver-5POQTZ24.mjs +0 -419
  337. package/dist/lib/browser/intent-resolver-5POQTZ24.mjs.map +0 -7
  338. package/dist/lib/browser/markdown-L7LDNF56.mjs +0 -169
  339. package/dist/lib/browser/markdown-L7LDNF56.mjs.map +0 -7
  340. package/dist/lib/browser/meta.json +0 -1
  341. package/dist/lib/browser/react-root-RCJLK4EP.mjs +0 -28
  342. package/dist/lib/browser/react-root-RCJLK4EP.mjs.map +0 -7
  343. package/dist/lib/browser/react-surface-IC576W2W.mjs +0 -109
  344. package/dist/lib/browser/react-surface-IC576W2W.mjs.map +0 -7
  345. package/dist/lib/browser/settings-5FYGBOGI.mjs +0 -22
  346. package/dist/lib/browser/settings-5FYGBOGI.mjs.map +0 -7
  347. package/dist/lib/browser/state-36REWXO5.mjs +0 -34
  348. package/dist/lib/browser/state-36REWXO5.mjs.map +0 -7
  349. package/dist/lib/browser/toolkit-PXASLYEQ.mjs +0 -74
  350. package/dist/lib/browser/toolkit-PXASLYEQ.mjs.map +0 -7
  351. package/dist/lib/browser/types/index.mjs +0 -14
  352. package/dist/lib/node-esm/ChannelContainer-63GMQ753.mjs +0 -17
  353. package/dist/lib/node-esm/ChatContainer-MFKPXMIK.mjs +0 -16
  354. package/dist/lib/node-esm/app-graph-builder-JXD7KY3G.mjs +0 -172
  355. package/dist/lib/node-esm/app-graph-builder-JXD7KY3G.mjs.map +0 -7
  356. package/dist/lib/node-esm/call-manager-FCEFP7EJ.mjs +0 -25
  357. package/dist/lib/node-esm/call-manager-FCEFP7EJ.mjs.map +0 -7
  358. package/dist/lib/node-esm/chunk-2MMJF7DW.mjs +0 -182
  359. package/dist/lib/node-esm/chunk-2MMJF7DW.mjs.map +0 -7
  360. package/dist/lib/node-esm/chunk-2V3WSLUZ.mjs +0 -108
  361. package/dist/lib/node-esm/chunk-2V3WSLUZ.mjs.map +0 -7
  362. package/dist/lib/node-esm/chunk-ABUFOZVX.mjs +0 -33
  363. package/dist/lib/node-esm/chunk-ABUFOZVX.mjs.map +0 -7
  364. package/dist/lib/node-esm/chunk-AFDO2SUZ.mjs +0 -25
  365. package/dist/lib/node-esm/chunk-AFDO2SUZ.mjs.map +0 -7
  366. package/dist/lib/node-esm/chunk-KGYDYYKJ.mjs +0 -1794
  367. package/dist/lib/node-esm/chunk-KGYDYYKJ.mjs.map +0 -7
  368. package/dist/lib/node-esm/chunk-NWUUMKVQ.mjs +0 -378
  369. package/dist/lib/node-esm/chunk-NWUUMKVQ.mjs.map +0 -7
  370. package/dist/lib/node-esm/chunk-Q7AKKZNY.mjs +0 -619
  371. package/dist/lib/node-esm/chunk-Q7AKKZNY.mjs.map +0 -7
  372. package/dist/lib/node-esm/chunk-QCQAAU6J.mjs +0 -989
  373. package/dist/lib/node-esm/chunk-QCQAAU6J.mjs.map +0 -7
  374. package/dist/lib/node-esm/chunk-TYLLHI46.mjs +0 -179
  375. package/dist/lib/node-esm/chunk-TYLLHI46.mjs.map +0 -7
  376. package/dist/lib/node-esm/chunk-XI45H4IV.mjs +0 -28
  377. package/dist/lib/node-esm/chunk-XI45H4IV.mjs.map +0 -7
  378. package/dist/lib/node-esm/chunk-ZQAGII7M.mjs +0 -19
  379. package/dist/lib/node-esm/chunk-ZQAGII7M.mjs.map +0 -7
  380. package/dist/lib/node-esm/index.mjs +0 -314
  381. package/dist/lib/node-esm/index.mjs.map +0 -7
  382. package/dist/lib/node-esm/intent-resolver-63NV3XD2.mjs +0 -420
  383. package/dist/lib/node-esm/intent-resolver-63NV3XD2.mjs.map +0 -7
  384. package/dist/lib/node-esm/markdown-ZQW7MI5U.mjs +0 -170
  385. package/dist/lib/node-esm/markdown-ZQW7MI5U.mjs.map +0 -7
  386. package/dist/lib/node-esm/meta.json +0 -1
  387. package/dist/lib/node-esm/react-root-4IDB2SN2.mjs +0 -29
  388. package/dist/lib/node-esm/react-root-4IDB2SN2.mjs.map +0 -7
  389. package/dist/lib/node-esm/react-surface-O4LGTAZ3.mjs +0 -110
  390. package/dist/lib/node-esm/react-surface-O4LGTAZ3.mjs.map +0 -7
  391. package/dist/lib/node-esm/settings-EOBQUZSW.mjs +0 -23
  392. package/dist/lib/node-esm/settings-EOBQUZSW.mjs.map +0 -7
  393. package/dist/lib/node-esm/state-X3W67GTL.mjs +0 -35
  394. package/dist/lib/node-esm/state-X3W67GTL.mjs.map +0 -7
  395. package/dist/lib/node-esm/toolkit-X2KA4FNC.mjs +0 -75
  396. package/dist/lib/node-esm/toolkit-X2KA4FNC.mjs.map +0 -7
  397. package/dist/lib/node-esm/types/index.mjs +0 -15
  398. package/dist/types/src/calls/call-manager.d.ts +0 -77
  399. package/dist/types/src/calls/call-manager.d.ts.map +0 -1
  400. package/dist/types/src/calls/call-swarm-synchronizer.d.ts +0 -66
  401. package/dist/types/src/calls/call-swarm-synchronizer.d.ts.map +0 -1
  402. package/dist/types/src/calls/index.d.ts +0 -7
  403. package/dist/types/src/calls/index.d.ts.map +0 -1
  404. package/dist/types/src/calls/media-manager.d.ts +0 -60
  405. package/dist/types/src/calls/media-manager.d.ts.map +0 -1
  406. package/dist/types/src/calls/speaking-monitor.d.ts +0 -24
  407. package/dist/types/src/calls/speaking-monitor.d.ts.map +0 -1
  408. package/dist/types/src/calls/types.d.ts +0 -45
  409. package/dist/types/src/calls/types.d.ts.map +0 -1
  410. package/dist/types/src/calls/util/audio.d.ts +0 -6
  411. package/dist/types/src/calls/util/audio.d.ts.map +0 -1
  412. package/dist/types/src/calls/util/calls-service.d.ts +0 -77
  413. package/dist/types/src/calls/util/calls-service.d.ts.map +0 -1
  414. package/dist/types/src/calls/util/history-cache.d.ts +0 -11
  415. package/dist/types/src/calls/util/history-cache.d.ts.map +0 -1
  416. package/dist/types/src/calls/util/index.d.ts +0 -5
  417. package/dist/types/src/calls/util/index.d.ts.map +0 -1
  418. package/dist/types/src/calls/util/media.d.ts +0 -6
  419. package/dist/types/src/calls/util/media.d.ts.map +0 -1
  420. package/dist/types/src/calls/util/stub-media-streams.d.ts +0 -18
  421. package/dist/types/src/calls/util/stub-media-streams.d.ts.map +0 -1
  422. package/dist/types/src/calls/util/task-scheduling.d.ts +0 -17
  423. package/dist/types/src/calls/util/task-scheduling.d.ts.map +0 -1
  424. package/dist/types/src/calls-service.stories.d.ts +0 -23
  425. package/dist/types/src/calls-service.stories.d.ts.map +0 -1
  426. package/dist/types/src/capabilities/call-manager.d.ts +0 -5
  427. package/dist/types/src/capabilities/call-manager.d.ts.map +0 -1
  428. package/dist/types/src/capabilities/capabilities.d.ts +0 -27
  429. package/dist/types/src/capabilities/capabilities.d.ts.map +0 -1
  430. package/dist/types/src/capabilities/intent-resolver.d.ts +0 -4
  431. package/dist/types/src/capabilities/intent-resolver.d.ts.map +0 -1
  432. package/dist/types/src/capabilities/react-root.d.ts +0 -7
  433. package/dist/types/src/capabilities/react-root.d.ts.map +0 -1
  434. package/dist/types/src/capabilities/toolkit.d.ts +0 -24
  435. package/dist/types/src/capabilities/toolkit.d.ts.map +0 -1
  436. package/dist/types/src/components/Call/Call.d.ts +0 -17
  437. package/dist/types/src/components/Call/Call.d.ts.map +0 -1
  438. package/dist/types/src/components/Call/Toolbar.d.ts +0 -16
  439. package/dist/types/src/components/Call/Toolbar.d.ts.map +0 -1
  440. package/dist/types/src/components/Call/index.d.ts +0 -3
  441. package/dist/types/src/components/Call/index.d.ts.map +0 -1
  442. package/dist/types/src/components/CallDebugPanel.d.ts +0 -15
  443. package/dist/types/src/components/CallDebugPanel.d.ts.map +0 -1
  444. package/dist/types/src/components/CallSidebar.d.ts +0 -4
  445. package/dist/types/src/components/CallSidebar.d.ts.map +0 -1
  446. package/dist/types/src/components/ChannelContainer.d.ts +0 -14
  447. package/dist/types/src/components/ChannelContainer.d.ts.map +0 -1
  448. package/dist/types/src/components/ChannelContainer.stories.d.ts +0 -160
  449. package/dist/types/src/components/ChannelContainer.stories.d.ts.map +0 -1
  450. package/dist/types/src/components/Chat.stories.d.ts +0 -160
  451. package/dist/types/src/components/Chat.stories.d.ts.map +0 -1
  452. package/dist/types/src/components/ChatContainer.d.ts +0 -18
  453. package/dist/types/src/components/ChatContainer.d.ts.map +0 -1
  454. package/dist/types/src/components/Comments.stories.d.ts +0 -158
  455. package/dist/types/src/components/Comments.stories.d.ts.map +0 -1
  456. package/dist/types/src/components/CommentsContainer.d.ts +0 -13
  457. package/dist/types/src/components/CommentsContainer.d.ts.map +0 -1
  458. package/dist/types/src/components/CommentsThreadContainer.d.ts +0 -14
  459. package/dist/types/src/components/CommentsThreadContainer.d.ts.map +0 -1
  460. package/dist/types/src/components/Lobby/Lobby.d.ts +0 -15
  461. package/dist/types/src/components/Lobby/Lobby.d.ts.map +0 -1
  462. package/dist/types/src/components/Lobby/index.d.ts +0 -2
  463. package/dist/types/src/components/Lobby/index.d.ts.map +0 -1
  464. package/dist/types/src/components/Media/AudioStream.d.ts +0 -6
  465. package/dist/types/src/components/Media/AudioStream.d.ts.map +0 -1
  466. package/dist/types/src/components/Media/VideoObject.d.ts +0 -15
  467. package/dist/types/src/components/Media/VideoObject.d.ts.map +0 -1
  468. package/dist/types/src/components/Media/VideoObject.stories.d.ts +0 -22
  469. package/dist/types/src/components/Media/VideoObject.stories.d.ts.map +0 -1
  470. package/dist/types/src/components/Media/index.d.ts +0 -3
  471. package/dist/types/src/components/Media/index.d.ts.map +0 -1
  472. package/dist/types/src/components/MessageContainer.d.ts +0 -14
  473. package/dist/types/src/components/MessageContainer.d.ts.map +0 -1
  474. package/dist/types/src/components/Participant/Participant.d.ts +0 -6
  475. package/dist/types/src/components/Participant/Participant.d.ts.map +0 -1
  476. package/dist/types/src/components/Participant/ParticipantGrid.d.ts +0 -11
  477. package/dist/types/src/components/Participant/ParticipantGrid.d.ts.map +0 -1
  478. package/dist/types/src/components/Participant/index.d.ts +0 -3
  479. package/dist/types/src/components/Participant/index.d.ts.map +0 -1
  480. package/dist/types/src/components/ResponsiveGrid/ResponsiveContainer.d.ts +0 -12
  481. package/dist/types/src/components/ResponsiveGrid/ResponsiveContainer.d.ts.map +0 -1
  482. package/dist/types/src/components/ResponsiveGrid/ResponsiveContainer.stories.d.ts +0 -162
  483. package/dist/types/src/components/ResponsiveGrid/ResponsiveContainer.stories.d.ts.map +0 -1
  484. package/dist/types/src/components/ResponsiveGrid/ResponsiveGrid.d.ts +0 -32
  485. package/dist/types/src/components/ResponsiveGrid/ResponsiveGrid.d.ts.map +0 -1
  486. package/dist/types/src/components/ResponsiveGrid/ResponsiveGrid.stories.d.ts +0 -176
  487. package/dist/types/src/components/ResponsiveGrid/ResponsiveGrid.stories.d.ts.map +0 -1
  488. package/dist/types/src/components/ResponsiveGrid/ResponsiveGridItem.d.ts +0 -21
  489. package/dist/types/src/components/ResponsiveGrid/ResponsiveGridItem.d.ts.map +0 -1
  490. package/dist/types/src/components/ResponsiveGrid/index.d.ts +0 -4
  491. package/dist/types/src/components/ResponsiveGrid/index.d.ts.map +0 -1
  492. package/dist/types/src/components/ThreadComplementary.d.ts +0 -5
  493. package/dist/types/src/components/ThreadComplementary.d.ts.map +0 -1
  494. package/dist/types/src/components/ThreadSettings.d.ts +0 -6
  495. package/dist/types/src/components/ThreadSettings.d.ts.map +0 -1
  496. package/dist/types/src/components/command-extension.d.ts.map +0 -1
  497. package/dist/types/src/components/testing.d.ts.map +0 -1
  498. package/dist/types/src/hooks/useBlackCanvasStreamTrack.d.ts +0 -2
  499. package/dist/types/src/hooks/useBlackCanvasStreamTrack.d.ts.map +0 -1
  500. package/dist/types/src/hooks/useDebugMode.d.ts +0 -2
  501. package/dist/types/src/hooks/useDebugMode.d.ts.map +0 -1
  502. package/dist/types/src/hooks/useInaudibleAudioStreamTrack.d.ts +0 -2
  503. package/dist/types/src/hooks/useInaudibleAudioStreamTrack.d.ts.map +0 -1
  504. package/dist/types/src/hooks/useVideoStreamTrack.d.ts +0 -3
  505. package/dist/types/src/hooks/useVideoStreamTrack.d.ts.map +0 -1
  506. package/dist/types/src/testing/stories.d.ts +0 -2
  507. package/dist/types/src/testing/stories.d.ts.map +0 -1
  508. package/dist/types/src/types/Channel.d.ts +0 -16
  509. package/dist/types/src/types/Channel.d.ts.map +0 -1
  510. package/dist/types/src/types/Thread.d.ts +0 -167
  511. package/dist/types/src/types/Thread.d.ts.map +0 -1
  512. package/src/calls/call-manager.ts +0 -246
  513. package/src/calls/call-swarm-synchronizer.ts +0 -350
  514. package/src/calls/index.ts +0 -10
  515. package/src/calls/media-manager.ts +0 -375
  516. package/src/calls/speaking-monitor.ts +0 -85
  517. package/src/calls/types.ts +0 -74
  518. package/src/calls/util/audio.ts +0 -58
  519. package/src/calls/util/calls-service.ts +0 -581
  520. package/src/calls/util/history-cache.ts +0 -27
  521. package/src/calls/util/index.ts +0 -8
  522. package/src/calls/util/media.ts +0 -52
  523. package/src/calls/util/stub-media-streams.ts +0 -127
  524. package/src/calls/util/task-scheduling.ts +0 -92
  525. package/src/calls-service.stories.tsx +0 -229
  526. package/src/capabilities/call-manager.ts +0 -20
  527. package/src/capabilities/capabilities.ts +0 -33
  528. package/src/capabilities/intent-resolver.ts +0 -344
  529. package/src/capabilities/react-root.tsx +0 -17
  530. package/src/capabilities/toolkit.ts +0 -85
  531. package/src/components/Call/Call.tsx +0 -89
  532. package/src/components/Call/Toolbar.tsx +0 -182
  533. package/src/components/Call/index.ts +0 -6
  534. package/src/components/CallDebugPanel.tsx +0 -174
  535. package/src/components/CallSidebar.tsx +0 -18
  536. package/src/components/ChannelContainer.stories.tsx +0 -59
  537. package/src/components/ChannelContainer.tsx +0 -204
  538. package/src/components/ChatContainer.tsx +0 -154
  539. package/src/components/Comments.stories.tsx +0 -91
  540. package/src/components/Lobby/Lobby.tsx +0 -119
  541. package/src/components/Lobby/index.ts +0 -5
  542. package/src/components/Media/AudioStream.tsx +0 -67
  543. package/src/components/Media/VideoObject.stories.tsx +0 -60
  544. package/src/components/Media/VideoObject.tsx +0 -58
  545. package/src/components/Media/index.ts +0 -6
  546. package/src/components/Participant/Participant.tsx +0 -63
  547. package/src/components/Participant/ParticipantGrid.tsx +0 -89
  548. package/src/components/Participant/index.ts +0 -6
  549. package/src/components/ResponsiveGrid/ResponsiveContainer.stories.tsx +0 -54
  550. package/src/components/ResponsiveGrid/ResponsiveContainer.tsx +0 -31
  551. package/src/components/ResponsiveGrid/ResponsiveGrid.stories.tsx +0 -158
  552. package/src/components/ResponsiveGrid/ResponsiveGrid.tsx +0 -341
  553. package/src/components/ResponsiveGrid/ResponsiveGridItem.tsx +0 -131
  554. package/src/components/ResponsiveGrid/index.ts +0 -7
  555. package/src/components/ThreadComplementary.tsx +0 -181
  556. package/src/components/ThreadSettings.tsx +0 -16
  557. package/src/hooks/useBlackCanvasStreamTrack.tsx +0 -27
  558. package/src/hooks/useDebugMode.ts +0 -25
  559. package/src/hooks/useInaudibleAudioStreamTrack.tsx +0 -27
  560. package/src/hooks/useVideoStreamTrack.tsx +0 -36
  561. package/src/testing/stories.ts +0 -51
  562. package/src/types/Channel.ts +0 -27
  563. package/src/types/Thread.ts +0 -26
  564. package/src/typings/peermetrics-webrtc-stats.d.ts +0 -46
  565. package/src/typings.d.ts +0 -8
  566. /package/dist/lib/{browser/ChannelContainer-SVV4ZX5T.mjs.map → neutral/ChannelChat-6YTD5HWL.mjs.map} +0 -0
  567. /package/dist/lib/{browser/types → neutral/blueprints}/index.mjs.map +0 -0
  568. /package/dist/lib/{browser/ChatContainer-ALFWQ65B.mjs.map → neutral/chunk-J5LGTIGS.mjs.map} +0 -0
  569. /package/dist/lib/{node-esm/types → neutral/hooks}/index.mjs.map +0 -0
  570. /package/dist/lib/{node-esm/ChannelContainer-63GMQ753.mjs.map → neutral/index.mjs.map} +0 -0
  571. /package/dist/lib/{node-esm/ChatContainer-MFKPXMIK.mjs.map → neutral/meta.mjs.map} +0 -0
@@ -0,0 +1,20 @@
1
+ //
2
+ // Copyright 2025 DXOS.org
3
+ //
4
+
5
+ import { OperationHandlerSet } from '@dxos/compute';
6
+
7
+ export const ThreadOperationHandlerSet = OperationHandlerSet.lazy(
8
+ () => import('./add-message'),
9
+ () => import('./append-channel-message'),
10
+ () => import('./create'),
11
+ () => import('./create-channel'),
12
+ () => import('./create-proposals'),
13
+ () => import('./delete'),
14
+ () => import('./delete-message'),
15
+ () => import('./on-create-space'),
16
+ () => import('./restore'),
17
+ () => import('./restore-message'),
18
+ () => import('./select'),
19
+ () => import('./toggle-resolved'),
20
+ );
@@ -0,0 +1,27 @@
1
+ //
2
+ // Copyright 2025 DXOS.org
3
+ //
4
+
5
+ import * as Effect from 'effect/Effect';
6
+
7
+ import { Operation } from '@dxos/compute';
8
+
9
+ import { ThreadOperation } from '../types';
10
+
11
+ const handler: Operation.WithHandler<typeof ThreadOperation.OnCreateSpace> = ThreadOperation.OnCreateSpace.pipe(
12
+ Operation.withHandler(
13
+ Effect.fnUntraced(function* ({ space, isDefault }) {
14
+ if (isDefault) {
15
+ return;
16
+ }
17
+
18
+ const { object: channel } = yield* Operation.invoke(ThreadOperation.CreateChannel, {
19
+ name: 'General',
20
+ spaceId: space.id,
21
+ });
22
+ space.db.add(channel);
23
+ }),
24
+ ),
25
+ );
26
+
27
+ export default handler;
@@ -0,0 +1,38 @@
1
+ //
2
+ // Copyright 2025 DXOS.org
3
+ //
4
+
5
+ import * as Effect from 'effect/Effect';
6
+
7
+ import { Operation } from '@dxos/compute';
8
+ import { Obj, Ref, Relation } from '@dxos/echo';
9
+ import { invariant } from '@dxos/invariant';
10
+ import { ObservabilityOperation } from '@dxos/plugin-observability';
11
+ import { Thread } from '@dxos/types';
12
+
13
+ import { ThreadOperation } from '../types';
14
+
15
+ const handler: Operation.WithHandler<typeof ThreadOperation.RestoreMessage> = ThreadOperation.RestoreMessage.pipe(
16
+ Operation.withHandler(
17
+ Effect.fnUntraced(function* ({ anchor, message, messageIndex }) {
18
+ const thread = Relation.getSource(anchor) as Thread.Thread;
19
+ const db = Obj.getDatabase(thread);
20
+ invariant(db, 'Database not found');
21
+
22
+ Obj.update(thread, (thread) => {
23
+ thread.messages.splice(messageIndex, 0, Ref.make(message));
24
+ });
25
+
26
+ yield* Operation.schedule(ObservabilityOperation.SendEvent, {
27
+ name: 'threads.message.undo-delete',
28
+ properties: {
29
+ spaceId: db.spaceId,
30
+ threadId: thread.id,
31
+ messageId: message.id,
32
+ },
33
+ });
34
+ }),
35
+ ),
36
+ );
37
+
38
+ export default handler;
@@ -0,0 +1,38 @@
1
+ //
2
+ // Copyright 2025 DXOS.org
3
+ //
4
+
5
+ import * as Effect from 'effect/Effect';
6
+
7
+ import { sleep } from '@dxos/async';
8
+ import { Operation } from '@dxos/compute';
9
+ import { Obj } from '@dxos/echo';
10
+ import { ObservabilityOperation } from '@dxos/plugin-observability';
11
+
12
+ import { ThreadOperation } from '../types';
13
+
14
+ const handler: Operation.WithHandler<typeof ThreadOperation.Restore> = ThreadOperation.Restore.pipe(
15
+ Operation.withHandler(
16
+ Effect.fnUntraced(function* ({ thread, anchor }) {
17
+ const db = Obj.getDatabase(thread);
18
+ if (!db) {
19
+ return;
20
+ }
21
+
22
+ // TODO(wittjosiah): Without sleep, rendering crashes at `Relation.setSource(anchor)`.
23
+ db.add(thread);
24
+ yield* Effect.promise(() => sleep(100));
25
+ db.add(anchor);
26
+
27
+ yield* Operation.schedule(ObservabilityOperation.SendEvent, {
28
+ name: 'threads.undo-delete',
29
+ properties: {
30
+ spaceId: db.spaceId,
31
+ threadId: thread.id,
32
+ },
33
+ });
34
+ }),
35
+ ),
36
+ );
37
+
38
+ export default handler;
@@ -0,0 +1,24 @@
1
+ //
2
+ // Copyright 2025 DXOS.org
3
+ //
4
+
5
+ import * as Effect from 'effect/Effect';
6
+
7
+ import { Capabilities, Capability } from '@dxos/app-framework';
8
+ import { Operation } from '@dxos/compute';
9
+
10
+ import { ThreadCapabilities } from '../types';
11
+ import { ThreadOperation } from '../types';
12
+
13
+ const handler: Operation.WithHandler<typeof ThreadOperation.Select> = ThreadOperation.Select.pipe(
14
+ Operation.withHandler(
15
+ Effect.fnUntraced(function* (input) {
16
+ const registry = yield* Capability.get(Capabilities.AtomRegistry);
17
+ const stateAtom = yield* Capability.get(ThreadCapabilities.State);
18
+ const current = registry.get(stateAtom);
19
+ registry.set(stateAtom, { ...current, current: input.current });
20
+ }),
21
+ ),
22
+ );
23
+
24
+ export default handler;
@@ -0,0 +1,41 @@
1
+ //
2
+ // Copyright 2025 DXOS.org
3
+ //
4
+
5
+ import * as Effect from 'effect/Effect';
6
+
7
+ import { Operation } from '@dxos/compute';
8
+ import { Obj } from '@dxos/echo';
9
+ import { invariant } from '@dxos/invariant';
10
+ import { ObservabilityOperation } from '@dxos/plugin-observability';
11
+
12
+ import { ThreadOperation } from '../types';
13
+
14
+ const handler: Operation.WithHandler<typeof ThreadOperation.ToggleResolved> = ThreadOperation.ToggleResolved.pipe(
15
+ Operation.withHandler(
16
+ Effect.fnUntraced(function* (input) {
17
+ const thread = input.thread;
18
+
19
+ Obj.update(thread, (thread) => {
20
+ if (thread.status === 'active' || thread.status === undefined) {
21
+ thread.status = 'resolved';
22
+ } else if (thread.status === 'resolved') {
23
+ thread.status = 'active';
24
+ }
25
+ });
26
+
27
+ const db = Obj.getDatabase(thread);
28
+ invariant(db, 'Database not found');
29
+
30
+ yield* Operation.schedule(ObservabilityOperation.SendEvent, {
31
+ name: 'threads.toggle-resolved',
32
+ properties: {
33
+ spaceId: db.spaceId,
34
+ threadId: thread.id,
35
+ },
36
+ });
37
+ }),
38
+ ),
39
+ );
40
+
41
+ export default handler;
package/src/plugin.ts ADDED
@@ -0,0 +1,11 @@
1
+ //
2
+ // Copyright 2023 DXOS.org
3
+ //
4
+
5
+ import { Plugin } from '@dxos/app-framework';
6
+
7
+ import { meta } from './meta';
8
+
9
+ export const ThreadPlugin = Plugin.lazy(meta, () => import('#plugin'));
10
+
11
+ export { ThreadOperationHandlerSet } from './operations';
@@ -4,24 +4,22 @@
4
4
 
5
5
  import { Obj, Ref } from '@dxos/echo';
6
6
  import { IdentityDid } from '@dxos/keys';
7
- import { faker } from '@dxos/random';
7
+ import { random } from '@dxos/random';
8
8
  import { type Identity } from '@dxos/react-client/halo';
9
- import { DataType } from '@dxos/schema';
10
-
11
- import { Thread } from '../types';
9
+ import { Message, Thread } from '@dxos/types';
12
10
 
13
11
  export const createCommentThread = (identity: Identity): Thread.Thread => {
14
12
  return Thread.make({
15
13
  name: 'Comment',
16
- messages: faker.helpers.multiple(
14
+ messages: random.helpers.multiple(
17
15
  () =>
18
16
  Ref.make(
19
- Obj.make(DataType.Message, {
17
+ Obj.make(Message.Message, {
20
18
  created: new Date().toISOString(),
21
19
  sender: {
22
- identityDid: faker.datatype.boolean() ? identity.did : IdentityDid.random(),
20
+ identityDid: random.datatype.boolean() ? identity.did : IdentityDid.random(),
23
21
  },
24
- blocks: [{ _tag: 'text', text: faker.lorem.sentences(3) }],
22
+ blocks: [{ _tag: 'text', text: random.lorem.sentences(3) }],
25
23
  }),
26
24
  ),
27
25
  { count: { min: 2, max: 3 } },
@@ -33,15 +31,15 @@ export const createCommentThread = (identity: Identity): Thread.Thread => {
33
31
  export const createProposalThread = (identity: Identity): Thread.Thread => {
34
32
  return Thread.make({
35
33
  name: 'Proposal',
36
- messages: faker.helpers.multiple(
34
+ messages: random.helpers.multiple(
37
35
  () =>
38
36
  Ref.make(
39
- Obj.make(DataType.Message, {
37
+ Obj.make(Message.Message, {
40
38
  created: new Date().toISOString(),
41
39
  sender: {
42
- identityDid: faker.datatype.boolean() ? identity.did : IdentityDid.random(),
40
+ identityDid: random.datatype.boolean() ? identity.did : IdentityDid.random(),
43
41
  },
44
- blocks: [{ _tag: 'proposal', text: faker.lorem.sentences(3) }],
42
+ blocks: [{ _tag: 'proposal', text: random.lorem.sentences(3) }],
45
43
  }),
46
44
  ),
47
45
  { count: { min: 1, max: 1 } },
@@ -2,4 +2,4 @@
2
2
  // Copyright 2025 DXOS.org
3
3
  //
4
4
 
5
- export * from './stories';
5
+ export * from './data';
@@ -2,97 +2,95 @@
2
2
  // Copyright 2023 DXOS.org
3
3
  //
4
4
 
5
- import { Type } from '@dxos/echo';
6
5
  import { type Resource } from '@dxos/react-ui';
6
+ import { Channel } from '@dxos/types';
7
7
 
8
- import { meta } from './meta';
9
- import { Channel } from './types';
8
+ import { meta } from '#meta';
10
9
 
11
10
  export const translations = [
12
11
  {
13
12
  'en-US': {
14
- [Type.getTypename(Channel.Channel)]: {
15
- 'typename label': 'Channel',
16
- 'typename label_zero': 'Channels',
17
- 'typename label_one': 'Channel',
18
- 'typename label_other': 'Channels',
19
- 'object name placeholder': 'New channel',
20
- 'rename object label': 'Rename channel',
21
- 'delete object label': 'Delete channel',
13
+ // TODO(burdon): Thread.
14
+ [Channel.Channel.typename]: {
15
+ 'typename.label': 'Channel',
16
+ 'typename.label_zero': 'Channels',
17
+ 'typename.label_one': 'Channel',
18
+ 'typename.label_other': 'Channels',
19
+ 'object-name.placeholder': 'New channel',
20
+ 'add-object.label': 'Add channel',
21
+ 'rename-object.label': 'Rename channel',
22
+ 'delete-object.label': 'Delete channel',
23
+ 'object-deleted.label': 'Channel deleted',
22
24
  },
23
25
  [meta.id]: {
24
- 'plugin name': 'Chat',
25
- 'channel title label': 'Title',
26
- 'message placeholder': 'Reply…',
27
- 'activity message': 'Processing…',
28
- 'anonymous label': 'Anonymous',
29
- 'delete message block label': 'Delete message block',
30
- 'detached thread label': 'Referenced content was removed',
31
- 'delete thread label': 'Delete thread',
32
- 'resolve thread label': 'Resolve thread',
33
- 'thread deleted label': 'Thread deleted',
34
- 'message deleted label': 'Message deleted',
35
- 'comments heading': 'Comments',
36
- 'chat heading': 'Chat',
37
- 'draft button': 'DRAFT',
38
- 'no comments title': 'Comments',
39
- 'no comments message':
26
+ 'plugin.name': 'Chat',
27
+ 'channel-title.label': 'Title',
28
+ 'message.placeholder': 'Reply…',
29
+ 'activity.message': 'Processing…',
30
+ 'anonymous.label': 'Anonymous',
31
+ 'delete-message-block.label': 'Delete message block',
32
+ 'detached-thread.label': 'Referenced content was removed',
33
+ 'delete-thread.label': 'Delete thread',
34
+ 'resolve-thread.label': 'Resolve thread',
35
+ 'thread-deleted.label': 'Thread deleted',
36
+ 'message-deleted.label': 'Message deleted',
37
+ 'comments.heading': 'Comments',
38
+ 'chat.heading': 'Chat',
39
+ 'draft.button': 'DRAFT',
40
+ 'no-comments.title': 'Comments',
41
+ 'no-comments.message':
40
42
  'Click on the <commentIcon></commentIcon> button in the document toolbar to create a comment thread on the selected text.',
41
- 'toggle show resolved': 'Show resolved',
42
- 'unnamed object threads label': 'Threads',
43
- 'mark as resolved label': 'Mark as resolved',
44
- 'mark as unresolved label': 'Mark as unresolved',
45
- 'save message label': 'Save',
46
- 'edit message label': 'Edit',
47
- 'delete message label': 'Delete message',
48
- 'accept proposal label': 'Accept proposal',
49
- 'open comments panel label': 'Show Comments',
50
- 'comments label': 'Comments',
51
- 'show all label': 'All comments',
52
- 'show unresolved label': 'Unresolved comments',
43
+ 'toggle-show-resolved.label': 'Show resolved',
44
+ 'unnamed-object-threads.label': 'Threads',
45
+ 'mark-as-resolved.label': 'Mark as resolved',
46
+ 'mark-as-unresolved.label': 'Mark as unresolved',
47
+ 'save-message.label': 'Save',
48
+ 'edit-message.label': 'Edit',
49
+ 'delete-message.label': 'Delete message',
50
+ 'accept-proposal.label': 'Accept proposal',
51
+ 'open-comments-panel.label': 'Show Comments',
52
+ 'comments.label': 'Comments',
53
+ 'show-all.label': 'All comments',
54
+ 'show-unresolved.label': 'Unresolved comments',
55
+ 'add-comment.label': 'Add comment',
53
56
 
54
- 'channel companion label': 'Channel',
55
- 'call panel label': 'Active Call',
57
+ 'channel-companion.label': 'Channel',
58
+ 'call-panel.label': 'Active Call',
56
59
 
57
- 'display name label': 'Display name',
58
- 'display name description': 'Set your display name before joining a meeting.',
59
- 'display name input placeholder': 'Enter your name',
60
- 'set display name label': 'Continue',
60
+ 'display-name.label': 'Display name',
61
+ 'display-name.description': 'Set your display name before joining a meeting.',
62
+ 'display-name-input.placeholder': 'Enter your name',
63
+ 'set-display-name.label': 'Continue',
61
64
 
62
- 'call tab label': 'Call',
63
- 'meeting status title': 'Meeting',
64
- 'share meeting link label': 'Share meeting',
65
- 'show webrtc stats title': 'WebRTC Stats',
66
- 'show calls history title': 'Service History',
65
+ 'call-tab.label': 'Call',
66
+ 'meeting-status.title': 'Calls',
67
+ 'share-meeting-link.label': 'Share meeting',
68
+ 'show-webrtc-stats.title': 'WebRTC Stats',
69
+ 'show-calls-history.title': 'Service History',
67
70
 
68
- 'meeting summary label': 'Summary',
69
- 'summarize label': 'Summarize',
70
- 'summarizing label': 'Creating summary...',
71
- 'create summary message': 'A summary doesn’t exist for this meeting yet. Create one now?',
71
+ 'meeting-summary.label': 'Summary',
72
+ 'summarize.label': 'Summarize',
73
+ 'summarizing.label': 'Creating summary...',
74
+ 'create-summary.message': 'A summary doesn’t exist for this meeting yet. Create one now?',
72
75
 
73
- 'join call': 'Join',
74
- 'leave call': 'Leave',
76
+ 'icon-pin.label': 'Pin video',
77
+ 'icon-unpin.label': 'Unpin video',
78
+ 'icon-wave.label': 'Waving',
79
+ 'icon-muted.label': 'Muted',
80
+ 'join-call.button': 'Join',
81
+ 'leave-call.button': 'Leave',
82
+ 'mic-on.button': 'Unmute',
83
+ 'mic-off.button': 'Mute',
84
+ 'camera-on.button': 'Turn camera on',
85
+ 'camera-off.button': 'Turn camera off',
86
+ 'camera-off.label': 'Camera off',
87
+ 'raise-hand.button': 'Raise hand',
88
+ 'lower-hand.button': 'Lower hand',
89
+ 'screenshare-on.button': 'Share screen',
90
+ 'screenshare-off.button': 'Stop streaming',
75
91
 
76
- 'lobby participants_zero': 'No participants',
77
- 'lobby participants_one': '1 participant',
78
- 'lobby participants_other': '{{count}} participants',
79
-
80
- 'icon pin': 'Pin video',
81
- 'icon unpin': 'Unpin video',
82
- 'icon wave': 'Waving',
83
- 'icon muted': 'Muted',
84
- 'icon speaking': 'Speaking',
85
-
86
- 'mic on': 'Unmute',
87
- 'mic off': 'Mute',
88
- 'camera on': 'Turn camera on',
89
- 'camera off': 'Turn camera off',
90
- 'camera off label': 'Camera off',
91
-
92
- 'raise hand': 'Raise hand',
93
- 'lower hand': 'Lower hand',
94
- 'screenshare on': 'Share screen',
95
- 'screenshare off': 'Stop streaming',
92
+ 'channel-toolbar.title': 'Channel actions',
93
+ 'start-video-call.menu': 'Start video call',
96
94
  },
97
95
  },
98
96
  },
@@ -0,0 +1,10 @@
1
+ //
2
+ // Copyright 2023 DXOS.org
3
+ //
4
+
5
+ // @import-as-namespace
6
+
7
+ import * as Schema from 'effect/Schema';
8
+
9
+ export const Settings = Schema.mutable(Schema.Struct({}));
10
+ export interface Settings extends Schema.Schema.Type<typeof Settings> {}
@@ -0,0 +1,26 @@
1
+ //
2
+ // Copyright 2025 DXOS.org
3
+ //
4
+
5
+ // @import-as-namespace
6
+
7
+ import { type Atom } from '@effect-atom/atom-react';
8
+
9
+ import { Capability } from '@dxos/app-framework';
10
+ import { AppCapabilities } from '@dxos/app-toolkit';
11
+
12
+ import { meta } from '#meta';
13
+
14
+ import { type ThreadState, type ViewStore } from '../types';
15
+
16
+ export const Settings = Capability.make<Atom.Writable<import('./Settings').Settings>>(`${meta.id}.capability.settings`);
17
+
18
+ /** Comment configuration contributed per typename by plugins that support commenting. */
19
+ export type CommentConfig = AppCapabilities.CommentConfig;
20
+ export const CommentConfig: Capability.InterfaceDef<AppCapabilities.CommentConfig> = AppCapabilities.CommentConfig;
21
+
22
+ /** Thread state (drafts, toolbar state, current selection). */
23
+ export const State = Capability.make<Atom.Writable<ThreadState>>(`${meta.id}.capability.state`);
24
+
25
+ /** Per-subject view state (e.g., showResolvedThreads). */
26
+ export const ViewState = Capability.make<Atom.Writable<ViewStore>>(`${meta.id}.capability.view-state`);
@@ -0,0 +1,178 @@
1
+ //
2
+ // Copyright 2025 DXOS.org
3
+ //
4
+
5
+ // @import-as-namespace
6
+
7
+ import * as Schema from 'effect/Schema';
8
+
9
+ import { Capability } from '@dxos/app-framework';
10
+ import { SpaceSchema } from '@dxos/client-protocol';
11
+ import { Operation } from '@dxos/compute';
12
+ import { Collection, Database, Key, Obj, Ref } from '@dxos/echo';
13
+ import { Markdown } from '@dxos/plugin-markdown';
14
+ import { Actor, AnchoredTo, Channel, Message, Thread } from '@dxos/types';
15
+
16
+ import { meta } from '#meta';
17
+
18
+ const THREAD_OPERATION = `${meta.id}.operation`;
19
+
20
+ export const OnCreateSpace = Operation.make({
21
+ meta: { key: `${THREAD_OPERATION}.on-create-space`, name: 'On Create Space' },
22
+ services: [Capability.Service],
23
+ input: Schema.Struct({
24
+ space: SpaceSchema,
25
+ rootCollection: Collection.Collection,
26
+ isDefault: Schema.Boolean.pipe(Schema.optional),
27
+ }),
28
+ output: Schema.Void,
29
+ });
30
+
31
+ export const CreateChannel = Operation.make({
32
+ meta: { key: `${THREAD_OPERATION}.create-channel`, name: 'Create Channel' },
33
+ services: [Capability.Service],
34
+ input: Schema.Struct({
35
+ spaceId: Key.SpaceId,
36
+ name: Schema.optional(Schema.String),
37
+ }),
38
+ output: Schema.Struct({
39
+ object: Channel.Channel,
40
+ }),
41
+ });
42
+
43
+ export const AppendChannelMessage = Operation.make({
44
+ meta: { key: `${THREAD_OPERATION}.append-channel-message`, name: 'Append Channel Message' },
45
+ // Note: Feed.FeedService is provided inside the handler from space.queues, not at the
46
+ // operation level — the runtime can't fulfill it without a space context.
47
+ services: [Capability.Service],
48
+ input: Schema.Struct({
49
+ channel: Channel.Channel,
50
+ sender: Actor.Actor,
51
+ text: Schema.String,
52
+ }),
53
+ output: Schema.Void,
54
+ });
55
+
56
+ export const Create = Operation.make({
57
+ meta: { key: `${THREAD_OPERATION}.create`, name: 'Create Thread' },
58
+ services: [Capability.Service],
59
+ input: Schema.Struct({
60
+ name: Schema.optional(Schema.String),
61
+ anchor: Schema.optional(Schema.String),
62
+ subject: Obj.Unknown,
63
+ }),
64
+ output: Schema.Void,
65
+ });
66
+
67
+ export const DeleteOutput = Schema.Struct({
68
+ thread: Thread.Thread.annotations({ description: 'The deleted thread.' }),
69
+ anchor: AnchoredTo.AnchoredTo.annotations({ description: 'The deleted anchor.' }),
70
+ }).pipe(Schema.partial);
71
+
72
+ export type DeleteOutput = Schema.Schema.Type<typeof DeleteOutput>;
73
+
74
+ export const Delete = Operation.make({
75
+ meta: { key: `${THREAD_OPERATION}.delete`, name: 'Delete Thread' },
76
+ services: [Capability.Service],
77
+ input: Schema.Struct({
78
+ anchor: AnchoredTo.AnchoredTo,
79
+ subject: Obj.Unknown,
80
+ thread: Schema.optional(Thread.Thread),
81
+ }),
82
+ output: DeleteOutput,
83
+ });
84
+
85
+ export const Select = Operation.make({
86
+ meta: { key: `${THREAD_OPERATION}.select`, name: 'Select Thread' },
87
+ services: [Capability.Service],
88
+ input: Schema.Struct({
89
+ current: Schema.String,
90
+ }),
91
+ output: Schema.Void,
92
+ });
93
+
94
+ export const ToggleResolved = Operation.make({
95
+ meta: { key: `${THREAD_OPERATION}.toggle-resolved`, name: 'Toggle Resolved' },
96
+ services: [Capability.Service],
97
+ input: Schema.Struct({
98
+ thread: Thread.Thread,
99
+ }),
100
+ output: Schema.Void,
101
+ });
102
+
103
+ export const AddMessage = Operation.make({
104
+ meta: { key: `${THREAD_OPERATION}.add-message`, name: 'Add Message' },
105
+ services: [Capability.Service],
106
+ input: Schema.Struct({
107
+ subject: Obj.Unknown,
108
+ anchor: AnchoredTo.AnchoredTo,
109
+ sender: Actor.Actor,
110
+ text: Schema.String,
111
+ }),
112
+ output: Schema.Void,
113
+ });
114
+
115
+ export const DeleteMessageOutput = Schema.partial(
116
+ Schema.Struct({
117
+ message: Message.Message.annotations({ description: 'The deleted message.' }),
118
+ messageIndex: Schema.Number.annotations({ description: 'The index the message was at.' }),
119
+ }),
120
+ );
121
+
122
+ export type DeleteMessageOutput = Schema.Schema.Type<typeof DeleteMessageOutput>;
123
+
124
+ export const DeleteMessage = Operation.make({
125
+ meta: { key: `${THREAD_OPERATION}.delete-message`, name: 'Delete Message' },
126
+ services: [Capability.Service],
127
+ input: Schema.Struct({
128
+ anchor: AnchoredTo.AnchoredTo,
129
+ subject: Obj.Unknown,
130
+ messageId: Schema.String,
131
+ }),
132
+ output: DeleteMessageOutput,
133
+ });
134
+
135
+ /**
136
+ * Restore a deleted thread (inverse of Delete).
137
+ */
138
+ export const Restore = Operation.make({
139
+ meta: { key: `${THREAD_OPERATION}.restore`, name: 'Restore Thread' },
140
+ services: [Capability.Service],
141
+ input: Schema.Struct({
142
+ thread: Thread.Thread.annotations({ description: 'The thread to restore.' }),
143
+ anchor: AnchoredTo.AnchoredTo.annotations({ description: 'The anchor relation to restore.' }),
144
+ }),
145
+ output: Schema.Void,
146
+ });
147
+
148
+ /**
149
+ * Restore a deleted message (inverse of DeleteMessage).
150
+ */
151
+ export const RestoreMessage = Operation.make({
152
+ meta: { key: `${THREAD_OPERATION}.restore-message`, name: 'Restore Message' },
153
+ services: [Capability.Service],
154
+ input: Schema.Struct({
155
+ anchor: AnchoredTo.AnchoredTo.annotations({ description: 'The anchor of the thread.' }),
156
+ message: Message.Message.annotations({ description: 'The message to restore.' }),
157
+ messageIndex: Schema.Number.annotations({ description: 'The index to restore the message at.' }),
158
+ }),
159
+ output: Schema.Void,
160
+ });
161
+
162
+ export const CreateProposals = Operation.make({
163
+ meta: {
164
+ key: 'org.dxos.function.thread.create-proposals',
165
+ name: 'Create Proposals',
166
+ description: 'Proposes a set of changes to a document.',
167
+ },
168
+ input: Schema.Struct({
169
+ doc: Ref.Ref(Markdown.Document).annotations({
170
+ description: 'The ID of the document.',
171
+ }),
172
+ diffs: Schema.Array(Schema.String).annotations({
173
+ description: 'The diffs to propose for the document.',
174
+ }),
175
+ }),
176
+ output: Schema.Void,
177
+ services: [Database.Service],
178
+ });
@@ -2,6 +2,8 @@
2
2
  // Copyright 2025 DXOS.org
3
3
  //
4
4
 
5
- export * as Channel from './Channel';
6
- export * as Thread from './Thread';
7
5
  export * from './types';
6
+
7
+ export * as Settings from './Settings';
8
+ export * as ThreadCapabilities from './ThreadCapabilities';
9
+ export * as ThreadOperation from './ThreadOperation';