@dxos/plugin-thread 0.8.3-staging.0fa589b → 0.8.4-main.1068cf700f

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 (462) hide show
  1. package/dist/lib/browser/app-graph-builder-XFGLMIGK.mjs +189 -0
  2. package/dist/lib/browser/app-graph-builder-XFGLMIGK.mjs.map +7 -0
  3. package/dist/lib/browser/blueprint-definition-ACPH22F7.mjs +18 -0
  4. package/dist/lib/browser/blueprint-definition-ACPH22F7.mjs.map +7 -0
  5. package/dist/lib/browser/blueprints/index.mjs +8 -0
  6. package/dist/lib/browser/call-manager-GDGIKJKN.mjs +26 -0
  7. package/dist/lib/browser/call-manager-GDGIKJKN.mjs.map +7 -0
  8. package/dist/lib/browser/chunk-2FIHSX35.mjs +293 -0
  9. package/dist/lib/browser/chunk-2FIHSX35.mjs.map +7 -0
  10. package/dist/lib/browser/chunk-4EUEMHNI.mjs +1817 -0
  11. package/dist/lib/browser/chunk-4EUEMHNI.mjs.map +7 -0
  12. package/dist/lib/browser/{chunk-JKQUJOTX.mjs → chunk-CP7E2HRE.mjs} +3 -3
  13. package/dist/lib/browser/chunk-CP7E2HRE.mjs.map +7 -0
  14. package/dist/lib/browser/{chunk-4H4A264L.mjs → chunk-ERK254BS.mjs} +407 -305
  15. package/dist/lib/browser/chunk-ERK254BS.mjs.map +7 -0
  16. package/dist/lib/browser/chunk-ISCHODBV.mjs +106 -0
  17. package/dist/lib/browser/chunk-ISCHODBV.mjs.map +7 -0
  18. package/dist/lib/browser/chunk-J5LGTIGS.mjs +10 -0
  19. package/dist/lib/browser/chunk-JBB73URQ.mjs +184 -0
  20. package/dist/lib/browser/chunk-JBB73URQ.mjs.map +7 -0
  21. package/dist/lib/browser/chunk-RH7XTXSR.mjs +106 -0
  22. package/dist/lib/browser/chunk-RH7XTXSR.mjs.map +7 -0
  23. package/dist/lib/browser/index.mjs +164 -151
  24. package/dist/lib/browser/index.mjs.map +4 -4
  25. package/dist/lib/browser/markdown-YJCSOWXX.mjs +210 -0
  26. package/dist/lib/browser/markdown-YJCSOWXX.mjs.map +7 -0
  27. package/dist/lib/browser/meta.json +1 -1
  28. package/dist/lib/browser/operation-resolver-PROCP5L4.mjs +441 -0
  29. package/dist/lib/browser/operation-resolver-PROCP5L4.mjs.map +7 -0
  30. package/dist/lib/browser/react-root-FHK2SVPU.mjs +25 -0
  31. package/dist/lib/browser/react-root-FHK2SVPU.mjs.map +7 -0
  32. package/dist/lib/browser/react-surface-7MQA6VSH.mjs +111 -0
  33. package/dist/lib/browser/react-surface-7MQA6VSH.mjs.map +7 -0
  34. package/dist/lib/browser/repair-6OZ75AUU.mjs +38 -0
  35. package/dist/lib/browser/repair-6OZ75AUU.mjs.map +7 -0
  36. package/dist/lib/browser/settings-TWKOTGSU.mjs +33 -0
  37. package/dist/lib/browser/settings-TWKOTGSU.mjs.map +7 -0
  38. package/dist/lib/browser/state-SJR2GL5G.mjs +24 -0
  39. package/dist/lib/browser/state-SJR2GL5G.mjs.map +7 -0
  40. package/dist/lib/browser/types/index.mjs +10 -12
  41. package/dist/lib/node-esm/app-graph-builder-IN6VLJBO.mjs +190 -0
  42. package/dist/lib/node-esm/app-graph-builder-IN6VLJBO.mjs.map +7 -0
  43. package/dist/lib/node-esm/blueprint-definition-SXVKFUNV.mjs +19 -0
  44. package/dist/lib/node-esm/blueprint-definition-SXVKFUNV.mjs.map +7 -0
  45. package/dist/lib/node-esm/blueprints/index.mjs +9 -0
  46. package/dist/lib/node-esm/call-manager-36UAAQCJ.mjs +27 -0
  47. package/dist/lib/node-esm/call-manager-36UAAQCJ.mjs.map +7 -0
  48. package/dist/lib/node-esm/{chunk-PGRP3O4O.mjs → chunk-ABUFOZVX.mjs} +3 -3
  49. package/dist/lib/node-esm/chunk-ABUFOZVX.mjs.map +7 -0
  50. package/dist/lib/node-esm/chunk-G7PZNN3Z.mjs +185 -0
  51. package/dist/lib/node-esm/chunk-G7PZNN3Z.mjs.map +7 -0
  52. package/dist/lib/node-esm/chunk-HSLMI22Q.mjs +11 -0
  53. package/dist/lib/node-esm/chunk-OKVE6CLS.mjs +107 -0
  54. package/dist/lib/node-esm/chunk-OKVE6CLS.mjs.map +7 -0
  55. package/dist/lib/node-esm/{chunk-WXNPD542.mjs → chunk-QP3KQOPQ.mjs} +406 -305
  56. package/dist/lib/node-esm/chunk-QP3KQOPQ.mjs.map +7 -0
  57. package/dist/lib/node-esm/chunk-RBRWHRHE.mjs +1818 -0
  58. package/dist/lib/node-esm/chunk-RBRWHRHE.mjs.map +7 -0
  59. package/dist/lib/node-esm/chunk-VBI32FGI.mjs +108 -0
  60. package/dist/lib/node-esm/chunk-VBI32FGI.mjs.map +7 -0
  61. package/dist/lib/node-esm/chunk-WMWUXWAS.mjs +294 -0
  62. package/dist/lib/node-esm/chunk-WMWUXWAS.mjs.map +7 -0
  63. package/dist/lib/node-esm/index.mjs +164 -151
  64. package/dist/lib/node-esm/index.mjs.map +4 -4
  65. package/dist/lib/node-esm/markdown-6LRP3PAP.mjs +211 -0
  66. package/dist/lib/node-esm/markdown-6LRP3PAP.mjs.map +7 -0
  67. package/dist/lib/node-esm/meta.json +1 -1
  68. package/dist/lib/node-esm/operation-resolver-LPEPV5BF.mjs +442 -0
  69. package/dist/lib/node-esm/operation-resolver-LPEPV5BF.mjs.map +7 -0
  70. package/dist/lib/node-esm/react-root-P5P4VGQJ.mjs +26 -0
  71. package/dist/lib/node-esm/react-root-P5P4VGQJ.mjs.map +7 -0
  72. package/dist/lib/node-esm/react-surface-M7VI5XG2.mjs +112 -0
  73. package/dist/lib/node-esm/react-surface-M7VI5XG2.mjs.map +7 -0
  74. package/dist/lib/node-esm/repair-6777EPOM.mjs +39 -0
  75. package/dist/lib/node-esm/repair-6777EPOM.mjs.map +7 -0
  76. package/dist/lib/node-esm/settings-5O254B3Z.mjs +34 -0
  77. package/dist/lib/node-esm/settings-5O254B3Z.mjs.map +7 -0
  78. package/dist/lib/node-esm/state-5R3TZJQE.mjs +25 -0
  79. package/dist/lib/node-esm/state-5R3TZJQE.mjs.map +7 -0
  80. package/dist/lib/node-esm/types/index.mjs +10 -12
  81. package/dist/types/src/ThreadPlugin.d.ts +2 -1
  82. package/dist/types/src/ThreadPlugin.d.ts.map +1 -1
  83. package/dist/types/src/blueprints/index.d.ts +2 -0
  84. package/dist/types/src/blueprints/index.d.ts.map +1 -0
  85. package/dist/types/src/blueprints/thread-blueprint.d.ts +21 -0
  86. package/dist/types/src/blueprints/thread-blueprint.d.ts.map +1 -0
  87. package/dist/types/src/calls/call-manager.d.ts +40 -30
  88. package/dist/types/src/calls/call-manager.d.ts.map +1 -1
  89. package/dist/types/src/calls/call-swarm-synchronizer.d.ts +2 -2
  90. package/dist/types/src/calls/call-swarm-synchronizer.d.ts.map +1 -1
  91. package/dist/types/src/calls/media-manager.d.ts +2 -2
  92. package/dist/types/src/calls/media-manager.d.ts.map +1 -1
  93. package/dist/types/src/calls/types.d.ts +1 -1
  94. package/dist/types/src/calls/types.d.ts.map +1 -1
  95. package/dist/types/src/calls/util/calls-service.d.ts +9 -4
  96. package/dist/types/src/calls/util/calls-service.d.ts.map +1 -1
  97. package/dist/types/src/calls/util/stub-media-streams.d.ts.map +1 -1
  98. package/dist/types/src/calls/util/task-scheduling.d.ts +2 -2
  99. package/dist/types/src/calls/util/task-scheduling.d.ts.map +1 -1
  100. package/dist/types/src/calls-service.stories.d.ts +23 -0
  101. package/dist/types/src/calls-service.stories.d.ts.map +1 -0
  102. package/dist/types/src/capabilities/app-graph-builder/app-graph-builder.d.ts +6 -0
  103. package/dist/types/src/capabilities/app-graph-builder/app-graph-builder.d.ts.map +1 -0
  104. package/dist/types/src/capabilities/app-graph-builder/index.d.ts +3 -0
  105. package/dist/types/src/capabilities/app-graph-builder/index.d.ts.map +1 -0
  106. package/dist/types/src/capabilities/blueprint-definition/blueprint-definition.d.ts +10 -0
  107. package/dist/types/src/capabilities/blueprint-definition/blueprint-definition.d.ts.map +1 -0
  108. package/dist/types/src/capabilities/blueprint-definition/index.d.ts +3 -0
  109. package/dist/types/src/capabilities/blueprint-definition/index.d.ts.map +1 -0
  110. package/dist/types/src/capabilities/call-manager/call-manager.d.ts +6 -0
  111. package/dist/types/src/capabilities/call-manager/call-manager.d.ts.map +1 -0
  112. package/dist/types/src/capabilities/call-manager/index.d.ts +3 -0
  113. package/dist/types/src/capabilities/call-manager/index.d.ts.map +1 -0
  114. package/dist/types/src/capabilities/index.d.ts +10 -15
  115. package/dist/types/src/capabilities/index.d.ts.map +1 -1
  116. package/dist/types/src/capabilities/markdown/index.d.ts +3 -0
  117. package/dist/types/src/capabilities/markdown/index.d.ts.map +1 -0
  118. package/dist/types/src/capabilities/markdown/markdown.d.ts +5 -0
  119. package/dist/types/src/capabilities/markdown/markdown.d.ts.map +1 -0
  120. package/dist/types/src/capabilities/operation-resolver/index.d.ts +3 -0
  121. package/dist/types/src/capabilities/operation-resolver/index.d.ts.map +1 -0
  122. package/dist/types/src/capabilities/operation-resolver/operation-resolver.d.ts +5 -0
  123. package/dist/types/src/capabilities/operation-resolver/operation-resolver.d.ts.map +1 -0
  124. package/dist/types/src/capabilities/react-root/index.d.ts +6 -0
  125. package/dist/types/src/capabilities/react-root/index.d.ts.map +1 -0
  126. package/dist/types/src/capabilities/react-root/react-root.d.ts +9 -0
  127. package/dist/types/src/capabilities/react-root/react-root.d.ts.map +1 -0
  128. package/dist/types/src/capabilities/react-surface/index.d.ts +3 -0
  129. package/dist/types/src/capabilities/react-surface/index.d.ts.map +1 -0
  130. package/dist/types/src/capabilities/react-surface/react-surface.d.ts +5 -0
  131. package/dist/types/src/capabilities/react-surface/react-surface.d.ts.map +1 -0
  132. package/dist/types/src/capabilities/repair/index.d.ts +3 -0
  133. package/dist/types/src/capabilities/repair/index.d.ts.map +1 -0
  134. package/dist/types/src/capabilities/repair/repair.d.ts +6 -0
  135. package/dist/types/src/capabilities/repair/repair.d.ts.map +1 -0
  136. package/dist/types/src/capabilities/settings/index.d.ts +3 -0
  137. package/dist/types/src/capabilities/settings/index.d.ts.map +1 -0
  138. package/dist/types/src/capabilities/settings/settings.d.ts +6 -0
  139. package/dist/types/src/capabilities/settings/settings.d.ts.map +1 -0
  140. package/dist/types/src/capabilities/state/index.d.ts +3 -0
  141. package/dist/types/src/capabilities/state/index.d.ts.map +1 -0
  142. package/dist/types/src/capabilities/state/state.d.ts +7 -0
  143. package/dist/types/src/capabilities/state/state.d.ts.map +1 -0
  144. package/dist/types/src/components/Call/Call.d.ts.map +1 -1
  145. package/dist/types/src/components/Call/Toolbar.d.ts +2 -2
  146. package/dist/types/src/components/Call/Toolbar.d.ts.map +1 -1
  147. package/dist/types/src/components/CallDebugPanel.d.ts +7 -0
  148. package/dist/types/src/components/CallDebugPanel.d.ts.map +1 -1
  149. package/dist/types/src/components/CallSidebar.d.ts.map +1 -1
  150. package/dist/types/src/components/ChannelContainer.d.ts +5 -6
  151. package/dist/types/src/components/ChannelContainer.d.ts.map +1 -1
  152. package/dist/types/src/components/ChannelContainer.stories.d.ts +159 -5
  153. package/dist/types/src/components/ChannelContainer.stories.d.ts.map +1 -1
  154. package/dist/types/src/components/Chat.stories.d.ts +162 -4
  155. package/dist/types/src/components/Chat.stories.d.ts.map +1 -1
  156. package/dist/types/src/components/ChatContainer.d.ts +8 -7
  157. package/dist/types/src/components/ChatContainer.d.ts.map +1 -1
  158. package/dist/types/src/components/Comments.stories.d.ts +160 -4
  159. package/dist/types/src/components/Comments.stories.d.ts.map +1 -1
  160. package/dist/types/src/components/CommentsContainer.d.ts +6 -6
  161. package/dist/types/src/components/CommentsContainer.d.ts.map +1 -1
  162. package/dist/types/src/components/CommentsThreadContainer.d.ts +14 -0
  163. package/dist/types/src/components/CommentsThreadContainer.d.ts.map +1 -0
  164. package/dist/types/src/components/Lobby/Lobby.d.ts.map +1 -1
  165. package/dist/types/src/components/Media/VideoObject.d.ts +3 -3
  166. package/dist/types/src/components/Media/VideoObject.d.ts.map +1 -1
  167. package/dist/types/src/components/Media/VideoObject.stories.d.ts +18 -4
  168. package/dist/types/src/components/Media/VideoObject.stories.d.ts.map +1 -1
  169. package/dist/types/src/components/MessageContainer.d.ts +7 -3
  170. package/dist/types/src/components/MessageContainer.d.ts.map +1 -1
  171. package/dist/types/src/components/Participant/Participant.d.ts.map +1 -1
  172. package/dist/types/src/components/Participant/ParticipantGrid.d.ts.map +1 -1
  173. package/dist/types/src/components/ResponsiveGrid/ResponsiveContainer.stories.d.ts +159 -3
  174. package/dist/types/src/components/ResponsiveGrid/ResponsiveContainer.stories.d.ts.map +1 -1
  175. package/dist/types/src/components/ResponsiveGrid/ResponsiveGrid.stories.d.ts +161 -4
  176. package/dist/types/src/components/ResponsiveGrid/ResponsiveGrid.stories.d.ts.map +1 -1
  177. package/dist/types/src/components/ResponsiveGrid/ResponsiveGridItem.d.ts.map +1 -1
  178. package/dist/types/src/components/ThreadCompanion.d.ts +5 -0
  179. package/dist/types/src/components/ThreadCompanion.d.ts.map +1 -0
  180. package/dist/types/src/components/ThreadSettings.d.ts +4 -2
  181. package/dist/types/src/components/ThreadSettings.d.ts.map +1 -1
  182. package/dist/types/src/components/command-extension.d.ts.map +1 -1
  183. package/dist/types/src/components/index.d.ts +4 -4
  184. package/dist/types/src/components/index.d.ts.map +1 -1
  185. package/dist/types/src/components/testing.d.ts +3 -2
  186. package/dist/types/src/components/testing.d.ts.map +1 -1
  187. package/dist/types/src/extensions/threads.d.ts +8 -3
  188. package/dist/types/src/extensions/threads.d.ts.map +1 -1
  189. package/dist/types/src/functions/create-proposals.d.ts +13 -0
  190. package/dist/types/src/functions/create-proposals.d.ts.map +1 -0
  191. package/dist/types/src/functions/index.d.ts +2 -0
  192. package/dist/types/src/functions/index.d.ts.map +1 -0
  193. package/dist/types/src/hooks/analytics.d.ts +2 -3
  194. package/dist/types/src/hooks/analytics.d.ts.map +1 -1
  195. package/dist/types/src/hooks/index.d.ts +3 -0
  196. package/dist/types/src/hooks/index.d.ts.map +1 -1
  197. package/dist/types/src/hooks/useBlackCanvasStreamTrack.d.ts +2 -0
  198. package/dist/types/src/hooks/useBlackCanvasStreamTrack.d.ts.map +1 -0
  199. package/dist/types/src/hooks/useInaudibleAudioStreamTrack.d.ts +2 -0
  200. package/dist/types/src/hooks/useInaudibleAudioStreamTrack.d.ts.map +1 -0
  201. package/dist/types/src/hooks/useVideoStreamTrack.d.ts +3 -0
  202. package/dist/types/src/hooks/useVideoStreamTrack.d.ts.map +1 -0
  203. package/dist/types/src/index.d.ts +1 -1
  204. package/dist/types/src/index.d.ts.map +1 -1
  205. package/dist/types/src/meta.d.ts +3 -4
  206. package/dist/types/src/meta.d.ts.map +1 -1
  207. package/dist/types/src/testing/stories.d.ts +2 -1
  208. package/dist/types/src/testing/stories.d.ts.map +1 -1
  209. package/dist/types/src/translations.d.ts +146 -194
  210. package/dist/types/src/translations.d.ts.map +1 -1
  211. package/dist/types/src/types/Channel.d.ts +695 -0
  212. package/dist/types/src/types/Channel.d.ts.map +1 -0
  213. package/dist/types/src/types/capabilities.d.ts +23 -0
  214. package/dist/types/src/types/capabilities.d.ts.map +1 -0
  215. package/dist/types/src/types/index.d.ts +2 -1
  216. package/dist/types/src/types/index.d.ts.map +1 -1
  217. package/dist/types/src/types/types.d.ts +3224 -320
  218. package/dist/types/src/types/types.d.ts.map +1 -1
  219. package/dist/types/src/util.d.ts +17 -2
  220. package/dist/types/src/util.d.ts.map +1 -1
  221. package/dist/types/tsconfig.tsbuildinfo +1 -1
  222. package/package.json +93 -67
  223. package/src/ThreadPlugin.tsx +107 -143
  224. package/src/blueprints/index.ts +5 -0
  225. package/src/blueprints/thread-blueprint.ts +32 -0
  226. package/src/calls/call-manager.ts +78 -50
  227. package/src/calls/call-swarm-synchronizer.ts +3 -3
  228. package/src/calls/media-manager.ts +77 -41
  229. package/src/calls/types.ts +8 -4
  230. package/src/calls/util/calls-service.ts +73 -19
  231. package/src/calls/util/stub-media-streams.ts +63 -9
  232. package/src/calls/util/task-scheduling.ts +4 -4
  233. package/src/calls-service.stories.tsx +229 -0
  234. package/src/capabilities/app-graph-builder/app-graph-builder.ts +202 -0
  235. package/src/capabilities/app-graph-builder/index.ts +7 -0
  236. package/src/capabilities/blueprint-definition/blueprint-definition.ts +24 -0
  237. package/src/capabilities/blueprint-definition/index.ts +7 -0
  238. package/src/capabilities/call-manager/call-manager.ts +26 -0
  239. package/src/capabilities/call-manager/index.ts +7 -0
  240. package/src/capabilities/index.ts +10 -12
  241. package/src/capabilities/markdown/index.ts +7 -0
  242. package/src/capabilities/markdown/markdown.ts +83 -0
  243. package/src/capabilities/operation-resolver/index.ts +7 -0
  244. package/src/capabilities/operation-resolver/operation-resolver.ts +400 -0
  245. package/src/capabilities/react-root/index.ts +7 -0
  246. package/src/capabilities/react-root/react-root.tsx +20 -0
  247. package/src/capabilities/react-surface/index.ts +7 -0
  248. package/src/capabilities/react-surface/react-surface.tsx +98 -0
  249. package/src/capabilities/repair/index.ts +7 -0
  250. package/src/capabilities/repair/repair.ts +51 -0
  251. package/src/capabilities/settings/index.ts +7 -0
  252. package/src/capabilities/settings/settings.ts +34 -0
  253. package/src/capabilities/state/index.ts +7 -0
  254. package/src/capabilities/state/state.ts +22 -0
  255. package/src/components/Call/Call.tsx +11 -6
  256. package/src/components/Call/Toolbar.tsx +42 -33
  257. package/src/components/CallDebugPanel.tsx +114 -57
  258. package/src/components/CallSidebar.tsx +6 -3
  259. package/src/components/ChannelContainer.stories.tsx +23 -21
  260. package/src/components/ChannelContainer.tsx +47 -38
  261. package/src/components/Chat.stories.tsx +37 -39
  262. package/src/components/ChatContainer.tsx +56 -44
  263. package/src/components/Comments.stories.tsx +63 -55
  264. package/src/components/CommentsContainer.tsx +20 -16
  265. package/src/components/CommentsThreadContainer.tsx +173 -0
  266. package/src/components/Lobby/Lobby.tsx +10 -8
  267. package/src/components/Media/AudioStream.tsx +2 -2
  268. package/src/components/Media/VideoObject.stories.tsx +36 -28
  269. package/src/components/Media/VideoObject.tsx +2 -2
  270. package/src/components/MessageContainer.tsx +117 -68
  271. package/src/components/Participant/Participant.tsx +34 -15
  272. package/src/components/Participant/ParticipantGrid.tsx +2 -1
  273. package/src/components/ResponsiveGrid/ResponsiveContainer.stories.tsx +9 -9
  274. package/src/components/ResponsiveGrid/ResponsiveContainer.tsx +3 -3
  275. package/src/components/ResponsiveGrid/ResponsiveGrid.stories.tsx +45 -43
  276. package/src/components/ResponsiveGrid/ResponsiveGrid.tsx +7 -7
  277. package/src/components/ResponsiveGrid/ResponsiveGridItem.tsx +10 -7
  278. package/src/components/ThreadCompanion.tsx +194 -0
  279. package/src/components/ThreadSettings.tsx +11 -6
  280. package/src/components/command-extension.ts +7 -4
  281. package/src/components/index.ts +5 -8
  282. package/src/components/testing.ts +28 -8
  283. package/src/extensions/threads.ts +88 -44
  284. package/src/functions/create-proposals.ts +57 -0
  285. package/src/functions/index.ts +5 -0
  286. package/src/hooks/analytics.ts +21 -21
  287. package/src/hooks/index.ts +4 -0
  288. package/src/hooks/useBlackCanvasStreamTrack.tsx +27 -0
  289. package/src/hooks/useDebugMode.ts +1 -1
  290. package/src/hooks/useInaudibleAudioStreamTrack.tsx +27 -0
  291. package/src/hooks/useVideoStreamTrack.tsx +36 -0
  292. package/src/index.ts +1 -1
  293. package/src/meta.ts +11 -7
  294. package/src/testing/stories.ts +23 -17
  295. package/src/translations.ts +18 -10
  296. package/src/types/Channel.ts +30 -0
  297. package/src/types/capabilities.ts +34 -0
  298. package/src/types/index.ts +2 -1
  299. package/src/types/types.ts +171 -75
  300. package/src/typings/peermetrics-webrtc-stats.d.ts +17 -1
  301. package/src/typings.d.ts +8 -0
  302. package/src/util.ts +1 -1
  303. package/dist/lib/browser/ChannelContainer-PKFBVENP.mjs +0 -15
  304. package/dist/lib/browser/ChatContainer-RSOKYAMK.mjs +0 -14
  305. package/dist/lib/browser/app-graph-builder-OY7R7EJP.mjs +0 -171
  306. package/dist/lib/browser/app-graph-builder-OY7R7EJP.mjs.map +0 -7
  307. package/dist/lib/browser/call-manager-APQAZWHT.mjs +0 -23
  308. package/dist/lib/browser/call-manager-APQAZWHT.mjs.map +0 -7
  309. package/dist/lib/browser/chunk-4H4A264L.mjs.map +0 -7
  310. package/dist/lib/browser/chunk-5P5BH5GE.mjs +0 -88
  311. package/dist/lib/browser/chunk-5P5BH5GE.mjs.map +0 -7
  312. package/dist/lib/browser/chunk-6NBVNXTM.mjs +0 -21
  313. package/dist/lib/browser/chunk-6NBVNXTM.mjs.map +0 -7
  314. package/dist/lib/browser/chunk-AEXWNS6Z.mjs +0 -128
  315. package/dist/lib/browser/chunk-AEXWNS6Z.mjs.map +0 -7
  316. package/dist/lib/browser/chunk-IIUTBDVB.mjs +0 -17
  317. package/dist/lib/browser/chunk-IIUTBDVB.mjs.map +0 -7
  318. package/dist/lib/browser/chunk-JKQUJOTX.mjs.map +0 -7
  319. package/dist/lib/browser/chunk-PG5CTFKK.mjs +0 -550
  320. package/dist/lib/browser/chunk-PG5CTFKK.mjs.map +0 -7
  321. package/dist/lib/browser/chunk-R5MDLUPC.mjs +0 -18
  322. package/dist/lib/browser/chunk-R5MDLUPC.mjs.map +0 -7
  323. package/dist/lib/browser/chunk-TAFSCSUR.mjs +0 -351
  324. package/dist/lib/browser/chunk-TAFSCSUR.mjs.map +0 -7
  325. package/dist/lib/browser/chunk-XZKBN3NS.mjs +0 -983
  326. package/dist/lib/browser/chunk-XZKBN3NS.mjs.map +0 -7
  327. package/dist/lib/browser/intent-resolver-FK2MDVDT.mjs +0 -353
  328. package/dist/lib/browser/intent-resolver-FK2MDVDT.mjs.map +0 -7
  329. package/dist/lib/browser/markdown-TE5SWWNJ.mjs +0 -169
  330. package/dist/lib/browser/markdown-TE5SWWNJ.mjs.map +0 -7
  331. package/dist/lib/browser/react-root-NK3A4VG7.mjs +0 -27
  332. package/dist/lib/browser/react-root-NK3A4VG7.mjs.map +0 -7
  333. package/dist/lib/browser/react-surface-VXUJKSOG.mjs +0 -108
  334. package/dist/lib/browser/react-surface-VXUJKSOG.mjs.map +0 -7
  335. package/dist/lib/browser/settings-RB2RSLXV.mjs +0 -22
  336. package/dist/lib/browser/settings-RB2RSLXV.mjs.map +0 -7
  337. package/dist/lib/browser/state-RKL5MSDP.mjs +0 -34
  338. package/dist/lib/browser/state-RKL5MSDP.mjs.map +0 -7
  339. package/dist/lib/node/ChannelContainer-YS5YT2ML.cjs +0 -36
  340. package/dist/lib/node/ChannelContainer-YS5YT2ML.cjs.map +0 -7
  341. package/dist/lib/node/ChatContainer-GCOM3M56.cjs +0 -35
  342. package/dist/lib/node/ChatContainer-GCOM3M56.cjs.map +0 -7
  343. package/dist/lib/node/app-graph-builder-PBHJNDQY.cjs +0 -179
  344. package/dist/lib/node/app-graph-builder-PBHJNDQY.cjs.map +0 -7
  345. package/dist/lib/node/call-manager-HV2XJW5O.cjs +0 -37
  346. package/dist/lib/node/call-manager-HV2XJW5O.cjs.map +0 -7
  347. package/dist/lib/node/chunk-44I33JDT.cjs +0 -1731
  348. package/dist/lib/node/chunk-44I33JDT.cjs.map +0 -7
  349. package/dist/lib/node/chunk-4YSNVPWU.cjs +0 -37
  350. package/dist/lib/node/chunk-4YSNVPWU.cjs.map +0 -7
  351. package/dist/lib/node/chunk-E3WBZTTI.cjs +0 -371
  352. package/dist/lib/node/chunk-E3WBZTTI.cjs.map +0 -7
  353. package/dist/lib/node/chunk-ERG7G6FF.cjs +0 -59
  354. package/dist/lib/node/chunk-ERG7G6FF.cjs.map +0 -7
  355. package/dist/lib/node/chunk-FUXJAVFZ.cjs +0 -108
  356. package/dist/lib/node/chunk-FUXJAVFZ.cjs.map +0 -7
  357. package/dist/lib/node/chunk-HLMCEE5K.cjs +0 -41
  358. package/dist/lib/node/chunk-HLMCEE5K.cjs.map +0 -7
  359. package/dist/lib/node/chunk-IP533AMV.cjs +0 -554
  360. package/dist/lib/node/chunk-IP533AMV.cjs.map +0 -7
  361. package/dist/lib/node/chunk-LR5NENBE.cjs +0 -54
  362. package/dist/lib/node/chunk-LR5NENBE.cjs.map +0 -7
  363. package/dist/lib/node/chunk-UM36TPCT.cjs +0 -984
  364. package/dist/lib/node/chunk-UM36TPCT.cjs.map +0 -7
  365. package/dist/lib/node/chunk-ZGDN3XBR.cjs +0 -149
  366. package/dist/lib/node/chunk-ZGDN3XBR.cjs.map +0 -7
  367. package/dist/lib/node/index.cjs +0 -310
  368. package/dist/lib/node/index.cjs.map +0 -7
  369. package/dist/lib/node/intent-resolver-SYSJ5SJG.cjs +0 -363
  370. package/dist/lib/node/intent-resolver-SYSJ5SJG.cjs.map +0 -7
  371. package/dist/lib/node/markdown-GQIPJS2F.cjs +0 -178
  372. package/dist/lib/node/markdown-GQIPJS2F.cjs.map +0 -7
  373. package/dist/lib/node/meta.json +0 -1
  374. package/dist/lib/node/react-root-6HHDMULJ.cjs +0 -51
  375. package/dist/lib/node/react-root-6HHDMULJ.cjs.map +0 -7
  376. package/dist/lib/node/react-surface-NBH42NN2.cjs +0 -122
  377. package/dist/lib/node/react-surface-NBH42NN2.cjs.map +0 -7
  378. package/dist/lib/node/settings-4LQSFEDK.cjs +0 -36
  379. package/dist/lib/node/settings-4LQSFEDK.cjs.map +0 -7
  380. package/dist/lib/node/state-IY5XX3H2.cjs +0 -50
  381. package/dist/lib/node/state-IY5XX3H2.cjs.map +0 -7
  382. package/dist/lib/node/types/index.cjs +0 -38
  383. package/dist/lib/node/types/index.cjs.map +0 -7
  384. package/dist/lib/node-esm/ChannelContainer-O4QJII2P.mjs +0 -16
  385. package/dist/lib/node-esm/ChatContainer-F6CSADV7.mjs +0 -15
  386. package/dist/lib/node-esm/app-graph-builder-BAHBHYWI.mjs +0 -172
  387. package/dist/lib/node-esm/app-graph-builder-BAHBHYWI.mjs.map +0 -7
  388. package/dist/lib/node-esm/call-manager-UUYXLF4T.mjs +0 -24
  389. package/dist/lib/node-esm/call-manager-UUYXLF4T.mjs.map +0 -7
  390. package/dist/lib/node-esm/chunk-2RNIPFDA.mjs +0 -984
  391. package/dist/lib/node-esm/chunk-2RNIPFDA.mjs.map +0 -7
  392. package/dist/lib/node-esm/chunk-ESQC6SYE.mjs +0 -19
  393. package/dist/lib/node-esm/chunk-ESQC6SYE.mjs.map +0 -7
  394. package/dist/lib/node-esm/chunk-K4KAUOKT.mjs +0 -19
  395. package/dist/lib/node-esm/chunk-K4KAUOKT.mjs.map +0 -7
  396. package/dist/lib/node-esm/chunk-O3V45YJP.mjs +0 -90
  397. package/dist/lib/node-esm/chunk-O3V45YJP.mjs.map +0 -7
  398. package/dist/lib/node-esm/chunk-O63QJPQX.mjs +0 -23
  399. package/dist/lib/node-esm/chunk-O63QJPQX.mjs.map +0 -7
  400. package/dist/lib/node-esm/chunk-P6RLFCNT.mjs +0 -352
  401. package/dist/lib/node-esm/chunk-P6RLFCNT.mjs.map +0 -7
  402. package/dist/lib/node-esm/chunk-PGRP3O4O.mjs.map +0 -7
  403. package/dist/lib/node-esm/chunk-UJMPYKT3.mjs +0 -129
  404. package/dist/lib/node-esm/chunk-UJMPYKT3.mjs.map +0 -7
  405. package/dist/lib/node-esm/chunk-UZWVVFT3.mjs +0 -551
  406. package/dist/lib/node-esm/chunk-UZWVVFT3.mjs.map +0 -7
  407. package/dist/lib/node-esm/chunk-WXNPD542.mjs.map +0 -7
  408. package/dist/lib/node-esm/intent-resolver-BU73VYW3.mjs +0 -354
  409. package/dist/lib/node-esm/intent-resolver-BU73VYW3.mjs.map +0 -7
  410. package/dist/lib/node-esm/markdown-HJUWNBLS.mjs +0 -170
  411. package/dist/lib/node-esm/markdown-HJUWNBLS.mjs.map +0 -7
  412. package/dist/lib/node-esm/react-root-RUXOAQNW.mjs +0 -28
  413. package/dist/lib/node-esm/react-root-RUXOAQNW.mjs.map +0 -7
  414. package/dist/lib/node-esm/react-surface-ELXFYKP6.mjs +0 -109
  415. package/dist/lib/node-esm/react-surface-ELXFYKP6.mjs.map +0 -7
  416. package/dist/lib/node-esm/settings-EA7DFSM6.mjs +0 -23
  417. package/dist/lib/node-esm/settings-EA7DFSM6.mjs.map +0 -7
  418. package/dist/lib/node-esm/state-6AUTNROZ.mjs +0 -35
  419. package/dist/lib/node-esm/state-6AUTNROZ.mjs.map +0 -7
  420. package/dist/types/src/capabilities/app-graph-builder.d.ts +0 -4
  421. package/dist/types/src/capabilities/app-graph-builder.d.ts.map +0 -1
  422. package/dist/types/src/capabilities/call-manager.d.ts +0 -5
  423. package/dist/types/src/capabilities/call-manager.d.ts.map +0 -1
  424. package/dist/types/src/capabilities/capabilities.d.ts +0 -27
  425. package/dist/types/src/capabilities/capabilities.d.ts.map +0 -1
  426. package/dist/types/src/capabilities/intent-resolver.d.ts +0 -4
  427. package/dist/types/src/capabilities/intent-resolver.d.ts.map +0 -1
  428. package/dist/types/src/capabilities/markdown.d.ts +0 -4
  429. package/dist/types/src/capabilities/markdown.d.ts.map +0 -1
  430. package/dist/types/src/capabilities/react-root.d.ts +0 -7
  431. package/dist/types/src/capabilities/react-root.d.ts.map +0 -1
  432. package/dist/types/src/capabilities/react-surface.d.ts +0 -4
  433. package/dist/types/src/capabilities/react-surface.d.ts.map +0 -1
  434. package/dist/types/src/capabilities/settings.d.ts +0 -4
  435. package/dist/types/src/capabilities/settings.d.ts.map +0 -1
  436. package/dist/types/src/capabilities/state.d.ts +0 -7
  437. package/dist/types/src/capabilities/state.d.ts.map +0 -1
  438. package/dist/types/src/components/CommentContainer.d.ts +0 -13
  439. package/dist/types/src/components/CommentContainer.d.ts.map +0 -1
  440. package/dist/types/src/components/ThreadComplementary.d.ts +0 -5
  441. package/dist/types/src/components/ThreadComplementary.d.ts.map +0 -1
  442. package/dist/types/src/peers.stories.d.ts +0 -11
  443. package/dist/types/src/peers.stories.d.ts.map +0 -1
  444. package/dist/types/src/types/schema.d.ts +0 -133
  445. package/dist/types/src/types/schema.d.ts.map +0 -1
  446. package/src/capabilities/app-graph-builder.ts +0 -180
  447. package/src/capabilities/call-manager.ts +0 -19
  448. package/src/capabilities/capabilities.ts +0 -33
  449. package/src/capabilities/intent-resolver.ts +0 -296
  450. package/src/capabilities/markdown.ts +0 -68
  451. package/src/capabilities/react-root.tsx +0 -17
  452. package/src/capabilities/react-surface.tsx +0 -88
  453. package/src/capabilities/settings.ts +0 -19
  454. package/src/capabilities/state.ts +0 -25
  455. package/src/components/CommentContainer.tsx +0 -198
  456. package/src/components/ThreadComplementary.tsx +0 -151
  457. package/src/peers.stories.tsx +0 -189
  458. package/src/types/schema.ts +0 -33
  459. /package/dist/lib/browser/{ChannelContainer-PKFBVENP.mjs.map → blueprints/index.mjs.map} +0 -0
  460. /package/dist/lib/browser/{ChatContainer-RSOKYAMK.mjs.map → chunk-J5LGTIGS.mjs.map} +0 -0
  461. /package/dist/lib/node-esm/{ChannelContainer-O4QJII2P.mjs.map → blueprints/index.mjs.map} +0 -0
  462. /package/dist/lib/node-esm/{ChatContainer-F6CSADV7.mjs.map → chunk-HSLMI22Q.mjs.map} +0 -0
