@dxos/plugin-thread 0.8.4-main.69d29f4 → 0.8.4-main.6fa680abb7

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 (326) hide show
  1. package/dist/lib/browser/CallDebugPanel-BO3SLD4E.mjs +182 -0
  2. package/dist/lib/browser/CallDebugPanel-BO3SLD4E.mjs.map +7 -0
  3. package/dist/lib/browser/CallSidebar-WGAPDBFY.mjs +36 -0
  4. package/dist/lib/browser/CallSidebar-WGAPDBFY.mjs.map +7 -0
  5. package/dist/lib/browser/ChannelContainer-M7YGXCQ3.mjs +17 -0
  6. package/dist/lib/browser/ChannelContainer-M7YGXCQ3.mjs.map +7 -0
  7. package/dist/lib/browser/ChatContainer-DZ2JIT7Y.mjs +18 -0
  8. package/dist/lib/browser/ChatContainer-DZ2JIT7Y.mjs.map +7 -0
  9. package/dist/lib/browser/ThreadCompanion-UUOD5N66.mjs +207 -0
  10. package/dist/lib/browser/ThreadCompanion-UUOD5N66.mjs.map +7 -0
  11. package/dist/lib/browser/ThreadSettings-VL3HBE62.mjs +20 -0
  12. package/dist/lib/browser/ThreadSettings-VL3HBE62.mjs.map +7 -0
  13. package/dist/lib/browser/{app-graph-builder-7C2QW32W.mjs → app-graph-builder-MOGFPE3O.mjs} +25 -24
  14. package/dist/lib/browser/app-graph-builder-MOGFPE3O.mjs.map +7 -0
  15. package/dist/lib/browser/blueprint-definition-UJ4QH3LV.mjs +17 -0
  16. package/dist/lib/browser/blueprint-definition-UJ4QH3LV.mjs.map +7 -0
  17. package/dist/lib/browser/blueprints/index.mjs +3 -3
  18. package/dist/lib/browser/{call-manager-4P536YNX.mjs → call-manager-SBJYUKXN.mjs} +5 -4
  19. package/dist/lib/browser/call-manager-SBJYUKXN.mjs.map +7 -0
  20. package/dist/lib/browser/chunk-2M2HV5K4.mjs +35 -0
  21. package/dist/lib/browser/chunk-2M2HV5K4.mjs.map +7 -0
  22. package/dist/lib/browser/{chunk-2FIHSX35.mjs → chunk-A4VH2D5C.mjs} +30 -46
  23. package/dist/lib/browser/chunk-A4VH2D5C.mjs.map +7 -0
  24. package/dist/lib/browser/chunk-BWXT2OVT.mjs +1094 -0
  25. package/dist/lib/browser/chunk-BWXT2OVT.mjs.map +7 -0
  26. package/dist/lib/browser/{chunk-DLO2G3DM.mjs → chunk-HDLDMR54.mjs} +2 -2
  27. package/dist/lib/browser/chunk-HDLDMR54.mjs.map +7 -0
  28. package/dist/lib/browser/{chunk-ZFLSTQSE.mjs → chunk-J75MXJZN.mjs} +26 -27
  29. package/dist/lib/browser/chunk-J75MXJZN.mjs.map +7 -0
  30. package/dist/lib/browser/{markdown-QMJLRR6R.mjs → chunk-MJXZ26FR.mjs} +3 -78
  31. package/dist/lib/browser/chunk-MJXZ26FR.mjs.map +7 -0
  32. package/dist/lib/browser/chunk-MQJNILMF.mjs +127 -0
  33. package/dist/lib/browser/chunk-MQJNILMF.mjs.map +7 -0
  34. package/dist/lib/browser/chunk-QVJO3VJ4.mjs +20 -0
  35. package/dist/lib/browser/chunk-QVJO3VJ4.mjs.map +7 -0
  36. package/dist/lib/browser/chunk-SRVNHDO7.mjs +221 -0
  37. package/dist/lib/browser/chunk-SRVNHDO7.mjs.map +7 -0
  38. package/dist/lib/browser/index.mjs +60 -80
  39. package/dist/lib/browser/index.mjs.map +4 -4
  40. package/dist/lib/browser/markdown-EG46BLO3.mjs +83 -0
  41. package/dist/lib/browser/markdown-EG46BLO3.mjs.map +7 -0
  42. package/dist/lib/browser/meta.json +1 -1
  43. package/dist/lib/browser/{operation-resolver-T63EP5TY.mjs → operation-resolver-ZZAG4PJ2.mjs} +22 -29
  44. package/dist/lib/browser/operation-resolver-ZZAG4PJ2.mjs.map +7 -0
  45. package/dist/lib/browser/{react-root-56MJI77R.mjs → react-root-5MXZ6Y3J.mjs} +8 -6
  46. package/dist/lib/browser/react-root-5MXZ6Y3J.mjs.map +7 -0
  47. package/dist/lib/browser/{react-surface-DMBHQOXJ.mjs → react-surface-J4X3HUUD.mjs} +40 -35
  48. package/dist/lib/browser/react-surface-J4X3HUUD.mjs.map +7 -0
  49. package/dist/lib/browser/{settings-WZMJMML3.mjs → settings-E6YJEDEZ.mjs} +8 -5
  50. package/dist/lib/browser/settings-E6YJEDEZ.mjs.map +7 -0
  51. package/dist/lib/browser/{state-SJR2GL5G.mjs → state-G35LOVYP.mjs} +3 -2
  52. package/dist/lib/browser/types/index.mjs +2 -1
  53. package/dist/lib/node-esm/CallDebugPanel-7OIL5FVT.mjs +183 -0
  54. package/dist/lib/node-esm/CallDebugPanel-7OIL5FVT.mjs.map +7 -0
  55. package/dist/lib/node-esm/CallSidebar-QDM234XX.mjs +37 -0
  56. package/dist/lib/node-esm/CallSidebar-QDM234XX.mjs.map +7 -0
  57. package/dist/lib/node-esm/ChannelContainer-AFBKQJZU.mjs +18 -0
  58. package/dist/lib/node-esm/ChannelContainer-AFBKQJZU.mjs.map +7 -0
  59. package/dist/lib/node-esm/ChatContainer-ZQF6LTM6.mjs +19 -0
  60. package/dist/lib/node-esm/ChatContainer-ZQF6LTM6.mjs.map +7 -0
  61. package/dist/lib/node-esm/ThreadCompanion-SNRNEPWT.mjs +208 -0
  62. package/dist/lib/node-esm/ThreadCompanion-SNRNEPWT.mjs.map +7 -0
  63. package/dist/lib/node-esm/ThreadSettings-TCZMYH3J.mjs +21 -0
  64. package/dist/lib/node-esm/ThreadSettings-TCZMYH3J.mjs.map +7 -0
  65. package/dist/lib/node-esm/{app-graph-builder-JCSVFRVY.mjs → app-graph-builder-BIAIWS2E.mjs} +25 -24
  66. package/dist/lib/node-esm/app-graph-builder-BIAIWS2E.mjs.map +7 -0
  67. package/dist/lib/node-esm/{blueprint-definition-MZZXXL37.mjs → blueprint-definition-SABUBK23.mjs} +6 -6
  68. package/dist/lib/node-esm/blueprint-definition-SABUBK23.mjs.map +7 -0
  69. package/dist/lib/node-esm/blueprints/index.mjs +3 -3
  70. package/dist/lib/node-esm/{call-manager-FMLRR5S5.mjs → call-manager-5JYDNYEA.mjs} +5 -4
  71. package/dist/lib/node-esm/call-manager-5JYDNYEA.mjs.map +7 -0
  72. package/dist/lib/node-esm/chunk-4H4UJROP.mjs +128 -0
  73. package/dist/lib/node-esm/chunk-4H4UJROP.mjs.map +7 -0
  74. package/dist/lib/node-esm/chunk-7CNPVAGT.mjs +222 -0
  75. package/dist/lib/node-esm/chunk-7CNPVAGT.mjs.map +7 -0
  76. package/dist/lib/node-esm/chunk-A3SWGVF3.mjs +37 -0
  77. package/dist/lib/node-esm/chunk-A3SWGVF3.mjs.map +7 -0
  78. package/dist/lib/node-esm/chunk-DFXKA3BF.mjs +1095 -0
  79. package/dist/lib/node-esm/chunk-DFXKA3BF.mjs.map +7 -0
  80. package/dist/lib/node-esm/{chunk-WMWUXWAS.mjs → chunk-HT4D266X.mjs} +30 -46
  81. package/dist/lib/node-esm/chunk-HT4D266X.mjs.map +7 -0
  82. package/dist/lib/node-esm/chunk-N2T5KLKB.mjs +22 -0
  83. package/dist/lib/node-esm/chunk-N2T5KLKB.mjs.map +7 -0
  84. package/dist/lib/node-esm/{chunk-AQHPP6ZX.mjs → chunk-NDSI2G7B.mjs} +26 -26
  85. package/dist/lib/node-esm/chunk-NDSI2G7B.mjs.map +7 -0
  86. package/dist/lib/node-esm/{markdown-L6LLQLIN.mjs → chunk-SV74KS5H.mjs} +3 -78
  87. package/dist/lib/node-esm/chunk-SV74KS5H.mjs.map +7 -0
  88. package/dist/lib/node-esm/{chunk-KRBZBJRI.mjs → chunk-YN2Y7GPW.mjs} +2 -2
  89. package/dist/lib/node-esm/chunk-YN2Y7GPW.mjs.map +7 -0
  90. package/dist/lib/node-esm/index.mjs +60 -80
  91. package/dist/lib/node-esm/index.mjs.map +4 -4
  92. package/dist/lib/node-esm/markdown-YUI4GVUF.mjs +84 -0
  93. package/dist/lib/node-esm/markdown-YUI4GVUF.mjs.map +7 -0
  94. package/dist/lib/node-esm/meta.json +1 -1
  95. package/dist/lib/node-esm/{operation-resolver-G6GZPBRP.mjs → operation-resolver-YJMVCJEM.mjs} +22 -29
  96. package/dist/lib/node-esm/operation-resolver-YJMVCJEM.mjs.map +7 -0
  97. package/dist/lib/node-esm/{react-root-V4W4X5GL.mjs → react-root-I3D36WIQ.mjs} +8 -6
  98. package/dist/lib/node-esm/react-root-I3D36WIQ.mjs.map +7 -0
  99. package/dist/lib/node-esm/{react-surface-ELDSTUA3.mjs → react-surface-3OCF55AK.mjs} +40 -35
  100. package/dist/lib/node-esm/react-surface-3OCF55AK.mjs.map +7 -0
  101. package/dist/lib/node-esm/{settings-37CO3SNR.mjs → settings-2FQ6CDHD.mjs} +8 -5
  102. package/dist/lib/node-esm/settings-2FQ6CDHD.mjs.map +7 -0
  103. package/dist/lib/node-esm/{state-5R3TZJQE.mjs → state-ZQ2Y3R2X.mjs} +3 -2
  104. package/dist/lib/{browser/state-SJR2GL5G.mjs.map → node-esm/state-ZQ2Y3R2X.mjs.map} +1 -1
  105. package/dist/lib/node-esm/types/index.mjs +2 -1
  106. package/dist/types/src/ThreadPlugin.d.ts.map +1 -1
  107. package/dist/types/src/blueprints/index.d.ts +1 -1
  108. package/dist/types/src/blueprints/index.d.ts.map +1 -1
  109. package/dist/types/src/blueprints/thread-blueprint.d.ts +3 -20
  110. package/dist/types/src/blueprints/thread-blueprint.d.ts.map +1 -1
  111. package/dist/types/src/capabilities/app-graph-builder/app-graph-builder.d.ts +1 -1
  112. package/dist/types/src/capabilities/app-graph-builder/app-graph-builder.d.ts.map +1 -1
  113. package/dist/types/src/capabilities/blueprint-definition/blueprint-definition.d.ts +3 -6
  114. package/dist/types/src/capabilities/blueprint-definition/blueprint-definition.d.ts.map +1 -1
  115. package/dist/types/src/capabilities/blueprint-definition/index.d.ts +1 -1
  116. package/dist/types/src/capabilities/blueprint-definition/index.d.ts.map +1 -1
  117. package/dist/types/src/capabilities/call-manager/call-manager.d.ts +1 -1
  118. package/dist/types/src/capabilities/call-manager/call-manager.d.ts.map +1 -1
  119. package/dist/types/src/capabilities/index.d.ts +0 -1
  120. package/dist/types/src/capabilities/index.d.ts.map +1 -1
  121. package/dist/types/src/capabilities/markdown/markdown.d.ts +1 -1
  122. package/dist/types/src/capabilities/markdown/markdown.d.ts.map +1 -1
  123. package/dist/types/src/capabilities/operation-resolver/index.d.ts +1 -1
  124. package/dist/types/src/capabilities/operation-resolver/index.d.ts.map +1 -1
  125. package/dist/types/src/capabilities/operation-resolver/operation-resolver.d.ts +2 -2
  126. package/dist/types/src/capabilities/operation-resolver/operation-resolver.d.ts.map +1 -1
  127. package/dist/types/src/capabilities/react-root/react-root.d.ts +1 -1
  128. package/dist/types/src/capabilities/react-root/react-root.d.ts.map +1 -1
  129. package/dist/types/src/capabilities/react-surface/index.d.ts +1 -1
  130. package/dist/types/src/capabilities/react-surface/index.d.ts.map +1 -1
  131. package/dist/types/src/capabilities/react-surface/react-surface.d.ts +2 -2
  132. package/dist/types/src/capabilities/react-surface/react-surface.d.ts.map +1 -1
  133. package/dist/types/src/capabilities/settings/index.d.ts +1 -1
  134. package/dist/types/src/capabilities/settings/index.d.ts.map +1 -1
  135. package/dist/types/src/capabilities/settings/settings.d.ts +3 -2
  136. package/dist/types/src/capabilities/settings/settings.d.ts.map +1 -1
  137. package/dist/types/src/capabilities/state/state.d.ts +1 -1
  138. package/dist/types/src/components/Call/Toolbar.d.ts.map +1 -1
  139. package/dist/types/src/components/CommentsPanel/CommentsPanel.d.ts +13 -0
  140. package/dist/types/src/components/CommentsPanel/CommentsPanel.d.ts.map +1 -0
  141. package/dist/types/src/components/{Comments.stories.d.ts → CommentsPanel/CommentsPanel.stories.d.ts} +4 -2
  142. package/dist/types/src/components/CommentsPanel/CommentsPanel.stories.d.ts.map +1 -0
  143. package/dist/types/src/components/{CommentsThreadContainer.d.ts → CommentsPanel/CommentsThread.d.ts} +3 -3
  144. package/dist/types/src/components/CommentsPanel/CommentsThread.d.ts.map +1 -0
  145. package/dist/types/src/components/CommentsPanel/index.d.ts +3 -0
  146. package/dist/types/src/components/CommentsPanel/index.d.ts.map +1 -0
  147. package/dist/types/src/components/MessagePanel/MessagePanel.d.ts +15 -0
  148. package/dist/types/src/components/MessagePanel/MessagePanel.d.ts.map +1 -0
  149. package/dist/types/src/components/MessagePanel/index.d.ts +2 -0
  150. package/dist/types/src/components/MessagePanel/index.d.ts.map +1 -0
  151. package/dist/types/src/components/ResponsiveGrid/ResponsiveGrid.stories.d.ts +2 -0
  152. package/dist/types/src/components/ResponsiveGrid/ResponsiveGrid.stories.d.ts.map +1 -1
  153. package/dist/types/src/components/ResponsiveGrid/{ResponsiveContainer.d.ts → ResponsivePanel.d.ts} +4 -4
  154. package/dist/types/src/components/ResponsiveGrid/ResponsivePanel.d.ts.map +1 -0
  155. package/dist/types/src/components/ResponsiveGrid/{ResponsiveContainer.stories.d.ts → ResponsivePanel.stories.d.ts} +5 -3
  156. package/dist/types/src/components/ResponsiveGrid/ResponsivePanel.stories.d.ts.map +1 -0
  157. package/dist/types/src/components/ResponsiveGrid/index.d.ts +1 -1
  158. package/dist/types/src/components/ResponsiveGrid/index.d.ts.map +1 -1
  159. package/dist/types/src/components/index.d.ts +2 -9
  160. package/dist/types/src/components/index.d.ts.map +1 -1
  161. package/dist/types/src/{components → containers/CallDebugPanel}/CallDebugPanel.d.ts +1 -1
  162. package/dist/types/src/containers/CallDebugPanel/CallDebugPanel.d.ts.map +1 -0
  163. package/dist/types/src/containers/CallDebugPanel/index.d.ts +3 -0
  164. package/dist/types/src/containers/CallDebugPanel/index.d.ts.map +1 -0
  165. package/dist/types/src/{components → containers/CallSidebar}/CallSidebar.d.ts +0 -1
  166. package/dist/types/src/containers/CallSidebar/CallSidebar.d.ts.map +1 -0
  167. package/dist/types/src/containers/CallSidebar/index.d.ts +3 -0
  168. package/dist/types/src/containers/CallSidebar/index.d.ts.map +1 -0
  169. package/dist/types/src/{components → containers/ChannelContainer}/ChannelContainer.d.ts +3 -4
  170. package/dist/types/src/containers/ChannelContainer/ChannelContainer.d.ts.map +1 -0
  171. package/dist/types/src/{components → containers/ChannelContainer}/ChannelContainer.stories.d.ts +4 -2
  172. package/dist/types/src/containers/ChannelContainer/ChannelContainer.stories.d.ts.map +1 -0
  173. package/dist/types/src/containers/ChannelContainer/index.d.ts +3 -0
  174. package/dist/types/src/containers/ChannelContainer/index.d.ts.map +1 -0
  175. package/dist/types/src/{components → containers/ChatContainer}/ChatContainer.d.ts +4 -5
  176. package/dist/types/src/containers/ChatContainer/ChatContainer.d.ts.map +1 -0
  177. package/dist/types/src/{components/Chat.stories.d.ts → containers/ChatContainer/ChatContainer.stories.d.ts} +4 -2
  178. package/dist/types/src/containers/ChatContainer/ChatContainer.stories.d.ts.map +1 -0
  179. package/dist/types/src/containers/ChatContainer/index.d.ts +4 -0
  180. package/dist/types/src/containers/ChatContainer/index.d.ts.map +1 -0
  181. package/dist/types/src/containers/ThreadCompanion/ThreadCompanion.d.ts +6 -0
  182. package/dist/types/src/containers/ThreadCompanion/ThreadCompanion.d.ts.map +1 -0
  183. package/dist/types/src/containers/ThreadCompanion/index.d.ts +3 -0
  184. package/dist/types/src/containers/ThreadCompanion/index.d.ts.map +1 -0
  185. package/dist/types/src/{components → containers/ThreadSettings}/ThreadSettings.d.ts +1 -1
  186. package/dist/types/src/containers/ThreadSettings/ThreadSettings.d.ts.map +1 -0
  187. package/dist/types/src/containers/ThreadSettings/index.d.ts +3 -0
  188. package/dist/types/src/containers/ThreadSettings/index.d.ts.map +1 -0
  189. package/dist/types/src/containers/index.d.ts +8 -0
  190. package/dist/types/src/containers/index.d.ts.map +1 -0
  191. package/dist/types/src/{components/command-extension.d.ts → extensions/command.d.ts} +1 -1
  192. package/dist/types/src/extensions/command.d.ts.map +1 -0
  193. package/dist/types/src/extensions/index.d.ts +1 -0
  194. package/dist/types/src/extensions/index.d.ts.map +1 -1
  195. package/dist/types/src/functions/create-proposals.d.ts +8 -1
  196. package/dist/types/src/functions/create-proposals.d.ts.map +1 -1
  197. package/dist/types/src/functions/index.d.ts +13 -1
  198. package/dist/types/src/functions/index.d.ts.map +1 -1
  199. package/dist/types/src/hooks/analytics.d.ts.map +1 -1
  200. package/dist/types/src/{components/testing.d.ts → testing/data.d.ts} +1 -1
  201. package/dist/types/src/testing/data.d.ts.map +1 -0
  202. package/dist/types/src/testing/stories.d.ts.map +1 -1
  203. package/dist/types/src/translations.d.ts +2 -0
  204. package/dist/types/src/translations.d.ts.map +1 -1
  205. package/dist/types/src/types/Channel.d.ts +25 -9
  206. package/dist/types/src/types/Channel.d.ts.map +1 -1
  207. package/dist/types/src/types/types.d.ts +182 -105
  208. package/dist/types/src/types/types.d.ts.map +1 -1
  209. package/dist/types/tsconfig.tsbuildinfo +1 -1
  210. package/package.json +67 -65
  211. package/src/ThreadPlugin.tsx +29 -46
  212. package/src/blueprints/index.ts +1 -1
  213. package/src/blueprints/thread-blueprint.ts +14 -6
  214. package/src/calls-service.stories.tsx +2 -2
  215. package/src/capabilities/app-graph-builder/app-graph-builder.ts +20 -18
  216. package/src/capabilities/blueprint-definition/blueprint-definition.ts +6 -12
  217. package/src/capabilities/call-manager/call-manager.ts +2 -2
  218. package/src/capabilities/index.ts +0 -1
  219. package/src/capabilities/markdown/markdown.ts +11 -13
  220. package/src/capabilities/operation-resolver/operation-resolver.ts +13 -21
  221. package/src/capabilities/react-root/react-root.tsx +2 -2
  222. package/src/capabilities/react-surface/react-surface.tsx +28 -24
  223. package/src/capabilities/settings/settings.ts +3 -2
  224. package/src/components/Call/Call.tsx +1 -1
  225. package/src/components/Call/Toolbar.tsx +6 -7
  226. package/src/components/{Comments.stories.tsx → CommentsPanel/CommentsPanel.stories.tsx} +12 -12
  227. package/src/components/{CommentsContainer.tsx → CommentsPanel/CommentsPanel.tsx} +14 -13
  228. package/src/components/{CommentsThreadContainer.tsx → CommentsPanel/CommentsThread.tsx} +12 -13
  229. package/src/components/CommentsPanel/index.ts +6 -0
  230. package/src/components/Lobby/Lobby.tsx +4 -4
  231. package/src/components/Media/VideoObject.stories.tsx +6 -6
  232. package/src/components/Media/VideoObject.tsx +1 -1
  233. package/src/components/{MessageContainer.tsx → MessagePanel/MessagePanel.tsx} +16 -16
  234. package/src/components/MessagePanel/index.ts +5 -0
  235. package/src/components/Participant/Participant.tsx +1 -1
  236. package/src/components/ResponsiveGrid/ResponsiveGrid.stories.tsx +4 -4
  237. package/src/components/ResponsiveGrid/ResponsiveGrid.tsx +8 -8
  238. package/src/components/ResponsiveGrid/ResponsiveGridItem.tsx +5 -5
  239. package/src/components/ResponsiveGrid/{ResponsiveContainer.stories.tsx → ResponsivePanel.stories.tsx} +7 -7
  240. package/src/components/ResponsiveGrid/{ResponsiveContainer.tsx → ResponsivePanel.tsx} +5 -5
  241. package/src/components/ResponsiveGrid/index.ts +1 -1
  242. package/src/components/index.ts +2 -10
  243. package/src/{components → containers/CallDebugPanel}/CallDebugPanel.tsx +4 -4
  244. package/src/containers/CallDebugPanel/index.ts +7 -0
  245. package/src/{components → containers/CallSidebar}/CallSidebar.tsx +4 -7
  246. package/src/containers/CallSidebar/index.ts +7 -0
  247. package/src/{components → containers/ChannelContainer}/ChannelContainer.stories.tsx +11 -13
  248. package/src/{components → containers/ChannelContainer}/ChannelContainer.tsx +58 -43
  249. package/src/containers/ChannelContainer/index.ts +7 -0
  250. package/src/{components/Chat.stories.tsx → containers/ChatContainer/ChatContainer.stories.tsx} +20 -18
  251. package/src/{components → containers/ChatContainer}/ChatContainer.tsx +27 -37
  252. package/src/containers/ChatContainer/index.ts +8 -0
  253. package/src/{components → containers/ThreadCompanion}/ThreadCompanion.tsx +50 -44
  254. package/src/containers/ThreadCompanion/index.ts +7 -0
  255. package/src/{components → containers/ThreadSettings}/ThreadSettings.tsx +5 -4
  256. package/src/containers/ThreadSettings/index.ts +7 -0
  257. package/src/containers/index.ts +12 -0
  258. package/src/{components/command-extension.ts → extensions/command.ts} +1 -1
  259. package/src/extensions/index.ts +1 -0
  260. package/src/functions/create-proposals.ts +10 -10
  261. package/src/functions/index.ts +5 -1
  262. package/src/hooks/analytics.ts +2 -1
  263. package/src/meta.ts +2 -2
  264. package/src/testing/stories.ts +2 -1
  265. package/src/translations.ts +1 -0
  266. package/src/types/Channel.ts +5 -3
  267. package/src/types/capabilities.ts +5 -5
  268. package/src/types/types.ts +18 -18
  269. package/dist/lib/browser/app-graph-builder-7C2QW32W.mjs.map +0 -7
  270. package/dist/lib/browser/blueprint-definition-UQ63QKQG.mjs +0 -17
  271. package/dist/lib/browser/blueprint-definition-UQ63QKQG.mjs.map +0 -7
  272. package/dist/lib/browser/call-manager-4P536YNX.mjs.map +0 -7
  273. package/dist/lib/browser/chunk-2FIHSX35.mjs.map +0 -7
  274. package/dist/lib/browser/chunk-DLO2G3DM.mjs.map +0 -7
  275. package/dist/lib/browser/chunk-YSHXWAL3.mjs +0 -1815
  276. package/dist/lib/browser/chunk-YSHXWAL3.mjs.map +0 -7
  277. package/dist/lib/browser/chunk-ZFLSTQSE.mjs.map +0 -7
  278. package/dist/lib/browser/markdown-QMJLRR6R.mjs.map +0 -7
  279. package/dist/lib/browser/operation-resolver-T63EP5TY.mjs.map +0 -7
  280. package/dist/lib/browser/react-root-56MJI77R.mjs.map +0 -7
  281. package/dist/lib/browser/react-surface-DMBHQOXJ.mjs.map +0 -7
  282. package/dist/lib/browser/repair-6OZ75AUU.mjs +0 -38
  283. package/dist/lib/browser/repair-6OZ75AUU.mjs.map +0 -7
  284. package/dist/lib/browser/settings-WZMJMML3.mjs.map +0 -7
  285. package/dist/lib/node-esm/app-graph-builder-JCSVFRVY.mjs.map +0 -7
  286. package/dist/lib/node-esm/blueprint-definition-MZZXXL37.mjs.map +0 -7
  287. package/dist/lib/node-esm/call-manager-FMLRR5S5.mjs.map +0 -7
  288. package/dist/lib/node-esm/chunk-7XQLXMX7.mjs +0 -1816
  289. package/dist/lib/node-esm/chunk-7XQLXMX7.mjs.map +0 -7
  290. package/dist/lib/node-esm/chunk-AQHPP6ZX.mjs.map +0 -7
  291. package/dist/lib/node-esm/chunk-KRBZBJRI.mjs.map +0 -7
  292. package/dist/lib/node-esm/chunk-WMWUXWAS.mjs.map +0 -7
  293. package/dist/lib/node-esm/markdown-L6LLQLIN.mjs.map +0 -7
  294. package/dist/lib/node-esm/operation-resolver-G6GZPBRP.mjs.map +0 -7
  295. package/dist/lib/node-esm/react-root-V4W4X5GL.mjs.map +0 -7
  296. package/dist/lib/node-esm/react-surface-ELDSTUA3.mjs.map +0 -7
  297. package/dist/lib/node-esm/repair-6777EPOM.mjs +0 -39
  298. package/dist/lib/node-esm/repair-6777EPOM.mjs.map +0 -7
  299. package/dist/lib/node-esm/settings-37CO3SNR.mjs.map +0 -7
  300. package/dist/types/src/capabilities/repair/index.d.ts +0 -3
  301. package/dist/types/src/capabilities/repair/index.d.ts.map +0 -1
  302. package/dist/types/src/capabilities/repair/repair.d.ts +0 -6
  303. package/dist/types/src/capabilities/repair/repair.d.ts.map +0 -1
  304. package/dist/types/src/components/CallDebugPanel.d.ts.map +0 -1
  305. package/dist/types/src/components/CallSidebar.d.ts.map +0 -1
  306. package/dist/types/src/components/ChannelContainer.d.ts.map +0 -1
  307. package/dist/types/src/components/ChannelContainer.stories.d.ts.map +0 -1
  308. package/dist/types/src/components/Chat.stories.d.ts.map +0 -1
  309. package/dist/types/src/components/ChatContainer.d.ts.map +0 -1
  310. package/dist/types/src/components/Comments.stories.d.ts.map +0 -1
  311. package/dist/types/src/components/CommentsContainer.d.ts +0 -13
  312. package/dist/types/src/components/CommentsContainer.d.ts.map +0 -1
  313. package/dist/types/src/components/CommentsThreadContainer.d.ts.map +0 -1
  314. package/dist/types/src/components/MessageContainer.d.ts +0 -15
  315. package/dist/types/src/components/MessageContainer.d.ts.map +0 -1
  316. package/dist/types/src/components/ResponsiveGrid/ResponsiveContainer.d.ts.map +0 -1
  317. package/dist/types/src/components/ResponsiveGrid/ResponsiveContainer.stories.d.ts.map +0 -1
  318. package/dist/types/src/components/ThreadCompanion.d.ts +0 -5
  319. package/dist/types/src/components/ThreadCompanion.d.ts.map +0 -1
  320. package/dist/types/src/components/ThreadSettings.d.ts.map +0 -1
  321. package/dist/types/src/components/command-extension.d.ts.map +0 -1
  322. package/dist/types/src/components/testing.d.ts.map +0 -1
  323. package/src/capabilities/repair/index.ts +0 -7
  324. package/src/capabilities/repair/repair.ts +0 -51
  325. /package/dist/lib/{node-esm/state-5R3TZJQE.mjs.map → browser/state-G35LOVYP.mjs.map} +0 -0
  326. /package/src/{components/testing.ts → testing/data.ts} +0 -0
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../src/blueprints/thread-blueprint.ts", "../../../src/functions/create-proposals.ts", "../../../src/functions/index.ts"],
4
+ "sourcesContent": ["//\n// Copyright 2025 DXOS.org\n//\n\nimport { type AppCapabilities } from '@dxos/app-toolkit';\nimport { Blueprint, Template } from '@dxos/blueprints';\nimport { trim } from '@dxos/util';\n\nimport { ThreadFunctions } from '../functions';\n\nconst BLUEPRINT_KEY = 'org.dxos.blueprint.thread';\n\nconst functions = Object.values(ThreadFunctions);\n\nconst make = () =>\n Blueprint.make({\n key: BLUEPRINT_KEY,\n name: 'Thread',\n tools: Blueprint.toolDefinitions({ functions }),\n instructions: Template.make({\n // TODO(wittjosiah): Move example to function input schema annotation.\n source: trim`\n You can update markdown documents via proposals.\n For each diff, respond with the smallest possible matching span.\n For example:\n - \"There is a tyop in this sentence.\"\n + \"There is a typo in this sentence.\"\n - \"This id goof.\"\n + \"This is good.\"\n `,\n }),\n });\n\nconst blueprint: AppCapabilities.BlueprintDefinition = {\n key: BLUEPRINT_KEY,\n functions,\n make,\n};\n\nexport default blueprint;\n", "//\n// Copyright 2025 DXOS.org\n//\n\nimport * as Array from 'effect/Array';\nimport * as Effect from 'effect/Effect';\nimport * as Function from 'effect/Function';\nimport * as Schema from 'effect/Schema';\n\nimport { computeDiffsWithCursors } from '@dxos/assistant';\nimport { Database, Obj, Ref, Relation } from '@dxos/echo';\nimport { createDocAccessor } from '@dxos/echo-db';\nimport { defineFunction } from '@dxos/functions';\nimport { Markdown } from '@dxos/plugin-markdown/types';\nimport { AnchoredTo, Message, Thread } from '@dxos/types';\n\nexport default defineFunction({\n key: 'org.dxos.function.thread.create-proposals',\n name: 'Create Proposals',\n description: 'Proposes a set of changes to a document.',\n inputSchema: Schema.Struct({\n doc: Ref.Ref(Markdown.Document).annotations({\n description: 'The ID of the document.',\n }),\n diffs: Schema.Array(Schema.String).annotations({\n description: 'The diffs to propose for the document.',\n }),\n }),\n outputSchema: Schema.Void,\n handler: Effect.fn(function* ({ data: { doc, diffs: _diffs } }) {\n const object = yield* Database.load(doc);\n const content = yield* Effect.promise(() => object.content.load());\n const accessor = createDocAccessor(content, ['content']);\n\n yield* Function.pipe(\n computeDiffsWithCursors(accessor, _diffs),\n Array.map(\n Effect.fnUntraced(function* ({ cursor, text }) {\n const proposal = Obj.make(Message.Message, {\n created: new Date().toISOString(),\n sender: { role: 'assistant' },\n blocks: [{ _tag: 'proposal', text }],\n });\n const thread = Thread.make({ name: 'Proposal', messages: [Ref.make(proposal)], status: 'active' });\n const relation = Relation.make(AnchoredTo.AnchoredTo, {\n [Relation.Source]: thread,\n [Relation.Target]: object,\n anchor: cursor,\n });\n yield* Database.add(thread);\n yield* Database.add(relation);\n }),\n ),\n Effect.allWith({ concurrency: 'unbounded' }),\n );\n }),\n});\n", "//\n// Copyright 2024 DXOS.org\n//\n\nimport CreateProposals from './create-proposals';\n\nexport const ThreadFunctions = {\n CreateProposals,\n};\n"],
5
+ "mappings": ";;;AAKA,SAASA,WAAWC,gBAAgB;AACpC,SAASC,YAAY;;;ACFrB,YAAYC,WAAW;AACvB,YAAYC,YAAY;AACxB,YAAYC,cAAc;AAC1B,YAAYC,YAAY;AAExB,SAASC,+BAA+B;AACxC,SAASC,UAAUC,KAAKC,KAAKC,gBAAgB;AAC7C,SAASC,yBAAyB;AAClC,SAASC,sBAAsB;AAC/B,SAASC,gBAAgB;AACzB,SAASC,YAAYC,SAASC,cAAc;AAE5C,IAAA,2BAAeC,eAAe;EAC5BC,KAAK;EACLC,MAAM;EACNC,aAAa;EACbC,aAAoBC,cAAO;IACzBC,KAAKC,IAAIA,IAAIC,SAASC,QAAQ,EAAEC,YAAY;MAC1CP,aAAa;IACf,CAAA;IACAQ,OAAcC,aAAaC,aAAM,EAAEH,YAAY;MAC7CP,aAAa;IACf,CAAA;EACF,CAAA;EACAW,cAAqBC;EACrBC,SAAgBC,UAAG,WAAW,EAAEC,MAAM,EAAEZ,KAAKK,OAAOQ,OAAM,EAAE,GAAE;AAC5D,UAAMC,SAAS,OAAOC,SAASC,KAAKhB,GAAAA;AACpC,UAAMiB,UAAU,OAAcC,eAAQ,MAAMJ,OAAOG,QAAQD,KAAI,CAAA;AAC/D,UAAMG,WAAWC,kBAAkBH,SAAS;MAAC;KAAU;AAEvD,WAAgBI,cACdC,wBAAwBH,UAAUN,MAAAA,GAC5BU,UACGC,kBAAW,WAAW,EAAEC,QAAQC,KAAI,GAAE;AAC3C,YAAMC,WAAWC,IAAIC,KAAKC,QAAQA,SAAS;QACzCC,UAAS,oBAAIC,KAAAA,GAAOC,YAAW;QAC/BC,QAAQ;UAAEC,MAAM;QAAY;QAC5BC,QAAQ;UAAC;YAAEC,MAAM;YAAYX;UAAK;;MACpC,CAAA;AACA,YAAMY,SAASC,OAAOV,KAAK;QAAEjC,MAAM;QAAY4C,UAAU;UAACvC,IAAI4B,KAAKF,QAAAA;;QAAYc,QAAQ;MAAS,CAAA;AAChG,YAAMC,WAAWC,SAASd,KAAKe,WAAWA,YAAY;QACpD,CAACD,SAASE,MAAM,GAAGP;QACnB,CAACK,SAASG,MAAM,GAAGhC;QACnBiC,QAAQtB;MACV,CAAA;AACA,aAAOV,SAASiC,IAAIV,MAAAA;AACpB,aAAOvB,SAASiC,IAAIN,QAAAA;IACtB,CAAA,CAAA,GAEKO,eAAQ;MAAEC,aAAa;IAAY,CAAA,CAAA;EAE9C,CAAA;AACF,CAAA;;;AClDO,IAAMC,kBAAkB;EAC7BC;AACF;;;AFEA,IAAMC,gBAAgB;AAEtB,IAAMC,YAAYC,OAAOC,OAAOC,eAAAA;AAEhC,IAAMC,OAAO,MACXC,UAAUD,KAAK;EACbE,KAAKP;EACLQ,MAAM;EACNC,OAAOH,UAAUI,gBAAgB;IAAET;EAAU,CAAA;EAC7CU,cAAcC,SAASP,KAAK;;IAE1BQ,QAAQC;;;;;;;;;EASV,CAAA;AACF,CAAA;AAEF,IAAMC,YAAiD;EACrDR,KAAKP;EACLC;EACAI;AACF;AAEA,IAAA,2BAAeU;",
6
+ "names": ["Blueprint", "Template", "trim", "Array", "Effect", "Function", "Schema", "computeDiffsWithCursors", "Database", "Obj", "Ref", "Relation", "createDocAccessor", "defineFunction", "Markdown", "AnchoredTo", "Message", "Thread", "defineFunction", "key", "name", "description", "inputSchema", "Struct", "doc", "Ref", "Markdown", "Document", "annotations", "diffs", "Array", "String", "outputSchema", "Void", "handler", "fn", "data", "_diffs", "object", "Database", "load", "content", "promise", "accessor", "createDocAccessor", "pipe", "computeDiffsWithCursors", "map", "fnUntraced", "cursor", "text", "proposal", "Obj", "make", "Message", "created", "Date", "toISOString", "sender", "role", "blocks", "_tag", "thread", "Thread", "messages", "status", "relation", "Relation", "AnchoredTo", "Source", "Target", "anchor", "add", "allWith", "concurrency", "ThreadFunctions", "CreateProposals", "BLUEPRINT_KEY", "functions", "Object", "values", "ThreadFunctions", "make", "Blueprint", "key", "name", "tools", "toolDefinitions", "instructions", "Template", "source", "trim", "blueprint"]
7
+ }
@@ -1,18 +1,7 @@
1
1
  import { createRequire } from 'node:module';const require = createRequire(import.meta.url);
