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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (397) hide show
  1. package/dist/lib/neutral/CallDebugPanel-CXWTCS7A.mjs +172 -0
  2. package/dist/lib/neutral/CallDebugPanel-CXWTCS7A.mjs.map +7 -0
  3. package/dist/lib/neutral/CallSidebar-4USJZ2SB.mjs +25 -0
  4. package/dist/lib/neutral/CallSidebar-4USJZ2SB.mjs.map +7 -0
  5. package/dist/lib/neutral/ChannelChat-6YTD5HWL.mjs +10 -0
  6. package/dist/lib/neutral/ChannelContainer-XHBF2NCK.mjs +9 -0
  7. package/dist/lib/neutral/ThreadCompanion-NQWPS2H6.mjs +208 -0
  8. package/dist/lib/neutral/ThreadCompanion-NQWPS2H6.mjs.map +7 -0
  9. package/dist/lib/neutral/ThreadContainer-XYEPEOSD.mjs +61 -0
  10. package/dist/lib/neutral/ThreadContainer-XYEPEOSD.mjs.map +7 -0
  11. package/dist/lib/neutral/ThreadPlugin.mjs +89 -0
  12. package/dist/lib/neutral/ThreadPlugin.mjs.map +7 -0
  13. package/dist/lib/neutral/ThreadPlugin.node.mjs +40 -0
  14. package/dist/lib/neutral/ThreadPlugin.node.mjs.map +7 -0
  15. package/dist/lib/neutral/ThreadSettings-5Z5XIHG3.mjs +15 -0
  16. package/dist/lib/neutral/ThreadSettings-5Z5XIHG3.mjs.map +7 -0
  17. package/dist/lib/{browser/add-message-VPPFFLFL.mjs → neutral/add-message-HV5R66K4.mjs} +12 -22
  18. package/dist/lib/neutral/add-message-HV5R66K4.mjs.map +7 -0
  19. package/dist/lib/neutral/app-graph-builder-JDLHZ4XO.mjs +173 -0
  20. package/dist/lib/neutral/app-graph-builder-JDLHZ4XO.mjs.map +7 -0
  21. package/dist/lib/neutral/append-channel-message-PO33DR5V.mjs +40 -0
  22. package/dist/lib/neutral/append-channel-message-PO33DR5V.mjs.map +7 -0
  23. package/dist/lib/neutral/blueprint-definition-S3EBOH4R.mjs +15 -0
  24. package/dist/lib/neutral/blueprint-definition-S3EBOH4R.mjs.map +7 -0
  25. package/dist/lib/neutral/blueprints/index.mjs +8 -0
  26. package/dist/lib/neutral/call-manager-JFA4DLWR.mjs +24 -0
  27. package/dist/lib/neutral/call-manager-JFA4DLWR.mjs.map +7 -0
  28. package/dist/lib/neutral/capabilities/index.mjs +29 -0
  29. package/dist/lib/neutral/capabilities/index.mjs.map +7 -0
  30. package/dist/lib/neutral/chunk-44D7D4ZX.mjs +20 -0
  31. package/dist/lib/neutral/chunk-44D7D4ZX.mjs.map +7 -0
  32. package/dist/lib/{browser/blueprints/index.mjs → neutral/chunk-5T5LPLBN.mjs} +5 -6
  33. package/dist/lib/neutral/chunk-5T5LPLBN.mjs.map +7 -0
  34. package/dist/lib/neutral/chunk-CROE4U4O.mjs +100 -0
  35. package/dist/lib/neutral/chunk-CROE4U4O.mjs.map +7 -0
  36. package/dist/lib/neutral/chunk-D5LGFCUY.mjs +55 -0
  37. package/dist/lib/neutral/chunk-D5LGFCUY.mjs.map +7 -0
  38. package/dist/lib/neutral/chunk-FWSMZWBO.mjs +178 -0
  39. package/dist/lib/neutral/chunk-FWSMZWBO.mjs.map +7 -0
  40. package/dist/lib/neutral/chunk-JLY4NVTA.mjs +38 -0
  41. package/dist/lib/neutral/chunk-JLY4NVTA.mjs.map +7 -0
  42. package/dist/lib/neutral/chunk-KRXHIW4P.mjs +164 -0
  43. package/dist/lib/neutral/chunk-KRXHIW4P.mjs.map +7 -0
  44. package/dist/lib/neutral/chunk-MXJYXUS2.mjs +8 -0
  45. package/dist/lib/neutral/chunk-MXJYXUS2.mjs.map +7 -0
  46. package/dist/lib/{browser/chunk-VPM44Z35.mjs → neutral/chunk-OZRSYMYO.mjs} +101 -85
  47. package/dist/lib/neutral/chunk-OZRSYMYO.mjs.map +7 -0
  48. package/dist/lib/{browser/index.mjs → neutral/chunk-PZ7WTAA2.mjs} +88 -900
  49. package/dist/lib/neutral/chunk-PZ7WTAA2.mjs.map +7 -0
  50. package/dist/lib/neutral/chunk-S2AKEA2K.mjs +202 -0
  51. package/dist/lib/neutral/chunk-S2AKEA2K.mjs.map +7 -0
  52. package/dist/lib/neutral/components/index.mjs +1230 -0
  53. package/dist/lib/neutral/components/index.mjs.map +7 -0
  54. package/dist/lib/neutral/containers/index.mjs +19 -0
  55. package/dist/lib/neutral/containers/index.mjs.map +7 -0
  56. package/dist/lib/{browser/create-UGT7V733.mjs → neutral/create-C3CICN35.mjs} +8 -11
  57. package/dist/lib/neutral/create-C3CICN35.mjs.map +7 -0
  58. package/dist/lib/neutral/create-channel-UEQESOFT.mjs +19 -0
  59. package/dist/lib/neutral/create-channel-UEQESOFT.mjs.map +7 -0
  60. package/dist/lib/neutral/create-object-HIEWSBZB.mjs +27 -0
  61. package/dist/lib/neutral/create-object-HIEWSBZB.mjs.map +7 -0
  62. package/dist/lib/{browser/create-proposals-CMK7S7VS.mjs → neutral/create-proposals-OZ4NCBBS.mjs} +5 -6
  63. package/dist/lib/neutral/create-proposals-OZ4NCBBS.mjs.map +7 -0
  64. package/dist/lib/{browser/delete-FSFVU6ZA.mjs → neutral/delete-AVFYFWMY.mjs} +8 -10
  65. package/dist/lib/neutral/delete-AVFYFWMY.mjs.map +7 -0
  66. package/dist/lib/{browser/delete-message-XL5M5J33.mjs → neutral/delete-message-EV2MKRTB.mjs} +9 -19
  67. package/dist/lib/neutral/delete-message-EV2MKRTB.mjs.map +7 -0
  68. package/dist/lib/neutral/hooks/index.mjs +19 -0
  69. package/dist/lib/neutral/hooks/index.mjs.map +7 -0
  70. package/dist/lib/neutral/index.mjs +68 -0
  71. package/dist/lib/neutral/index.mjs.map +7 -0
  72. package/dist/lib/neutral/markdown-BUORNCPG.mjs +83 -0
  73. package/dist/lib/neutral/markdown-BUORNCPG.mjs.map +7 -0
  74. package/dist/lib/neutral/meta.json +1 -0
  75. package/dist/lib/neutral/meta.mjs +10 -0
  76. package/dist/lib/neutral/meta.mjs.map +7 -0
  77. package/dist/lib/neutral/on-create-space-NQF7WGEB.mjs +23 -0
  78. package/dist/lib/neutral/on-create-space-NQF7WGEB.mjs.map +7 -0
  79. package/dist/lib/neutral/operation-handler-RU6K2S4L.mjs +13 -0
  80. package/dist/lib/neutral/operation-handler-RU6K2S4L.mjs.map +7 -0
  81. package/dist/lib/neutral/operations/index.mjs +8 -0
  82. package/dist/lib/neutral/operations/index.mjs.map +7 -0
  83. package/dist/lib/neutral/plugin.mjs +16 -0
  84. package/dist/lib/neutral/plugin.mjs.map +7 -0
  85. package/dist/lib/neutral/react-root-VMMNUSSL.mjs +18 -0
  86. package/dist/lib/neutral/react-root-VMMNUSSL.mjs.map +7 -0
  87. package/dist/lib/neutral/react-surface-WPSVOTVG.mjs +94 -0
  88. package/dist/lib/neutral/react-surface-WPSVOTVG.mjs.map +7 -0
  89. package/dist/lib/{browser/restore-2ZGMKUSD.mjs → neutral/restore-MGLYOJ3Y.mjs} +6 -7
  90. package/dist/lib/neutral/restore-MGLYOJ3Y.mjs.map +7 -0
  91. package/dist/lib/{browser/restore-message-OYEGWPII.mjs → neutral/restore-message-ZIOA2MQJ.mjs} +8 -17
  92. package/dist/lib/neutral/restore-message-ZIOA2MQJ.mjs.map +7 -0
  93. package/dist/lib/{browser/select-VG2XLULE.mjs → neutral/select-CVCGBDHA.mjs} +7 -9
  94. package/dist/lib/neutral/select-CVCGBDHA.mjs.map +7 -0
  95. package/dist/lib/neutral/settings-HK4EB6TF.mjs +30 -0
  96. package/dist/lib/neutral/settings-HK4EB6TF.mjs.map +7 -0
  97. package/dist/lib/neutral/state-UU7VEAKV.mjs +22 -0
  98. package/dist/lib/neutral/state-UU7VEAKV.mjs.map +7 -0
  99. package/dist/lib/neutral/testing/index.mjs +58 -0
  100. package/dist/lib/neutral/testing/index.mjs.map +7 -0
  101. package/dist/lib/{browser/toggle-resolved-MM6YC5BU.mjs → neutral/toggle-resolved-ZM4BHON5.mjs} +8 -17
  102. package/dist/lib/neutral/toggle-resolved-ZM4BHON5.mjs.map +7 -0
  103. package/dist/lib/neutral/translations.mjs +90 -0
  104. package/dist/lib/neutral/translations.mjs.map +7 -0
  105. package/dist/lib/neutral/types/index.mjs +12 -0
  106. package/dist/lib/neutral/types/index.mjs.map +7 -0
  107. package/dist/lib/neutral/undo-mappings-HOKL2L3M.mjs +54 -0
  108. package/dist/lib/neutral/undo-mappings-HOKL2L3M.mjs.map +7 -0
  109. package/dist/types/src/ThreadPlugin.d.ts +1 -0
  110. package/dist/types/src/ThreadPlugin.d.ts.map +1 -1
  111. package/dist/types/src/ThreadPlugin.node.d.ts +4 -0
  112. package/dist/types/src/ThreadPlugin.node.d.ts.map +1 -0
  113. package/dist/types/src/ThreadPlugin.test.d.ts +2 -0
  114. package/dist/types/src/ThreadPlugin.test.d.ts.map +1 -0
  115. package/dist/types/src/blueprints/thread-blueprint.d.ts +2 -2
  116. package/dist/types/src/blueprints/thread-blueprint.d.ts.map +1 -1
  117. package/dist/types/src/calls/call-manager.d.ts.map +1 -1
  118. package/dist/types/src/calls/call-swarm-synchronizer.d.ts.map +1 -1
  119. package/dist/types/src/calls/media-manager.d.ts.map +1 -1
  120. package/dist/types/src/calls/speaking-monitor.d.ts +0 -3
  121. package/dist/types/src/calls/speaking-monitor.d.ts.map +1 -1
  122. package/dist/types/src/calls/types.d.ts.map +1 -1
  123. package/dist/types/src/calls/util/audio.d.ts.map +1 -1
  124. package/dist/types/src/calls/util/calls-service.d.ts +2 -2
  125. package/dist/types/src/calls/util/calls-service.d.ts.map +1 -1
  126. package/dist/types/src/calls/util/history-cache.d.ts.map +1 -1
  127. package/dist/types/src/calls/util/media.d.ts.map +1 -1
  128. package/dist/types/src/calls/util/stub-media-streams.d.ts.map +1 -1
  129. package/dist/types/src/calls/util/task-scheduling.d.ts.map +1 -1
  130. package/dist/types/src/calls-service.stories.d.ts.map +1 -1
  131. package/dist/types/src/capabilities/app-graph-builder.d.ts.map +1 -1
  132. package/dist/types/src/capabilities/blueprint-definition.d.ts +2 -2
  133. package/dist/types/src/capabilities/blueprint-definition.d.ts.map +1 -1
  134. package/dist/types/src/capabilities/call-manager.d.ts.map +1 -1
  135. package/dist/types/src/capabilities/create-object.d.ts +11 -0
  136. package/dist/types/src/capabilities/create-object.d.ts.map +1 -0
  137. package/dist/types/src/capabilities/index.d.ts +9 -3
  138. package/dist/types/src/capabilities/index.d.ts.map +1 -1
  139. package/dist/types/src/capabilities/markdown.d.ts.map +1 -1
  140. package/dist/types/src/capabilities/operation-handler.d.ts +1 -1
  141. package/dist/types/src/capabilities/operation-handler.d.ts.map +1 -1
  142. package/dist/types/src/capabilities/react-root.d.ts.map +1 -1
  143. package/dist/types/src/capabilities/react-surface.d.ts.map +1 -1
  144. package/dist/types/src/capabilities/settings.d.ts.map +1 -1
  145. package/dist/types/src/capabilities/state.d.ts.map +1 -1
  146. package/dist/types/src/capabilities/undo-mappings.d.ts.map +1 -1
  147. package/dist/types/src/components/Call/Call.d.ts +32 -4
  148. package/dist/types/src/components/Call/Call.d.ts.map +1 -1
  149. package/dist/types/src/components/Call/Toolbar.d.ts +5 -5
  150. package/dist/types/src/components/Call/Toolbar.d.ts.map +1 -1
  151. package/dist/types/src/components/Chat/Chat.d.ts +51 -0
  152. package/dist/types/src/components/Chat/Chat.d.ts.map +1 -0
  153. package/dist/types/src/components/Chat/index.d.ts +2 -0
  154. package/dist/types/src/components/Chat/index.d.ts.map +1 -0
  155. package/dist/types/src/components/CommentsPanel/CommentsPanel.d.ts.map +1 -1
  156. package/dist/types/src/components/CommentsPanel/CommentsPanel.stories.d.ts +70 -70
  157. package/dist/types/src/components/CommentsPanel/CommentsPanel.stories.d.ts.map +1 -1
  158. package/dist/types/src/components/CommentsPanel/CommentsThread.d.ts.map +1 -1
  159. package/dist/types/src/components/Lobby/Lobby.d.ts +24 -3
  160. package/dist/types/src/components/Lobby/Lobby.d.ts.map +1 -1
  161. package/dist/types/src/components/Media/VideoObject.d.ts +1 -1
  162. package/dist/types/src/components/Media/VideoObject.stories.d.ts +1 -1
  163. package/dist/types/src/components/Media/VideoObject.stories.d.ts.map +1 -1
  164. package/dist/types/src/components/MessagePanel/MessagePanel.d.ts.map +1 -1
  165. package/dist/types/src/components/Participant/ParticipantGrid.d.ts.map +1 -1
  166. package/dist/types/src/components/ResponsiveGrid/ResponsiveGrid.d.ts.map +1 -1
  167. package/dist/types/src/components/ResponsiveGrid/ResponsiveGrid.stories.d.ts +70 -70
  168. package/dist/types/src/components/ResponsiveGrid/ResponsiveGrid.stories.d.ts.map +1 -1
  169. package/dist/types/src/components/ResponsiveGrid/ResponsiveGridItem.d.ts.map +1 -1
  170. package/dist/types/src/components/ResponsiveGrid/ResponsivePanel.d.ts.map +1 -1
  171. package/dist/types/src/components/ResponsiveGrid/ResponsivePanel.stories.d.ts +70 -70
  172. package/dist/types/src/components/ResponsiveGrid/ResponsivePanel.stories.d.ts.map +1 -1
  173. package/dist/types/src/components/ThreadSettings/ThreadSettings.d.ts.map +1 -1
  174. package/dist/types/src/components/ThreadSettings/ThreadSettings.stories.d.ts +70 -70
  175. package/dist/types/src/components/ThreadSettings/ThreadSettings.stories.d.ts.map +1 -1
  176. package/dist/types/src/components/index.d.ts +1 -0
  177. package/dist/types/src/components/index.d.ts.map +1 -1
  178. package/dist/types/src/containers/CallDebugPanel/CallDebugPanel.d.ts.map +1 -1
  179. package/dist/types/src/containers/ChannelChat/ChannelChat.d.ts +20 -0
  180. package/dist/types/src/containers/ChannelChat/ChannelChat.d.ts.map +1 -0
  181. package/dist/types/src/containers/ChannelChat/index.d.ts +4 -0
  182. package/dist/types/src/containers/ChannelChat/index.d.ts.map +1 -0
  183. package/dist/types/src/containers/ChannelContainer/ChannelContainer.d.ts +1 -1
  184. package/dist/types/src/containers/ChannelContainer/ChannelContainer.d.ts.map +1 -1
  185. package/dist/types/src/containers/ChannelContainer/ChannelContainer.stories.d.ts +70 -70
  186. package/dist/types/src/containers/ChannelContainer/ChannelContainer.stories.d.ts.map +1 -1
  187. package/dist/types/src/containers/ThreadCompanion/ThreadCompanion.d.ts.map +1 -1
  188. package/dist/types/src/containers/ThreadContainer/ThreadContainer.d.ts +20 -0
  189. package/dist/types/src/containers/ThreadContainer/ThreadContainer.d.ts.map +1 -0
  190. package/dist/types/src/containers/{ChatContainer/ChatContainer.stories.d.ts → ThreadContainer/ThreadContainer.stories.d.ts} +71 -71
  191. package/dist/types/src/containers/ThreadContainer/ThreadContainer.stories.d.ts.map +1 -0
  192. package/dist/types/src/containers/ThreadContainer/index.d.ts +4 -0
  193. package/dist/types/src/containers/ThreadContainer/index.d.ts.map +1 -0
  194. package/dist/types/src/containers/index.d.ts +2 -1
  195. package/dist/types/src/containers/index.d.ts.map +1 -1
  196. package/dist/types/src/extensions/threads.d.ts +3 -3
  197. package/dist/types/src/extensions/threads.d.ts.map +1 -1
  198. package/dist/types/src/hooks/analytics.d.ts.map +1 -1
  199. package/dist/types/src/hooks/useStatus.d.ts.map +1 -1
  200. package/dist/types/src/hooks/useVideoStreamTrack.d.ts.map +1 -1
  201. package/dist/types/src/index.d.ts +2 -2
  202. package/dist/types/src/index.d.ts.map +1 -1
  203. package/dist/types/src/operations/add-message.d.ts +3 -3
  204. package/dist/types/src/operations/add-message.d.ts.map +1 -1
  205. package/dist/types/src/operations/append-channel-message.d.ts +5 -0
  206. package/dist/types/src/operations/append-channel-message.d.ts.map +1 -0
  207. package/dist/types/src/operations/create-channel.d.ts +3 -3
  208. package/dist/types/src/operations/create-channel.d.ts.map +1 -1
  209. package/dist/types/src/operations/create-proposals.d.ts +3 -3
  210. package/dist/types/src/operations/create-proposals.d.ts.map +1 -1
  211. package/dist/types/src/operations/create.d.ts +3 -3
  212. package/dist/types/src/operations/create.d.ts.map +1 -1
  213. package/dist/types/src/operations/delete-message.d.ts +3 -3
  214. package/dist/types/src/operations/delete-message.d.ts.map +1 -1
  215. package/dist/types/src/operations/delete.d.ts +3 -3
  216. package/dist/types/src/operations/delete.d.ts.map +1 -1
  217. package/dist/types/src/operations/index.d.ts +1 -2
  218. package/dist/types/src/operations/index.d.ts.map +1 -1
  219. package/dist/types/src/operations/on-create-space.d.ts +3 -3
  220. package/dist/types/src/operations/on-create-space.d.ts.map +1 -1
  221. package/dist/types/src/operations/restore-message.d.ts +3 -3
  222. package/dist/types/src/operations/restore-message.d.ts.map +1 -1
  223. package/dist/types/src/operations/restore.d.ts +3 -3
  224. package/dist/types/src/operations/restore.d.ts.map +1 -1
  225. package/dist/types/src/operations/select.d.ts +3 -3
  226. package/dist/types/src/operations/select.d.ts.map +1 -1
  227. package/dist/types/src/operations/toggle-resolved.d.ts +3 -3
  228. package/dist/types/src/operations/toggle-resolved.d.ts.map +1 -1
  229. package/dist/types/src/plugin.d.ts +4 -0
  230. package/dist/types/src/plugin.d.ts.map +1 -0
  231. package/dist/types/src/testing/data.d.ts.map +1 -1
  232. package/dist/types/src/testing/index.d.ts +1 -1
  233. package/dist/types/src/testing/index.d.ts.map +1 -1
  234. package/dist/types/src/translations.d.ts +70 -70
  235. package/dist/types/src/translations.d.ts.map +1 -1
  236. package/dist/types/src/types/ThreadCapabilities.d.ts +26 -0
  237. package/dist/types/src/types/ThreadCapabilities.d.ts.map +1 -0
  238. package/dist/types/src/{operations/definitions.d.ts → types/ThreadOperation.d.ts} +864 -1673
  239. package/dist/types/src/types/ThreadOperation.d.ts.map +1 -0
  240. package/dist/types/src/types/index.d.ts +3 -2
  241. package/dist/types/src/types/index.d.ts.map +1 -1
  242. package/dist/types/src/types/types.d.ts +1 -1
  243. package/dist/types/src/types/types.d.ts.map +1 -1
  244. package/dist/types/src/util.d.ts +6 -3
  245. package/dist/types/src/util.d.ts.map +1 -1
  246. package/dist/types/tsconfig.tsbuildinfo +1 -1
  247. package/package.json +124 -86
  248. package/src/ThreadPlugin.node.ts +39 -0
  249. package/src/ThreadPlugin.test.ts +37 -0
  250. package/src/ThreadPlugin.tsx +13 -57
  251. package/src/blueprints/thread-blueprint.ts +3 -4
  252. package/src/calls/util/calls-service.ts +3 -1
  253. package/src/calls/util/stub-media-streams.ts +3 -1
  254. package/src/capabilities/app-graph-builder.ts +21 -19
  255. package/src/capabilities/blueprint-definition.ts +2 -0
  256. package/src/capabilities/call-manager.ts +1 -1
  257. package/src/capabilities/create-object.ts +29 -0
  258. package/src/capabilities/index.ts +3 -1
  259. package/src/capabilities/markdown.ts +6 -2
  260. package/src/capabilities/operation-handler.ts +1 -1
  261. package/src/capabilities/react-surface.tsx +13 -7
  262. package/src/capabilities/settings.ts +1 -3
  263. package/src/capabilities/undo-mappings.ts +1 -1
  264. package/src/components/Call/Call.tsx +5 -5
  265. package/src/components/Call/Toolbar.tsx +1 -1
  266. package/src/components/Chat/Chat.tsx +258 -0
  267. package/src/components/Chat/index.ts +5 -0
  268. package/src/components/CommentsPanel/CommentsPanel.stories.tsx +6 -4
  269. package/src/components/CommentsPanel/CommentsPanel.tsx +4 -4
  270. package/src/components/CommentsPanel/CommentsThread.tsx +2 -3
  271. package/src/components/Lobby/Lobby.tsx +5 -4
  272. package/src/components/MessagePanel/MessagePanel.tsx +8 -9
  273. package/src/components/ResponsiveGrid/ResponsiveGrid.stories.tsx +2 -1
  274. package/src/components/ResponsiveGrid/ResponsivePanel.stories.tsx +2 -1
  275. package/src/components/ResponsiveGrid/ResponsivePanel.tsx +3 -5
  276. package/src/components/ThreadSettings/ThreadSettings.stories.tsx +2 -1
  277. package/src/components/index.ts +1 -0
  278. package/src/containers/ChannelChat/ChannelChat.tsx +75 -0
  279. package/src/containers/ChannelChat/index.ts +8 -0
  280. package/src/containers/ChannelContainer/ChannelContainer.stories.tsx +54 -10
  281. package/src/containers/ChannelContainer/ChannelContainer.tsx +4 -4
  282. package/src/containers/ThreadCompanion/ThreadCompanion.tsx +10 -12
  283. package/src/containers/{ChatContainer/ChatContainer.stories.tsx → ThreadContainer/ThreadContainer.stories.tsx} +10 -11
  284. package/src/containers/ThreadContainer/ThreadContainer.tsx +75 -0
  285. package/src/containers/ThreadContainer/index.ts +8 -0
  286. package/src/containers/index.ts +2 -1
  287. package/src/extensions/command.ts +1 -1
  288. package/src/extensions/threads.ts +9 -9
  289. package/src/hooks/analytics.ts +1 -1
  290. package/src/index.ts +4 -3
  291. package/src/operations/add-message.ts +7 -7
  292. package/src/operations/append-channel-message.ts +37 -0
  293. package/src/operations/create-channel.ts +4 -4
  294. package/src/operations/create-proposals.ts +3 -3
  295. package/src/operations/create.ts +4 -4
  296. package/src/operations/delete-message.ts +6 -6
  297. package/src/operations/delete.ts +4 -4
  298. package/src/operations/index.ts +2 -4
  299. package/src/operations/on-create-space.ts +4 -4
  300. package/src/operations/restore-message.ts +5 -5
  301. package/src/operations/restore.ts +4 -4
  302. package/src/operations/select.ts +3 -3
  303. package/src/operations/toggle-resolved.ts +5 -5
  304. package/src/plugin.ts +11 -0
  305. package/src/testing/index.ts +1 -1
  306. package/src/translations.ts +1 -1
  307. package/src/types/ThreadCapabilities.ts +41 -0
  308. package/src/{operations/definitions.ts → types/ThreadOperation.ts} +14 -13
  309. package/src/types/index.ts +4 -2
  310. package/src/types/types.ts +0 -2
  311. package/src/util.ts +36 -4
  312. package/dist/lib/browser/add-message-VPPFFLFL.mjs.map +0 -7
  313. package/dist/lib/browser/blueprints/index.mjs.map +0 -7
  314. package/dist/lib/browser/chunk-MESW3R4Q.mjs +0 -61
  315. package/dist/lib/browser/chunk-MESW3R4Q.mjs.map +0 -7
  316. package/dist/lib/browser/chunk-VPM44Z35.mjs.map +0 -7
  317. package/dist/lib/browser/create-UGT7V733.mjs.map +0 -7
  318. package/dist/lib/browser/create-channel-EF67LCS6.mjs +0 -21
  319. package/dist/lib/browser/create-channel-EF67LCS6.mjs.map +0 -7
  320. package/dist/lib/browser/create-channel-thread-CCZTSWQ6.mjs +0 -28
  321. package/dist/lib/browser/create-channel-thread-CCZTSWQ6.mjs.map +0 -7
  322. package/dist/lib/browser/create-proposals-CMK7S7VS.mjs.map +0 -7
  323. package/dist/lib/browser/delete-FSFVU6ZA.mjs.map +0 -7
  324. package/dist/lib/browser/delete-message-XL5M5J33.mjs.map +0 -7
  325. package/dist/lib/browser/index.mjs.map +0 -7
  326. package/dist/lib/browser/meta.json +0 -1
  327. package/dist/lib/browser/on-create-space-VYS2JGVT.mjs +0 -25
  328. package/dist/lib/browser/on-create-space-VYS2JGVT.mjs.map +0 -7
  329. package/dist/lib/browser/operations/index.mjs +0 -14
  330. package/dist/lib/browser/operations/index.mjs.map +0 -7
  331. package/dist/lib/browser/restore-2ZGMKUSD.mjs.map +0 -7
  332. package/dist/lib/browser/restore-message-OYEGWPII.mjs.map +0 -7
  333. package/dist/lib/browser/select-VG2XLULE.mjs.map +0 -7
  334. package/dist/lib/browser/toggle-resolved-MM6YC5BU.mjs.map +0 -7
  335. package/dist/lib/browser/types/index.mjs +0 -12
  336. package/dist/lib/node-esm/add-message-XWKHLNS6.mjs +0 -98
  337. package/dist/lib/node-esm/add-message-XWKHLNS6.mjs.map +0 -7
  338. package/dist/lib/node-esm/blueprints/index.mjs +0 -38
  339. package/dist/lib/node-esm/blueprints/index.mjs.map +0 -7
  340. package/dist/lib/node-esm/chunk-HSLMI22Q.mjs +0 -11
  341. package/dist/lib/node-esm/chunk-JTHXNWKJ.mjs +0 -260
  342. package/dist/lib/node-esm/chunk-JTHXNWKJ.mjs.map +0 -7
  343. package/dist/lib/node-esm/chunk-SDRAQNSQ.mjs +0 -62
  344. package/dist/lib/node-esm/chunk-SDRAQNSQ.mjs.map +0 -7
  345. package/dist/lib/node-esm/create-XAYNDVU2.mjs +0 -56
  346. package/dist/lib/node-esm/create-XAYNDVU2.mjs.map +0 -7
  347. package/dist/lib/node-esm/create-channel-UYWUNB3L.mjs +0 -22
  348. package/dist/lib/node-esm/create-channel-UYWUNB3L.mjs.map +0 -7
  349. package/dist/lib/node-esm/create-channel-thread-UQF2SBHS.mjs +0 -29
  350. package/dist/lib/node-esm/create-channel-thread-UQF2SBHS.mjs.map +0 -7
  351. package/dist/lib/node-esm/create-proposals-5FJNURKH.mjs +0 -58
  352. package/dist/lib/node-esm/create-proposals-5FJNURKH.mjs.map +0 -7
  353. package/dist/lib/node-esm/delete-WRODXR3E.mjs +0 -60
  354. package/dist/lib/node-esm/delete-WRODXR3E.mjs.map +0 -7
  355. package/dist/lib/node-esm/delete-message-TAHCYTW2.mjs +0 -65
  356. package/dist/lib/node-esm/delete-message-TAHCYTW2.mjs.map +0 -7
  357. package/dist/lib/node-esm/index.mjs +0 -2335
  358. package/dist/lib/node-esm/index.mjs.map +0 -7
  359. package/dist/lib/node-esm/meta.json +0 -1
  360. package/dist/lib/node-esm/on-create-space-XDY2YXPV.mjs +0 -26
  361. package/dist/lib/node-esm/on-create-space-XDY2YXPV.mjs.map +0 -7
  362. package/dist/lib/node-esm/operations/index.mjs +0 -15
  363. package/dist/lib/node-esm/operations/index.mjs.map +0 -7
  364. package/dist/lib/node-esm/restore-T3QA7TSL.mjs +0 -34
  365. package/dist/lib/node-esm/restore-T3QA7TSL.mjs.map +0 -7
  366. package/dist/lib/node-esm/restore-message-WFTEVBEV.mjs +0 -43
  367. package/dist/lib/node-esm/restore-message-WFTEVBEV.mjs.map +0 -7
  368. package/dist/lib/node-esm/select-Q4UDWJJF.mjs +0 -27
  369. package/dist/lib/node-esm/select-Q4UDWJJF.mjs.map +0 -7
  370. package/dist/lib/node-esm/toggle-resolved-33XTAK2H.mjs +0 -46
  371. package/dist/lib/node-esm/toggle-resolved-33XTAK2H.mjs.map +0 -7
  372. package/dist/lib/node-esm/types/index.mjs +0 -13
  373. package/dist/types/src/containers/ChatContainer/ChatContainer.d.ts +0 -16
  374. package/dist/types/src/containers/ChatContainer/ChatContainer.d.ts.map +0 -1
  375. package/dist/types/src/containers/ChatContainer/ChatContainer.stories.d.ts.map +0 -1
  376. package/dist/types/src/containers/ChatContainer/index.d.ts +0 -4
  377. package/dist/types/src/containers/ChatContainer/index.d.ts.map +0 -1
  378. package/dist/types/src/operations/create-channel-thread.d.ts +0 -5
  379. package/dist/types/src/operations/create-channel-thread.d.ts.map +0 -1
  380. package/dist/types/src/operations/definitions.d.ts.map +0 -1
  381. package/dist/types/src/testing/stories.d.ts +0 -3
  382. package/dist/types/src/testing/stories.d.ts.map +0 -1
  383. package/dist/types/src/types/Channel.d.ts +0 -715
  384. package/dist/types/src/types/Channel.d.ts.map +0 -1
  385. package/dist/types/src/types/capabilities.d.ts +0 -24
  386. package/dist/types/src/types/capabilities.d.ts.map +0 -1
  387. package/src/containers/ChatContainer/ChatContainer.tsx +0 -131
  388. package/src/containers/ChatContainer/index.ts +0 -8
  389. package/src/operations/create-channel-thread.ts +0 -26
  390. package/src/testing/stories.ts +0 -51
  391. package/src/types/Channel.ts +0 -37
  392. package/src/types/capabilities.ts +0 -36
  393. /package/dist/lib/{browser/chunk-J5LGTIGS.mjs.map → neutral/ChannelChat-6YTD5HWL.mjs.map} +0 -0
  394. /package/dist/lib/{browser/types/index.mjs.map → neutral/ChannelContainer-XHBF2NCK.mjs.map} +0 -0
  395. /package/dist/lib/{node-esm/types → neutral/blueprints}/index.mjs.map +0 -0
  396. /package/dist/lib/{browser → neutral}/chunk-J5LGTIGS.mjs +0 -0
  397. /package/dist/lib/{node-esm/chunk-HSLMI22Q.mjs.map → neutral/chunk-J5LGTIGS.mjs.map} +0 -0