@@ -3,21 +3,25 @@
3
3
  //
4
4
 
5
5
  import { Type } from '@dxos/echo';
6
+ import { type Resource } from '@dxos/react-ui';
6
7
 
7
- import { THREAD_PLUGIN } from './meta';
8
- import { ChannelType } from './types';
8
+ import { meta } from './meta';
9
+ import { Channel } from './types';
9
10
 
10
- export default [
11
+ export const translations = [
11
12
  {
12
13
  'en-US': {
13
- [Type.getTypename(ChannelType)]: {
14
+ [Type.getTypename(Channel.Channel)]: {
14
15
  'typename label': 'Channel',
15
16
  'typename label_zero': 'Channels',
16
17
  'typename label_one': 'Channel',
17
18
  'typename label_other': 'Channels',
18
19
  'object name placeholder': 'New channel',
20
+ 'rename object label': 'Rename channel',
21
+ 'delete object label': 'Delete channel',
22
+ 'object deleted label': 'Channel deleted',
19
23
  },
20
- [THREAD_PLUGIN]: {
24
+ [meta.id]: {
21
25
  'plugin name': 'Chat',
22
26
  'channel title label': 'Title',
23
27
  'message placeholder': 'Reply…',
@@ -26,8 +30,9 @@ export default [
26
30
  'delete message block label': 'Delete message block',
27
31
  'detached thread label': 'Referenced content was removed',
28
32
  'delete thread label': 'Delete thread',
29
- 'thread deleted label': 'You deleted a thread.',
30
- 'message deleted label': 'You deleted a message.',
33
+ 'resolve thread label': 'Resolve thread',
34
+ 'thread deleted label': 'Thread deleted',
35
+ 'message deleted label': 'Message deleted',
31
36
  'comments heading': 'Comments',
32
37
  'chat heading': 'Chat',
33
38
  'draft button': 'DRAFT',
@@ -41,10 +46,12 @@ export default [
41
46
  'save message label': 'Save',
42
47
  'edit message label': 'Edit',
43
48
  'delete message label': 'Delete message',
49
+ 'accept proposal label': 'Accept proposal',
44
50
  'open comments panel label': 'Show Comments',
45
51
  'comments label': 'Comments',
46
52
  'show all label': 'All comments',
47
53
  'show unresolved label': 'Unresolved comments',
54
+ 'add comment label': 'Add comment',
48
55
 
49
56
  'channel companion label': 'Channel',
50
57
  'call panel label': 'Active Call',
@@ -55,9 +62,10 @@ export default [
55
62
  'set display name label': 'Continue',
56
63
 
57
64
  'call tab label': 'Call',
58
- 'meeting status title': 'Meeting',
65
+ 'meeting status title': 'Calls',
59
66
  'share meeting link label': 'Share meeting',
60
- 'show webrtc stats title': 'Detailed WebRTC Stats',
67
+ 'show webrtc stats title': 'WebRTC Stats',
68
+ 'show calls history title': 'Service History',
61
69
 
62
70
  'meeting summary label': 'Summary',
63
71
  'summarize label': 'Summarize',
@@ -90,4 +98,4 @@ export default [
90
98
  },
91
99
  },
92
100
  },
93
- ];
101
+ ] as const satisfies Resource[];
@@ -0,0 +1,30 @@
1
+ //
2
+ // Copyright 2025 DXOS.org
3
+ //
4
+
5
+ import * as Schema from 'effect/Schema';
6
+
7
+ import { Obj, Ref, Type } from '@dxos/echo';
8
+ import { FormInputAnnotation } from '@dxos/echo/internal';
9
+ import { Thread } from '@dxos/types';
10
+
11
+ export const Channel = Schema.Struct({
12
+ name: Schema.optional(Schema.String),
13
+ defaultThread: Type.Ref(Thread.Thread).pipe(FormInputAnnotation.set(false)),
14
+ // TODO(wittjosiah): Should be an "ordered collection".
15
+ threads: Type.Ref(Thread.Thread).pipe(Schema.Array, FormInputAnnotation.set(false)),
16
+ }).pipe(
17
+ Type.object({
18
+ typename: 'dxos.org/type/Channel',
19
+ version: '0.1.0',
20
+ }),
21
+ );
22
+
23
+ export interface Channel extends Schema.Schema.Type<typeof Channel> {}
24
+
25
+ export const make = (props: Pick<Obj.MakeProps<typeof Channel>, 'name'> = {}) =>
26
+ Obj.make(Channel, {
27
+ ...props,
28
+ defaultThread: Ref.make(Obj.make(Thread.Thread, { messages: [], status: 'active' })),
29
+ threads: [],
30
+ });
@@ -0,0 +1,34 @@
1
+ //
2
+ // Copyright 2025 DXOS.org
3
+ //
4
+
5
+ import { type Atom } from '@effect-atom/atom-react';
6
+
7
+ import { Capability } from '@dxos/app-framework';
8
+
9
+ import { type CallManager, type CallState, type MediaState } from '../calls';
10
+ import { meta } from '../meta';
11
+ import { type Channel, type ThreadSettingsProps, type ThreadState, type ViewStore } from '../types';
12
+
13
+ export namespace ThreadCapabilities {
14
+ export const Settings = Capability.make<Atom.Writable<ThreadSettingsProps>>(`${meta.id}/capability/settings`);
15
+ export const CallManager = Capability.make<CallManager>(`${meta.id}/capability/call-manager`);
16
+
17
+ // TODO(burdon): Better way to define specific extensions for meeting companions.
18
+ // TODO(burdon): This brings in deps from ../calls; how should we manage/minimize explicit type exposure to other plugins?
19
+ // TODO(wittjosiah): These callbacks could be intents once we support broadcast.
20
+ export type CallProperties = {
21
+ onJoin: (state: { channel?: Channel.Channel; roomId?: string }) => Promise<void>;
22
+ onLeave: (roomId?: string) => Promise<void>;
23
+ onCallStateUpdated: (callState: CallState) => Promise<void>;
24
+ onMediaStateUpdated: ([mediaState, isSpeaking]: [MediaState, boolean]) => Promise<void>;
25
+ };
26
+
27
+ export const CallExtension = Capability.make<CallProperties>(`${meta.id}/capability/call-extension`);
28
+
29
+ /** Thread state (drafts, toolbar state, current selection). */
30
+ export const State = Capability.make<Atom.Writable<ThreadState>>(`${meta.id}/capability/state`);
31
+
32
+ /** Per-subject view state (e.g., showResolvedThreads). */
33
+ export const ViewState = Capability.make<Atom.Writable<ViewStore>>(`${meta.id}/capability/view-state`);
34
+ }
@@ -2,5 +2,6 @@
2
2
  // Copyright 2025 DXOS.org
3
3
  //
4
4
 
5
- export * from './schema';
5
+ export * from './capabilities';
6
+ export * as Channel from './Channel';
6
7
  export * from './types';
@@ -2,99 +2,194 @@
2
2
  // Copyright 2023 DXOS.org
3
3
  //
4
4
 
5
- import { Schema } from 'effect';
5
+ import * as Schema from 'effect/Schema';
6
+
7
+ import { Capability } from '@dxos/app-framework';
8
+ import { Key, Type } from '@dxos/echo';
9
+ import { Operation } from '@dxos/operation';
10
+ import { SpaceSchema } from '@dxos/react-client/echo';
11
+ import { Collection } from '@dxos/schema';
12
+ import { Actor, AnchoredTo, Message, Thread } from '@dxos/types';
13
+
14
+ import { meta } from '../meta';
15
+
16
+ import * as Channel from './Channel';
17
+
18
+ const THREAD_OPERATION = `${meta.id}/operation`;
19
+
20
+ /**
21
+ * Operations for the Thread plugin.
22
+ * Note: Complex ECHO types are typed as Schema.Any to avoid serialization issues.
23
+ */
24
+ export namespace ThreadOperation {
25
+ export const OnCreateSpace = Operation.make({
26
+ meta: { key: `${THREAD_OPERATION}/on-create-space`, name: 'On Create Space' },
27
+ services: [Capability.Service],
28
+ schema: {
29
+ input: Schema.Struct({
30
+ space: SpaceSchema,
31
+ rootCollection: Collection.Collection,
32
+ isDefault: Schema.Boolean.pipe(Schema.optional),
33
+ }),
34
+ output: Schema.Void,
35
+ },
36
+ });
6
37
 
7
- import { Type } from '@dxos/echo';
8
- import { EchoObjectSchema } from '@dxos/react-client/echo';
9
- import { AnchoredTo, DataType } from '@dxos/schema';
38
+ export const CreateChannel = Operation.make({
39
+ meta: { key: `${THREAD_OPERATION}/create-channel`, name: 'Create Channel' },
40
+ services: [Capability.Service],
41
+ schema: {
42
+ input: Schema.Struct({
43
+ spaceId: Key.SpaceId,
44
+ name: Schema.optional(Schema.String),
45
+ }),
46
+ output: Schema.Struct({
47
+ object: Channel.Channel,
48
+ }),
49
+ },
50
+ });
10
51
 
11
- import { ChannelType, ThreadType } from './schema';
12
- import { THREAD_PLUGIN } from '../meta';
52
+ export const CreateChannelThread = Operation.make({
53
+ meta: { key: `${THREAD_OPERATION}/create-channel-thread`, name: 'Create Channel Thread' },
54
+ services: [Capability.Service],
55
+ schema: {
56
+ input: Schema.Struct({
57
+ channel: Channel.Channel,
58
+ }),
59
+ output: Schema.Struct({
60
+ object: Thread.Thread,
61
+ }),
62
+ },
63
+ });
13
64
 
14
- export namespace ThreadAction {
15
- const THREAD_ACTION = `${THREAD_PLUGIN}/action`;
65
+ export const Create = Operation.make({
66
+ meta: { key: `${THREAD_OPERATION}/create`, name: 'Create Thread' },
67
+ services: [Capability.Service],
68
+ schema: {
69
+ input: Schema.Struct({
70
+ name: Schema.optional(Schema.String),
71
+ anchor: Schema.optional(Schema.String),
72
+ subject: Type.Obj,
73
+ }),
74
+ output: Schema.Void,
75
+ },
76
+ });
16
77
 
17
- export class CreateChannel extends Schema.TaggedClass<CreateChannel>()(`${THREAD_ACTION}/create-channel`, {
18
- input: Schema.Struct({
19
- spaceId: Type.SpaceId,
20
- name: Schema.optional(Schema.String),
21
- }),
22
- output: Schema.Struct({
23
- object: ChannelType,
24
- }),
25
- }) {}
78
+ export const DeleteOutput = Schema.Struct({
79
+ thread: Thread.Thread.annotations({ description: 'The deleted thread.' }),
80
+ anchor: AnchoredTo.AnchoredTo.annotations({ description: 'The deleted anchor.' }),
81
+ }).pipe(Schema.partial);
26
82
 
27
- export class CreateChannelThread extends Schema.TaggedClass<CreateChannelThread>()(
28
- `${THREAD_ACTION}/create-channel-thread`,
29
- {
83
+ export type DeleteOutput = Schema.Schema.Type<typeof DeleteOutput>;
84
+
85
+ export const Delete = Operation.make({
86
+ meta: { key: `${THREAD_OPERATION}/delete`, name: 'Delete Thread' },
87
+ services: [Capability.Service],
88
+ schema: {
30
89
  input: Schema.Struct({
31
- channel: ChannelType,
90
+ anchor: AnchoredTo.AnchoredTo,
91
+ subject: Type.Obj,
92
+ thread: Schema.optional(Thread.Thread),
32
93
  }),
33
- output: Schema.Struct({
34
- object: ThreadType,
94
+ output: DeleteOutput,
95
+ },
96
+ });
97
+
98
+ export const Select = Operation.make({
99
+ meta: { key: `${THREAD_OPERATION}/select`, name: 'Select Thread' },
100
+ services: [Capability.Service],
101
+ schema: {
102
+ input: Schema.Struct({
103
+ current: Schema.String,
35
104
  }),
105
+ output: Schema.Void,
36
106
  },
37
- ) {}
107
+ });
38
108
 
39
- export class Create extends Schema.TaggedClass<Create>()(`${THREAD_ACTION}/create`, {
40
- input: Schema.Struct({
41
- name: Schema.optional(Schema.String),
42
- anchor: Schema.optional(Schema.String),
43
- subject: EchoObjectSchema,
44
- }),
45
- output: Schema.Void,
46
- }) {}
47
-
48
- export class Delete extends Schema.TaggedClass<Delete>()(`${THREAD_ACTION}/delete`, {
49
- input: Schema.Struct({
50
- anchor: AnchoredTo,
51
- subject: EchoObjectSchema,
52
- thread: Schema.optional(ThreadType),
53
- }),
54
- output: Schema.Void,
55
- }) {}
109
+ export const ToggleResolved = Operation.make({
110
+ meta: { key: `${THREAD_OPERATION}/toggle-resolved`, name: 'Toggle Resolved' },
111
+ services: [Capability.Service],
112
+ schema: {
113
+ input: Schema.Struct({
114
+ thread: Thread.Thread,
115
+ }),
116
+ output: Schema.Void,
117
+ },
118
+ });
56
119
 
57
- export class Select extends Schema.TaggedClass<Select>()(`${THREAD_ACTION}/select`, {
58
- input: Schema.Struct({
59
- current: Schema.String,
60
- }),
61
- output: Schema.Void,
62
- }) {}
120
+ export const AddMessage = Operation.make({
121
+ meta: { key: `${THREAD_OPERATION}/add-message`, name: 'Add Message' },
122
+ services: [Capability.Service],
123
+ schema: {
124
+ input: Schema.Struct({
125
+ subject: Type.Obj,
126
+ anchor: AnchoredTo.AnchoredTo,
127
+ sender: Actor.Actor,
128
+ text: Schema.String,
129
+ }),
130
+ output: Schema.Void,
131
+ },
132
+ });
63
133
 
64
- export class ToggleResolved extends Schema.TaggedClass<ToggleResolved>()(`${THREAD_ACTION}/toggle-resolved`, {
65
- input: Schema.Struct({
66
- thread: ThreadType,
67
- }),
68
- output: Schema.Void,
69
- }) {}
70
-
71
- export class AddMessage extends Schema.TaggedClass<AddMessage>()(`${THREAD_ACTION}/add-message`, {
72
- input: Schema.Struct({
73
- subject: EchoObjectSchema,
74
- anchor: AnchoredTo,
75
- sender: DataType.Actor,
76
- text: Schema.String,
77
- }),
78
- output: Schema.Void,
79
- }) {}
80
-
81
- export class DeleteMessage extends Schema.TaggedClass<DeleteMessage>()(`${THREAD_ACTION}/delete-message`, {
82
- input: Schema.Struct({
83
- anchor: AnchoredTo,
84
- subject: EchoObjectSchema,
85
- messageId: Schema.String,
86
- message: Schema.optional(DataType.Message),
87
- messageIndex: Schema.optional(Schema.Number),
134
+ export const DeleteMessageOutput = Schema.partial(
135
+ Schema.Struct({
136
+ message: Message.Message.annotations({ description: 'The deleted message.' }),
137
+ messageIndex: Schema.Number.annotations({ description: 'The index the message was at.' }),
88
138
  }),
89
- output: Schema.Void,
90
- }) {}
139
+ );
140
+
141
+ export type DeleteMessageOutput = Schema.Schema.Type<typeof DeleteMessageOutput>;
142
+
143
+ export const DeleteMessage = Operation.make({
144
+ meta: { key: `${THREAD_OPERATION}/delete-message`, name: 'Delete Message' },
145
+ services: [Capability.Service],
146
+ schema: {
147
+ input: Schema.Struct({
148
+ anchor: AnchoredTo.AnchoredTo,
149
+ subject: Type.Obj,
150
+ messageId: Schema.String,
151
+ }),
152
+ output: DeleteMessageOutput,
153
+ },
154
+ });
155
+
156
+ /**
157
+ * Restore a deleted thread (inverse of Delete).
158
+ */
159
+ export const Restore = Operation.make({
160
+ meta: { key: `${THREAD_OPERATION}/restore`, name: 'Restore Thread' },
161
+ services: [Capability.Service],
162
+ schema: {
163
+ input: Schema.Struct({
164
+ thread: Thread.Thread.annotations({ description: 'The thread to restore.' }),
165
+ anchor: AnchoredTo.AnchoredTo.annotations({ description: 'The anchor relation to restore.' }),
166
+ }),
167
+ output: Schema.Void,
168
+ },
169
+ });
170
+
171
+ /**
172
+ * Restore a deleted message (inverse of DeleteMessage).
173
+ */
174
+ export const RestoreMessage = Operation.make({
175
+ meta: { key: `${THREAD_OPERATION}/restore-message`, name: 'Restore Message' },
176
+ services: [Capability.Service],
177
+ schema: {
178
+ input: Schema.Struct({
179
+ anchor: AnchoredTo.AnchoredTo.annotations({ description: 'The anchor of the thread.' }),
180
+ message: Message.Message.annotations({ description: 'The message to restore.' }),
181
+ messageIndex: Schema.Number.annotations({ description: 'The index to restore the message at.' }),
182
+ }),
183
+ output: Schema.Void,
184
+ },
185
+ });
91
186
  }
92
187
 
93
188
  export const ThreadSettingsSchema = Schema.mutable(Schema.Struct({}));
94
189
  export type ThreadSettingsProps = Schema.Schema.Type<typeof ThreadSettingsSchema>;
95
190
 
96
191
  export interface ThreadModel {
97
- root: ThreadType;
192
+ root: Thread.Thread;
98
193
  }
99
194
 
100
195
  type SubjectId = string;
@@ -105,6 +200,7 @@ export type ThreadState = {
105
200
  /** Object toolbar state. */
106
201
  toolbar: Record<string, boolean>;
107
202
  /** In-memory draft threads. */
108
- drafts: Record<string, AnchoredTo[]>;
203
+ // TODO(burdon): Drafts are getting lost.
204
+ drafts: Record<string, AnchoredTo.AnchoredTo[]>;
109
205
  current?: string | undefined;
110
206
  };
@@ -22,7 +22,23 @@ declare module '@peermetrics/webrtc-stats' {
22
22
  connectionId: string;
23
23
  }
24
24
 
25
- export class WebRTCStats extends EventEmitter {
25
+ type TrackStats = {
26
+ id: string;
27
+ kind: 'audio' | 'video';
28
+ codecId: string;
29
+ mid: string;
30
+ bytesSent: number;
31
+ bytesReceived: number;
32
+ };
33
+
34
+ export type WebRTCStatsEvent = {
35
+ data: {
36
+ audio: { inbound: TrackStats[]; outbound: TrackStats[] };
37
+ video: { inbound: TrackStats[]; outbound: TrackStats[] };
38
+ };
39
+ };
40
+
41
+ export class WebRTCStats extends EventEmitter<{ stats: WebRTCStatsEvent }> {
26
42
  constructor(options: WebRTCStatsConstructorOptions);
27
43
  addConnection(info: ConnectionInfo): void;
28
44
  removeConnection(info: Pick<ConnectionInfo, 'pc'>): void;
@@ -0,0 +1,8 @@
1
+ //
2
+ // Copyright 2025 DXOS.org
3
+ //
4
+
5
+ declare module '*.mp4?raw' {
6
+ const content: string;
7
+ export default content;
8
+ }
package/src/util.ts CHANGED
@@ -2,7 +2,7 @@
2
2
  // Copyright 2024 DXOS.org
3
3
  //
4
4
 
5
- import { Match } from 'effect';
5
+ import * as Match from 'effect/Match';
6
6
 
7
7
  import { generateName } from '@dxos/display-name';
8
8
  import { type Selection } from '@dxos/plugin-attention';
@@ -1,15 +0,0 @@
1
- import {
2
- ChannelContainer,
3
- ChannelContainer_default
4
- } from "./chunk-XZKBN3NS.mjs";
5
- import "./chunk-6NBVNXTM.mjs";
6
- import "./chunk-R5MDLUPC.mjs";
7
- import "./chunk-TAFSCSUR.mjs";
8
- import "./chunk-5P5BH5GE.mjs";
9
- import "./chunk-JKQUJOTX.mjs";
10
- import "./chunk-IIUTBDVB.mjs";
11
- export {
12
- ChannelContainer,
13
- ChannelContainer_default as default
14
- };
15
- //# sourceMappingURL=ChannelContainer-PKFBVENP.mjs.map
@@ -1,14 +0,0 @@
1
- import {
2
- ChatContainer,
3
- ChatContainer_default,
4
- ChatHeading
5
- } from "./chunk-TAFSCSUR.mjs";
6
- import "./chunk-5P5BH5GE.mjs";
7
- import "./chunk-JKQUJOTX.mjs";
8
- import "./chunk-IIUTBDVB.mjs";
9
- export {
10
- ChatContainer,
11
- ChatHeading,
12
- ChatContainer_default as default
13
- };
14
- //# sourceMappingURL=ChatContainer-RSOKYAMK.mjs.map
@@ -1,171 +0,0 @@
1
- import {
2
- ChannelType,
3
- ThreadAction
4
- } from "./chunk-AEXWNS6Z.mjs";
5
- import {
6
- ThreadCapabilities
7
- } from "./chunk-R5MDLUPC.mjs";
8
- import {
9
- getAnchor
10
- } from "./chunk-JKQUJOTX.mjs";
11
- import {
12
- THREAD_PLUGIN,
13
- meta
14
- } from "./chunk-IIUTBDVB.mjs";
15
-
16
- // packages/plugins/plugin-thread/src/capabilities/app-graph-builder.ts
17
- import { Rx } from "@effect-rx/rx-react";
18
- import { Option, pipe } from "effect";
19
- import { Capabilities, contributes, createIntent } from "@dxos/app-framework";
20
- import { Obj } from "@dxos/echo";
21
- import { AttentionCapabilities } from "@dxos/plugin-attention";
22
- import { PLANK_COMPANION_TYPE, ATTENDABLE_PATH_SEPARATOR, DECK_COMPANION_TYPE } from "@dxos/plugin-deck/types";
23
- import { createExtension, ROOT_ID, rxFromSignal } from "@dxos/plugin-graph";
24
- import { fullyQualifiedId } from "@dxos/react-client/echo";
25
- var app_graph_builder_default = (context) => {
26
- const resolve = (typename) => context.getCapabilities(Capabilities.Metadata).find(({ id }) => id === typename)?.metadata ?? {};
27
- return contributes(Capabilities.AppGraphBuilder, [
28
- createExtension({
29
- id: `${THREAD_PLUGIN}/active-call`,
30
- connector: (node) => Rx.make((get) => pipe(get(node), Option.flatMap((node2) => node2.id === ROOT_ID ? Option.some(node2) : Option.none()), Option.map((node2) => {
31
- const [call] = get(context.capabilities(ThreadCapabilities.CallManager));
32
- return get(rxFromSignal(() => call?.joined ? [
33
- {
34
- id: `${node2.id}${ATTENDABLE_PATH_SEPARATOR}active-call`,
35
- type: DECK_COMPANION_TYPE,
36
- data: null,
37
- properties: {
38
- label: [
39
- "call panel label",
40
- {
41
- ns: THREAD_PLUGIN
42
- }
43
- ],
44
- icon: "ph--video-conference--regular",
45
- position: "hoist",
46
- disposition: "hidden"
47
- }
48
- }
49
- ] : []));
50
- }), Option.getOrElse(() => [])))
51
- }),
52
- // TODO(wittjosiah): The channel shouldn't become the companion during a call.
53
- // Alternative: the call/meeting/thread should be a child node of the channel and that should be opened.
54
- createExtension({
55
- id: `${THREAD_PLUGIN}/channel-chat-companion`,
56
- connector: (node) => {
57
- return Rx.make((get) => {
58
- return pipe(get(node), Option.flatMap((node2) => Obj.instanceOf(ChannelType, node2.data) ? Option.some(node2.data) : Option.none()), Option.map((channel) => {
59
- const callManager = context.getCapability(ThreadCapabilities.CallManager);
60
- const joined = get(rxFromSignal(() => callManager.joined && callManager.roomId === fullyQualifiedId(channel)));
61
- if (!joined) {
62
- return [];
63
- }
64
- return [
65
- {
66
- id: `${fullyQualifiedId(channel)}${ATTENDABLE_PATH_SEPARATOR}chat`,
67
- type: PLANK_COMPANION_TYPE,
68
- data: "chat",
69
- properties: {
70
- label: [
71
- "channel companion label",
72
- {
73
- ns: THREAD_PLUGIN
74
- }
75
- ],
76
- icon: "ph--hash--regular",
77
- position: "hoist",
78
- disposition: "hidden"
79
- }
80
- }
81
- ];
82
- }), Option.getOrElse(() => []));
83
- });
84
- }
85
- }),
86
- createExtension({
87
- id: `${meta.id}/comments-companion`,
88
- connector: (node) => Rx.make((get) => pipe(get(node), Option.flatMap((node2) => {
89
- if (!Obj.isObject(node2.data) || Obj.instanceOf(ChannelType, node2.data)) {
90
- return Option.none();
91
- }
92
- const metadata = resolve(Obj.getTypename(node2.data));
93
- return typeof metadata.comments === "string" ? Option.some(node2) : Option.none();
94
- }), Option.map((node2) => [
95
- {
96
- id: [
97
- node2.id,
98
- "comments"
99
- ].join(ATTENDABLE_PATH_SEPARATOR),
100
- type: PLANK_COMPANION_TYPE,
101
- data: "comments",
102
- properties: {
103
- label: [
104
- "comments label",
105
- {
106
- ns: meta.id
107
- }
108
- ],
109
- icon: "ph--chat-text--regular",
110
- disposition: "hidden",
111
- position: "hoist"
112
- }
113
- }
114
- ]), Option.getOrElse(() => [])))
115
- }),
116
- createExtension({
117
- id: `${meta.id}/comment-toolbar`,
118
- actions: (node) => Rx.make((get) => pipe(get(node), Option.flatMap((node2) => {
119
- if (!Obj.isObject(node2.data) || Obj.instanceOf(ChannelType, node2.data)) {
120
- return Option.none();
121
- }
122
- const metadata = resolve(Obj.getTypename(node2.data));
123
- return typeof metadata.comments === "string" ? Option.some(node2.data) : Option.none();
124
- }), Option.map((object) => {
125
- const selectionManager = context.getCapability(AttentionCapabilities.Selection);
126
- const toolbar = get(context.capabilities(ThreadCapabilities.State))[0]?.state.toolbar ?? {};
127
- const disabled = get(rxFromSignal(() => {
128
- const metadata = resolve(Obj.getTypename(object));
129
- const selection = selectionManager.getSelection(fullyQualifiedId(object), metadata.selectionMode);
130
- const anchor = getAnchor(selection);
131
- const invalidSelection = !anchor;
132
- const overlappingComment = toolbar[fullyQualifiedId(object)];
133
- return metadata.comments === "anchored" && invalidSelection || overlappingComment;
134
- }));
135
- return [
136
- {
137
- id: `${fullyQualifiedId(object)}/comment`,
138
- data: () => {
139
- const { dispatchPromise: dispatch } = context.getCapability(Capabilities.IntentDispatcher);
140
- const metadata = resolve(Obj.getTypename(object));
141
- const selection = selectionManager.getSelection(fullyQualifiedId(object));
142
- const anchor = metadata.comments === "anchored" ? getAnchor(selection) : Date.now().toString();
143
- const name = metadata.getAnchorLabel?.(object, anchor);
144
- void dispatch(createIntent(ThreadAction.Create, {
145
- anchor,
146
- name,
147
- subject: object
148
- }));
149
- },
150
- properties: {
151
- label: [
152
- "add comment label",
153
- {
154
- ns: meta.id
155
- }
156
- ],
157
- icon: "ph--chat-text--regular",
158
- disposition: "toolbar",
159
- disabled,
160
- testId: "thread.comment.add"
161
- }
162
- }
163
- ];
164
- }), Option.getOrElse(() => [])))
165
- })
166
- ]);
167
- };
168
- export {
169
- app_graph_builder_default as default
170
- };
171
- //# sourceMappingURL=app-graph-builder-OY7R7EJP.mjs.map