2
2
  import {
3
- ThreadCapabilities,
4
3
  ThreadOperation
5
- } from "./chunk-WMWUXWAS.mjs";
6
- import "./chunk-HSLMI22Q.mjs";
7
-
8
- // src/capabilities/markdown/markdown.ts
9
- import { EditorView as EditorView2 } from "@codemirror/view";
10
- import * as Effect from "effect/Effect";
11
- import { Capability, Common } from "@dxos/app-framework";
12
- import { Obj as Obj2 } from "@dxos/echo";
13
- import { ATTENDABLE_PATH_SEPARATOR, DeckOperation } from "@dxos/plugin-deck/types";
14
- import { MarkdownCapabilities } from "@dxos/plugin-markdown";
15
- import { commentClickedEffect, commentsState, overlap } from "@dxos/ui-editor";
4
+ } from "./chunk-HT4D266X.mjs";
16
5
 
17
6
  // src/extensions/threads.ts
18
7
  import { EditorView } from "@codemirror/view";
@@ -141,71 +130,7 @@ var threads = (store, doc, invokePromise) => {
141
130
  ];
142
131
  };
143
132
 
144
- // src/capabilities/markdown/markdown.ts
145
- var markdown_default = Capability.makeModule(Effect.fnUntraced(function* () {
146
- const capabilities = yield* Capability.Service;
147
- return Capability.contributes(MarkdownCapabilities.Extensions, [
148
- ({ document: doc }) => {
149
- const { invokePromise } = capabilities.get(Common.Capability.OperationInvoker);
150
- const registry = capabilities.get(Common.Capability.AtomRegistry);
151
- const stateAtom = capabilities.get(ThreadCapabilities.State);
152
- return threads({
153
- registry,
154
- stateAtom
155
- }, doc, invokePromise);
156
- },
157
- ({ document: doc }) => {
158
- if (!doc) return [];
159
- const registry = capabilities.get(Common.Capability.AtomRegistry);
160
- const stateAtom = capabilities.get(ThreadCapabilities.State);
161
- return EditorView2.updateListener.of((update) => {
162
- if (update.docChanged || update.selectionSet) {
163
- const objectId = Obj2.getDXN(doc).toString();
164
- const overlaps = selectionOverlapsComment(update.state);
165
- const current = registry.get(stateAtom);
166
- registry.set(stateAtom, {
167
- ...current,
168
- toolbar: {
169
- ...current.toolbar,
170
- [objectId]: overlaps
171
- }
172
- });
173
- }
174
- });
175
- },
176
- ({ document: doc }) => {
177
- if (!doc) return [];
178
- const { invokePromise } = capabilities.get(Common.Capability.OperationInvoker);
179
- const id = Obj2.getDXN(doc).toString();
180
- return EditorView2.updateListener.of((update) => {
181
- update.transactions.forEach((transaction) => {
182
- transaction.effects.forEach(async (effect) => {
183
- if (effect.is(commentClickedEffect)) {
184
- void invokePromise(DeckOperation.ChangeCompanion, {
185
- primary: id,
186
- companion: `${id}${ATTENDABLE_PATH_SEPARATOR}comments`
187
- });
188
- }
189
- });
190
- });
191
- });
192
- }
193
- ]);
194
- }));
195
- var selectionOverlapsComment = (state) => {
196
- const commentState = state.field(commentsState, false);
197
- if (commentState === void 0) {
198
- return false;
199
- }
200
- const { selection } = state;
201
- for (const range of selection.ranges) {
202
- if (commentState.comments.some(({ range: commentRange }) => overlap(commentRange, range))) {
203
- return true;
204
- }
205
- }
206
- return false;
207
- };
208
133
  export {
209
- markdown_default as default
134
+ threads
210
135
  };