@@ -1,27 +1,7 @@
1
1
  import {
2
- ThreadCapabilities
3
- } from "./chunk-MESW3R4Q.mjs";
4
- import "./chunk-J5LGTIGS.mjs";
5
-
6
- // src/calls/call-manager.ts
7
- import { Atom } from "@effect-atom/atom-react";
8
- import { Event as Event4, synchronized as synchronized3 } from "@dxos/async";
9
- import { Resource as Resource5 } from "@dxos/context";
10
- import { invariant as invariant6 } from "@dxos/invariant";
11
- import { isNonNullable as isNonNullable2 } from "@dxos/util";
12
-
13
- // src/calls/call-swarm-synchronizer.ts
14
- import md5Hex from "md5-hex";
15
- import { DeferredTask, Event, scheduleTaskInterval, synchronized } from "@dxos/async";
16
- import { Context, Resource } from "@dxos/context";
17
- import { generateName } from "@dxos/display-name";
18
- import { invariant as invariant2 } from "@dxos/invariant";
19
- import { PublicKey } from "@dxos/keys";
20
- import { log } from "@dxos/log";
21
- import { buf as buf2 } from "@dxos/protocols/buf";
22
- import { ActivitySchema } from "@dxos/protocols/buf/dxos/edge/calls_pb";
23
- import { ConnectionState } from "@dxos/protocols/proto/dxos/edge/messenger";
24
- import { isNonNullable } from "@dxos/util";
2
+ createBlackCanvasStreamTrack,
3
+ createInaudibleAudioStreamTrack
4
+ } from "./chunk-CROE4U4O.mjs";
25
5
 