211
- //# sourceMappingURL=markdown-L6LLQLIN.mjs.map
136
+ //# sourceMappingURL=chunk-SV74KS5H.mjs.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../src/extensions/threads.ts"],
4
+ "sourcesContent": ["//\n// Copyright 2024 DXOS.org\n//\n\nimport { type Extension } from '@codemirror/state';\nimport { EditorView } from '@codemirror/view';\nimport { type Atom, type Registry } from '@effect-atom/atom-react';\n\nimport { Filter, Obj, Query, Relation } from '@dxos/echo';\nimport { createDocAccessor, getTextInRange } from '@dxos/echo-db';\nimport { type OperationInvoker } from '@dxos/operation';\nimport { type Markdown } from '@dxos/plugin-markdown/types';\nimport { AnchoredTo, Thread } from '@dxos/types';\nimport { comments, createExternalCommentSync } from '@dxos/ui-editor';\n\nimport { ThreadOperation, type ThreadState } from '../types';\n\n// TODO(burdon): Factor out.\nconst getName = (doc: Markdown.Document, anchor: string): string | undefined => {\n if (doc.content) {\n const [start, end] = anchor.split(':');\n return getTextInRange(createDocAccessor(doc.content.target!, ['content']), start, end);\n }\n};\n\nexport type ThreadStore = {\n registry: Registry.Registry;\n stateAtom: Atom.Writable<ThreadState>;\n};\n\n/**\n * Construct plugins.\n */\nexport const threads = (\n store: ThreadStore,\n doc?: Markdown.Document,\n invokePromise?: OperationInvoker.OperationInvoker['invokePromise'],\n): Extension => {\n const db = doc && Obj.getDatabase(doc);\n if (!doc || !db || !invokePromise) {\n // Include no-op comments extension here to ensure that the facets are always present when they are expected.\n // TODO(wittjosiah): The Editor should only look for these facets when comments are available.\n return [comments()];\n }\n\n const { registry, stateAtom } = store;\n const objectId = Obj.getDXN(doc).toString();\n const query = db.query(Query.select(Filter.id(doc.id)).targetOf(AnchoredTo.AnchoredTo));\n\n // Get current anchors by combining query results with store drafts.\n const getAnchors = () =>\n query.results\n .filter((anchor) => {\n const thread = Relation.getSource(anchor);\n return Obj.instanceOf(Thread.Thread, thread) && thread.status !== 'resolved';\n })\n .concat(registry.get(stateAtom).drafts[objectId] ?? []);\n\n return [\n EditorView.domEventHandlers({\n destroy: () => {\n // Note: cleanup functions for subscriptions are handled by createExternalCommentSync.\n },\n }),\n\n EditorView.updateListener.of((update) => {\n if (update.docChanged) {\n getAnchors().forEach((anchor) => {\n if (anchor.anchor) {\n // Only update if the name has changed, otherwise this will cause an infinite loop.\n // Skip if the name is empty; this means comment text was deleted, but thread name should remain.\n const name = getName(doc, anchor.anchor);\n const thread = Relation.getSource(anchor) as Thread.Thread;\n if (name && name !== thread.name) {\n Obj.change(thread, (t) => {\n t.name = name;\n });\n }\n }\n });\n }\n }),\n\n createExternalCommentSync(\n objectId,\n (sink) => {\n // Subscribe to both query changes and store state changes.\n const unsubQuery = query.subscribe(sink);\n const unsubStore = registry.subscribe(stateAtom, sink);\n return () => {\n unsubQuery();\n unsubStore();\n };\n },\n () =>\n getAnchors()\n .filter((anchor) => anchor.anchor)\n .map((anchor) => ({\n id: Obj.getDXN(Relation.getSource(anchor)).toString(),\n cursor: anchor.anchor,\n })),\n ),\n\n comments({\n id: objectId,\n onCreate: ({ cursor }) => {\n const name = getName(doc, cursor);\n void invokePromise(ThreadOperation.Create, {\n anchor: cursor,\n name,\n subject: doc,\n });\n },\n onDelete: ({ id }) => {\n const drafts = registry.get(stateAtom).drafts[objectId];\n if (drafts) {\n const index = drafts.findIndex((draft) => Relation.getDXN(draft).toString() === id);\n if (index !== -1) {\n const current = registry.get(stateAtom);\n registry.set(stateAtom, {\n ...current,\n drafts: {\n ...current.drafts,\n [objectId]: current.drafts[objectId]?.filter((_, i) => i !== index),\n },\n });\n }\n }\n\n const thread = query.results.find((object) => Relation.getSource(object).id === id);\n if (thread) {\n Relation.change(thread, (t) => {\n t.anchor = undefined;\n });\n }\n },\n onUpdate: ({ id, cursor }) => {\n const draft = registry.get(stateAtom).drafts[objectId]?.find((d) => Relation.getDXN(d).toString() === id);\n if (draft) {\n const thread = Relation.getSource(draft) as Thread.Thread;\n Obj.change(thread, (t) => {\n t.name = getName(doc, cursor);\n });\n Relation.change(draft, (d) => {\n d.anchor = cursor;\n });\n }\n\n const relation = query.results.find((object) => Relation.getSource(object).id === id);\n if (relation) {\n const thread = Relation.getSource(relation);\n if (Obj.instanceOf(Thread.Thread, thread)) {\n Obj.change(thread, (t) => {\n t.name = getName(doc, cursor);\n });\n Relation.change(relation, (r) => {\n r.anchor = cursor;\n });\n }\n }\n },\n onSelect: ({ selection }) => {\n const current = selection.current ?? selection.closest;\n if (current) {\n void invokePromise(ThreadOperation.Select, { current });\n }\n },\n }),\n ];\n};\n"],
5
+ "mappings": ";;;;;;AAKA,SAASA,kBAAkB;AAG3B,SAASC,QAAQC,KAAKC,OAAOC,gBAAgB;AAC7C,SAASC,mBAAmBC,sBAAsB;AAGlD,SAASC,YAAYC,cAAc;AACnC,SAASC,UAAUC,iCAAiC;AAKpD,IAAMC,UAAU,CAACC,KAAwBC,WAAAA;AACvC,MAAID,IAAIE,SAAS;AACf,UAAM,CAACC,OAAOC,GAAAA,IAAOH,OAAOI,MAAM,GAAA;AAClC,WAAOC,eAAeC,kBAAkBP,IAAIE,QAAQM,QAAS;MAAC;KAAU,GAAGL,OAAOC,GAAAA;EACpF;AACF;AAUO,IAAMK,UAAU,CACrBC,OACAV,KACAW,kBAAAA;AAEA,QAAMC,KAAKZ,OAAOa,IAAIC,YAAYd,GAAAA;AAClC,MAAI,CAACA,OAAO,CAACY,MAAM,CAACD,eAAe;AAGjC,WAAO;MAACI,SAAAA;;EACV;AAEA,QAAM,EAAEC,UAAUC,UAAS,IAAKP;AAChC,QAAMQ,WAAWL,IAAIM,OAAOnB,GAAAA,EAAKoB,SAAQ;AACzC,QAAMC,QAAQT,GAAGS,MAAMC,MAAMC,OAAOC,OAAOC,GAAGzB,IAAIyB,EAAE,CAAA,EAAGC,SAASC,WAAWA,UAAU,CAAA;AAGrF,QAAMC,aAAa,MACjBP,MAAMQ,QACHC,OAAO,CAAC7B,WAAAA;AACP,UAAM8B,SAASC,SAASC,UAAUhC,MAAAA;AAClC,WAAOY,IAAIqB,WAAWC,OAAOA,QAAQJ,MAAAA,KAAWA,OAAOK,WAAW;EACpE,CAAA,EACCC,OAAOrB,SAASsB,IAAIrB,SAAAA,EAAWsB,OAAOrB,QAAAA,KAAa,CAAA,CAAE;AAE1D,SAAO;IACLsB,WAAWC,iBAAiB;MAC1BC,SAAS,MAAA;MAET;IACF,CAAA;IAEAF,WAAWG,eAAeC,GAAG,CAACC,WAAAA;AAC5B,UAAIA,OAAOC,YAAY;AACrBlB,mBAAAA,EAAamB,QAAQ,CAAC9C,WAAAA;AACpB,cAAIA,OAAOA,QAAQ;AAGjB,kBAAM+C,OAAOjD,QAAQC,KAAKC,OAAOA,MAAM;AACvC,kBAAM8B,SAASC,SAASC,UAAUhC,MAAAA;AAClC,gBAAI+C,QAAQA,SAASjB,OAAOiB,MAAM;AAChCnC,kBAAIoC,OAAOlB,QAAQ,CAACmB,MAAAA;AAClBA,kBAAEF,OAAOA;cACX,CAAA;YACF;UACF;QACF,CAAA;MACF;IACF,CAAA;IAEAG,0BACEjC,UACA,CAACkC,SAAAA;AAEC,YAAMC,aAAahC,MAAMiC,UAAUF,IAAAA;AACnC,YAAMG,aAAavC,SAASsC,UAAUrC,WAAWmC,IAAAA;AACjD,aAAO,MAAA;AACLC,mBAAAA;AACAE,mBAAAA;MACF;IACF,GACA,MACE3B,WAAAA,EACGE,OAAO,CAAC7B,WAAWA,OAAOA,MAAM,EAChCuD,IAAI,CAACvD,YAAY;MAChBwB,IAAIZ,IAAIM,OAAOa,SAASC,UAAUhC,MAAAA,CAAAA,EAASmB,SAAQ;MACnDqC,QAAQxD,OAAOA;IACjB,EAAA,CAAA;IAGNc,SAAS;MACPU,IAAIP;MACJwC,UAAU,CAAC,EAAED,OAAM,MAAE;AACnB,cAAMT,OAAOjD,QAAQC,KAAKyD,MAAAA;AAC1B,aAAK9C,cAAcgD,gBAAgBC,QAAQ;UACzC3D,QAAQwD;UACRT;UACAa,SAAS7D;QACX,CAAA;MACF;MACA8D,UAAU,CAAC,EAAErC,GAAE,MAAE;AACf,cAAMc,SAASvB,SAASsB,IAAIrB,SAAAA,EAAWsB,OAAOrB,QAAAA;AAC9C,YAAIqB,QAAQ;AACV,gBAAMwB,QAAQxB,OAAOyB,UAAU,CAACC,UAAUjC,SAASb,OAAO8C,KAAAA,EAAO7C,SAAQ,MAAOK,EAAAA;AAChF,cAAIsC,UAAU,IAAI;AAChB,kBAAMG,UAAUlD,SAASsB,IAAIrB,SAAAA;AAC7BD,qBAASmD,IAAIlD,WAAW;cACtB,GAAGiD;cACH3B,QAAQ;gBACN,GAAG2B,QAAQ3B;gBACX,CAACrB,QAAAA,GAAWgD,QAAQ3B,OAAOrB,QAAAA,GAAWY,OAAO,CAACsC,GAAGC,MAAMA,MAAMN,KAAAA;cAC/D;YACF,CAAA;UACF;QACF;AAEA,cAAMhC,SAASV,MAAMQ,QAAQyC,KAAK,CAACC,WAAWvC,SAASC,UAAUsC,MAAAA,EAAQ9C,OAAOA,EAAAA;AAChF,YAAIM,QAAQ;AACVC,mBAASiB,OAAOlB,QAAQ,CAACmB,MAAAA;AACvBA,cAAEjD,SAASuE;UACb,CAAA;QACF;MACF;MACAC,UAAU,CAAC,EAAEhD,IAAIgC,OAAM,MAAE;AACvB,cAAMQ,QAAQjD,SAASsB,IAAIrB,SAAAA,EAAWsB,OAAOrB,QAAAA,GAAWoD,KAAK,CAACI,MAAM1C,SAASb,OAAOuD,CAAAA,EAAGtD,SAAQ,MAAOK,EAAAA;AACtG,YAAIwC,OAAO;AACT,gBAAMlC,SAASC,SAASC,UAAUgC,KAAAA;AAClCpD,cAAIoC,OAAOlB,QAAQ,CAACmB,MAAAA;AAClBA,cAAEF,OAAOjD,QAAQC,KAAKyD,MAAAA;UACxB,CAAA;AACAzB,mBAASiB,OAAOgB,OAAO,CAACS,MAAAA;AACtBA,cAAEzE,SAASwD;UACb,CAAA;QACF;AAEA,cAAMkB,WAAWtD,MAAMQ,QAAQyC,KAAK,CAACC,WAAWvC,SAASC,UAAUsC,MAAAA,EAAQ9C,OAAOA,EAAAA;AAClF,YAAIkD,UAAU;AACZ,gBAAM5C,SAASC,SAASC,UAAU0C,QAAAA;AAClC,cAAI9D,IAAIqB,WAAWC,OAAOA,QAAQJ,MAAAA,GAAS;AACzClB,gBAAIoC,OAAOlB,QAAQ,CAACmB,MAAAA;AAClBA,gBAAEF,OAAOjD,QAAQC,KAAKyD,MAAAA;YACxB,CAAA;AACAzB,qBAASiB,OAAO0B,UAAU,CAACC,MAAAA;AACzBA,gBAAE3E,SAASwD;YACb,CAAA;UACF;QACF;MACF;MACAoB,UAAU,CAAC,EAAEC,UAAS,MAAE;AACtB,cAAMZ,UAAUY,UAAUZ,WAAWY,UAAUC;AAC/C,YAAIb,SAAS;AACX,eAAKvD,cAAcgD,gBAAgBqB,QAAQ;YAAEd;UAAQ,CAAA;QACvD;MACF;IACF,CAAA;;AAEJ;",
6
+ "names": ["EditorView", "Filter", "Obj", "Query", "Relation", "createDocAccessor", "getTextInRange", "AnchoredTo", "Thread", "comments", "createExternalCommentSync", "getName", "doc", "anchor", "content", "start", "end", "split", "getTextInRange", "createDocAccessor", "target", "threads", "store", "invokePromise", "db", "Obj", "getDatabase", "comments", "registry", "stateAtom", "objectId", "getDXN", "toString", "query", "Query", "select", "Filter", "id", "targetOf", "AnchoredTo", "getAnchors", "results", "filter", "thread", "Relation", "getSource", "instanceOf", "Thread", "status", "concat", "get", "drafts", "EditorView", "domEventHandlers", "destroy", "updateListener", "of", "update", "docChanged", "forEach", "name", "change", "t", "createExternalCommentSync", "sink", "unsubQuery", "subscribe", "unsubStore", "map", "cursor", "onCreate", "ThreadOperation", "Create", "subject", "onDelete", "index", "findIndex", "draft", "current", "set", "_", "i", "find", "object", "undefined", "onUpdate", "d", "relation", "r", "onSelect", "selection", "closest", "Select"]
7
+ }
@@ -6,7 +6,7 @@ import {
6
6
 
7
7
  // src/hooks/analytics.ts
8
8
  import { useCallback } from "react";
9
- import { useOperationInvoker } from "@dxos/app-framework/react";
9
+ import { useOperationInvoker } from "@dxos/app-framework/ui";
10
10
  import { Obj } from "@dxos/echo";
11
11
  import { ObservabilityOperation } from "@dxos/plugin-observability/types";
12
12
  import { useOnTransition } from "@dxos/react-ui";
@@ -182,4 +182,4 @@ export {
182
182
  useStatus,
183
183
  useVideoStreamTrack
184
184
  };
185
- //# sourceMappingURL=chunk-KRBZBJRI.mjs.map
185
+ //# sourceMappingURL=chunk-YN2Y7GPW.mjs.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../src/hooks/analytics.ts", "../../../src/hooks/useBlackCanvasStreamTrack.tsx", "../../../src/hooks/useDebugMode.ts", "../../../src/hooks/useInaudibleAudioStreamTrack.tsx", "../../../src/hooks/useStatus.ts", "../../../src/hooks/useVideoStreamTrack.tsx"],
4
+ "sourcesContent": ["//\n// Copyright 2024 DXOS.org\n//\n\nimport { useCallback } from 'react';\n\nimport { useOperationInvoker } from '@dxos/app-framework/ui';\nimport { Obj } from '@dxos/echo';\nimport { ObservabilityOperation } from '@dxos/plugin-observability/types';\nimport { useOnTransition } from '@dxos/react-ui';\nimport { type ContentBlock } from '@dxos/types';\n\nexport const useOnEditAnalytics = (\n message: any | undefined,\n textBlock: ContentBlock.Text | undefined,\n editing: boolean,\n) => {\n const { invokePromise } = useOperationInvoker();\n\n const onEdit = useCallback(() => {\n if (!message || !textBlock) {\n return;\n }\n\n const db = Obj.getDatabase(message);\n if (!db) {\n return;\n }\n\n void invokePromise(ObservabilityOperation.SendEvent, {\n name: 'threads.message.update',\n properties: {\n spaceId: db.spaceId,\n messageId: message.id,\n messageLength: textBlock?.text.length,\n },\n });\n }, [invokePromise, message, textBlock]);\n\n useOnTransition(editing, true, false, onEdit);\n};\n", "//\n// Copyright 2025 DXOS.org\n//\n\nimport { useEffect, useState } from 'react';\n\nimport { scheduleTask } from '@dxos/async';\nimport { Context } from '@dxos/context';\n\nimport { createBlackCanvasStreamTrack } from '../calls/util/stub-media-streams';\n\nexport const useBlackCanvasStreamTrack = () => {\n const [blackCanvasStreamTrack, setBlackCanvasStreamTrack] = useState<MediaStreamTrack | undefined>(undefined);\n useEffect(() => {\n const ctx = new Context();\n scheduleTask(ctx, async () => {\n const blackCanvasStreamTrack = await createBlackCanvasStreamTrack({ ctx, width: 720, height: 480 });\n setBlackCanvasStreamTrack(blackCanvasStreamTrack);\n });\n\n return () => {\n void ctx.dispose();\n };\n }, []);\n\n return blackCanvasStreamTrack;\n};\n", "//\n// Copyright 2025 DXOS.org\n//\n\nimport { useEffect, useState } from 'react';\n\n// TODO(burdon): Standardize across plugins/composer.\nexport const useDebugMode = () => {\n const [enabled, setEnabled] = useState(false);\n useEffect(() => {\n const handler = (ev: KeyboardEvent) => {\n if (ev.key.toLowerCase() === 'd' && ev.ctrlKey) {\n ev.preventDefault();\n setEnabled(!enabled);\n }\n };\n\n document.addEventListener('keypress', handler);\n return () => {\n document.removeEventListener('keypress', handler);\n };\n }, [enabled]);\n\n return enabled;\n};\n", "//\n// Copyright 2025 DXOS.org\n//\n\nimport { useEffect, useState } from 'react';\n\nimport { scheduleTask } from '@dxos/async';\nimport { Context } from '@dxos/context';\n\nimport { createInaudibleAudioStreamTrack } from '../calls/util/stub-media-streams';\n\nexport const useInaudibleAudioStreamTrack = () => {\n const [audioStreamTrack, setAudioStreamTrack] = useState<MediaStreamTrack | undefined>(undefined);\n useEffect(() => {\n const ctx = new Context();\n scheduleTask(ctx, async () => {\n const audioStreamTrack = await createInaudibleAudioStreamTrack({ ctx });\n setAudioStreamTrack(audioStreamTrack);\n });\n\n return () => {\n void ctx.dispose();\n };\n }, []);\n\n return audioStreamTrack;\n};\n", "//\n// Copyright 2024 DXOS.org\n//\n\nimport { useEffect, useState } from 'react';\n\nimport { type Space } from '@dxos/react-client/echo';\n\n// TODO(burdon): Generalize and factor out.\nexport const useStatus = (space?: Space, channel?: string) => {\n const [processing, setProcessing] = useState(false);\n useEffect(() => {\n if (!space || !channel) {\n return;\n }\n\n const unsubscribe = space.listen(`status/${channel}`, (status) => {\n const { event } = status.payload ?? {};\n setProcessing(event === 'processing');\n });\n\n const t = setInterval(() => {\n setProcessing((prev: any) => {\n if (typeof prev?.ts === 'number' && Date.now() - prev.ts > 30_000) {\n return undefined;\n } else {\n return prev;\n }\n });\n }, 1_000);\n\n return () => {\n unsubscribe();\n clearInterval(t);\n };\n }, [space, channel]);\n\n return processing;\n};\n", "//\n// Copyright 2025 DXOS.org\n//\n\nimport { type RefObject, useEffect, useRef, useState } from 'react';\n\nexport const useVideoStreamTrack = (videoElement: RefObject<HTMLVideoElement | null>, videoSrc: string) => {\n // Get video stream track.\n const [videoStreamTrack, setVideoStreamTrack] = useState<MediaStreamTrack | undefined>(undefined);\n const hadRun = useRef(false);\n useEffect(() => {\n // This is done to capture only one video stream.\n if (!videoElement.current || hadRun.current || !videoSrc) {\n return;\n }\n hadRun.current = true;\n videoElement.current.addEventListener('playing', () => {\n if (videoStreamTrack) {\n return;\n }\n const stream = (videoElement.current as any).captureStream();\n const track = stream.getTracks()[0];\n if (track && !videoStreamTrack) {\n setVideoStreamTrack(track);\n }\n stream.onaddtrack = (event: MediaStreamTrackEvent) => {\n if (event.track.kind === 'video' && !videoStreamTrack) {\n setVideoStreamTrack(event.track);\n }\n };\n });\n videoElement.current.src = videoSrc;\n }, [videoElement.current, videoSrc]);\n\n return videoStreamTrack;\n};\n"],
5
+ "mappings": ";;;;;;;AAIA,SAASA,mBAAmB;AAE5B,SAASC,2BAA2B;AACpC,SAASC,WAAW;AACpB,SAASC,8BAA8B;AACvC,SAASC,uBAAuB;AAGzB,IAAMC,qBAAqB,CAChCC,SACAC,WACAC,YAAAA;AAEA,QAAM,EAAEC,cAAa,IAAKC,oBAAAA;AAE1B,QAAMC,SAASC,YAAY,MAAA;AACzB,QAAI,CAACN,WAAW,CAACC,WAAW;AAC1B;IACF;AAEA,UAAMM,KAAKC,IAAIC,YAAYT,OAAAA;AAC3B,QAAI,CAACO,IAAI;AACP;IACF;AAEA,SAAKJ,cAAcO,uBAAuBC,WAAW;MACnDC,MAAM;MACNC,YAAY;QACVC,SAASP,GAAGO;QACZC,WAAWf,QAAQgB;QACnBC,eAAehB,WAAWiB,KAAKC;MACjC;IACF,CAAA;EACF,GAAG;IAAChB;IAAeH;IAASC;GAAU;AAEtCmB,kBAAgBlB,SAAS,MAAM,OAAOG,MAAAA;AACxC;;;ACpCA,SAASgB,WAAWC,gBAAgB;AAEpC,SAASC,oBAAoB;AAC7B,SAASC,eAAe;;AAIjB,IAAMC,4BAA4B,MAAA;AACvC,QAAM,CAACC,wBAAwBC,yBAAAA,IAA6BC,SAAuCC,MAAAA;AACnGC,YAAU,MAAA;AACR,UAAMC,MAAM,IAAIC,QAAAA,QAAAA;;;;AAChBC,iBAAaF,KAAK,YAAA;AAChB,YAAML,0BAAyB,MAAMQ,6BAA6B;QAAEH;QAAKI,OAAO;QAAKC,QAAQ;MAAI,CAAA;AACjGT,gCAA0BD,uBAAAA;IAC5B,CAAA;AAEA,WAAO,MAAA;AACL,WAAKK,IAAIM,QAAO;IAClB;EACF,GAAG,CAAA,CAAE;AAEL,SAAOX;AACT;;;ACtBA,SAASY,aAAAA,YAAWC,YAAAA,iBAAgB;AAG7B,IAAMC,eAAe,MAAA;AAC1B,QAAM,CAACC,SAASC,UAAAA,IAAcC,UAAS,KAAA;AACvCC,EAAAA,WAAU,MAAA;AACR,UAAMC,UAAU,CAACC,OAAAA;AACf,UAAIA,GAAGC,IAAIC,YAAW,MAAO,OAAOF,GAAGG,SAAS;AAC9CH,WAAGI,eAAc;AACjBR,mBAAW,CAACD,OAAAA;MACd;IACF;AAEAU,aAASC,iBAAiB,YAAYP,OAAAA;AACtC,WAAO,MAAA;AACLM,eAASE,oBAAoB,YAAYR,OAAAA;IAC3C;EACF,GAAG;IAACJ;GAAQ;AAEZ,SAAOA;AACT;;;ACpBA,SAASa,aAAAA,YAAWC,YAAAA,iBAAgB;AAEpC,SAASC,gBAAAA,qBAAoB;AAC7B,SAASC,WAAAA,gBAAe;;AAIjB,IAAMC,+BAA+B,MAAA;AAC1C,QAAM,CAACC,kBAAkBC,mBAAAA,IAAuBC,UAAuCC,MAAAA;AACvFC,EAAAA,WAAU,MAAA;AACR,UAAMC,MAAM,IAAIC,SAAAA,QAAAA;;;;AAChBC,IAAAA,cAAaF,KAAK,YAAA;AAChB,YAAML,oBAAmB,MAAMQ,gCAAgC;QAAEH;MAAI,CAAA;AACrEJ,0BAAoBD,iBAAAA;IACtB,CAAA;AAEA,WAAO,MAAA;AACL,WAAKK,IAAII,QAAO;IAClB;EACF,GAAG,CAAA,CAAE;AAEL,SAAOT;AACT;;;ACtBA,SAASU,aAAAA,YAAWC,YAAAA,iBAAgB;AAK7B,IAAMC,YAAY,CAACC,OAAeC,YAAAA;AACvC,QAAM,CAACC,YAAYC,aAAAA,IAAiBC,UAAS,KAAA;AAC7CC,EAAAA,WAAU,MAAA;AACR,QAAI,CAACL,SAAS,CAACC,SAAS;AACtB;IACF;AAEA,UAAMK,cAAcN,MAAMO,OAAO,UAAUN,OAAAA,IAAW,CAACO,WAAAA;AACrD,YAAM,EAAEC,MAAK,IAAKD,OAAOE,WAAW,CAAC;AACrCP,oBAAcM,UAAU,YAAA;IAC1B,CAAA;AAEA,UAAME,IAAIC,YAAY,MAAA;AACpBT,oBAAc,CAACU,SAAAA;AACb,YAAI,OAAOA,MAAMC,OAAO,YAAYC,KAAKC,IAAG,IAAKH,KAAKC,KAAK,KAAQ;AACjE,iBAAOG;QACT,OAAO;AACL,iBAAOJ;QACT;MACF,CAAA;IACF,GAAG,GAAA;AAEH,WAAO,MAAA;AACLP,kBAAAA;AACAY,oBAAcP,CAAAA;IAChB;EACF,GAAG;IAACX;IAAOC;GAAQ;AAEnB,SAAOC;AACT;;;AClCA,SAAyBiB,aAAAA,YAAWC,QAAQC,YAAAA,iBAAgB;AAErD,IAAMC,sBAAsB,CAACC,cAAkDC,aAAAA;AAEpF,QAAM,CAACC,kBAAkBC,mBAAAA,IAAuBC,UAAuCC,MAAAA;AACvF,QAAMC,SAASC,OAAO,KAAA;AACtBC,EAAAA,WAAU,MAAA;AAER,QAAI,CAACR,aAAaS,WAAWH,OAAOG,WAAW,CAACR,UAAU;AACxD;IACF;AACAK,WAAOG,UAAU;AACjBT,iBAAaS,QAAQC,iBAAiB,WAAW,MAAA;AAC/C,UAAIR,kBAAkB;AACpB;MACF;AACA,YAAMS,SAAUX,aAAaS,QAAgBG,cAAa;AAC1D,YAAMC,QAAQF,OAAOG,UAAS,EAAG,CAAA;AACjC,UAAID,SAAS,CAACX,kBAAkB;AAC9BC,4BAAoBU,KAAAA;MACtB;AACAF,aAAOI,aAAa,CAACC,UAAAA;AACnB,YAAIA,MAAMH,MAAMI,SAAS,WAAW,CAACf,kBAAkB;AACrDC,8BAAoBa,MAAMH,KAAK;QACjC;MACF;IACF,CAAA;AACAb,iBAAaS,QAAQS,MAAMjB;EAC7B,GAAG;IAACD,aAAaS;IAASR;GAAS;AAEnC,SAAOC;AACT;",
6
+ "names": ["useCallback", "useOperationInvoker", "Obj", "ObservabilityOperation", "useOnTransition", "useOnEditAnalytics", "message", "textBlock", "editing", "invokePromise", "useOperationInvoker", "onEdit", "useCallback", "db", "Obj", "getDatabase", "ObservabilityOperation", "SendEvent", "name", "properties", "spaceId", "messageId", "id", "messageLength", "text", "length", "useOnTransition", "useEffect", "useState", "scheduleTask", "Context", "useBlackCanvasStreamTrack", "blackCanvasStreamTrack", "setBlackCanvasStreamTrack", "useState", "undefined", "useEffect", "ctx", "Context", "scheduleTask", "createBlackCanvasStreamTrack", "width", "height", "dispose", "useEffect", "useState", "useDebugMode", "enabled", "setEnabled", "useState", "useEffect", "handler", "ev", "key", "toLowerCase", "ctrlKey", "preventDefault", "document", "addEventListener", "removeEventListener", "useEffect", "useState", "scheduleTask", "Context", "useInaudibleAudioStreamTrack", "audioStreamTrack", "setAudioStreamTrack", "useState", "undefined", "useEffect", "ctx", "Context", "scheduleTask", "createInaudibleAudioStreamTrack", "dispose", "useEffect", "useState", "useStatus", "space", "channel", "processing", "setProcessing", "useState", "useEffect", "unsubscribe", "listen", "status", "event", "payload", "t", "setInterval", "prev", "ts", "Date", "now", "undefined", "clearInterval", "useEffect", "useRef", "useState", "useVideoStreamTrack", "videoElement", "videoSrc", "videoStreamTrack", "setVideoStreamTrack", "useState", "undefined", "hadRun", "useRef", "useEffect", "current", "addEventListener", "stream", "captureStream", "track", "getTracks", "onaddtrack", "event", "kind", "src"]
7
+ }
@@ -6,7 +6,7 @@ import {
6
6
  useOnEditAnalytics,
7
7
  useStatus,
8
8
  useVideoStreamTrack
9
- } from "./chunk-KRBZBJRI.mjs";
9
+ } from "./chunk-YN2Y7GPW.mjs";
10
10
  import {
11
11
  CALLS_URL,
12
12
  CallManager,
@@ -27,19 +27,22 @@ import {
27
27
  } from "./chunk-VBI32FGI.mjs";
28
28
  import {
29
29
  Channel_exports,
30
- THREAD_ITEM,
31
30
  ThreadCapabilities,
32
- ThreadOperation,
31
+ ThreadOperation
32
+ } from "./chunk-HT4D266X.mjs";
33
+ import {
34
+ THREAD_ITEM,
33
35
  meta
34
- } from "./chunk-WMWUXWAS.mjs";
36
+ } from "./chunk-N2T5KLKB.mjs";
35
37
  import "./chunk-HSLMI22Q.mjs";