26
6
  // src/calls/types.ts
27
7
  import { invariant } from "@dxos/invariant";
@@ -39,33 +19,9 @@ var codec = {
39
19
  };
40
20
  var TrackNameCodec = {
41
21
  encode: (trackData) => {
42
- invariant(trackData.sessionId, void 0, {
43
- F: __dxlog_file,
44
- L: 65,
45
- S: void 0,
46
- A: [
47
- "trackData.sessionId",
48
- ""
49
- ]
50
- });
51
- invariant(trackData.trackName, void 0, {
52
- F: __dxlog_file,
53
- L: 66,
54
- S: void 0,
55
- A: [
56
- "trackData.trackName",
57
- ""
58
- ]
59
- });
60
- invariant(trackData.mid, void 0, {
61
- F: __dxlog_file,
62
- L: 67,
63
- S: void 0,
64
- A: [
65
- "trackData.mid",
66
- ""
67
- ]
68
- });
22
+ invariant(trackData.sessionId, void 0, { "~LogMeta": "~LogMeta", F: __dxlog_file, L: 20, S: void 0, A: ["trackData.sessionId", ""] });
23
+ invariant(trackData.trackName, void 0, { "~LogMeta": "~LogMeta", F: __dxlog_file, L: 21, S: void 0, A: ["trackData.trackName", ""] });
24
+ invariant(trackData.mid, void 0, { "~LogMeta": "~LogMeta", F: __dxlog_file, L: 22, S: void 0, A: ["trackData.mid", ""] });
69
25
  return trackData.sessionId + "/" + trackData.trackName + "/" + trackData.mid;
70
26
  },
71
27
  decode: (name) => {
@@ -80,13 +36,24 @@ var TrackNameCodec = {
80
36
  };
81
37
 
82
38
  // src/calls/call-swarm-synchronizer.ts
39
+ import md5Hex from "md5-hex";
40
+ import { DeferredTask, Event, scheduleTaskInterval, synchronized } from "@dxos/async";
41
+ import { Context, Resource } from "@dxos/context";
42
+ import { generateName } from "@dxos/display-name";
43
+ import { invariant as invariant2 } from "@dxos/invariant";
44
+ import { PublicKey } from "@dxos/keys";
45
+ import { log } from "@dxos/log";
46
+ import { buf as buf2 } from "@dxos/protocols/buf";
47
+ import { ActivitySchema } from "@dxos/protocols/buf/dxos/edge/calls_pb";
48
+ import { ConnectionState } from "@dxos/protocols/proto/dxos/edge/messenger";
49
+ import { isNonNullable } from "@dxos/util";
50
+ var __dxlog_file2 = "/__w/dxos/dxos/packages/plugins/plugin-thread/src/calls/call-swarm-synchronizer.ts";
83
51
  function _ts_decorate(decorators, target, key, desc) {
84
52
  var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
85
53
  if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
86
54
  else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
87
55
  return c > 3 && r && Object.defineProperty(target, key, r), r;
88
56
  }
89
- var __dxlog_file2 = "/__w/dxos/dxos/packages/plugins/plugin-thread/src/calls/call-swarm-synchronizer.ts";
90
57
  var DISCONNECTED_ABRUPT_TIMEOUT = 1e4;
91
58
  var CallSwarmSynchronizer = class extends Resource {
92
59
  stateUpdated = new Event();
@@ -169,12 +136,7 @@ var CallSwarmSynchronizer = class extends Resource {
169
136
  if (this._swarmCtx) {
170
137
  log.verbose("joined to a different room", {
171
138
  roomId
172
- }, {
173
- F: __dxlog_file2,
174
- L: 152,
175
- S: this,
176
- C: (f, a) => f(...a)
177
- });
139
+ }, { "~LogMeta": "~LogMeta", F: __dxlog_file2, L: 102, S: this });
178
140
  return;
179
141
  }
180
142
  this._state.roomId = roomId;
@@ -192,28 +154,9 @@ var CallSwarmSynchronizer = class extends Resource {
192
154
  this._reconcileSwarmStateTask = void 0;
193
155
  }
194
156
  async join() {
195
- invariant2(this._state.roomId, void 0, {
196
- F: __dxlog_file2,
197
- L: 176,
198
- S: this,
199
- A: [
200
- "this._state.roomId",
201
- ""
202
- ]
203
- });
204
- invariant2(!this._swarmCtx, "Already joined", {
205
- F: __dxlog_file2,
206
- L: 177,
207
- S: this,
208
- A: [
209
- "!this._swarmCtx",
210
- "'Already joined'"
211
- ]
212
- });
213
- this._swarmCtx = new Context(void 0, {
214
- F: __dxlog_file2,
215
- L: 179
216
- });
157
+ invariant2(this._state.roomId, void 0, { "~LogMeta": "~LogMeta", F: __dxlog_file2, L: 122, S: this, A: ["this._state.roomId", ""] });
158
+ invariant2(!this._swarmCtx, "Already joined", { "~LogMeta": "~LogMeta", F: __dxlog_file2, L: 123, S: this, A: ["!this._swarmCtx", "'Already joined'"] });
159
+ this._swarmCtx = new Context(void 0, { "~LogMeta": "~LogMeta", F: __dxlog_file2, L: 124 });
217
160
  const topic = getTopic(this._state.roomId);
218
161
  log("joining swarm", {
219
162
  topic,
@@ -221,12 +164,7 @@ var CallSwarmSynchronizer = class extends Resource {
221
164
  identityKey: this._identityKey,
222
165
  peerKey: this._deviceKey
223
166
  }
224
- }, {
225
- F: __dxlog_file2,
226
- L: 181,
227
- S: this,
228
- C: (f, a) => f(...a)
229
- });
167
+ }, { "~LogMeta": "~LogMeta", F: __dxlog_file2, L: 126, S: this });
230
168
  const stream = this._networkService.subscribeSwarmState({
231
169
  topic
232
170
  });
@@ -240,24 +178,14 @@ var CallSwarmSynchronizer = class extends Resource {
240
178
  identityKey: this._identityKey,
241
179
  peerKey: this._deviceKey
242
180
  }
243
- }, {
244
- F: __dxlog_file2,
245
- L: 188,
246
- S: this,
247
- C: (f, a) => f(...a)
248
- });
181
+ }, { "~LogMeta": "~LogMeta", F: __dxlog_file2, L: 140, S: this });
249
182
  void this._networkService.leaveSwarm({
250
183
  topic,
251
184
  peer: {
252
185
  identityKey: this._identityKey,
253
186
  peerKey: this._deviceKey
254
187
  }
255
- }).catch((err) => log.catch(err, void 0, {
256
- F: __dxlog_file2,
257
- L: 194,
258
- S: this,
259
- C: (f, a) => f(...a)
260
- }));
188
+ }).catch((err) => log.catch(err, void 0, { "~LogMeta": "~LogMeta", F: __dxlog_file2, L: 153, S: this }));
261
189
  }