36
38
 
37
39
  // src/ThreadPlugin.tsx
38
40
  import * as Effect from "effect/Effect";
39
- import { Capability as Capability11, Common, Plugin } from "@dxos/app-framework";
41
+ import { Capability as Capability10, Plugin } from "@dxos/app-framework";
42
+ import { AppActivationEvents, AppPlugin } from "@dxos/app-toolkit";
40
43
  import { Ref, Type as Type2 } from "@dxos/echo";
41
44
  import { Operation } from "@dxos/operation";
42
- import { ClientCapabilities, ClientEvents } from "@dxos/plugin-client";
45
+ import { ClientEvents } from "@dxos/plugin-client";
43
46
  import { MarkdownEvents } from "@dxos/plugin-markdown";
44
47
  import { SpaceCapabilities, SpaceEvents } from "@dxos/plugin-space";
45
48
  import { translations as threadTranslations } from "@dxos/react-ui-thread";
@@ -47,43 +50,39 @@ import { AnchoredTo, Message, Thread } from "@dxos/types";
47
50
 
48
51
  // src/capabilities/app-graph-builder/index.ts
49
52
  import { Capability } from "@dxos/app-framework";
50
- var AppGraphBuilder = Capability.lazy("AppGraphBuilder", () => import("./app-graph-builder-JCSVFRVY.mjs"));
53
+ var AppGraphBuilder = Capability.lazy("AppGraphBuilder", () => import("./app-graph-builder-BIAIWS2E.mjs"));
51
54
 
52
55
  // src/capabilities/blueprint-definition/index.ts
53
56
  import { Capability as Capability2 } from "@dxos/app-framework";
54
- var BlueprintDefinition = Capability2.lazy("BlueprintDefinition", () => import("./blueprint-definition-MZZXXL37.mjs"));
57
+ var BlueprintDefinition = Capability2.lazy("BlueprintDefinition", () => import("./blueprint-definition-SABUBK23.mjs"));
55
58
 
56
59
  // src/capabilities/call-manager/index.ts
57
60
  import { Capability as Capability3 } from "@dxos/app-framework";
58
- var CallManager2 = Capability3.lazy("CallManager", () => import("./call-manager-FMLRR5S5.mjs"));
61
+ var CallManager2 = Capability3.lazy("CallManager", () => import("./call-manager-5JYDNYEA.mjs"));
59
62
 
60
63
  // src/capabilities/markdown/index.ts
61
64
  import { Capability as Capability4 } from "@dxos/app-framework";
62
- var Markdown = Capability4.lazy("Markdown", () => import("./markdown-L6LLQLIN.mjs"));
65
+ var Markdown = Capability4.lazy("Markdown", () => import("./markdown-YUI4GVUF.mjs"));
63
66
 
64
67
  // src/capabilities/operation-resolver/index.ts