262
190
  window.removeEventListener("beforeunload", cleanup);
263
191
  };
@@ -321,15 +249,7 @@ var CallSwarmSynchronizer = class extends Resource {
321
249
  }
322
250
  async _reconcileSwarmState() {
323
251
  const swarmEvent = this._lastSwarmEvent;
324
- invariant2(swarmEvent, void 0, {
325
- F: __dxlog_file2,
326
- L: 273,
327
- S: this,
328
- A: [
329
- "swarmEvent",
330
- ""
331
- ]
332
- });
252
+ invariant2(swarmEvent, void 0, { "~LogMeta": "~LogMeta", F: __dxlog_file2, L: 216, S: this, A: ["swarmEvent", ""] });
333
253
  const peers = [
334
254
  ...swarmEvent.peers ?? [],
335
255
  ...(swarmEvent.inactivePeers ?? []).filter(({ disconnected, connectionState }) => connectionState === ConnectionState.DISCONNECTED_ABRUPT && disconnected && disconnected > Date.now() - DISCONNECTED_ABRUPT_TIMEOUT)
@@ -341,12 +261,7 @@ var CallSwarmSynchronizer = class extends Resource {
341
261
  log.error("error decoding peer state", {
342
262
  error,
343
263
  peer
344
- }, {
345
- F: __dxlog_file2,
346
- L: 290,
347
- S: this,
348
- C: (f, a) => f(...a)
349
- });
264
+ }, { "~LogMeta": "~LogMeta", F: __dxlog_file2, L: 227, S: this });
350
265
  return void 0;
351
266
  }
352
267
  }).filter(isNonNullable);
@@ -354,12 +269,7 @@ var CallSwarmSynchronizer = class extends Resource {
354
269
  this._state.self = users.find((user) => user.id === this._deviceKey);
355
270
  log("reconciling swarm state", {
356
271
  users
357
- }, {
358
- F: __dxlog_file2,
359
- L: 297,
360
- S: this,
361
- C: (f, a) => f(...a)
362
- });
272
+ }, { "~LogMeta": "~LogMeta", F: __dxlog_file2, L: 236, S: this });
363
273
  if (users.length === 0) {
364
274
  return;
365
275
  }
@@ -400,16 +310,6 @@ var LamportTimestampCrdt = class {
400
310
  };
401
311
  var getTopic = (roomId) => PublicKey.fromHex(md5Hex(roomId));
402
312
 
403
- // src/calls/media-manager.ts
404
- import { DeferredTask as DeferredTask3, Event as Event3, sleep as sleep2, synchronized as synchronized2 } from "@dxos/async";
405
- import { Resource as Resource4, cancelWithContext as cancelWithContext2 } from "@dxos/context";
406
- import { invariant as invariant5 } from "@dxos/invariant";
407
- import { log as log4 } from "@dxos/log";
408
-
409
- // src/calls/speaking-monitor.ts
410
- import { DeferredTask as DeferredTask2, Event as Event2, sleep } from "@dxos/async";
411
- import { Resource as Resource3 } from "@dxos/context";
412
-
413
313
  // src/calls/util/audio.ts
414
314
  var monitorAudioLevel = ({ mediaStreamTrack, intervalMs = 1e3 / 10, onMeasure }) => {
415
315
  let timeout = -1;
@@ -581,12 +481,7 @@ var CallsServicePeer = class extends Resource2 {
581
481
  if (peerConnection.connectionState === "failed" || peerConnection.connectionState === "closed") {
582
482
  log2.info("calls connection failed", {
583
483
  state: peerConnection.connectionState
584
- }, {
585
- F: __dxlog_file3,
586
- L: 120,
587
- S: this,
588
- C: (f, a) => f(...a)
589
- });
484
+ }, { "~LogMeta": "~LogMeta", F: __dxlog_file3, L: 58, S: this });
590
485
  void this._persistentLifecycle.scheduleRestart();
591
486
  }
592
487
  });
@@ -596,34 +491,19 @@ var CallsServicePeer = class extends Resource2 {
596
491
  if (peerConnection.iceConnectionState === "failed" || peerConnection.iceConnectionState === "closed") {
597
492
  log2.info("calls connection to ICEs failed", {
598
493
  state: peerConnection.iceConnectionState
599
- }, {
600
- F: __dxlog_file3,
601
- L: 129,
602
- S: this,
603
- C: (f, a) => f(...a)
604
- });
494
+ }, { "~LogMeta": "~LogMeta", F: __dxlog_file3, L: 68, S: this });
605
495
  void this._persistentLifecycle.scheduleRestart();