65
68
  import { Capability as Capability5 } from "@dxos/app-framework";
66
- var OperationResolver = Capability5.lazy("OperationResolver", () => import("./operation-resolver-G6GZPBRP.mjs"));
69
+ var OperationResolver = Capability5.lazy("OperationResolver", () => import("./operation-resolver-YJMVCJEM.mjs"));
67
70
 
68
71
  // src/capabilities/react-root/index.ts
69
72
  import { Capability as Capability6 } from "@dxos/app-framework";
70
- var ReactRoot = Capability6.lazy("ReactRoot", () => import("./react-root-V4W4X5GL.mjs"));
73
+ var ReactRoot = Capability6.lazy("ReactRoot", () => import("./react-root-I3D36WIQ.mjs"));
71
74
 
72
75
  // src/capabilities/react-surface/index.ts
73
76
  import { Capability as Capability7 } from "@dxos/app-framework";
74
- var ReactSurface = Capability7.lazy("ReactSurface", () => import("./react-surface-ELDSTUA3.mjs"));
75
-
76
- // src/capabilities/repair/index.ts
77
- import { Capability as Capability8 } from "@dxos/app-framework";
78
- var Repair = Capability8.lazy("Repair", () => import("./repair-6777EPOM.mjs"));
77
+ var ReactSurface = Capability7.lazy("ReactSurface", () => import("./react-surface-3OCF55AK.mjs"));
79
78
 
80
79
  // src/capabilities/settings/index.ts
81
- import { Capability as Capability9 } from "@dxos/app-framework";
82
- var ThreadSettings = Capability9.lazy("ThreadSettings", () => import("./settings-37CO3SNR.mjs"));
80
+ import { Capability as Capability8 } from "@dxos/app-framework";
81
+ var ThreadSettings = Capability8.lazy("ThreadSettings", () => import("./settings-2FQ6CDHD.mjs"));
83
82
 
84
83
  // src/capabilities/state/index.ts
85
- import { Capability as Capability10 } from "@dxos/app-framework";
86
- var ThreadState = Capability10.lazy("ThreadState", () => import("./state-5R3TZJQE.mjs"));
84
+ import { Capability as Capability9 } from "@dxos/app-framework";
85
+ var ThreadState = Capability9.lazy("ThreadState", () => import("./state-ZQ2Y3R2X.mjs"));
87
86
 
88
87
  // src/translations.ts
89
88
  import { Type } from "@dxos/echo";