606
496
  } else if (peerConnection.iceConnectionState === "disconnected") {
607
497
  const timeoutSeconds = 7;
608
498
  iceTimeout = window.setTimeout(() => {
609
499
  if (peerConnection.iceConnectionState === "connected") {
610
- log2.info("calls iceConnectionState is connected", void 0, {
611
- F: __dxlog_file3,
612
- L: 138,
613
- S: this,
614
- C: (f, a) => f(...a)
615
- });
500
+ log2.info("calls iceConnectionState is connected", void 0, { "~LogMeta": "~LogMeta", F: __dxlog_file3, L: 79, S: this });
616
501
  return;
617
502
  }
618
503
  log2.info("calls iceConnectionState timed out", {
619
504
  state: peerConnection.iceConnectionState,
620
505
  timeoutSeconds
621
- }, {
622
- F: __dxlog_file3,
623
- L: 142,
624
- S: this,
625
- C: (f, a) => f(...a)
626
- });
506
+ }, { "~LogMeta": "~LogMeta", F: __dxlog_file3, L: 82, S: this });
627
507
  void this._persistentLifecycle.scheduleRestart();
628
508
  }, timeoutSeconds * 1e3);
629
509
  }
@@ -631,12 +511,7 @@ var CallsServicePeer = class extends Resource2 {
631
511
  return peerConnection;
632
512
  }
633
513
  async _initiateCallSession() {
634
- log2("creating new session", void 0, {
635
- F: __dxlog_file3,
636
- L: 152,
637
- S: this,
638
- C: (f, a) => f(...a)
639
- });
514
+ log2("creating new session", void 0, { "~LogMeta": "~LogMeta", F: __dxlog_file3, L: 93, S: this });
640
515
  const { sessionId } = await this._fetch("/sessions/new?SESSION", {
641
516
  method: "POST"
642
517
  });
@@ -658,12 +533,7 @@ var CallsServicePeer = class extends Resource2 {
658
533
  log2.error("error while fetching from Calls service", {
659
534
  status: response.status,
660
535
  text: await response.text()
661
- }, {
662
- F: __dxlog_file3,
663
- L: 168,
664
- S: this,
665
- C: (f, a) => f(...a)
666
- });
536
+ }, { "~LogMeta": "~LogMeta", F: __dxlog_file3, L: 113, S: this });
667
537
  throw new Error("Error while fetching from Calls service");
668
538
  }
669
539
  try {
@@ -692,22 +562,12 @@ var CallsServicePeer = class extends Resource2 {
692
562
  error,
693
563
  text,
694
564
  status: response.status
695
- }, {
696
- F: __dxlog_file3,
697
- L: 195,
698
- S: this,
699
- C: (f, a) => f(...a)
700
- });
565
+ }, { "~LogMeta": "~LogMeta", F: __dxlog_file3, L: 141, S: this });
701
566
  throw error;
702
567
  }
703
568
  }
704
569
  async _pushTrackInBulk({ ctx, peerConnection, transceiver, sessionId, trackName }) {
705
- log2.verbose("pushing track ", trackName, {
706
- F: __dxlog_file3,
707
- L: 217,
708
- S: this,
709
- C: (f, a) => f(...a)
710
- });
570
+ log2.verbose("pushing track ", trackName, { "~LogMeta": "~LogMeta", F: __dxlog_file3, L: 150, S: this });
711
571
  const pushedTrackPromise = this.pushTrackDispatcher.doBulkRequest({
712
572
  trackName,
713
573
  transceiver
@@ -729,15 +589,7 @@ var CallsServicePeer = class extends Resource2 {
729
589
  }))
730
590
  })
731
591
  });
732
- invariant3(response.tracks !== void 0, void 0, {
733
- F: __dxlog_file3,
734
- L: 242,
735
- S: this,
736
- A: [
737
- "response.tracks !== undefined",
738
- ""
739
- ]
740
- });
592
+ invariant3(response.tracks !== void 0, void 0, { "~LogMeta": "~LogMeta", F: __dxlog_file3, L: 174, S: this, A: ["response.tracks !== undefined", ""] });
741
593
  if (!response.errorCode) {
742
594
  await peerConnection.setRemoteDescription(new RTCSessionDescription(response.sessionDescription));
743
595
  await peerConnectionIsConnected(peerConnection);
@@ -754,12 +606,7 @@ var CallsServicePeer = class extends Resource2 {
754
606
  location: "remote"
755
607
  };
756
608
  } else {
757
- log2.error("missing track data", void 0, {
758
- F: __dxlog_file3,
759
- L: 266,
760
- S: this,
761
- C: (f, a) => f(...a)
762
- });
609
+ log2.error("missing track data", void 0, { "~LogMeta": "~LogMeta", F: __dxlog_file3, L: 195, S: this });
763
610
  }
764
611
  });
765
612
  const onDispose = async () => {
@@ -773,25 +620,12 @@ var CallsServicePeer = class extends Resource2 {
773
620
  }
774
621
  async pushTrack({ track, encodings = [], ctx, previousTrack }) {
775
622
  await this.waitUntilOpen();
776
- invariant3(this.session, void 0, {
777
- F: __dxlog_file3,
778
- L: 294,
779
- S: this,
780
- A: [
781
- "this.session",
782
- ""
783
- ]
784
- });
623
+ invariant3(this.session, void 0, { "~LogMeta": "~LogMeta", F: __dxlog_file3, L: 209, S: this, A: ["this.session", ""] });
785
624
  log2("trying to push track", {
786
625
  track,
787
626
  previousTrack,
788
627
  encodings
789
- }, {
790
- F: __dxlog_file3,
791
- L: 295,
792
- S: this,
793
- C: (f, a) => f(...a)
794
- });
628
+ }, { "~LogMeta": "~LogMeta", F: __dxlog_file3, L: 210, S: this });
795
629
  if (previousTrack) {
796
630
  const transceiver2 = this.session.peerConnection.getTransceivers().find((t) => t.mid === previousTrack.mid);
797
631
  if (transceiver2?.sender.track === track) {
@@ -799,52 +633,24 @@ var CallsServicePeer = class extends Resource2 {
799
633
  track,
800
634
  previousTrack,
801
635
  transceiver: transceiver2
802
- }, {
803
- F: __dxlog_file3,
804
- L: 299,
805
- S: this,
806
- C: (f, a) => f(...a)
807
- });
636
+ }, { "~LogMeta": "~LogMeta", F: __dxlog_file3, L: 218, S: this });
808
637
  return previousTrack;
809
638
  } else if (transceiver2) {
810
639
  log2.verbose("replacing track", {
811
640
  track,
812
641
  previousTrack,
813
642
  transceiver: transceiver2
814
- }, {
815
- F: __dxlog_file3,
816
- L: 302,
817
- S: this,
818
- C: (f, a) => f(...a)
819
- });
820
- transceiver2.sender.replaceTrack(track).catch((err) => log2.catch(err, void 0, {
821
- F: __dxlog_file3,
822
- L: 303,
823
- S: this,
824
- C: (f, a) => f(...a)
825
- }));
643
+ }, { "~LogMeta": "~LogMeta", F: __dxlog_file3, L: 225, S: this });
644
+ transceiver2.sender.replaceTrack(track).catch((err) => log2.catch(err, void 0, { "~LogMeta": "~LogMeta", F: __dxlog_file3, L: 230, S: this }));
826
645
  return previousTrack;
827
646
  }
828
647
  }
829
- invariant3(track, void 0, {
830
- F: __dxlog_file3,
831
- L: 307,
832
- S: this,
833
- A: [
834
- "track",
835
- ""
836
- ]
837
- });
648
+ invariant3(track, void 0, { "~LogMeta": "~LogMeta", F: __dxlog_file3, L: 234, S: this, A: ["track", ""] });
838
649
  const stableId = crypto.randomUUID();
839
650
  const transceiver = this.session.peerConnection.addTransceiver(track, {
840
651
  direction: "sendonly"
841
652
  });
842
- log2.verbose("creating transceiver", void 0, {
843
- F: __dxlog_file3,
844
- L: 312,
845
- S: this,
846
- C: (f, a) => f(...a)
847
- });
653
+ log2.verbose("creating transceiver", void 0, { "~LogMeta": "~LogMeta", F: __dxlog_file3, L: 240, S: this });
848
654
  const pushedTrackData = await this._pushTrackInBulk({
849
655
  ctx,
850
656
  peerConnection: this.session.peerConnection,
@@ -852,15 +658,7 @@ var CallsServicePeer = class extends Resource2 {
852
658
  sessionId: this.session.sessionId,
853
659
  trackName: stableId
854
660
  });
855
- invariant3(pushedTrackData, void 0, {
856
- F: __dxlog_file3,
857
- L: 321,
858
- S: this,
859
- A: [
860
- "pushedTrackData",
861
- ""
862
- ]
863
- });
661
+ invariant3(pushedTrackData, void 0, { "~LogMeta": "~LogMeta", F: __dxlog_file3, L: 248, S: this, A: ["pushedTrackData", ""] });
864
662
  const parameters = transceiver.sender.getParameters();
865
663
  encodings.forEach((encoding, i) => {
866
664
  const existing = parameters.encodings[i];
@@ -869,12 +667,7 @@ var CallsServicePeer = class extends Resource2 {
869
667
  ...encoding
870
668
  };
871
669
  });
872
- transceiver.sender.setParameters(parameters).catch((err) => log2.catch(err, void 0, {
873
- F: __dxlog_file3,
874
- L: 328,
875
- S: this,
876
- C: (f, a) => f(...a)
877
- }));
670
+ transceiver.sender.setParameters(parameters).catch((err) => log2.catch(err, void 0, { "~LogMeta": "~LogMeta", F: __dxlog_file3, L: 257, S: this }));
878
671
  return pushedTrackData;
879
672
  }
880
673
  // TODO(mykola): Add retry logic if the tracks fails to pull.