@@ -96,6 +95,7 @@ var translations = [
96
95
  "typename label_one": "Channel",
97
96
  "typename label_other": "Channels",
98
97
  "object name placeholder": "New channel",
98
+ "add object label": "Add channel",
99
99
  "rename object label": "Rename channel",
100
100
  "delete object label": "Delete channel",
101
101
  "object deleted label": "Channel deleted"
@@ -171,32 +171,13 @@ var translations = [
171
171
 
172
172
  // src/ThreadPlugin.tsx
173
173
  var ThreadPlugin = Plugin.define(meta).pipe(
174
- Plugin.addModule({
175
- id: "call-manager",
176
- activatesOn: ClientEvents.ClientReady,
177
- activate: CallManager2
178
- }),
179
- // TODO(wittjosiah): Currently not used but leaving because there will likely be settings for threads again.
180
- // Plugin.addModule({
181
- // id: 'settings',
182
- // activatesOn: Events.SetupSettings,
183
- // activate: ThreadSettings,
184
- // }),
185
- Plugin.addModule({
186
- id: "state",
187
- // TODO(wittjosiah): Does not integrate with settings store.
188
- // Should this be a different event?
189
- // Should settings store be renamed to be more generic?
190
- activatesOn: Common.ActivationEvent.SetupSettings,
191
- activate: ThreadState
174
+ AppPlugin.addAppGraphModule({
175
+ activate: AppGraphBuilder
192
176
  }),
193
- Common.Plugin.addTranslationsModule({
194
- translations: [
195
- ...translations,
196
- ...threadTranslations
197
- ]
177
+ AppPlugin.addBlueprintDefinitionModule({
178
+ activate: BlueprintDefinition
198
179
  }),
199
- Common.Plugin.addMetadataModule({
180
+ AppPlugin.addMetadataModule({
200
181
  metadata: [
201
182
  {
202
183
  id: Type2.getTypename(Channel_exports.Channel),
@@ -213,13 +194,6 @@ var ThreadPlugin = Plugin.define(meta).pipe(
213
194
  loadReferences: async (thread) => await Ref.Array.loadAll(thread.messages ?? [])
214
195
  }
215
196
  },
216
- {
217
- id: Message.Message.typename,
218
- metadata: {
219
- // TODO(wittjosiah): Move out of metadata.
220
- loadReferences: () => []
221
- }
222
- },
223
197
  {
224
198
  id: THREAD_ITEM,
225
199
  metadata: {
@@ -244,52 +218,58 @@ var ThreadPlugin = Plugin.define(meta).pipe(
244
218
  }
245
219
  ]
246
220
  }),
247
- Common.Plugin.addSchemaModule({
221
+ AppPlugin.addOperationResolverModule({
222
+ activate: OperationResolver
223
+ }),
224
+ AppPlugin.addReactRootModule({
225
+ activate: ReactRoot
226
+ }),
227
+ AppPlugin.addSchemaModule({
248
228
  schema: [
249
229
  AnchoredTo.AnchoredTo,
250
230
  Channel_exports.Channel,
251
231
  Message.Message,
252
- Message.MessageV1,
253
232
  Thread.Thread
254
233
  ]
255
234
  }),
235
+ AppPlugin.addSurfaceModule({
236
+ activate: ReactSurface
237
+ }),
238
+ AppPlugin.addTranslationsModule({
239
+ translations: [
240
+ ...translations,
241
+ ...threadTranslations
242
+ ]
243
+ }),
256
244
  Plugin.addModule({
257
- id: "migration",
258
- activatesOn: ClientEvents.SetupMigration,
259
- activate: () => Effect.succeed(Capability11.contributes(ClientCapabilities.Migration, [
260
- Message.MessageV1ToV2
261
- ]))
245
+ id: "call-manager",
246
+ activatesOn: ClientEvents.ClientReady,
247
+ activate: CallManager2
262
248
  }),
249
+ // TODO(wittjosiah): Currently not used but leaving because there will likely be settings for threads again.
250
+ // Plugin.addModule({
251
+ // id: 'settings',
252
+ // activatesOn: Events.SetupSettings,
253
+ // activate: ThreadSettings,
254
+ // }),
263
255
  Plugin.addModule({
264
- id: "on-space-created",
265
- activatesOn: SpaceEvents.SpaceCreated,
266
- activate: () => Effect.succeed(Capability11.contributes(SpaceCapabilities.OnCreateSpace, (params) => Operation.invoke(ThreadOperation.OnCreateSpace, params)))
256
+ id: "state",
257
+ // TODO(wittjosiah): Does not integrate with settings store.
258
+ // Should this be a different event?
259
+ // Should settings store be renamed to be more generic?
260
+ activatesOn: AppActivationEvents.SetupSettings,
261
+ activate: ThreadState
267
262
  }),
268
263
  Plugin.addModule({
269
- id: "repair",
270
- activatesOn: ClientEvents.SpacesReady,
271
- activate: Repair
264
+ id: "on-space-created",
265
+ activatesOn: SpaceEvents.SpaceCreated,
266
+ activate: () => Effect.succeed(Capability10.contributes(SpaceCapabilities.OnCreateSpace, (params) => Operation.invoke(ThreadOperation.OnCreateSpace, params)))
272
267
  }),
273
268
  Plugin.addModule({
274
269
  id: "markdown",
275
270
  activatesOn: MarkdownEvents.SetupExtensions,
276
271
  activate: Markdown
277
272
  }),
278
- Common.Plugin.addReactRootModule({
279
- activate: ReactRoot
280
- }),
281
- Common.Plugin.addSurfaceModule({
282
- activate: ReactSurface
283
- }),
284
- Common.Plugin.addOperationResolverModule({
285
- activate: OperationResolver
286
- }),
287
- Common.Plugin.addAppGraphModule({
288
- activate: AppGraphBuilder
289
- }),
290
- Common.Plugin.addBlueprintDefinitionModule({
291
- activate: BlueprintDefinition
292
- }),
293
273
  Plugin.make
294
274
  );
295
275
  export {
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
- "sources": ["../../../src/ThreadPlugin.tsx", "../../../src/capabilities/app-graph-builder/index.ts", "../../../src/capabilities/blueprint-definition/index.ts", "../../../src/capabilities/call-manager/index.ts", "../../../src/capabilities/markdown/index.ts", "../../../src/capabilities/operation-resolver/index.ts", "../../../src/capabilities/react-root/index.ts", "../../../src/capabilities/react-surface/index.ts", "../../../src/capabilities/repair/index.ts", "../../../src/capabilities/settings/index.ts", "../../../src/capabilities/state/index.ts", "../../../src/translations.ts"],
4
- "sourcesContent": ["//\n// Copyright 2023 DXOS.org\n//\n\nimport * as Effect from 'effect/Effect';\n\nimport { Capability, Common, Plugin } from '@dxos/app-framework';\nimport { Ref, Type } from '@dxos/echo';\nimport { Operation } from '@dxos/operation';\nimport { ClientCapabilities, ClientEvents } from '@dxos/plugin-client';\nimport { MarkdownEvents } from '@dxos/plugin-markdown';\nimport { SpaceCapabilities, SpaceEvents } from '@dxos/plugin-space';\nimport { type CreateObject } from '@dxos/plugin-space/types';\nimport { translations as threadTranslations } from '@dxos/react-ui-thread';\nimport { AnchoredTo, Message, Thread } from '@dxos/types';\n\nimport {\n AppGraphBuilder,\n BlueprintDefinition,\n CallManager,\n Markdown,\n OperationResolver,\n ReactRoot,\n ReactSurface,\n Repair,\n ThreadState,\n} from './capabilities';\nimport { THREAD_ITEM, meta } from './meta';\nimport { translations } from './translations';\nimport { Channel, ThreadOperation } from './types';\n\n// TODO(Zan): Every instance of `cursor` should be replaced with `anchor`.\n// NOTE(burdon): Review/discuss CursorConverter semantics.\n\n// TODO(wittjosiah): Rename to ChatPlugin.\n// TODO(wittjosiah): Enabling comments should likely be factored out of this plugin but depend on it's capabilities.\nexport const ThreadPlugin = Plugin.define(meta).pipe(\n Plugin.addModule({\n id: 'call-manager',\n activatesOn: ClientEvents.ClientReady,\n activate: CallManager,\n }),\n // TODO(wittjosiah): Currently not used but leaving because there will likely be settings for threads again.\n // Plugin.addModule({\n // id: 'settings',\n // activatesOn: Events.SetupSettings,\n // activate: ThreadSettings,\n // }),\n Plugin.addModule({\n id: 'state',\n // TODO(wittjosiah): Does not integrate with settings store.\n // Should this be a different event?\n // Should settings store be renamed to be more generic?\n activatesOn: Common.ActivationEvent.SetupSettings,\n activate: ThreadState,\n }),\n Common.Plugin.addTranslationsModule({ translations: [...translations, ...threadTranslations] }),\n Common.Plugin.addMetadataModule({\n metadata: [\n {\n id: Type.getTypename(Channel.Channel),\n metadata: {\n icon: 'ph--hash--regular',\n iconHue: 'rose',\n createObject: ((props) => Effect.sync(() => Channel.make(props))) satisfies CreateObject,\n },\n },\n {\n id: Type.getTypename(Thread.Thread),\n metadata: {\n // TODO(wittjosiah): Move out of metadata.\n loadReferences: async (thread: Thread.Thread) => await Ref.Array.loadAll(thread.messages ?? []),\n },\n },\n {\n id: Message.Message.typename,\n metadata: {\n // TODO(wittjosiah): Move out of metadata.\n loadReferences: () => [], // loadObjectReferences(message, (message) => [...message.parts, message.context]),\n },\n },\n {\n id: THREAD_ITEM,\n metadata: {\n parse: (item: Thread.Thread, type: string) => {\n switch (type) {\n case 'node':\n return { id: item.id, label: item.name, data: item };\n case 'object':\n return item;\n case 'view-object':\n return { id: `${item.id}-view`, object: item };\n }\n },\n },\n },\n ],\n }),\n Common.Plugin.addSchemaModule({\n schema: [AnchoredTo.AnchoredTo, Channel.Channel, Message.Message, Message.MessageV1, Thread.Thread],\n }),\n Plugin.addModule({\n id: 'migration',\n activatesOn: ClientEvents.SetupMigration,\n activate: () => Effect.succeed(Capability.contributes(ClientCapabilities.Migration, [Message.MessageV1ToV2])),\n }),\n Plugin.addModule({\n id: 'on-space-created',\n activatesOn: SpaceEvents.SpaceCreated,\n activate: () =>\n Effect.succeed(\n Capability.contributes(SpaceCapabilities.OnCreateSpace, (params) =>\n Operation.invoke(ThreadOperation.OnCreateSpace, params),\n ),\n ),\n }),\n Plugin.addModule({\n id: 'repair',\n activatesOn: ClientEvents.SpacesReady,\n activate: Repair,\n }),\n Plugin.addModule({\n id: 'markdown',\n activatesOn: MarkdownEvents.SetupExtensions,\n activate: Markdown,\n }),\n Common.Plugin.addReactRootModule({ activate: ReactRoot }),\n Common.Plugin.addSurfaceModule({ activate: ReactSurface }),\n Common.Plugin.addOperationResolverModule({ activate: OperationResolver }),\n Common.Plugin.addAppGraphModule({ activate: AppGraphBuilder }),\n Common.Plugin.addBlueprintDefinitionModule({ activate: BlueprintDefinition }),\n Plugin.make,\n);\n", "//\n// Copyright 2025 DXOS.org\n//\n\nimport { Capability } from '@dxos/app-framework';\n\nexport const AppGraphBuilder = Capability.lazy('AppGraphBuilder', () => import('./app-graph-builder'));\n", "//\n// Copyright 2025 DXOS.org\n//\n\nimport { Capability } from '@dxos/app-framework';\n\nexport const BlueprintDefinition = Capability.lazy('BlueprintDefinition', () => import('./blueprint-definition'));\n", "//\n// Copyright 2025 DXOS.org\n//\n\nimport { Capability } from '@dxos/app-framework';\n\nexport const CallManager = Capability.lazy('CallManager', () => import('./call-manager'));\n", "//\n// Copyright 2025 DXOS.org\n//\n\nimport { Capability } from '@dxos/app-framework';\n\nexport const Markdown = Capability.lazy('Markdown', () => import('./markdown'));\n", "//\n// Copyright 2025 DXOS.org\n//\n\nimport { Capability } from '@dxos/app-framework';\n\nexport const OperationResolver = Capability.lazy('OperationResolver', () => import('./operation-resolver'));\n", "//\n// Copyright 2025 DXOS.org\n//\n\nimport { Capability } from '@dxos/app-framework';\n\nexport const ReactRoot = Capability.lazy('ReactRoot', () => import('./react-root'));\n", "//\n// Copyright 2025 DXOS.org\n//\n\nimport { Capability } from '@dxos/app-framework';\n\nexport const ReactSurface = Capability.lazy('ReactSurface', () => import('./react-surface'));\n", "//\n// Copyright 2025 DXOS.org\n//\n\nimport { Capability } from '@dxos/app-framework';\n\nexport const Repair = Capability.lazy('Repair', () => import('./repair'));\n", "//\n// Copyright 2025 DXOS.org\n//\n\nimport { Capability } from '@dxos/app-framework';\n\nexport const ThreadSettings = Capability.lazy('ThreadSettings', () => import('./settings'));\n", "//\n// Copyright 2025 DXOS.org\n//\n\nimport { Capability } from '@dxos/app-framework';\n\nexport const ThreadState = Capability.lazy('ThreadState', () => import('./state'));\n", "//\n// Copyright 2023 DXOS.org\n//\n\nimport { Type } from '@dxos/echo';\nimport { type Resource } from '@dxos/react-ui';\n\nimport { meta } from './meta';\nimport { Channel } from './types';\n\nexport const translations = [\n {\n 'en-US': {\n [Type.getTypename(Channel.Channel)]: {\n 'typename label': 'Channel',\n 'typename label_zero': 'Channels',\n 'typename label_one': 'Channel',\n 'typename label_other': 'Channels',\n 'object name placeholder': 'New channel',\n 'rename object label': 'Rename channel',\n 'delete object label': 'Delete channel',\n 'object deleted label': 'Channel deleted',\n },\n [meta.id]: {\n 'plugin name': 'Chat',\n 'channel title label': 'Title',\n 'message placeholder': 'Reply…',\n 'activity message': 'Processing…',\n 'anonymous label': 'Anonymous',\n 'delete message block label': 'Delete message block',\n 'detached thread label': 'Referenced content was removed',\n 'delete thread label': 'Delete thread',\n 'resolve thread label': 'Resolve thread',\n 'thread deleted label': 'Thread deleted',\n 'message deleted label': 'Message deleted',\n 'comments heading': 'Comments',\n 'chat heading': 'Chat',\n 'draft button': 'DRAFT',\n 'no comments title': 'Comments',\n 'no comments message':\n 'Click on the <commentIcon></commentIcon> button in the document toolbar to create a comment thread on the selected text.',\n 'toggle show resolved': 'Show resolved',\n 'unnamed object threads label': 'Threads',\n 'mark as resolved label': 'Mark as resolved',\n 'mark as unresolved label': 'Mark as unresolved',\n 'save message label': 'Save',\n 'edit message label': 'Edit',\n 'delete message label': 'Delete message',\n 'accept proposal label': 'Accept proposal',\n 'open comments panel label': 'Show Comments',\n 'comments label': 'Comments',\n 'show all label': 'All comments',\n 'show unresolved label': 'Unresolved comments',\n 'add comment label': 'Add comment',\n\n 'channel companion label': 'Channel',\n 'call panel label': 'Active Call',\n\n 'display name label': 'Display name',\n 'display name description': 'Set your display name before joining a meeting.',\n 'display name input placeholder': 'Enter your name',\n 'set display name label': 'Continue',\n\n 'call tab label': 'Call',\n 'meeting status title': 'Calls',\n 'share meeting link label': 'Share meeting',\n 'show webrtc stats title': 'WebRTC Stats',\n 'show calls history title': 'Service History',\n\n 'meeting summary label': 'Summary',\n 'summarize label': 'Summarize',\n 'summarizing label': 'Creating summary...',\n 'create summary message': 'A summary doesn’t exist for this meeting yet. Create one now?',\n\n 'join call': 'Join',\n 'leave call': 'Leave',\n\n 'lobby participants_zero': 'No participants',\n 'lobby participants_one': '1 participant',\n 'lobby participants_other': '{{count}} participants',\n\n 'icon pin': 'Pin video',\n 'icon unpin': 'Unpin video',\n 'icon wave': 'Waving',\n 'icon muted': 'Muted',\n 'icon speaking': 'Speaking',\n\n 'mic on': 'Unmute',\n 'mic off': 'Mute',\n 'camera on': 'Turn camera on',\n 'camera off': 'Turn camera off',\n 'camera off label': 'Camera off',\n\n 'raise hand': 'Raise hand',\n 'lower hand': 'Lower hand',\n 'screenshare on': 'Share screen',\n 'screenshare off': 'Stop streaming',\n },\n },\n },\n] as const satisfies Resource[];\n"],
5
- "mappings": "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",
6
- "names": ["Effect", "Capability", "Common", "Plugin", "Ref", "Type", "Operation", "ClientCapabilities", "ClientEvents", "MarkdownEvents", "SpaceCapabilities", "SpaceEvents", "translations", "threadTranslations", "AnchoredTo", "Message", "Thread", "Capability", "AppGraphBuilder", "Capability", "lazy", "Capability", "BlueprintDefinition", "Capability", "lazy", "Capability", "CallManager", "Capability", "lazy", "Capability", "Markdown", "Capability", "lazy", "Capability", "OperationResolver", "Capability", "lazy", "Capability", "ReactRoot", "Capability", "lazy", "Capability", "ReactSurface", "Capability", "lazy", "Capability", "Repair", "Capability", "lazy", "Capability", "ThreadSettings", "Capability", "lazy", "Capability", "ThreadState", "Capability", "lazy", "Type", "translations", "Type", "getTypename", "Channel", "meta", "id", "ThreadPlugin", "Plugin", "define", "meta", "pipe", "addModule", "id", "activatesOn", "ClientEvents", "ClientReady", "activate", "CallManager", "Common", "ActivationEvent", "SetupSettings", "ThreadState", "addTranslationsModule", "translations", "threadTranslations", "addMetadataModule", "metadata", "Type", "getTypename", "Channel", "icon", "iconHue", "createObject", "props", "sync", "make", "Thread", "loadReferences", "thread", "Ref", "Array", "loadAll", "messages", "Message", "typename", "THREAD_ITEM", "parse", "item", "type", "label", "name", "data", "object", "addSchemaModule", "schema", "AnchoredTo", "MessageV1", "SetupMigration", "succeed", "Capability", "contributes", "ClientCapabilities", "Migration", "MessageV1ToV2", "SpaceEvents", "SpaceCreated", "SpaceCapabilities", "OnCreateSpace", "params", "Operation", "invoke", "ThreadOperation", "SpacesReady", "Repair", "MarkdownEvents", "SetupExtensions", "Markdown", "addReactRootModule", "ReactRoot", "addSurfaceModule", "ReactSurface", "addOperationResolverModule", "OperationResolver", "addAppGraphModule", "AppGraphBuilder", "addBlueprintDefinitionModule", "BlueprintDefinition"]
3
+ "sources": ["../../../src/ThreadPlugin.tsx", "../../../src/capabilities/app-graph-builder/index.ts", "../../../src/capabilities/blueprint-definition/index.ts", "../../../src/capabilities/call-manager/index.ts", "../../../src/capabilities/markdown/index.ts", "../../../src/capabilities/operation-resolver/index.ts", "../../../src/capabilities/react-root/index.ts", "../../../src/capabilities/react-surface/index.ts", "../../../src/capabilities/settings/index.ts", "../../../src/capabilities/state/index.ts", "../../../src/translations.ts"],
4
+ "sourcesContent": ["//\n// Copyright 2023 DXOS.org\n//\n\nimport * as Effect from 'effect/Effect';\n\nimport { Capability, Plugin } from '@dxos/app-framework';\nimport { AppActivationEvents, AppPlugin } from '@dxos/app-toolkit';\nimport { Ref, Type } from '@dxos/echo';\nimport { Operation } from '@dxos/operation';\nimport { ClientEvents } from '@dxos/plugin-client';\nimport { MarkdownEvents } from '@dxos/plugin-markdown';\nimport { SpaceCapabilities, SpaceEvents } from '@dxos/plugin-space';\nimport { type CreateObject } from '@dxos/plugin-space/types';\nimport { translations as threadTranslations } from '@dxos/react-ui-thread';\nimport { AnchoredTo, Message, Thread } from '@dxos/types';\n\nimport {\n AppGraphBuilder,\n BlueprintDefinition,\n CallManager,\n Markdown,\n OperationResolver,\n ReactRoot,\n ReactSurface,\n ThreadState,\n} from './capabilities';\nimport { THREAD_ITEM, meta } from './meta';\nimport { translations } from './translations';\nimport { Channel, ThreadOperation } from './types';\n\n// TODO(Zan): Every instance of `cursor` should be replaced with `anchor`.\n// NOTE(burdon): Review/discuss CursorConverter semantics.\n\n// TODO(wittjosiah): Rename to ChatPlugin.\n// TODO(wittjosiah): Enabling comments should likely be factored out of this plugin but depend on it's capabilities.\nexport const ThreadPlugin = Plugin.define(meta).pipe(\n AppPlugin.addAppGraphModule({ activate: AppGraphBuilder }),\n AppPlugin.addBlueprintDefinitionModule({ activate: BlueprintDefinition }),\n AppPlugin.addMetadataModule({\n metadata: [\n {\n id: Type.getTypename(Channel.Channel),\n metadata: {\n icon: 'ph--hash--regular',\n iconHue: 'rose',\n createObject: ((props) => Effect.sync(() => Channel.make(props))) satisfies CreateObject,\n },\n },\n {\n id: Type.getTypename(Thread.Thread),\n metadata: {\n // TODO(wittjosiah): Move out of metadata.\n loadReferences: async (thread: Thread.Thread) => await Ref.Array.loadAll(thread.messages ?? []),\n },\n },\n {\n id: THREAD_ITEM,\n metadata: {\n parse: (item: Thread.Thread, type: string) => {\n switch (type) {\n case 'node':\n return { id: item.id, label: item.name, data: item };\n case 'object':\n return item;\n case 'view-object':\n return { id: `${item.id}-view`, object: item };\n }\n },\n },\n },\n ],\n }),\n AppPlugin.addOperationResolverModule({ activate: OperationResolver }),\n AppPlugin.addReactRootModule({ activate: ReactRoot }),\n AppPlugin.addSchemaModule({\n schema: [AnchoredTo.AnchoredTo, Channel.Channel, Message.Message, Thread.Thread],\n }),\n AppPlugin.addSurfaceModule({ activate: ReactSurface }),\n AppPlugin.addTranslationsModule({ translations: [...translations, ...threadTranslations] }),\n Plugin.addModule({\n id: 'call-manager',\n activatesOn: ClientEvents.ClientReady,\n activate: CallManager,\n }),\n // TODO(wittjosiah): Currently not used but leaving because there will likely be settings for threads again.\n // Plugin.addModule({\n // id: 'settings',\n // activatesOn: Events.SetupSettings,\n // activate: ThreadSettings,\n // }),\n Plugin.addModule({\n id: 'state',\n // TODO(wittjosiah): Does not integrate with settings store.\n // Should this be a different event?\n // Should settings store be renamed to be more generic?\n activatesOn: AppActivationEvents.SetupSettings,\n activate: ThreadState,\n }),\n Plugin.addModule({\n id: 'on-space-created',\n activatesOn: SpaceEvents.SpaceCreated,\n activate: () =>\n Effect.succeed(\n Capability.contributes(SpaceCapabilities.OnCreateSpace, (params) =>\n Operation.invoke(ThreadOperation.OnCreateSpace, params),\n ),\n ),\n }),\n Plugin.addModule({\n id: 'markdown',\n activatesOn: MarkdownEvents.SetupExtensions,\n activate: Markdown,\n }),\n Plugin.make,\n);\n", "//\n// Copyright 2025 DXOS.org\n//\n\nimport { Capability } from '@dxos/app-framework';\n\nexport const AppGraphBuilder = Capability.lazy('AppGraphBuilder', () => import('./app-graph-builder'));\n", "//\n// Copyright 2025 DXOS.org\n//\n\nimport { Capability } from '@dxos/app-framework';\n\nexport const BlueprintDefinition = Capability.lazy('BlueprintDefinition', () => import('./blueprint-definition'));\n", "//\n// Copyright 2025 DXOS.org\n//\n\nimport { Capability } from '@dxos/app-framework';\n\nexport const CallManager = Capability.lazy('CallManager', () => import('./call-manager'));\n", "//\n// Copyright 2025 DXOS.org\n//\n\nimport { Capability } from '@dxos/app-framework';\n\nexport const Markdown = Capability.lazy('Markdown', () => import('./markdown'));\n", "//\n// Copyright 2025 DXOS.org\n//\n\nimport { Capability } from '@dxos/app-framework';\n\nexport const OperationResolver = Capability.lazy('OperationResolver', () => import('./operation-resolver'));\n", "//\n// Copyright 2025 DXOS.org\n//\n\nimport { Capability } from '@dxos/app-framework';\n\nexport const ReactRoot = Capability.lazy('ReactRoot', () => import('./react-root'));\n", "//\n// Copyright 2025 DXOS.org\n//\n\nimport { Capability } from '@dxos/app-framework';\n\nexport const ReactSurface = Capability.lazy('ReactSurface', () => import('./react-surface'));\n", "//\n// Copyright 2025 DXOS.org\n//\n\nimport { Capability } from '@dxos/app-framework';\n\nexport const ThreadSettings = Capability.lazy('ThreadSettings', () => import('./settings'));\n", "//\n// Copyright 2025 DXOS.org\n//\n\nimport { Capability } from '@dxos/app-framework';\n\nexport const ThreadState = Capability.lazy('ThreadState', () => import('./state'));\n", "//\n// Copyright 2023 DXOS.org\n//\n\nimport { Type } from '@dxos/echo';\nimport { type Resource } from '@dxos/react-ui';\n\nimport { meta } from './meta';\nimport { Channel } from './types';\n\nexport const translations = [\n {\n 'en-US': {\n [Type.getTypename(Channel.Channel)]: {\n 'typename label': 'Channel',\n 'typename label_zero': 'Channels',\n 'typename label_one': 'Channel',\n 'typename label_other': 'Channels',\n 'object name placeholder': 'New channel',\n 'add object label': 'Add channel',\n 'rename object label': 'Rename channel',\n 'delete object label': 'Delete channel',\n 'object deleted label': 'Channel deleted',\n },\n [meta.id]: {\n 'plugin name': 'Chat',\n 'channel title label': 'Title',\n 'message placeholder': 'Reply…',\n 'activity message': 'Processing…',\n 'anonymous label': 'Anonymous',\n 'delete message block label': 'Delete message block',\n 'detached thread label': 'Referenced content was removed',\n 'delete thread label': 'Delete thread',\n 'resolve thread label': 'Resolve thread',\n 'thread deleted label': 'Thread deleted',\n 'message deleted label': 'Message deleted',\n 'comments heading': 'Comments',\n 'chat heading': 'Chat',\n 'draft button': 'DRAFT',\n 'no comments title': 'Comments',\n 'no comments message':\n 'Click on the <commentIcon></commentIcon> button in the document toolbar to create a comment thread on the selected text.',\n 'toggle show resolved': 'Show resolved',\n 'unnamed object threads label': 'Threads',\n 'mark as resolved label': 'Mark as resolved',\n 'mark as unresolved label': 'Mark as unresolved',\n 'save message label': 'Save',\n 'edit message label': 'Edit',\n 'delete message label': 'Delete message',\n 'accept proposal label': 'Accept proposal',\n 'open comments panel label': 'Show Comments',\n 'comments label': 'Comments',\n 'show all label': 'All comments',\n 'show unresolved label': 'Unresolved comments',\n 'add comment label': 'Add comment',\n\n 'channel companion label': 'Channel',\n 'call panel label': 'Active Call',\n\n 'display name label': 'Display name',\n 'display name description': 'Set your display name before joining a meeting.',\n 'display name input placeholder': 'Enter your name',\n 'set display name label': 'Continue',\n\n 'call tab label': 'Call',\n 'meeting status title': 'Calls',\n 'share meeting link label': 'Share meeting',\n 'show webrtc stats title': 'WebRTC Stats',\n 'show calls history title': 'Service History',\n\n 'meeting summary label': 'Summary',\n 'summarize label': 'Summarize',\n 'summarizing label': 'Creating summary...',\n 'create summary message': 'A summary doesn’t exist for this meeting yet. Create one now?',\n\n 'join call': 'Join',\n 'leave call': 'Leave',\n\n 'lobby participants_zero': 'No participants',\n 'lobby participants_one': '1 participant',\n 'lobby participants_other': '{{count}} participants',\n\n 'icon pin': 'Pin video',\n 'icon unpin': 'Unpin video',\n 'icon wave': 'Waving',\n 'icon muted': 'Muted',\n 'icon speaking': 'Speaking',\n\n 'mic on': 'Unmute',\n 'mic off': 'Mute',\n 'camera on': 'Turn camera on',\n 'camera off': 'Turn camera off',\n 'camera off label': 'Camera off',\n\n 'raise hand': 'Raise hand',\n 'lower hand': 'Lower hand',\n 'screenshare on': 'Share screen',\n 'screenshare off': 'Stop streaming',\n },\n },\n },\n] as const satisfies Resource[];\n"],
5
+ "mappings": "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",
6
+ "names": ["Effect", "Capability", "Plugin", "AppActivationEvents", "AppPlugin", "Ref", "Type", "Operation", "ClientEvents", "MarkdownEvents", "SpaceCapabilities", "SpaceEvents", "translations", "threadTranslations", "AnchoredTo", "Message", "Thread", "Capability", "AppGraphBuilder", "Capability", "lazy", "Capability", "BlueprintDefinition", "Capability", "lazy", "Capability", "CallManager", "Capability", "lazy", "Capability", "Markdown", "Capability", "lazy", "Capability", "OperationResolver", "Capability", "lazy", "Capability", "ReactRoot", "Capability", "lazy", "Capability", "ReactSurface", "Capability", "lazy", "Capability", "ThreadSettings", "Capability", "lazy", "Capability", "ThreadState", "Capability", "lazy", "Type", "translations", "Type", "getTypename", "Channel", "meta", "id", "ThreadPlugin", "Plugin", "define", "meta", "pipe", "AppPlugin", "addAppGraphModule", "activate", "AppGraphBuilder", "addBlueprintDefinitionModule", "BlueprintDefinition", "addMetadataModule", "metadata", "id", "Type", "getTypename", "Channel", "icon", "iconHue", "createObject", "props", "sync", "make", "Thread", "loadReferences", "thread", "Ref", "Array", "loadAll", "messages", "THREAD_ITEM", "parse", "item", "type", "label", "name", "data", "object", "addOperationResolverModule", "OperationResolver", "addReactRootModule", "ReactRoot", "addSchemaModule", "schema", "AnchoredTo", "Message", "addSurfaceModule", "ReactSurface", "addTranslationsModule", "translations", "threadTranslations", "addModule", "activatesOn", "ClientEvents", "ClientReady", "CallManager", "AppActivationEvents", "SetupSettings", "ThreadState", "SpaceEvents", "SpaceCreated", "succeed", "Capability", "contributes", "SpaceCapabilities", "OnCreateSpace", "params", "Operation", "invoke", "ThreadOperation", "MarkdownEvents", "SetupExtensions", "Markdown"]
7
7
  }
@@ -0,0 +1,84 @@
1
+ import { createRequire } from 'node:module';const require = createRequire(import.meta.url);
2
+ import {
3
+ threads
4
+ } from "./chunk-SV74KS5H.mjs";
5
+ import "./chunk-A3SWGVF3.mjs";
6
+ import {
7
+ ThreadCapabilities
8
+ } from "./chunk-HT4D266X.mjs";
9
+ import "./chunk-N2T5KLKB.mjs";
10
+ import "./chunk-HSLMI22Q.mjs";
11
+
12
+ // src/capabilities/markdown/markdown.ts
13
+ import { EditorView } from "@codemirror/view";
14
+ import * as Effect from "effect/Effect";
15
+ import { Capabilities, Capability } from "@dxos/app-framework";
16
+ import { COMPANION_PREFIX } from "@dxos/app-toolkit";
17
+ import { DeckOperation } from "@dxos/plugin-deck/types";
18
+ import { MarkdownCapabilities } from "@dxos/plugin-markdown";
19
+ import { commentClickedEffect, commentsState, documentId, overlap } from "@dxos/ui-editor";
20
+ var markdown_default = Capability.makeModule(Effect.fnUntraced(function* () {
21
+ const capabilities = yield* Capability.Service;
22
+ return Capability.contributes(MarkdownCapabilities.Extensions, [
23
+ ({ document: doc }) => {
24
+ const { invokePromise } = capabilities.get(Capabilities.OperationInvoker);
25
+ const registry = capabilities.get(Capabilities.AtomRegistry);
26
+ const stateAtom = capabilities.get(ThreadCapabilities.State);
27
+ return threads({
28
+ registry,
29
+ stateAtom
30
+ }, doc, invokePromise);
31
+ },
32
+ ({ document: doc }) => {
33
+ if (!doc) return [];
34
+ const registry = capabilities.get(Capabilities.AtomRegistry);
35
+ const stateAtom = capabilities.get(ThreadCapabilities.State);
36
+ return EditorView.updateListener.of((update) => {
37
+ if (update.docChanged || update.selectionSet) {
38
+ const id = update.state.facet(documentId);
39
+ const overlaps = selectionOverlapsComment(update.state);
40
+ const current = registry.get(stateAtom);
41
+ registry.set(stateAtom, {
42
+ ...current,
43
+ toolbar: {
44
+ ...current.toolbar,
45
+ [id]: overlaps
46
+ }
47
+ });
48
+ }
49
+ });
50
+ },
51
+ ({ document: doc }) => {
52
+ if (!doc) return [];
53
+ const { invokePromise } = capabilities.get(Capabilities.OperationInvoker);
54
+ return EditorView.updateListener.of((update) => {
55
+ update.transactions.forEach((transaction) => {
56
+ transaction.effects.forEach(async (effect) => {
57
+ if (effect.is(commentClickedEffect)) {
58
+ void invokePromise(DeckOperation.ChangeCompanion, {
59
+ companion: `${COMPANION_PREFIX}comments`
60
+ });
61
+ }
62
+ });
63
+ });
64
+ });
65
+ }
66
+ ]);
67
+ }));
68
+ var selectionOverlapsComment = (state) => {
69
+ const commentState = state.field(commentsState, false);
70
+ if (commentState === void 0) {
71
+ return false;
72
+ }
73
+ const { selection } = state;
74
+ for (const range of selection.ranges) {
75
+ if (commentState.comments.some(({ range: commentRange }) => overlap(commentRange, range))) {
76
+ return true;
77
+ }
78
+ }
79
+ return false;
80
+ };
81
+ export {
82
+ markdown_default as default
83
+ };
84
+ //# sourceMappingURL=markdown-YUI4GVUF.mjs.map