@@ -882,12 +675,7 @@ var CallsServicePeer = class extends Resource2 {
882
675
  let mid = "";
883
676
  log2("pulling track", {
884
677
  trackName: trackData.trackName
885
- }, {
886
- F: __dxlog_file3,
887
- L: 346,
888
- S: this,
889
- C: (f, a) => f(...a)
890
- });
678
+ }, { "~LogMeta": "~LogMeta", F: __dxlog_file3, L: 263, S: this });
891
679
  const pulledTrackPromise = this.pullTrackDispatcher.doBulkRequest(trackData, (tracks) => this.taskScheduler.schedule(async () => {
892
680
  const newTrackResponse = await this._fetch(`/sessions/${sessionId}/tracks/new?PULLING`, {
893
681
  method: "POST",
@@ -898,15 +686,7 @@ var CallsServicePeer = class extends Resource2 {
898
686
  if (newTrackResponse.errorCode) {
899
687
  throw new Error(newTrackResponse.errorDescription);
900
688
  }
901
- invariant3(newTrackResponse.tracks, void 0, {
902
- F: __dxlog_file3,
903
- L: 359,
904
- S: this,
905
- A: [
906
- "newTrackResponse.tracks",
907
- ""
908
- ]
909
- });
689
+ invariant3(newTrackResponse.tracks, void 0, { "~LogMeta": "~LogMeta", F: __dxlog_file3, L: 276, S: this, A: ["newTrackResponse.tracks", ""] });
910
690
  const trackMap = tracks.reduce((acc, track) => {
911
691
  const pulledTrackData = newTrackResponse.tracks?.find((t) => t.trackName === track.trackName && t.sessionId === track.sessionId);
912
692
  if (pulledTrackData && pulledTrackData.mid) {
@@ -945,32 +725,17 @@ var CallsServicePeer = class extends Resource2 {
945
725
  return trackInfo.resolvedTrack.then((track) => {
946
726
  mid = trackInfo.mid;
947
727
  return track;
948
- }).catch((err) => log2.catch(err, void 0, {
949
- F: __dxlog_file3,
950
- L: 411,
951
- S: this,
952
- C: (f, a) => f(...a)
953
- }));
728
+ }).catch((err) => log2.catch(err, void 0, { "~LogMeta": "~LogMeta", F: __dxlog_file3, L: 315, S: this }));
954
729
  } else {
955
730
  log2.info("missing track info", {
956
731
  trackData,
957
732
  availableTracks: Array.from(trackMap.keys())
958
- }, {
959
- F: __dxlog_file3,
960
- L: 413,
961
- S: this,
962
- C: (f, a) => f(...a)
963
- });
733
+ }, { "~LogMeta": "~LogMeta", F: __dxlog_file3, L: 317, S: this });
964
734
  }
965
735
  });
966
736
  const onDispose = async () => {
967
737
  if (mid) {
968
- log2("closing pulled track ", trackData.trackName, {
969
- F: __dxlog_file3,
970
- L: 419,
971
- S: this,
972
- C: (f, a) => f(...a)
973
- });
738
+ log2("closing pulled track ", trackData.trackName, { "~LogMeta": "~LogMeta", F: __dxlog_file3, L: 325, S: this });
974
739
  await this._closeTrackInBulk(peerConnection, mid, sessionId);
975
740
  mid = "";
976
741
  }
@@ -981,15 +746,7 @@ var CallsServicePeer = class extends Resource2 {
981
746
  }
982
747
  async pullTrack({ ctx, trackData }) {
983
748
  await this.waitUntilOpen();
984
- invariant3(this.session, void 0, {
985
- F: __dxlog_file3,
986
- L: 440,
987
- S: this,
988
- A: [
989
- "this.session",
990
- ""
991
- ]
992
- });
749
+ invariant3(this.session, void 0, { "~LogMeta": "~LogMeta", F: __dxlog_file3, L: 336, S: this, A: ["this.session", ""] });
993
750
  const session = this.session;
994
751
  return this._pullTrackInBulk({
995
752
  peerConnection: session.peerConnection,
@@ -1080,12 +837,7 @@ var getUserMediaTrack = async (kind, constraints = {}, deviceList) => {
1080
837
  };
1081
838
  var acquireTrack = async (device, constraints) => {
1082
839
  const { deviceId, label } = device;
1083
- log3.info(`requesting ${label}`, void 0, {
1084
- F: __dxlog_file4,
1085
- L: 23,
1086
- S: void 0,
1087
- C: (f, a) => f(...a)
1088
- });
840
+ log3.info(`requesting ${label}`, void 0, { "~LogMeta": "~LogMeta", F: __dxlog_file4, L: 15, S: void 0 });
1089
841
  const mediaStream = await navigator.mediaDevices.getUserMedia(device.kind === "videoinput" ? {
1090
842
  video: {
1091
843
  ...constraints,
@@ -1123,108 +875,9 @@ var getScreenshare = async ({ contentHint }) => {
1123
875
  return ms;
1124
876
  };
1125
877
 
1126
- // src/calls/util/stub-media-streams.ts
1127
- import { scheduleTaskInterval as scheduleTaskInterval2, waitForCondition } from "@dxos/async";
1128
- import { cancelWithContext } from "@dxos/context";
1129
- import { invariant as invariant4 } from "@dxos/invariant";
1130
- var __dxlog_file5 = "/__w/dxos/dxos/packages/plugins/plugin-thread/src/calls/util/stub-media-streams.ts";
1131
- var createBlackCanvasStreamTrack = async ({ ctx, width, height }) => {
1132
- const canvas = document.createElement("canvas");
1133
- canvas.width = width;
1134
- canvas.height = height;
1135
- const canvasCtx = canvas.getContext("2d");
1136
- invariant4(canvasCtx, void 0, {
1137
- F: __dxlog_file5,
1138
- L: 28,
1139
- S: void 0,
1140
- A: [
1141
- "canvasCtx",
1142
- ""
1143
- ]
1144
- });
1145
- const drawFrame = () => {
1146
- canvasCtx.fillStyle = "black";
1147
- canvasCtx.fillRect(0, 0, canvas.width, canvas.height);
1148
- };
1149
- scheduleTaskInterval2(ctx, async () => drawFrame(), 200);
1150
- const track = canvas.captureStream().getVideoTracks()[0];
1151
- drawFrame();
1152
- await cancelWithContext(ctx, waitForCondition({
1153
- condition: () => track.readyState === "live",
1154
- timeout: 1e3
1155
- }));
1156
- return track;
1157
- };
1158
- var audioContextStartedPreviously = false;
1159
- var userGestureEvents = [
1160
- "click",
1161
- "contextmenu",
1162
- "auxclick",
1163
- "dblclick",
1164
- "mousedown",
1165
- "mouseup",
1166
- "pointerup",
1167
- "touchend",
1168
- "keydown",
1169
- "keyup"
1170
- ];
1171
- var createInaudibleAudioStreamTrack = async ({ ctx }) => {
1172
- const audioContext = new window.AudioContext();
1173
- const oscillator = audioContext.createOscillator();
1174
- oscillator.type = "triangle";
1175
- oscillator.frequency.setValueAtTime(20, audioContext.currentTime);
1176
- const gainNode = audioContext.createGain();
1177
- gainNode.gain.setValueAtTime(0, audioContext.currentTime);
1178
- oscillator.connect(gainNode);
1179
- const destination = audioContext.createMediaStreamDestination();
1180
- gainNode.connect(destination);
1181
- let oscillatorStarted = false;
1182
- const ensureOscillatorStarted = () => {
1183
- if (oscillatorStarted) return;
1184
- oscillator.start();
1185
- oscillatorStarted = true;
1186
- };
1187
- const stateChangeHandler = () => {
1188
- if (audioContext.state === "running") {
1189
- audioContextStartedPreviously = true;
1190
- ensureOscillatorStarted();
1191
- }
1192
- if (audioContext.state === "suspended" || audioContext.state === "interrupted") {
1193
- resumeAudioContext();
1194
- }
1195
- };
1196
- audioContext.addEventListener("statechange", stateChangeHandler);
1197
- const resumeAudioContext = () => {
1198
- void audioContext.resume().then(() => {
1199
- cleanUpUserGestureListeners();
1200
- });
1201
- };
1202
- const cleanUpUserGestureListeners = () => {
1203
- userGestureEvents.forEach((gesture) => {
1204
- document.removeEventListener(gesture, resumeAudioContext, {
1205
- capture: true
1206
- });
1207
- });
1208
- };
1209
- if (audioContextStartedPreviously) {
1210
- resumeAudioContext();
1211
- } else {
1212
- userGestureEvents.forEach((gesture) => {
1213
- document.addEventListener(gesture, resumeAudioContext, {
1214
- capture: true
1215
- });
1216
- });
1217
- }
1218
- ctx.onDispose(async () => {
1219
- cleanUpUserGestureListeners();
1220
- oscillator.disconnect();
1221
- oscillator.stop();
1222
- await audioContext.close();
1223
- });
1224
- return destination.stream.getAudioTracks()[0];
1225
- };
1226
-
1227
878
  // src/calls/speaking-monitor.ts
879
+ import { DeferredTask as DeferredTask2, Event as Event2, sleep } from "@dxos/async";
880
+ import { Resource as Resource3 } from "@dxos/context";
1228
881
  var NOT_SPEAKING_AFTER = 500;
1229
882
  var START_SPEAKING_THRESHOLD = 0.05;
1230
883
  var CONTINUE_SPEAKING_THRESHOLD = 0.02;
@@ -1291,13 +944,17 @@ var SpeakingMonitor = class extends Resource3 {
1291
944
  };
1292
945
 
1293
946
  // src/calls/media-manager.ts
947
+ import { DeferredTask as DeferredTask3, Event as Event3, sleep as sleep2, synchronized as synchronized2 } from "@dxos/async";
948
+ import { Resource as Resource4, cancelWithContext } from "@dxos/context";
949
+ import { invariant as invariant4 } from "@dxos/invariant";
950
+ import { log as log4 } from "@dxos/log";
951
+ var __dxlog_file5 = "/__w/dxos/dxos/packages/plugins/plugin-thread/src/calls/media-manager.ts";
1294
952
  function _ts_decorate2(decorators, target, key, desc) {
1295
953
  var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
1296
954
  if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
1297
955
  else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
1298
956
  return c > 3 && r && Object.defineProperty(target, key, r), r;
1299
957
  }
1300
- var __dxlog_file6 = "/__w/dxos/dxos/packages/plugins/plugin-thread/src/calls/media-manager.ts";
1301
958
  var VIDEO_WIDTH = 1280;
1302
959
  var VIDEO_HEIGHT = 720;
1303
960
  var MAX_WEB_CAM_FRAMERATE = 24;
@@ -1453,13 +1110,8 @@ var MediaManager = class extends Resource4 {
1453
1110
  this._pullTracksTask.schedule();
1454
1111
  }
1455
1112
  async _reconcilePulledMedia() {
1456
- log4("reconciling tracks", void 0, {
1457
- F: __dxlog_file6,
1458
- L: 229,
1459
- S: this,
1460
- C: (f, a) => f(...a)
1461
- });
1462
- await cancelWithContext2(this._ctx, sleep2(800));
1113
+ log4("reconciling tracks", void 0, { "~LogMeta": "~LogMeta", F: __dxlog_file5, L: 171, S: this });
1114
+ await cancelWithContext(this._ctx, sleep2(800));
1463
1115
  const trackNames = this._trackToReconcile;
1464
1116
  const tracksToPull = trackNames.filter((name) => !this._state.pulledAudioTracks[name] && !this._state.pulledVideoStreams[name]);
1465
1117
  const audioTracksToClose = Object.entries(this._state.pulledAudioTracks).filter(([key]) => !trackNames.some((name) => name === key));
@@ -1471,12 +1123,7 @@ var MediaManager = class extends Resource4 {
1471
1123
  audioTracksToClose,
1472
1124
  currentAudioTracks: Object.keys(this._state.pulledAudioTracks),
1473
1125
  currentVideoStreams: Object.keys(this._state.pulledVideoStreams)
1474
- }, {
1475
- F: __dxlog_file6,
1476
- L: 247,
1477
- S: this,
1478
- C: (f, a) => f(...a)
1479
- });
1126
+ }, { "~LogMeta": "~LogMeta", F: __dxlog_file5, L: 180, S: this });
1480
1127
  const pullResults = await Promise.all(tracksToPull.map((name) => this._pullTrack(name)));
1481
1128
  await Promise.all([
1482
1129
  ...audioTracksToClose,
@@ -1485,32 +1132,14 @@ var MediaManager = class extends Resource4 {
1485
1132
  log4("reconciled tracks", {
1486
1133
  currentAudioTracks: Object.keys(this._state.pulledAudioTracks),
1487
1134
  currentVideoStreams: Object.keys(this._state.pulledVideoStreams)
1488
- }, {
1489
- F: __dxlog_file6,
1490
- L: 262,
1491
- S: this,
1492
- C: (f, a) => f(...a)
1493
- });
1135
+ }, { "~LogMeta": "~LogMeta", F: __dxlog_file5, L: 195, S: this });
1494
1136
  this.stateUpdated.emit(this._state);
1495
1137
  if (pullResults.some(({ shouldRetry }) => shouldRetry)) {
1496
- await cancelWithContext2(this._ctx, sleep2(RETRY_INTERVAL));
1138
+ await cancelWithContext(this._ctx, sleep2(RETRY_INTERVAL));
1497
1139
  log4.info("retrying pull tracks", {
1498
1140
  tracksToPull
1499
- }, {
1500
- F: __dxlog_file6,
1501
- L: 270,
1502
- S: this,
1503
- C: (f, a) => f(...a)
1504
- });
1505
- invariant5(this._pullTracksTask, void 0, {
1506
- F: __dxlog_file6,
1507
- L: 271,
1508
- S: this,
1509
- A: [
1510
- "this._pullTracksTask",
1511
- ""
1512
- ]
1513
- });
1141
+ }, { "~LogMeta": "~LogMeta", F: __dxlog_file5, L: 202, S: this });
1142
+ invariant4(this._pullTracksTask, void 0, { "~LogMeta": "~LogMeta", F: __dxlog_file5, L: 205, S: this, A: ["this._pullTracksTask", ""] });
1514
1143
  this._pullTracksTask.schedule();
1515
1144
  }
1516
1145
  }
@@ -1550,26 +1179,13 @@ var MediaManager = class extends Resource4 {
1550
1179
  this.stateUpdated.emit(this._state);
1551
1180
  }
1552
1181
  if (shouldRetry) {
1553
- await cancelWithContext2(this._ctx, sleep2(RETRY_INTERVAL));
1182
+ await cancelWithContext(this._ctx, sleep2(RETRY_INTERVAL));
1554
1183
  log4.info("retrying push tracks", {
1555
1184
  pushVideoResult,
1556
1185
  pushAudioResult,
1557
1186
  pushScreenshareResult
1558
- }, {
1559
- F: __dxlog_file6,
1560
- L: 310,
1561
- S: this,
1562
- C: (f, a) => f(...a)
1563
- });
1564
- invariant5(this._pushTracksTask, void 0, {
1565
- F: __dxlog_file6,
1566
- L: 311,
1567
- S: this,
1568
- A: [
1569
- "this._pushTracksTask",
1570
- ""
1571
- ]
1572
- });
1187
+ }, { "~LogMeta": "~LogMeta", F: __dxlog_file5, L: 246, S: this });
1188
+ invariant4(this._pushTracksTask, void 0, { "~LogMeta": "~LogMeta", F: __dxlog_file5, L: 251, S: this, A: ["this._pushTracksTask", ""] });
1573
1189
  this._pushTracksTask.schedule();
1574
1190
  }
1575
1191
  }
@@ -1621,12 +1237,7 @@ var MediaManager = class extends Resource4 {
1621
1237
  log4.info("failed to pull track", {
1622
1238
  err,
1623
1239
  name
1624
- }, {
1625
- F: __dxlog_file6,
1626
- L: 347,
1627
- S: this,
1628
- C: (f, a) => f(...a)
1629
- });
1240
+ }, { "~LogMeta": "~LogMeta", F: __dxlog_file5, L: 303, S: this });
1630
1241
  void ctx.dispose();
1631
1242
  return {
1632
1243
  shouldRetry: true
@@ -1655,12 +1266,7 @@ var MediaManager = class extends Resource4 {
1655
1266
  track,
1656
1267
  previousTrack,
1657
1268
  encodings
1658
- }, {
1659
- F: __dxlog_file6,
1660
- L: 373,
1661
- S: this,
1662
- C: (f, a) => f(...a)
1663
- });
1269
+ }, { "~LogMeta": "~LogMeta", F: __dxlog_file5, L: 330, S: this });
1664
1270
  void ctx.dispose();
1665
1271
  return {
1666
1272
  shouldRetry: true
@@ -1676,13 +1282,18 @@ _ts_decorate2([
1676
1282
  ], MediaManager.prototype, "leave", null);
1677
1283
 
1678
1284
  // src/calls/call-manager.ts
1285
+ import { Atom } from "@effect-atom/atom-react";
1286
+ import { Event as Event4, synchronized as synchronized3 } from "@dxos/async";
1287
+ import { Resource as Resource5 } from "@dxos/context";
1288
+ import { invariant as invariant5 } from "@dxos/invariant";
1289
+ import { isNonNullable as isNonNullable2 } from "@dxos/util";
1290
+ var __dxlog_file6 = "/__w/dxos/dxos/packages/plugins/plugin-thread/src/calls/call-manager.ts";
1679
1291
  function _ts_decorate3(decorators, target, key, desc) {
1680
1292
  var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
1681
1293
  if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
1682
1294
  else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
1683
1295
  return c > 3 && r && Object.defineProperty(target, key, r), r;
1684
1296
  }
1685
- var __dxlog_file7 = "/__w/dxos/dxos/packages/plugins/plugin-thread/src/calls/call-manager.ts";
1686
1297
  var CallManager = class extends Resource5 {
1687
1298
  _client;
1688
1299
  _registry;
@@ -1804,15 +1415,7 @@ var CallManager = class extends Resource5 {
1804
1415
  super(), this._client = _client, this._registry = _registry;
1805
1416
  this._client.config.getOrThrow("runtime.services.edge.url");
1806
1417
  const networkService = this._client.services.services.NetworkService;
1807
- invariant6(networkService, "network service not found", {
1808
- F: __dxlog_file7,
1809
- L: 180,
1810
- S: this,
1811
- A: [
1812
- "networkService",
1813
- "'network service not found'"
1814
- ]
1815
- });
1418
+ invariant5(networkService, "network service not found", { "~LogMeta": "~LogMeta", F: __dxlog_file6, L: 128, S: this, A: ["networkService", "'network service not found'"] });
1816
1419
  this._swarmSynchronizer = new CallSwarmSynchronizer({
1817
1420
  networkService
1818
1421
  });
@@ -1902,433 +1505,18 @@ _ts_decorate3([
1902
1505
  synchronized3
1903
1506
  ], CallManager.prototype, "leave", null);
1904
1507
 
1905
- // src/hooks/analytics.ts
1906
- import { useCallback } from "react";
1907
- import { useOperationInvoker } from "@dxos/app-framework/ui";
1908
- import { Obj } from "@dxos/echo";
1909
- import { ObservabilityOperation } from "@dxos/plugin-observability/operations";
1910
- import { useOnTransition } from "@dxos/react-ui";
1911
- var useOnEditAnalytics = (message, textBlock, editing) => {
1912
- const { invokePromise } = useOperationInvoker();
1913
- const onEdit = useCallback(() => {
1914
- if (!message || !textBlock) {
1915
- return;
1916
- }
1917
- const db = Obj.getDatabase(message);
1918
- if (!db) {
1919
- return;
1920
- }
1921
- void invokePromise(ObservabilityOperation.SendEvent, {
1922
- name: "threads.message.update",
1923
- properties: {
1924
- spaceId: db.spaceId,
1925
- messageId: message.id,
1926
- messageLength: textBlock?.text.length
1927
- }
1928
- });
1929
- }, [
1930
- invokePromise,
1931
- message,
1932
- textBlock
1933
- ]);
1934
- useOnTransition(editing, true, false, onEdit);
1935
- };
1936
-
1937
- // src/hooks/useBlackCanvasStreamTrack.tsx
1938
- import { useEffect, useState } from "react";
1939
- import { scheduleTask as scheduleTask2 } from "@dxos/async";
1940
- import { Context as Context2 } from "@dxos/context";
1941
- var __dxlog_file8 = "/__w/dxos/dxos/packages/plugins/plugin-thread/src/hooks/useBlackCanvasStreamTrack.tsx";
1942
- var useBlackCanvasStreamTrack = () => {
1943
- const [blackCanvasStreamTrack, setBlackCanvasStreamTrack] = useState(void 0);
1944
- useEffect(() => {
1945
- const ctx = new Context2(void 0, {
1946
- F: __dxlog_file8,
1947
- L: 15
1948
- });
1949
- scheduleTask2(ctx, async () => {
1950
- const blackCanvasStreamTrack2 = await createBlackCanvasStreamTrack({
1951
- ctx,
1952
- width: 720,
1953
- height: 480
1954
- });
1955
- setBlackCanvasStreamTrack(blackCanvasStreamTrack2);
1956
- });
1957
- return () => {
1958
- void ctx.dispose();
1959
- };
1960
- }, []);
1961
- return blackCanvasStreamTrack;
1962
- };
1963
-
1964
- // src/hooks/useDebugMode.ts
1965
- import { useEffect as useEffect2, useState as useState2 } from "react";
1966
- var useDebugMode = () => {
1967
- const [enabled, setEnabled] = useState2(false);
1968
- useEffect2(() => {
1969
- const handler = (ev) => {
1970
- if (ev.key.toLowerCase() === "d" && ev.ctrlKey) {
1971
- ev.preventDefault();
1972
- setEnabled(!enabled);
1973
- }
1974
- };
1975
- document.addEventListener("keypress", handler);
1976
- return () => {
1977
- document.removeEventListener("keypress", handler);
1978
- };
1979
- }, [
1980
- enabled
1981
- ]);
1982
- return enabled;
1983
- };
1984
-
1985
- // src/hooks/useInaudibleAudioStreamTrack.tsx
1986
- import { useEffect as useEffect3, useState as useState3 } from "react";
1987
- import { scheduleTask as scheduleTask3 } from "@dxos/async";
1988
- import { Context as Context3 } from "@dxos/context";
1989
- var __dxlog_file9 = "/__w/dxos/dxos/packages/plugins/plugin-thread/src/hooks/useInaudibleAudioStreamTrack.tsx";
1990
- var useInaudibleAudioStreamTrack = () => {
1991
- const [audioStreamTrack, setAudioStreamTrack] = useState3(void 0);
1992
- useEffect3(() => {
1993
- const ctx = new Context3(void 0, {
1994
- F: __dxlog_file9,
1995
- L: 15
1996
- });
1997
- scheduleTask3(ctx, async () => {
1998
- const audioStreamTrack2 = await createInaudibleAudioStreamTrack({
1999
- ctx
2000
- });
2001
- setAudioStreamTrack(audioStreamTrack2);
2002
- });
2003
- return () => {
2004
- void ctx.dispose();
2005
- };
2006
- }, []);
2007
- return audioStreamTrack;
2008
- };
2009
-
2010
- // src/hooks/useStatus.ts
2011
- import { useEffect as useEffect4, useState as useState4 } from "react";
2012
- var useStatus = (space, channel) => {
2013
- const [processing, setProcessing] = useState4(false);
2014
- useEffect4(() => {
2015
- if (!space || !channel) {
2016
- return;
2017
- }
2018
- const unsubscribe = space.listen(`status/${channel}`, (status) => {
2019
- const { event } = status.payload ?? {};
2020
- setProcessing(event === "processing");
2021
- });
2022
- const t = setInterval(() => {
2023
- setProcessing((prev) => {
2024
- if (typeof prev?.ts === "number" && Date.now() - prev.ts > 3e4) {
2025
- return void 0;
2026
- } else {
2027
- return prev;
2028
- }
2029
- });
2030
- }, 1e3);
2031
- return () => {
2032
- unsubscribe();
2033
- clearInterval(t);
2034
- };
2035
- }, [
2036
- space,
2037
- channel
2038
- ]);
2039
- return processing;
2040
- };
2041
-
2042
- // src/hooks/useVideoStreamTrack.tsx
2043
- import { useEffect as useEffect5, useRef, useState as useState5 } from "react";
2044
- var useVideoStreamTrack = (videoElement, videoSrc) => {
2045
- const [videoStreamTrack, setVideoStreamTrack] = useState5(void 0);
2046
- const hadRun = useRef(false);
2047
- useEffect5(() => {
2048
- if (!videoElement.current || hadRun.current || !videoSrc) {
2049
- return;
2050
- }
2051
- hadRun.current = true;
2052
- videoElement.current.addEventListener("playing", () => {
2053
- if (videoStreamTrack) {
2054
- return;
2055
- }
2056
- const stream = videoElement.current.captureStream();
2057
- const track = stream.getTracks()[0];
2058
- if (track && !videoStreamTrack) {
2059
- setVideoStreamTrack(track);
2060
- }
2061
- stream.onaddtrack = (event) => {
2062
- if (event.track.kind === "video" && !videoStreamTrack) {
2063
- setVideoStreamTrack(event.track);
2064
- }
2065
- };
2066
- });
2067
- videoElement.current.src = videoSrc;
2068
- }, [
2069
- videoElement.current,
2070
- videoSrc
2071
- ]);
2072
- return videoStreamTrack;
2073
- };
2074
-
2075
- // src/meta.ts
2076
- import { trim } from "@dxos/util";
2077
- var meta = {
2078
- id: "org.dxos.plugin.thread",
2079
- name: "Chat",
2080
- description: trim`
2081
- Multi-modal communication platform supporting text chat, voice, and video conferencing.
2082
- Create threaded conversations and add contextual comments directly on any workspace object.
2083
- `,
2084
- icon: "ph--video-conference--regular",
2085
- iconHue: "rose",
2086
- source: "https://github.com/dxos/dxos/tree/main/packages/plugins/plugin-thread"
2087
- };
2088
- var THREAD_ITEM = `${meta.id}.item`;
2089
-
2090
- // src/ThreadPlugin.tsx
2091
- import * as Effect from "effect/Effect";
2092
- import * as Option from "effect/Option";
2093
- import { Capability, Plugin } from "@dxos/app-framework";
2094
- import { AppActivationEvents, AppPlugin } from "@dxos/app-toolkit";
2095
- import { Annotation, Ref, Type as Type2 } from "@dxos/echo";
2096
- import { Operation } from "@dxos/operation";
2097
- import { ClientEvents } from "@dxos/plugin-client/types";
2098
- import { MarkdownEvents } from "@dxos/plugin-markdown";
2099
- import { SpaceOperation } from "@dxos/plugin-space/operations";
2100
- import { SpaceCapabilities, SpaceEvents } from "@dxos/plugin-space/types";
2101
- import { translations as threadTranslations } from "@dxos/react-ui-thread";
2102
- import { AnchoredTo, Message, Thread } from "@dxos/types";
2103
- import { AppGraphBuilder, BlueprintDefinition, CallManager as CallManager2, Markdown, OperationHandler, UndoMappings, ReactRoot, ReactSurface, ThreadState } from "#capabilities";
2104
- import { THREAD_ITEM as THREAD_ITEM2, meta as meta3 } from "#meta";
2105
- import { ThreadOperation } from "#operations";
2106
- import { Channel as Channel2 } from "#types";
2107
-
2108
- // src/translations.ts
2109
- import { Type } from "@dxos/echo";
2110
- import { meta as meta2 } from "#meta";
2111
- import { Channel } from "#types";
2112
- var translations = [
2113
- {
2114
- "en-US": {
2115
- [Type.getTypename(Channel.Channel)]: {
2116
- "typename.label": "Channel",
2117
- "typename.label_zero": "Channels",
2118
- "typename.label_one": "Channel",
2119
- "typename.label_other": "Channels",
2120
- "object-name.placeholder": "New channel",
2121
- "add-object.label": "Add channel",
2122
- "rename-object.label": "Rename channel",
2123
- "delete-object.label": "Delete channel",
2124
- "object-deleted.label": "Channel deleted"
2125
- },
2126
- [meta2.id]: {
2127
- "plugin.name": "Chat",
2128
- "channel-title.label": "Title",
2129
- "message.placeholder": "Reply\u2026",
2130
- "activity.message": "Processing\u2026",
2131
- "anonymous.label": "Anonymous",
2132
- "delete-message-block.label": "Delete message block",
2133
- "detached-thread.label": "Referenced content was removed",
2134
- "delete-thread.label": "Delete thread",
2135
- "resolve-thread.label": "Resolve thread",
2136
- "thread-deleted.label": "Thread deleted",
2137
- "message-deleted.label": "Message deleted",
2138
- "comments.heading": "Comments",
2139
- "chat.heading": "Chat",
2140
- "draft.button": "DRAFT",
2141
- "no-comments.title": "Comments",
2142
- "no-comments.message": "Click on the <commentIcon></commentIcon> button in the document toolbar to create a comment thread on the selected text.",
2143
- "toggle-show-resolved.label": "Show resolved",
2144
- "unnamed-object-threads.label": "Threads",
2145
- "mark-as-resolved.label": "Mark as resolved",
2146
- "mark-as-unresolved.label": "Mark as unresolved",
2147
- "save-message.label": "Save",
2148
- "edit-message.label": "Edit",
2149
- "delete-message.label": "Delete message",
2150
- "accept-proposal.label": "Accept proposal",
2151
- "open-comments-panel.label": "Show Comments",
2152
- "comments.label": "Comments",
2153
- "show-all.label": "All comments",
2154
- "show-unresolved.label": "Unresolved comments",
2155
- "add-comment.label": "Add comment",
2156
- "channel-companion.label": "Channel",
2157
- "call-panel.label": "Active Call",
2158
- "display-name.label": "Display name",
2159
- "display-name.description": "Set your display name before joining a meeting.",
2160
- "display-name-input.placeholder": "Enter your name",
2161
- "set-display-name.label": "Continue",
2162
- "call-tab.label": "Call",
2163
- "meeting-status.title": "Calls",
2164
- "share-meeting-link.label": "Share meeting",
2165
- "show-webrtc-stats.title": "WebRTC Stats",
2166
- "show-calls-history.title": "Service History",
2167
- "meeting-summary.label": "Summary",
2168
- "summarize.label": "Summarize",
2169
- "summarizing.label": "Creating summary...",
2170
- "create-summary.message": "A summary doesn\u2019t exist for this meeting yet. Create one now?",
2171
- "icon-pin.label": "Pin video",
2172
- "icon-unpin.label": "Unpin video",
2173
- "icon-wave.label": "Waving",
2174
- "icon-muted.label": "Muted",
2175
- "join-call.button": "Join",
2176
- "leave-call.button": "Leave",
2177
- "mic-on.button": "Unmute",
2178
- "mic-off.button": "Mute",
2179
- "camera-on.button": "Turn camera on",
2180
- "camera-off.button": "Turn camera off",
2181
- "camera-off.label": "Camera off",
2182
- "raise-hand.button": "Raise hand",
2183
- "lower-hand.button": "Lower hand",
2184
- "screenshare-on.button": "Share screen",
2185
- "screenshare-off.button": "Stop streaming",
2186
- "channel-toolbar.title": "Channel actions",
2187
- "start-video-call.menu": "Start video call"
2188
- }
2189
- }
2190
- }
2191
- ];
2192
-
2193
- // src/ThreadPlugin.tsx
2194
- var ThreadPlugin = Plugin.define(meta3).pipe(
2195
- AppPlugin.addAppGraphModule({
2196
- activate: AppGraphBuilder
2197
- }),
2198
- AppPlugin.addBlueprintDefinitionModule({
2199
- activate: BlueprintDefinition
2200
- }),
2201
- AppPlugin.addMetadataModule({
2202
- metadata: [
2203
- {
2204
- id: Type2.getTypename(Channel2.Channel),
2205
- metadata: {
2206
- icon: Annotation.IconAnnotation.get(Channel2.Channel).pipe(Option.getOrThrow).icon,
2207
- iconHue: Annotation.IconAnnotation.get(Channel2.Channel).pipe(Option.getOrThrow).hue ?? "white",
2208
- createObject: (props, options) => Effect.gen(function* () {
2209
- const object = Channel2.make(props);
2210
- return yield* Operation.invoke(SpaceOperation.AddObject, {
2211
- object,
2212
- target: options.target,
2213
- hidden: true,
2214
- targetNodeId: options.targetNodeId
2215
- });
2216
- })
2217
- }
2218
- },
2219
- {
2220
- id: Type2.getTypename(Thread.Thread),
2221
- metadata: {
2222
- // TODO(wittjosiah): Move out of metadata.
2223
- loadReferences: async (thread) => await Ref.Array.loadAll(thread.messages ?? [])
2224
- }
2225
- },
2226
- {
2227
- id: THREAD_ITEM2,
2228
- metadata: {
2229
- parse: (item, type) => {
2230
- switch (type) {
2231
- case "node":
2232
- return {
2233
- id: item.id,
2234
- label: item.name,
2235
- data: item
2236
- };
2237
- case "object":
2238
- return item;
2239
- case "view-object":
2240
- return {
2241
- id: `${item.id}-view`,
2242
- object: item
2243
- };
2244
- }
2245
- }
2246
- }
2247
- }
2248
- ]
2249
- }),
2250
- AppPlugin.addOperationHandlerModule({
2251
- activate: OperationHandler
2252
- }),
2253
- AppPlugin.addOperationHandlerModule({
2254
- id: "undo-mappings",
2255
- activate: UndoMappings
2256
- }),
2257
- AppPlugin.addReactRootModule({
2258
- activate: ReactRoot
2259
- }),
2260
- AppPlugin.addSchemaModule({
2261
- schema: [
2262
- AnchoredTo.AnchoredTo,
2263
- Channel2.Channel,
2264
- Message.Message,
2265
- Thread.Thread
2266
- ]
2267
- }),
2268
- AppPlugin.addSurfaceModule({
2269
- activate: ReactSurface
2270
- }),
2271
- AppPlugin.addTranslationsModule({
2272
- translations: [
2273
- ...translations,
2274
- ...threadTranslations
2275
- ]
2276
- }),
2277
- Plugin.addModule({
2278
- id: "call-manager",
2279
- activatesOn: ClientEvents.ClientReady,
2280
- activate: CallManager2
2281
- }),
2282
- // TODO(wittjosiah): Currently not used but leaving because there will likely be settings for threads again.
2283
- // Plugin.addModule({
2284
- // id: 'settings',
2285
- // activatesOn: Events.SetupSettings,
2286
- // activate: ThreadSettings,
2287
- // }),
2288
- Plugin.addModule({
2289
- id: "state",
2290
- // TODO(wittjosiah): Does not integrate with settings store.
2291
- // Should this be a different event?
2292
- // Should settings store be renamed to be more generic?
2293
- activatesOn: AppActivationEvents.SetupSettings,
2294
- activate: ThreadState
2295
- }),
2296
- Plugin.addModule({
2297
- id: "on-space-created",
2298
- activatesOn: SpaceEvents.SpaceCreated,
2299
- activate: () => Effect.succeed(Capability.contributes(SpaceCapabilities.OnCreateSpace, (params) => Operation.invoke(ThreadOperation.OnCreateSpace, params)))
2300
- }),
2301
- Plugin.addModule({
2302
- id: "markdown",
2303
- activatesOn: MarkdownEvents.SetupExtensions,
2304
- activate: Markdown
2305
- }),
2306
- Plugin.make
2307
- );
2308
1508
  export {
2309
1509
  CALLS_URL,
2310
- CallManager,
1510
+ codec,
1511
+ TrackNameCodec,
2311
1512
  CallSwarmSynchronizer,
1513
+ monitorAudioLevel,
2312
1514
  CallsServicePeer,
2313
- MediaManager,
2314
- SpeakingMonitor,
2315
- THREAD_ITEM,
2316
- ThreadCapabilities,
2317
- ThreadPlugin,
2318
- TrackNameCodec,
2319
- codec,
2320
- createBlackCanvasStreamTrack,
2321
- createInaudibleAudioStreamTrack,
1515
+ getUserMediaTrack,
2322
1516
  getDeviceList,
2323
1517
  getScreenshare,
2324
- getUserMediaTrack,
2325
- meta,
2326
- monitorAudioLevel,
2327
- useBlackCanvasStreamTrack,
2328
- useDebugMode,
2329
- useInaudibleAudioStreamTrack,
2330
- useOnEditAnalytics,
2331
- useStatus,
2332
- useVideoStreamTrack
1518
+ SpeakingMonitor,
1519
+ MediaManager,
1520
+ CallManager
2333
1521
  };
2334
- //# sourceMappingURL=index.mjs.map
1522
+ //# sourceMappingURL=chunk-PZ7WTAA2.mjs.map