@dxos/plugin-thread 0.8.4-main.5ea62a8 → 0.8.4-main.72ec0f3

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 (289) hide show
  1. package/dist/lib/browser/ChannelContainer-MX5ABVGC.mjs +16 -0
  2. package/dist/lib/browser/ChatContainer-7F5Y6GXJ.mjs +15 -0
  3. package/dist/lib/browser/{app-graph-builder-FHAOPO57.mjs → app-graph-builder-HNYLII5E.mjs} +31 -32
  4. package/dist/lib/browser/app-graph-builder-HNYLII5E.mjs.map +7 -0
  5. package/dist/lib/browser/blueprint-definition-6BKYTMJS.mjs +104 -0
  6. package/dist/lib/browser/blueprint-definition-6BKYTMJS.mjs.map +7 -0
  7. package/dist/lib/browser/{call-manager-EW2QC6Q4.mjs → call-manager-MAXQLMMS.mjs} +7 -7
  8. package/dist/lib/browser/{call-manager-EW2QC6Q4.mjs.map → call-manager-MAXQLMMS.mjs.map} +1 -1
  9. package/dist/lib/browser/chunk-BBTXGRIR.mjs +18 -0
  10. package/dist/lib/browser/chunk-BBTXGRIR.mjs.map +7 -0
  11. package/dist/lib/browser/{chunk-J26C57ZY.mjs → chunk-BQWQFTWT.mjs} +165 -101
  12. package/dist/lib/browser/chunk-BQWQFTWT.mjs.map +7 -0
  13. package/dist/lib/browser/{chunk-GERVMFQW.mjs → chunk-CP7E2HRE.mjs} +2 -2
  14. package/dist/lib/browser/chunk-CP7E2HRE.mjs.map +7 -0
  15. package/dist/lib/browser/{chunk-H63NDV62.mjs → chunk-FR6MEAZI.mjs} +18 -17
  16. package/dist/lib/browser/chunk-FR6MEAZI.mjs.map +7 -0
  17. package/dist/lib/browser/{chunk-TQJYDFBU.mjs → chunk-INQVAYPN.mjs} +40 -37
  18. package/dist/lib/browser/chunk-INQVAYPN.mjs.map +7 -0
  19. package/dist/lib/browser/{chunk-KEXJGF2R.mjs → chunk-ISCHODBV.mjs} +53 -3
  20. package/dist/lib/browser/chunk-ISCHODBV.mjs.map +7 -0
  21. package/dist/lib/browser/chunk-K2DUJRFJ.mjs +27 -0
  22. package/dist/lib/browser/chunk-K2DUJRFJ.mjs.map +7 -0
  23. package/dist/lib/browser/{chunk-2P3GVRHP.mjs → chunk-KOBXMDCI.mjs} +68 -67
  24. package/dist/lib/browser/chunk-KOBXMDCI.mjs.map +7 -0
  25. package/dist/lib/browser/chunk-NMJEVD36.mjs +168 -0
  26. package/dist/lib/browser/chunk-NMJEVD36.mjs.map +7 -0
  27. package/dist/lib/browser/chunk-OOUDK7Q7.mjs +23 -0
  28. package/dist/lib/browser/chunk-OOUDK7Q7.mjs.map +7 -0
  29. package/dist/lib/browser/{chunk-TUSBPMNU.mjs → chunk-ZCW3NSDZ.mjs} +274 -374
  30. package/dist/lib/browser/chunk-ZCW3NSDZ.mjs.map +7 -0
  31. package/dist/lib/browser/index.mjs +42 -42
  32. package/dist/lib/browser/index.mjs.map +3 -3
  33. package/dist/lib/browser/{intent-resolver-IB5GYU2D.mjs → intent-resolver-BOUT4WGY.mjs} +32 -99
  34. package/dist/lib/browser/intent-resolver-BOUT4WGY.mjs.map +7 -0
  35. package/dist/lib/browser/{markdown-Z677YORA.mjs → markdown-74EUSQGV.mjs} +24 -22
  36. package/dist/lib/browser/markdown-74EUSQGV.mjs.map +7 -0
  37. package/dist/lib/browser/meta.json +1 -1
  38. package/dist/lib/browser/react-root-BVG7B2LW.mjs +28 -0
  39. package/dist/lib/browser/react-root-BVG7B2LW.mjs.map +7 -0
  40. package/dist/lib/browser/{react-surface-X2VB6P37.mjs → react-surface-BCD5ODQ6.mjs} +37 -36
  41. package/dist/lib/browser/react-surface-BCD5ODQ6.mjs.map +7 -0
  42. package/dist/lib/browser/{settings-GRKEID73.mjs → settings-LGQUZITB.mjs} +5 -5
  43. package/dist/lib/browser/{settings-GRKEID73.mjs.map → settings-LGQUZITB.mjs.map} +1 -1
  44. package/dist/lib/browser/{state-2T4KDWBX.mjs → state-36REWXO5.mjs} +5 -5
  45. package/dist/lib/browser/{state-2T4KDWBX.mjs.map → state-36REWXO5.mjs.map} +1 -1
  46. package/dist/lib/browser/types/index.mjs +7 -9
  47. package/dist/lib/node-esm/ChannelContainer-2JJJ3IDK.mjs +17 -0
  48. package/dist/lib/node-esm/{ChatContainer-4EGHKHIU.mjs → ChatContainer-C526R4DI.mjs} +6 -6
  49. package/dist/lib/node-esm/{app-graph-builder-XEYWX5FC.mjs → app-graph-builder-SOCKP4ST.mjs} +31 -32
  50. package/dist/lib/node-esm/app-graph-builder-SOCKP4ST.mjs.map +7 -0
  51. package/dist/lib/node-esm/blueprint-definition-6LEAWSC7.mjs +105 -0
  52. package/dist/lib/node-esm/blueprint-definition-6LEAWSC7.mjs.map +7 -0
  53. package/dist/lib/node-esm/{call-manager-N3KASRDQ.mjs → call-manager-LC4OS2KD.mjs} +7 -7
  54. package/dist/lib/node-esm/{call-manager-N3KASRDQ.mjs.map → call-manager-LC4OS2KD.mjs.map} +1 -1
  55. package/dist/lib/node-esm/chunk-5DLH4MWN.mjs +25 -0
  56. package/dist/lib/node-esm/chunk-5DLH4MWN.mjs.map +7 -0
  57. package/dist/lib/node-esm/{chunk-JR7KESLL.mjs → chunk-7KZWZS2U.mjs} +274 -374
  58. package/dist/lib/node-esm/chunk-7KZWZS2U.mjs.map +7 -0
  59. package/dist/lib/node-esm/{chunk-57XR3LEF.mjs → chunk-ABUFOZVX.mjs} +2 -2
  60. package/dist/lib/node-esm/chunk-ABUFOZVX.mjs.map +7 -0
  61. package/dist/lib/node-esm/{chunk-CCE5LHBE.mjs → chunk-JF7THR7F.mjs} +40 -37
  62. package/dist/lib/node-esm/chunk-JF7THR7F.mjs.map +7 -0
  63. package/dist/lib/node-esm/{chunk-NNKKNW57.mjs → chunk-JJW6YMLC.mjs} +165 -101
  64. package/dist/lib/node-esm/chunk-JJW6YMLC.mjs.map +7 -0
  65. package/dist/lib/node-esm/{chunk-CTZ75IFK.mjs → chunk-PZH2EDU5.mjs} +68 -67
  66. package/dist/lib/node-esm/chunk-PZH2EDU5.mjs.map +7 -0
  67. package/dist/lib/node-esm/chunk-TJKM5JZT.mjs +169 -0
  68. package/dist/lib/node-esm/chunk-TJKM5JZT.mjs.map +7 -0
  69. package/dist/lib/node-esm/{chunk-UHZQTPXU.mjs → chunk-TWKGDFCS.mjs} +18 -17
  70. package/dist/lib/node-esm/chunk-TWKGDFCS.mjs.map +7 -0
  71. package/dist/lib/node-esm/{chunk-S3D7DTBF.mjs → chunk-VBI32FGI.mjs} +53 -3
  72. package/dist/lib/node-esm/chunk-VBI32FGI.mjs.map +7 -0
  73. package/dist/lib/node-esm/chunk-XI45H4IV.mjs +28 -0
  74. package/dist/lib/node-esm/chunk-XI45H4IV.mjs.map +7 -0
  75. package/dist/lib/node-esm/chunk-ZQAGII7M.mjs +19 -0
  76. package/dist/lib/node-esm/chunk-ZQAGII7M.mjs.map +7 -0
  77. package/dist/lib/node-esm/index.mjs +42 -42
  78. package/dist/lib/node-esm/index.mjs.map +3 -3
  79. package/dist/lib/node-esm/{intent-resolver-VIMI5VLH.mjs → intent-resolver-45PLIFCJ.mjs} +32 -99
  80. package/dist/lib/node-esm/intent-resolver-45PLIFCJ.mjs.map +7 -0
  81. package/dist/lib/node-esm/{markdown-FL4IXLRP.mjs → markdown-566XXB55.mjs} +24 -22
  82. package/dist/lib/node-esm/markdown-566XXB55.mjs.map +7 -0
  83. package/dist/lib/node-esm/meta.json +1 -1
  84. package/dist/lib/node-esm/react-root-DCY6DKLC.mjs +29 -0
  85. package/dist/lib/node-esm/react-root-DCY6DKLC.mjs.map +7 -0
  86. package/dist/lib/node-esm/{react-surface-OLN3XNND.mjs → react-surface-WZH7OAO3.mjs} +37 -36
  87. package/dist/lib/node-esm/react-surface-WZH7OAO3.mjs.map +7 -0
  88. package/dist/lib/node-esm/{settings-F2ODVNNW.mjs → settings-WKLJSP6R.mjs} +5 -5
  89. package/dist/lib/node-esm/{settings-F2ODVNNW.mjs.map → settings-WKLJSP6R.mjs.map} +1 -1
  90. package/dist/lib/node-esm/{state-62TQKQVB.mjs → state-X3W67GTL.mjs} +5 -5
  91. package/dist/lib/node-esm/{state-62TQKQVB.mjs.map → state-X3W67GTL.mjs.map} +1 -1
  92. package/dist/lib/node-esm/types/index.mjs +7 -9
  93. package/dist/types/src/ThreadPlugin.d.ts +1 -1
  94. package/dist/types/src/ThreadPlugin.d.ts.map +1 -1
  95. package/dist/types/src/calls/media-manager.d.ts.map +1 -1
  96. package/dist/types/src/calls/types.d.ts.map +1 -1
  97. package/dist/types/src/calls/util/calls-service.d.ts +2 -0
  98. package/dist/types/src/calls/util/calls-service.d.ts.map +1 -1
  99. package/dist/types/src/calls/util/stub-media-streams.d.ts.map +1 -1
  100. package/dist/types/src/calls-service.stories.d.ts +0 -1
  101. package/dist/types/src/calls-service.stories.d.ts.map +1 -1
  102. package/dist/types/src/capabilities/app-graph-builder.d.ts.map +1 -1
  103. package/dist/types/src/capabilities/blueprint-definition.d.ts +5 -0
  104. package/dist/types/src/capabilities/blueprint-definition.d.ts.map +1 -0
  105. package/dist/types/src/capabilities/capabilities.d.ts +2 -2
  106. package/dist/types/src/capabilities/capabilities.d.ts.map +1 -1
  107. package/dist/types/src/capabilities/index.d.ts +1 -1
  108. package/dist/types/src/capabilities/index.d.ts.map +1 -1
  109. package/dist/types/src/capabilities/intent-resolver.d.ts.map +1 -1
  110. package/dist/types/src/capabilities/markdown.d.ts.map +1 -1
  111. package/dist/types/src/capabilities/react-surface.d.ts.map +1 -1
  112. package/dist/types/src/components/Call/Toolbar.d.ts +2 -2
  113. package/dist/types/src/components/Call/Toolbar.d.ts.map +1 -1
  114. package/dist/types/src/components/CallDebugPanel.d.ts +7 -0
  115. package/dist/types/src/components/CallDebugPanel.d.ts.map +1 -1
  116. package/dist/types/src/components/ChannelContainer.d.ts +2 -2
  117. package/dist/types/src/components/ChannelContainer.d.ts.map +1 -1
  118. package/dist/types/src/components/ChannelContainer.stories.d.ts +75 -9
  119. package/dist/types/src/components/ChannelContainer.stories.d.ts.map +1 -1
  120. package/dist/types/src/components/Chat.stories.d.ts +75 -7
  121. package/dist/types/src/components/Chat.stories.d.ts.map +1 -1
  122. package/dist/types/src/components/ChatContainer.d.ts +6 -5
  123. package/dist/types/src/components/ChatContainer.d.ts.map +1 -1
  124. package/dist/types/src/components/Comments.stories.d.ts +4 -3
  125. package/dist/types/src/components/Comments.stories.d.ts.map +1 -1
  126. package/dist/types/src/components/CommentsContainer.d.ts +2 -2
  127. package/dist/types/src/components/CommentsContainer.d.ts.map +1 -1
  128. package/dist/types/src/components/CommentsThreadContainer.d.ts +8 -8
  129. package/dist/types/src/components/CommentsThreadContainer.d.ts.map +1 -1
  130. package/dist/types/src/components/Media/VideoObject.d.ts +2 -2
  131. package/dist/types/src/components/Media/VideoObject.d.ts.map +1 -1
  132. package/dist/types/src/components/Media/VideoObject.stories.d.ts +5 -3
  133. package/dist/types/src/components/Media/VideoObject.stories.d.ts.map +1 -1
  134. package/dist/types/src/components/MessageContainer.d.ts +2 -2
  135. package/dist/types/src/components/MessageContainer.d.ts.map +1 -1
  136. package/dist/types/src/components/ResponsiveGrid/ResponsiveContainer.stories.d.ts +5 -3
  137. package/dist/types/src/components/ResponsiveGrid/ResponsiveContainer.stories.d.ts.map +1 -1
  138. package/dist/types/src/components/ResponsiveGrid/ResponsiveGrid.stories.d.ts +5 -3
  139. package/dist/types/src/components/ResponsiveGrid/ResponsiveGrid.stories.d.ts.map +1 -1
  140. package/dist/types/src/components/ResponsiveGrid/ResponsiveGridItem.d.ts.map +1 -1
  141. package/dist/types/src/components/ThreadCompanion.d.ts +5 -0
  142. package/dist/types/src/components/ThreadCompanion.d.ts.map +1 -0
  143. package/dist/types/src/components/ThreadSettings.d.ts +1 -1
  144. package/dist/types/src/components/ThreadSettings.d.ts.map +1 -1
  145. package/dist/types/src/components/index.d.ts +3 -3
  146. package/dist/types/src/components/index.d.ts.map +1 -1
  147. package/dist/types/src/components/testing.d.ts +3 -3
  148. package/dist/types/src/components/testing.d.ts.map +1 -1
  149. package/dist/types/src/extensions/threads.d.ts.map +1 -1
  150. package/dist/types/src/functions/create-proposals.d.ts +6 -0
  151. package/dist/types/src/functions/create-proposals.d.ts.map +1 -0
  152. package/dist/types/src/functions/index.d.ts +2 -0
  153. package/dist/types/src/functions/index.d.ts.map +1 -0
  154. package/dist/types/src/hooks/analytics.d.ts +2 -2
  155. package/dist/types/src/hooks/analytics.d.ts.map +1 -1
  156. package/dist/types/src/hooks/index.d.ts +2 -2
  157. package/dist/types/src/hooks/index.d.ts.map +1 -1
  158. package/dist/types/src/hooks/useVideoStreamTrack.d.ts +1 -1
  159. package/dist/types/src/hooks/useVideoStreamTrack.d.ts.map +1 -1
  160. package/dist/types/src/meta.d.ts +1 -2
  161. package/dist/types/src/meta.d.ts.map +1 -1
  162. package/dist/types/src/testing/stories.d.ts.map +1 -1
  163. package/dist/types/src/translations.d.ts +74 -7
  164. package/dist/types/src/translations.d.ts.map +1 -1
  165. package/dist/types/src/types/Channel.d.ts +16 -0
  166. package/dist/types/src/types/Channel.d.ts.map +1 -0
  167. package/dist/types/src/types/{schema.d.ts → Thread.d.ts} +18 -28
  168. package/dist/types/src/types/Thread.d.ts.map +1 -0
  169. package/dist/types/src/types/index.d.ts +2 -1
  170. package/dist/types/src/types/index.d.ts.map +1 -1
  171. package/dist/types/src/types/types.d.ts +31 -117
  172. package/dist/types/src/types/types.d.ts.map +1 -1
  173. package/dist/types/tsconfig.tsbuildinfo +1 -1
  174. package/package.json +64 -60
  175. package/src/ThreadPlugin.tsx +139 -132
  176. package/src/calls/call-manager.ts +1 -1
  177. package/src/calls/media-manager.ts +11 -7
  178. package/src/calls/types.ts +7 -3
  179. package/src/calls/util/calls-service.ts +12 -7
  180. package/src/calls/util/stub-media-streams.ts +61 -3
  181. package/src/calls-service.stories.tsx +2 -5
  182. package/src/capabilities/app-graph-builder.ts +41 -30
  183. package/src/capabilities/blueprint-definition.ts +38 -0
  184. package/src/capabilities/capabilities.ts +7 -7
  185. package/src/capabilities/index.ts +1 -1
  186. package/src/capabilities/intent-resolver.ts +22 -60
  187. package/src/capabilities/markdown.ts +5 -3
  188. package/src/capabilities/react-root.tsx +2 -2
  189. package/src/capabilities/react-surface.tsx +24 -23
  190. package/src/components/Call/Call.tsx +1 -1
  191. package/src/components/Call/Toolbar.tsx +9 -9
  192. package/src/components/CallDebugPanel.tsx +112 -55
  193. package/src/components/CallSidebar.tsx +1 -1
  194. package/src/components/ChannelContainer.stories.tsx +10 -10
  195. package/src/components/ChannelContainer.tsx +19 -15
  196. package/src/components/Chat.stories.tsx +14 -19
  197. package/src/components/ChatContainer.tsx +30 -21
  198. package/src/components/Comments.stories.tsx +12 -17
  199. package/src/components/CommentsContainer.tsx +6 -7
  200. package/src/components/CommentsThreadContainer.tsx +32 -27
  201. package/src/components/Lobby/Lobby.tsx +1 -1
  202. package/src/components/Media/VideoObject.stories.tsx +12 -7
  203. package/src/components/Media/VideoObject.tsx +1 -1
  204. package/src/components/MessageContainer.tsx +6 -6
  205. package/src/components/Participant/Participant.tsx +1 -1
  206. package/src/components/ResponsiveGrid/ResponsiveContainer.stories.tsx +3 -4
  207. package/src/components/ResponsiveGrid/ResponsiveContainer.tsx +2 -2
  208. package/src/components/ResponsiveGrid/ResponsiveGrid.stories.tsx +4 -5
  209. package/src/components/ResponsiveGrid/ResponsiveGrid.tsx +5 -5
  210. package/src/components/ResponsiveGrid/ResponsiveGridItem.tsx +5 -2
  211. package/src/components/{ThreadComplementary.tsx → ThreadCompanion.tsx} +41 -34
  212. package/src/components/ThreadSettings.tsx +4 -5
  213. package/src/components/index.ts +4 -4
  214. package/src/components/testing.ts +8 -8
  215. package/src/extensions/threads.ts +25 -16
  216. package/src/functions/create-proposals.ts +58 -0
  217. package/src/functions/index.ts +5 -0
  218. package/src/hooks/analytics.ts +4 -7
  219. package/src/hooks/index.ts +3 -2
  220. package/src/hooks/useVideoStreamTrack.tsx +1 -1
  221. package/src/meta.ts +9 -5
  222. package/src/testing/stories.ts +3 -6
  223. package/src/translations.ts +6 -4
  224. package/src/types/Channel.ts +27 -0
  225. package/src/types/Thread.ts +26 -0
  226. package/src/types/index.ts +2 -1
  227. package/src/types/types.ts +19 -27
  228. package/src/typings/peermetrics-webrtc-stats.d.ts +17 -1
  229. package/src/util.ts +1 -1
  230. package/dist/lib/browser/ChannelContainer-GHDNEZT2.mjs +0 -16
  231. package/dist/lib/browser/ChatContainer-42ALOWUA.mjs +0 -15
  232. package/dist/lib/browser/app-graph-builder-FHAOPO57.mjs.map +0 -7
  233. package/dist/lib/browser/chunk-2I277V52.mjs +0 -23
  234. package/dist/lib/browser/chunk-2I277V52.mjs.map +0 -7
  235. package/dist/lib/browser/chunk-2P3GVRHP.mjs.map +0 -7
  236. package/dist/lib/browser/chunk-4APCDRSH.mjs +0 -18
  237. package/dist/lib/browser/chunk-4APCDRSH.mjs.map +0 -7
  238. package/dist/lib/browser/chunk-EV4JWI7L.mjs +0 -17
  239. package/dist/lib/browser/chunk-EV4JWI7L.mjs.map +0 -7
  240. package/dist/lib/browser/chunk-GERVMFQW.mjs.map +0 -7
  241. package/dist/lib/browser/chunk-H63NDV62.mjs.map +0 -7
  242. package/dist/lib/browser/chunk-J26C57ZY.mjs.map +0 -7
  243. package/dist/lib/browser/chunk-KEXJGF2R.mjs.map +0 -7
  244. package/dist/lib/browser/chunk-KTWYVC5X.mjs +0 -147
  245. package/dist/lib/browser/chunk-KTWYVC5X.mjs.map +0 -7
  246. package/dist/lib/browser/chunk-TQJYDFBU.mjs.map +0 -7
  247. package/dist/lib/browser/chunk-TUSBPMNU.mjs.map +0 -7
  248. package/dist/lib/browser/intent-resolver-IB5GYU2D.mjs.map +0 -7
  249. package/dist/lib/browser/markdown-Z677YORA.mjs.map +0 -7
  250. package/dist/lib/browser/react-root-PTTTW2MO.mjs +0 -28
  251. package/dist/lib/browser/react-root-PTTTW2MO.mjs.map +0 -7
  252. package/dist/lib/browser/react-surface-X2VB6P37.mjs.map +0 -7
  253. package/dist/lib/browser/toolkit-KUPIIFC6.mjs +0 -80
  254. package/dist/lib/browser/toolkit-KUPIIFC6.mjs.map +0 -7
  255. package/dist/lib/node-esm/ChannelContainer-D5E2S6AI.mjs +0 -17
  256. package/dist/lib/node-esm/app-graph-builder-XEYWX5FC.mjs.map +0 -7
  257. package/dist/lib/node-esm/chunk-57XR3LEF.mjs.map +0 -7
  258. package/dist/lib/node-esm/chunk-CCE5LHBE.mjs.map +0 -7
  259. package/dist/lib/node-esm/chunk-CTZ75IFK.mjs.map +0 -7
  260. package/dist/lib/node-esm/chunk-GRLRWTRU.mjs +0 -19
  261. package/dist/lib/node-esm/chunk-GRLRWTRU.mjs.map +0 -7
  262. package/dist/lib/node-esm/chunk-JR7KESLL.mjs.map +0 -7
  263. package/dist/lib/node-esm/chunk-NNKKNW57.mjs.map +0 -7
  264. package/dist/lib/node-esm/chunk-P6E247RF.mjs +0 -148
  265. package/dist/lib/node-esm/chunk-P6E247RF.mjs.map +0 -7
  266. package/dist/lib/node-esm/chunk-PYTVBN5J.mjs +0 -19
  267. package/dist/lib/node-esm/chunk-PYTVBN5J.mjs.map +0 -7
  268. package/dist/lib/node-esm/chunk-S3D7DTBF.mjs.map +0 -7
  269. package/dist/lib/node-esm/chunk-UHZQTPXU.mjs.map +0 -7
  270. package/dist/lib/node-esm/chunk-UJ2QNRLS.mjs +0 -25
  271. package/dist/lib/node-esm/chunk-UJ2QNRLS.mjs.map +0 -7
  272. package/dist/lib/node-esm/intent-resolver-VIMI5VLH.mjs.map +0 -7
  273. package/dist/lib/node-esm/markdown-FL4IXLRP.mjs.map +0 -7
  274. package/dist/lib/node-esm/react-root-2HHRRUME.mjs +0 -29
  275. package/dist/lib/node-esm/react-root-2HHRRUME.mjs.map +0 -7
  276. package/dist/lib/node-esm/react-surface-OLN3XNND.mjs.map +0 -7
  277. package/dist/lib/node-esm/toolkit-KZIS7G36.mjs +0 -81
  278. package/dist/lib/node-esm/toolkit-KZIS7G36.mjs.map +0 -7
  279. package/dist/types/src/capabilities/toolkit.d.ts +0 -5
  280. package/dist/types/src/capabilities/toolkit.d.ts.map +0 -1
  281. package/dist/types/src/components/ThreadComplementary.d.ts +0 -5
  282. package/dist/types/src/components/ThreadComplementary.d.ts.map +0 -1
  283. package/dist/types/src/types/schema.d.ts.map +0 -1
  284. package/src/capabilities/toolkit.ts +0 -78
  285. package/src/types/schema.ts +0 -33
  286. /package/dist/lib/browser/{ChannelContainer-GHDNEZT2.mjs.map → ChannelContainer-MX5ABVGC.mjs.map} +0 -0
  287. /package/dist/lib/browser/{ChatContainer-42ALOWUA.mjs.map → ChatContainer-7F5Y6GXJ.mjs.map} +0 -0
  288. /package/dist/lib/node-esm/{ChannelContainer-D5E2S6AI.mjs.map → ChannelContainer-2JJJ3IDK.mjs.map} +0 -0
  289. /package/dist/lib/node-esm/{ChatContainer-4EGHKHIU.mjs.map → ChatContainer-C526R4DI.mjs.map} +0 -0
@@ -2,11 +2,13 @@ import { createRequire } from 'node:module';const require = createRequire(import
2
2
  import {
3
3
  createBlackCanvasStreamTrack,
4
4
  createInaudibleAudioStreamTrack
5
- } from "./chunk-S3D7DTBF.mjs";
5
+ } from "./chunk-VBI32FGI.mjs";
6
6
 
7
7
  // src/calls/types.ts
8
+ import { invariant } from "@dxos/invariant";
8
9
  import { buf } from "@dxos/protocols/buf";
9
10
  import { UserStateSchema } from "@dxos/protocols/buf/dxos/edge/calls_pb";
11
+ var __dxlog_file = "/__w/dxos/dxos/packages/plugins/plugin-thread/src/calls/types.ts";
10
12
  var CALLS_URL = "https://calls-service.dxos.workers.dev";
11
13
  var codec = {
12
14
  encode: (message) => {
@@ -18,14 +20,42 @@ var codec = {
18
20
  };
19
21
  var TrackNameCodec = {
20
22
  encode: (trackData) => {
21
- return trackData.sessionId + "/" + trackData.trackName;
23
+ invariant(trackData.sessionId, void 0, {
24
+ F: __dxlog_file,
25
+ L: 65,
26
+ S: void 0,
27
+ A: [
28
+ "trackData.sessionId",
29
+ ""
30
+ ]
31
+ });
32
+ invariant(trackData.trackName, void 0, {
33
+ F: __dxlog_file,
34
+ L: 66,
35
+ S: void 0,
36
+ A: [
37
+ "trackData.trackName",
38
+ ""
39
+ ]
40
+ });
41
+ invariant(trackData.mid, void 0, {
42
+ F: __dxlog_file,
43
+ L: 67,
44
+ S: void 0,
45
+ A: [
46
+ "trackData.mid",
47
+ ""
48
+ ]
49
+ });
50
+ return trackData.sessionId + "/" + trackData.trackName + "/" + trackData.mid;
22
51
  },
23
52
  decode: (name) => {
24
- const [sessionId, trackName] = name.split("/");
53
+ const [sessionId, trackName, mid] = name.split("/");
25
54
  return {
26
55
  sessionId,
27
56
  trackName,
28
- location: "remote"
57
+ location: "remote",
58
+ mid
29
59
  };
30
60
  }
31
61
  };
@@ -35,35 +65,38 @@ import md5Hex from "md5-hex";
35
65
  import { DeferredTask, Event, scheduleTaskInterval, synchronized } from "@dxos/async";
36
66
  import { Context, Resource } from "@dxos/context";
37
67
  import { generateName } from "@dxos/display-name";
38
- import { invariant } from "@dxos/invariant";
68
+ import { invariant as invariant2 } from "@dxos/invariant";
39
69
  import { PublicKey } from "@dxos/keys";
40
70
  import { log } from "@dxos/log";
41
71
  import { buf as buf2 } from "@dxos/protocols/buf";
42
72
  import { ActivitySchema } from "@dxos/protocols/buf/dxos/edge/calls_pb";
43
73
  import { ConnectionState } from "@dxos/protocols/proto/dxos/edge/messenger";
44
74
  import { isNonNullable } from "@dxos/util";
45
- function _define_property(obj, key, value) {
46
- if (key in obj) {
47
- Object.defineProperty(obj, key, {
48
- value,
49
- enumerable: true,
50
- configurable: true,
51
- writable: true
52
- });
53
- } else {
54
- obj[key] = value;
55
- }
56
- return obj;
57
- }
58
75
  function _ts_decorate(decorators, target, key, desc) {
59
76
  var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
60
77
  if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
61
78
  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;
62
79
  return c > 3 && r && Object.defineProperty(target, key, r), r;
63
80
  }
64
- var __dxlog_file = "/__w/dxos/dxos/packages/plugins/plugin-thread/src/calls/call-swarm-synchronizer.ts";
81
+ var __dxlog_file2 = "/__w/dxos/dxos/packages/plugins/plugin-thread/src/calls/call-swarm-synchronizer.ts";
65
82
  var DISCONNECTED_ABRUPT_TIMEOUT = 1e4;
66
83
  var CallSwarmSynchronizer = class extends Resource {
84
+ stateUpdated = new Event();
85
+ _state = {
86
+ activities: {}
87
+ };
88
+ _networkService;
89
+ _lastSwarmEvent = void 0;
90
+ _reconcileSwarmStateTask = void 0;
91
+ _identityKey = void 0;
92
+ _deviceKey = void 0;
93
+ _displayName = void 0;
94
+ _swarmCtx = void 0;
95
+ _sendStateTask = void 0;
96
+ constructor({ networkService }) {
97
+ super();
98
+ this._networkService = networkService;
99
+ }
67
100
  /**
68
101
  * @internal
69
102
  */
@@ -129,7 +162,7 @@ var CallSwarmSynchronizer = class extends Resource {
129
162
  log.verbose("joined to a different room", {
130
163
  roomId
131
164
  }, {
132
- F: __dxlog_file,
165
+ F: __dxlog_file2,
133
166
  L: 152,
134
167
  S: this,
135
168
  C: (f, a) => f(...a)
@@ -151,8 +184,8 @@ var CallSwarmSynchronizer = class extends Resource {
151
184
  this._reconcileSwarmStateTask = void 0;
152
185
  }
153
186
  async join() {
154
- invariant(this._state.roomId, void 0, {
155
- F: __dxlog_file,
187
+ invariant2(this._state.roomId, void 0, {
188
+ F: __dxlog_file2,
156
189
  L: 176,
157
190
  S: this,
158
191
  A: [
@@ -160,8 +193,8 @@ var CallSwarmSynchronizer = class extends Resource {
160
193
  ""
161
194
  ]
162
195
  });
163
- invariant(!this._swarmCtx, "Already joined", {
164
- F: __dxlog_file,
196
+ invariant2(!this._swarmCtx, "Already joined", {
197
+ F: __dxlog_file2,
165
198
  L: 177,
166
199
  S: this,
167
200
  A: [
@@ -170,7 +203,7 @@ var CallSwarmSynchronizer = class extends Resource {
170
203
  ]
171
204
  });
172
205
  this._swarmCtx = new Context(void 0, {
173
- F: __dxlog_file,
206
+ F: __dxlog_file2,
174
207
  L: 179
175
208
  });
176
209
  const topic = getTopic(this._state.roomId);
@@ -181,7 +214,7 @@ var CallSwarmSynchronizer = class extends Resource {
181
214
  peerKey: this._deviceKey
182
215
  }
183
216
  }, {
184
- F: __dxlog_file,
217
+ F: __dxlog_file2,
185
218
  L: 181,
186
219
  S: this,
187
220
  C: (f, a) => f(...a)
@@ -200,7 +233,7 @@ var CallSwarmSynchronizer = class extends Resource {
200
233
  peerKey: this._deviceKey
201
234
  }
202
235
  }, {
203
- F: __dxlog_file,
236
+ F: __dxlog_file2,
204
237
  L: 188,
205
238
  S: this,
206
239
  C: (f, a) => f(...a)
@@ -212,7 +245,7 @@ var CallSwarmSynchronizer = class extends Resource {
212
245
  peerKey: this._deviceKey
213
246
  }
214
247
  }).catch((err) => log.catch(err, void 0, {
215
- F: __dxlog_file,
248
+ F: __dxlog_file2,
216
249
  L: 194,
217
250
  S: this,
218
251
  C: (f, a) => f(...a)
@@ -280,8 +313,8 @@ var CallSwarmSynchronizer = class extends Resource {
280
313
  }
281
314
  async _reconcileSwarmState() {
282
315
  const swarmEvent = this._lastSwarmEvent;
283
- invariant(swarmEvent, void 0, {
284
- F: __dxlog_file,
316
+ invariant2(swarmEvent, void 0, {
317
+ F: __dxlog_file2,
285
318
  L: 273,
286
319
  S: this,
287
320
  A: [
@@ -301,7 +334,7 @@ var CallSwarmSynchronizer = class extends Resource {
301
334
  error,
302
335
  peer
303
336
  }, {
304
- F: __dxlog_file,
337
+ F: __dxlog_file2,
305
338
  L: 290,
306
339
  S: this,
307
340
  C: (f, a) => f(...a)
@@ -314,7 +347,7 @@ var CallSwarmSynchronizer = class extends Resource {
314
347
  log("reconciling swarm state", {
315
348
  users
316
349
  }, {
317
- F: __dxlog_file,
350
+ F: __dxlog_file2,
318
351
  L: 297,
319
352
  S: this,
320
353
  C: (f, a) => f(...a)
@@ -337,12 +370,6 @@ var CallSwarmSynchronizer = class extends Resource {
337
370
  scheduleTaskInterval(this._ctx, async () => this._reconcileSwarmStateTask.schedule(), Math.min(DISCONNECTED_ABRUPT_TIMEOUT / 2, 1e3));
338
371
  }
339
372
  }
340
- constructor({ networkService }) {
341
- super(), _define_property(this, "stateUpdated", new Event()), _define_property(this, "_state", {
342
- activities: {}
343
- }), _define_property(this, "_networkService", void 0), _define_property(this, "_lastSwarmEvent", void 0), _define_property(this, "_reconcileSwarmStateTask", void 0), _define_property(this, "_identityKey", void 0), _define_property(this, "_deviceKey", void 0), _define_property(this, "_displayName", void 0), _define_property(this, "_swarmCtx", void 0), _define_property(this, "_sendStateTask", void 0);
344
- this._networkService = networkService;
345
- }
346
373
  };
347
374
  _ts_decorate([
348
375
  synchronized
@@ -410,24 +437,17 @@ var monitorAudioLevel = ({ mediaStreamTrack, intervalMs = 1e3 / 10, onMeasure })
410
437
  // src/calls/util/calls-service.ts
411
438
  import { PersistentLifecycle, Trigger, scheduleTask } from "@dxos/async";
412
439
  import { Resource as Resource2 } from "@dxos/context";
413
- import { invariant as invariant2 } from "@dxos/invariant";
440
+ import { invariant as invariant3 } from "@dxos/invariant";
414
441
  import { log as log2 } from "@dxos/log";
415
442
 
416
443
  // src/calls/util/history-cache.ts
417
- function _define_property2(obj, key, value) {
418
- if (key in obj) {
419
- Object.defineProperty(obj, key, {
420
- value,
421
- enumerable: true,
422
- configurable: true,
423
- writable: true
424
- });
425
- } else {
426
- obj[key] = value;
427
- }
428
- return obj;
429
- }
430
444
  var HistoryCache = class {
445
+ _limit;
446
+ _messages;
447
+ constructor(limit = 100) {
448
+ this._limit = limit;
449
+ this._messages = [];
450
+ }
431
451
  push(...messages) {
432
452
  if (this._messages.length >= this._limit) {
433
453
  this._messages.shift();
@@ -437,98 +457,53 @@ var HistoryCache = class {
437
457
  get() {
438
458
  return this._messages;
439
459
  }
440
- constructor(limit = 100) {
441
- _define_property2(this, "_limit", void 0);
442
- _define_property2(this, "_messages", void 0);
443
- this._limit = limit;
444
- this._messages = [];
445
- }
446
460
  };
447
461
 
448
462
  // src/calls/util/task-scheduling.ts
449
- function _check_private_redeclaration(obj, privateCollection) {
450
- if (privateCollection.has(obj)) {
451
- throw new TypeError("Cannot initialize the same private elements twice on an object");
452
- }
453
- }
454
- function _class_apply_descriptor_get(receiver, descriptor) {
455
- if (descriptor.get) {
456
- return descriptor.get.call(receiver);
457
- }
458
- return descriptor.value;
459
- }
460
- function _class_apply_descriptor_set(receiver, descriptor, value) {
461
- if (descriptor.set) {
462
- descriptor.set.call(receiver, value);
463
- } else {
464
- if (!descriptor.writable) {
465
- throw new TypeError("attempted to set read only private field");
466
- }
467
- descriptor.value = value;
468
- }
469
- }
470
- function _class_extract_field_descriptor(receiver, privateMap, action) {
471
- if (!privateMap.has(receiver)) {
472
- throw new TypeError("attempted to " + action + " private field on non-instance");
473
- }
474
- return privateMap.get(receiver);
475
- }
476
- function _class_private_field_get(receiver, privateMap) {
477
- var descriptor = _class_extract_field_descriptor(receiver, privateMap, "get");
478
- return _class_apply_descriptor_get(receiver, descriptor);
479
- }
480
- function _class_private_field_init(obj, privateMap, value) {
481
- _check_private_redeclaration(obj, privateMap);
482
- privateMap.set(obj, value);
483
- }
484
- function _class_private_field_set(receiver, privateMap, value) {
485
- var descriptor = _class_extract_field_descriptor(receiver, privateMap, "set");
486
- _class_apply_descriptor_set(receiver, descriptor, value);
487
- return value;
488
- }
489
463
  var DefaultBatchSizeLimit = 64;
490
- var _schedulerChain = /* @__PURE__ */ new WeakMap();
491
464
  var FIFOScheduler = class {
465
+ #schedulerChain;
466
+ constructor() {
467
+ this.#schedulerChain = Promise.resolve();
468
+ }
492
469
  schedule(task) {
493
470
  return new Promise((resolve, reject) => {
494
- _class_private_field_set(this, _schedulerChain, _class_private_field_get(this, _schedulerChain).then(async () => {
471
+ this.#schedulerChain = this.#schedulerChain.then(async () => {
495
472
  try {
496
473
  resolve(await task());
497
474
  } catch (error) {
498
475
  reject(error);
499
476
  }
500
- }));
501
- });
502
- }
503
- constructor() {
504
- _class_private_field_init(this, _schedulerChain, {
505
- writable: true,
506
- value: void 0
477
+ });
507
478
  });
508
- _class_private_field_set(this, _schedulerChain, Promise.resolve());
509
479
  }
510
480
  };
511
- var _currentBatch = /* @__PURE__ */ new WeakMap();
512
- var _currentBulkResponse = /* @__PURE__ */ new WeakMap();
513
- var _batchSizeLimit = /* @__PURE__ */ new WeakMap();
514
481
  var BulkRequestDispatcher = class {
482
+ #currentBatch;
483
+ #currentBulkResponse;
484
+ #batchSizeLimit;
485
+ constructor(batchSizeLimit = DefaultBatchSizeLimit) {
486
+ this.#currentBatch = [];
487
+ this.#currentBulkResponse = null;
488
+ this.#batchSizeLimit = batchSizeLimit;
489
+ }
515
490
  /**
516
491
  * Returns a bulk response promise.
517
492
  * At the event loop iteration end, the accumulated entries will be dispatched as a bulk request.
518
493
  */
519
494
  doBulkRequest(params, bulkRequestFunc) {
520
- if (_class_private_field_get(this, _currentBatch).length >= _class_private_field_get(this, _batchSizeLimit)) {
521
- _class_private_field_set(this, _currentBatch, []);
522
- _class_private_field_set(this, _currentBulkResponse, null);
495
+ if (this.#currentBatch.length >= this.#batchSizeLimit) {
496
+ this.#currentBatch = [];
497
+ this.#currentBulkResponse = null;
523
498
  }
524
- _class_private_field_get(this, _currentBatch).push(params);
525
- if (_class_private_field_get(this, _currentBulkResponse) != null) {
526
- return _class_private_field_get(this, _currentBulkResponse);
499
+ this.#currentBatch.push(params);
500
+ if (this.#currentBulkResponse != null) {
501
+ return this.#currentBulkResponse;
527
502
  }
528
- const batch = _class_private_field_get(this, _currentBatch);
529
- _class_private_field_set(this, _currentBulkResponse, new Promise((resolve, reject) => {
503
+ const batch = this.#currentBatch;
504
+ this.#currentBulkResponse = new Promise((resolve, reject) => {
530
505
  setTimeout(() => {
531
- _class_private_field_set(this, _currentBulkResponse, null);
506
+ this.#currentBulkResponse = null;
532
507
  const batchCopy = batch.splice(0, batch.length);
533
508
  bulkRequestFunc(batchCopy).then((result) => {
534
509
  resolve(result);
@@ -536,45 +511,29 @@ var BulkRequestDispatcher = class {
536
511
  reject(err);
537
512
  });
538
513
  }, 0);
539
- }));
540
- return _class_private_field_get(this, _currentBulkResponse);
541
- }
542
- constructor(batchSizeLimit = DefaultBatchSizeLimit) {
543
- _class_private_field_init(this, _currentBatch, {
544
- writable: true,
545
- value: void 0
546
514
  });
547
- _class_private_field_init(this, _currentBulkResponse, {
548
- writable: true,
549
- value: void 0
550
- });
551
- _class_private_field_init(this, _batchSizeLimit, {
552
- writable: true,
553
- value: void 0
554
- });
555
- _class_private_field_set(this, _currentBatch, []);
556
- _class_private_field_set(this, _currentBulkResponse, null);
557
- _class_private_field_set(this, _batchSizeLimit, batchSizeLimit);
515
+ return this.#currentBulkResponse;
558
516
  }
559
517
  };
560
518
 
561
519
  // src/calls/util/calls-service.ts
562
- function _define_property3(obj, key, value) {
563
- if (key in obj) {
564
- Object.defineProperty(obj, key, {
565
- value,
566
- enumerable: true,
567
- configurable: true,
568
- writable: true
569
- });
570
- } else {
571
- obj[key] = value;
572
- }
573
- return obj;
574
- }
575
- var __dxlog_file2 = "/__w/dxos/dxos/packages/plugins/plugin-thread/src/calls/util/calls-service.ts";
520
+ var __dxlog_file3 = "/__w/dxos/dxos/packages/plugins/plugin-thread/src/calls/util/calls-service.ts";
576
521
  var NETWORK_TIMEOUT = 5e3;
577
522
  var CallsServicePeer = class extends Resource2 {
523
+ history = new HistoryCache(100);
524
+ _persistentLifecycle = new PersistentLifecycle({
525
+ start: () => this._startSession(),
526
+ stop: (session) => this._stopSession(session)
527
+ });
528
+ _config;
529
+ taskScheduler = new FIFOScheduler();
530
+ pushTrackDispatcher = new BulkRequestDispatcher(32);
531
+ pullTrackDispatcher = new BulkRequestDispatcher(32);
532
+ closeTrackDispatcher = new BulkRequestDispatcher(32);
533
+ constructor(config) {
534
+ super();
535
+ this._config = config;
536
+ }
578
537
  async _open(ctx) {
579
538
  await this._persistentLifecycle.open(ctx);
580
539
  }
@@ -602,11 +561,11 @@ var CallsServicePeer = class extends Resource2 {
602
561
  });
603
562
  peerConnection.addEventListener("connectionstatechange", () => {
604
563
  if (peerConnection.connectionState === "failed" || peerConnection.connectionState === "closed") {
605
- log2.warn("calls connection failed", {
564
+ log2.info("calls connection failed", {
606
565
  state: peerConnection.connectionState
607
566
  }, {
608
- F: __dxlog_file2,
609
- L: 119,
567
+ F: __dxlog_file3,
568
+ L: 121,
610
569
  S: this,
611
570
  C: (f, a) => f(...a)
612
571
  });
@@ -617,11 +576,11 @@ var CallsServicePeer = class extends Resource2 {
617
576
  peerConnection.addEventListener("iceconnectionstatechange", () => {
618
577
  clearTimeout(iceTimeout);
619
578
  if (peerConnection.iceConnectionState === "failed" || peerConnection.iceConnectionState === "closed") {
620
- log2.warn("calls connection to ICEs failed", {
579
+ log2.info("calls connection to ICEs failed", {
621
580
  state: peerConnection.iceConnectionState
622
581
  }, {
623
- F: __dxlog_file2,
624
- L: 128,
582
+ F: __dxlog_file3,
583
+ L: 130,
625
584
  S: this,
626
585
  C: (f, a) => f(...a)
627
586
  });
@@ -631,19 +590,19 @@ var CallsServicePeer = class extends Resource2 {
631
590
  iceTimeout = window.setTimeout(() => {
632
591
  if (peerConnection.iceConnectionState === "connected") {
633
592
  log2.info("calls iceConnectionState is connected", void 0, {
634
- F: __dxlog_file2,
635
- L: 137,
593
+ F: __dxlog_file3,
594
+ L: 139,
636
595
  S: this,
637
596
  C: (f, a) => f(...a)
638
597
  });
639
598
  return;
640
599
  }
641
- log2.warn("calls iceConnectionState timed out", {
600
+ log2.info("calls iceConnectionState timed out", {
642
601
  state: peerConnection.iceConnectionState,
643
602
  timeoutSeconds
644
603
  }, {
645
- F: __dxlog_file2,
646
- L: 141,
604
+ F: __dxlog_file3,
605
+ L: 143,
647
606
  S: this,
648
607
  C: (f, a) => f(...a)
649
608
  });
@@ -655,8 +614,8 @@ var CallsServicePeer = class extends Resource2 {
655
614
  }
656
615
  async _initiateCallSession() {
657
616
  log2("creating new session", void 0, {
658
- F: __dxlog_file2,
659
- L: 151,
617
+ F: __dxlog_file3,
618
+ L: 153,
660
619
  S: this,
661
620
  C: (f, a) => f(...a)
662
621
  });
@@ -667,6 +626,7 @@ var CallsServicePeer = class extends Resource2 {
667
626
  }
668
627
  async _fetch(relativePath, requestInit) {
669
628
  this.history.push({
629
+ endpoint: relativePath,
670
630
  type: "request",
671
631
  time: (/* @__PURE__ */ new Date()).toISOString(),
672
632
  method: requestInit?.method ?? "GET",
@@ -681,8 +641,8 @@ var CallsServicePeer = class extends Resource2 {
681
641
  status: response.status,
682
642
  text: await response.text()
683
643
  }, {
684
- F: __dxlog_file2,
685
- L: 166,
644
+ F: __dxlog_file3,
645
+ L: 169,
686
646
  S: this,
687
647
  C: (f, a) => f(...a)
688
648
  });
@@ -691,6 +651,7 @@ var CallsServicePeer = class extends Resource2 {
691
651
  try {
692
652
  const data = await response.clone().json();
693
653
  this.history.push({
654
+ endpoint: relativePath,
694
655
  type: "response",
695
656
  time: (/* @__PURE__ */ new Date()).toISOString(),
696
657
  status: response.status,
@@ -703,6 +664,7 @@ var CallsServicePeer = class extends Resource2 {
703
664
  } catch (error) {
704
665
  const text = await response.text();
705
666
  this.history.push({
667
+ endpoint: relativePath,
706
668
  type: "response",
707
669
  time: (/* @__PURE__ */ new Date()).toISOString(),
708
670
  status: response.status,
@@ -713,8 +675,8 @@ var CallsServicePeer = class extends Resource2 {
713
675
  text,
714
676
  status: response.status
715
677
  }, {
716
- F: __dxlog_file2,
717
- L: 191,
678
+ F: __dxlog_file3,
679
+ L: 196,
718
680
  S: this,
719
681
  C: (f, a) => f(...a)
720
682
  });
@@ -723,8 +685,8 @@ var CallsServicePeer = class extends Resource2 {
723
685
  }
724
686
  async _pushTrackInBulk({ ctx, peerConnection, transceiver, sessionId, trackName }) {
725
687
  log2.verbose("pushing track ", trackName, {
726
- F: __dxlog_file2,
727
- L: 213,
688
+ F: __dxlog_file3,
689
+ L: 218,
728
690
  S: this,
729
691
  C: (f, a) => f(...a)
730
692
  });
@@ -749,9 +711,9 @@ var CallsServicePeer = class extends Resource2 {
749
711
  }))
750
712
  })
751
713
  });
752
- invariant2(response.tracks !== void 0, void 0, {
753
- F: __dxlog_file2,
754
- L: 238,
714
+ invariant3(response.tracks !== void 0, void 0, {
715
+ F: __dxlog_file3,
716
+ L: 243,
755
717
  S: this,
756
718
  A: [
757
719
  "response.tracks !== undefined",
@@ -768,7 +730,6 @@ var CallsServicePeer = class extends Resource2 {
768
730
  })).then(async ({ tracks }) => {
769
731
  const trackData = tracks.find((t) => t.mid === transceiver.mid);
770
732
  if (trackData) {
771
- await waitForTransceiverToSendData(ctx, transceiver);
772
733
  return {
773
734
  ...trackData,
774
735
  sessionId,
@@ -776,8 +737,8 @@ var CallsServicePeer = class extends Resource2 {
776
737
  };
777
738
  } else {
778
739
  log2.error("missing track data", void 0, {
779
- F: __dxlog_file2,
780
- L: 262,
740
+ F: __dxlog_file3,
741
+ L: 267,
781
742
  S: this,
782
743
  C: (f, a) => f(...a)
783
744
  });
@@ -794,9 +755,9 @@ var CallsServicePeer = class extends Resource2 {
794
755
  }
795
756
  async pushTrack({ track, encodings = [], ctx, previousTrack }) {
796
757
  await this.waitUntilOpen();
797
- invariant2(this.session, void 0, {
798
- F: __dxlog_file2,
799
- L: 290,
758
+ invariant3(this.session, void 0, {
759
+ F: __dxlog_file3,
760
+ L: 295,
800
761
  S: this,
801
762
  A: [
802
763
  "this.session",
@@ -808,8 +769,8 @@ var CallsServicePeer = class extends Resource2 {
808
769
  previousTrack,
809
770
  encodings
810
771
  }, {
811
- F: __dxlog_file2,
812
- L: 291,
772
+ F: __dxlog_file3,
773
+ L: 296,
813
774
  S: this,
814
775
  C: (f, a) => f(...a)
815
776
  });
@@ -821,8 +782,8 @@ var CallsServicePeer = class extends Resource2 {
821
782
  previousTrack,
822
783
  transceiver: transceiver2
823
784
  }, {
824
- F: __dxlog_file2,
825
- L: 295,
785
+ F: __dxlog_file3,
786
+ L: 300,
826
787
  S: this,
827
788
  C: (f, a) => f(...a)
828
789
  });
@@ -833,23 +794,23 @@ var CallsServicePeer = class extends Resource2 {
833
794
  previousTrack,
834
795
  transceiver: transceiver2
835
796
  }, {
836
- F: __dxlog_file2,
837
- L: 298,
797
+ F: __dxlog_file3,
798
+ L: 303,
838
799
  S: this,
839
800
  C: (f, a) => f(...a)
840
801
  });
841
802
  transceiver2.sender.replaceTrack(track).catch((err) => log2.catch(err, void 0, {
842
- F: __dxlog_file2,
843
- L: 299,
803
+ F: __dxlog_file3,
804
+ L: 304,
844
805
  S: this,
845
806
  C: (f, a) => f(...a)
846
807
  }));
847
808
  return previousTrack;
848
809
  }
849
810
  }
850
- invariant2(track, void 0, {
851
- F: __dxlog_file2,
852
- L: 303,
811
+ invariant3(track, void 0, {
812
+ F: __dxlog_file3,
813
+ L: 308,
853
814
  S: this,
854
815
  A: [
855
816
  "track",
@@ -861,8 +822,8 @@ var CallsServicePeer = class extends Resource2 {
861
822
  direction: "sendonly"
862
823
  });
863
824
  log2.verbose("creating transceiver", void 0, {
864
- F: __dxlog_file2,
865
- L: 308,
825
+ F: __dxlog_file3,
826
+ L: 313,
866
827
  S: this,
867
828
  C: (f, a) => f(...a)
868
829
  });
@@ -873,9 +834,9 @@ var CallsServicePeer = class extends Resource2 {
873
834
  sessionId: this.session.sessionId,
874
835
  trackName: stableId
875
836
  });
876
- invariant2(pushedTrackData, void 0, {
877
- F: __dxlog_file2,
878
- L: 317,
837
+ invariant3(pushedTrackData, void 0, {
838
+ F: __dxlog_file3,
839
+ L: 322,
879
840
  S: this,
880
841
  A: [
881
842
  "pushedTrackData",
@@ -891,8 +852,8 @@ var CallsServicePeer = class extends Resource2 {
891
852
  };
892
853
  });
893
854
  transceiver.sender.setParameters(parameters).catch((err) => log2.catch(err, void 0, {
894
- F: __dxlog_file2,
895
- L: 324,
855
+ F: __dxlog_file3,
856
+ L: 329,
896
857
  S: this,
897
858
  C: (f, a) => f(...a)
898
859
  }));
@@ -904,8 +865,8 @@ var CallsServicePeer = class extends Resource2 {
904
865
  log2("pulling track", {
905
866
  trackName: trackData.trackName
906
867
  }, {
907
- F: __dxlog_file2,
908
- L: 342,
868
+ F: __dxlog_file3,
869
+ L: 347,
909
870
  S: this,
910
871
  C: (f, a) => f(...a)
911
872
  });
@@ -919,9 +880,9 @@ var CallsServicePeer = class extends Resource2 {
919
880
  if (newTrackResponse.errorCode) {
920
881
  throw new Error(newTrackResponse.errorDescription);
921
882
  }
922
- invariant2(newTrackResponse.tracks, void 0, {
923
- F: __dxlog_file2,
924
- L: 355,
883
+ invariant3(newTrackResponse.tracks, void 0, {
884
+ F: __dxlog_file3,
885
+ L: 360,
925
886
  S: this,
926
887
  A: [
927
888
  "newTrackResponse.tracks",
@@ -967,18 +928,18 @@ var CallsServicePeer = class extends Resource2 {
967
928
  mid = trackInfo.mid;
968
929
  return track;
969
930
  }).catch((err) => log2.catch(err, void 0, {
970
- F: __dxlog_file2,
971
- L: 407,
931
+ F: __dxlog_file3,
932
+ L: 412,
972
933
  S: this,
973
934
  C: (f, a) => f(...a)
974
935
  }));
975
936
  } else {
976
- log2.warn("missing track info", {
937
+ log2.info("missing track info", {
977
938
  trackData,
978
939
  availableTracks: Array.from(trackMap.keys())
979
940
  }, {
980
- F: __dxlog_file2,
981
- L: 409,
941
+ F: __dxlog_file3,
942
+ L: 414,
982
943
  S: this,
983
944
  C: (f, a) => f(...a)
984
945
  });
@@ -987,8 +948,8 @@ var CallsServicePeer = class extends Resource2 {
987
948
  const onDispose = async () => {
988
949
  if (mid) {
989
950
  log2("closing pulled track ", trackData.trackName, {
990
- F: __dxlog_file2,
991
- L: 415,
951
+ F: __dxlog_file3,
952
+ L: 420,
992
953
  S: this,
993
954
  C: (f, a) => f(...a)
994
955
  });
@@ -1002,9 +963,9 @@ var CallsServicePeer = class extends Resource2 {
1002
963
  }
1003
964
  async pullTrack({ ctx, trackData }) {
1004
965
  await this.waitUntilOpen();
1005
- invariant2(this.session, void 0, {
1006
- F: __dxlog_file2,
1007
- L: 436,
966
+ invariant3(this.session, void 0, {
967
+ F: __dxlog_file3,
968
+ L: 441,
1008
969
  S: this,
1009
970
  A: [
1010
971
  "this.session",
@@ -1056,13 +1017,6 @@ var CallsServicePeer = class extends Resource2 {
1056
1017
  }
1057
1018
  }));
1058
1019
  }
1059
- constructor(config) {
1060
- super(), _define_property3(this, "history", new HistoryCache(100)), _define_property3(this, "_persistentLifecycle", new PersistentLifecycle({
1061
- start: () => this._startSession(),
1062
- stop: (session) => this._stopSession(session)
1063
- })), _define_property3(this, "_config", void 0), _define_property3(this, "taskScheduler", new FIFOScheduler()), _define_property3(this, "pushTrackDispatcher", new BulkRequestDispatcher(32)), _define_property3(this, "pullTrackDispatcher", new BulkRequestDispatcher(32)), _define_property3(this, "closeTrackDispatcher", new BulkRequestDispatcher(32));
1064
- this._config = config;
1065
- }
1066
1020
  };
1067
1021
  var resolveTrack = async (peerConnection, compare, timeout = NETWORK_TIMEOUT) => new Promise((resolve, reject) => {
1068
1022
  setTimeout(reject, timeout);
@@ -1094,50 +1048,12 @@ var peerConnectionIsConnected = async (peerConnection) => {
1094
1048
  await connected;
1095
1049
  }
1096
1050
  };
1097
- var INITIAL_DELAY = 50;
1098
- var MAX_DELAY = 500;
1099
- var MAX_RETRIES = 50;
1100
- var WAIT_FOR_DATA_TIMEOUT = 2e4;
1101
- var waitForTransceiverToSendData = async (ctx, transceiver) => {
1102
- let delay = INITIAL_DELAY;
1103
- let checks = 0;
1104
- const waitForData = new Trigger();
1105
- ctx.onDispose(() => waitForData.throw(new Error("Transceiver was closed")));
1106
- const checkStats = async () => {
1107
- if (ctx.disposed) return;
1108
- try {
1109
- const stats = await transceiver.sender.getStats();
1110
- let dataFound = false;
1111
- stats.forEach((stat) => {
1112
- if (stat.type === "outbound-rtp" && stat.bytesSent > 0) {
1113
- dataFound = true;
1114
- }
1115
- });
1116
- if (dataFound) {
1117
- waitForData.wake();
1118
- return;
1119
- }
1120
- } catch {
1121
- }
1122
- checks++;
1123
- if (checks > MAX_RETRIES) {
1124
- waitForData.throw(new Error("Transceiver did not send data"));
1125
- return;
1126
- }
1127
- delay = Math.min(delay * 2, MAX_DELAY);
1128
- scheduleTask(ctx, checkStats, delay);
1129
- };
1130
- void checkStats();
1131
- return waitForData.wait({
1132
- timeout: WAIT_FOR_DATA_TIMEOUT
1133
- });
1134
- };
1135
1051
 
1136
1052
  // src/calls/util/media.ts
1137
1053
  import { log as log3 } from "@dxos/log";
1138
- var __dxlog_file3 = "/__w/dxos/dxos/packages/plugins/plugin-thread/src/calls/util/media.ts";
1054
+ var __dxlog_file4 = "/__w/dxos/dxos/packages/plugins/plugin-thread/src/calls/util/media.ts";
1139
1055
  var getUserMediaTrack = async (kind, constraints = {}, deviceList) => {
1140
- deviceList ?? (deviceList = (await getDeviceList()).filter((device) => device.kind === kind));
1056
+ deviceList ??= (await getDeviceList()).filter((device) => device.kind === kind);
1141
1057
  const firstDevice = deviceList[0];
1142
1058
  if (!firstDevice) {
1143
1059
  throw new Error("No devices found");
@@ -1147,7 +1063,7 @@ var getUserMediaTrack = async (kind, constraints = {}, deviceList) => {
1147
1063
  var acquireTrack = async (device, constraints) => {
1148
1064
  const { deviceId, label } = device;
1149
1065
  log3.info(`requesting ${label}`, void 0, {
1150
- F: __dxlog_file3,
1066
+ F: __dxlog_file4,
1151
1067
  L: 23,
1152
1068
  S: void 0,
1153
1069
  C: (f, a) => f(...a)
@@ -1192,24 +1108,26 @@ var getScreenshare = async ({ contentHint }) => {
1192
1108
  // src/calls/speaking-monitor.ts
1193
1109
  import { DeferredTask as DeferredTask2, Event as Event2, sleep } from "@dxos/async";
1194
1110
  import { Resource as Resource3 } from "@dxos/context";
1195
- function _define_property4(obj, key, value) {
1196
- if (key in obj) {
1197
- Object.defineProperty(obj, key, {
1198
- value,
1199
- enumerable: true,
1200
- configurable: true,
1201
- writable: true
1202
- });
1203
- } else {
1204
- obj[key] = value;
1205
- }
1206
- return obj;
1207
- }
1208
1111
  var NOT_SPEAKING_AFTER = 500;
1209
1112
  var START_SPEAKING_THRESHOLD = 0.05;
1210
1113
  var CONTINUE_SPEAKING_THRESHOLD = 0.02;
1211
1114
  var MIN_EVENT_INTERVAL = 100;
1212
1115
  var SpeakingMonitor = class extends Resource3 {
1116
+ _mediaStreamTrack;
1117
+ /**
1118
+ * Event that is emitted when the user starts or stops speaking.
1119
+ * It is debounced to prevent rapid state changes.
1120
+ */
1121
+ speakingChanged = new Event2();
1122
+ /**
1123
+ * Real state of the user speaking.
1124
+ */
1125
+ _isSpeaking = false;
1126
+ _lastEventTime = 0;
1127
+ _deferredUpdate;
1128
+ constructor(_mediaStreamTrack) {
1129
+ super(), this._mediaStreamTrack = _mediaStreamTrack;
1130
+ }
1213
1131
  get isSpeaking() {
1214
1132
  return this._isSpeaking;
1215
1133
  }
@@ -1253,43 +1171,20 @@ var SpeakingMonitor = class extends Resource3 {
1253
1171
  this._lastEventTime = Date.now();
1254
1172
  this.speakingChanged.emit(this._isSpeaking);
1255
1173
  }
1256
- constructor(_mediaStreamTrack) {
1257
- super(), _define_property4(this, "_mediaStreamTrack", void 0), /**
1258
- * Event that is emitted when the user starts or stops speaking.
1259
- * It is debounced to prevent rapid state changes.
1260
- */
1261
- _define_property4(this, "speakingChanged", void 0), /**
1262
- * Real state of the user speaking.
1263
- */
1264
- _define_property4(this, "_isSpeaking", void 0), _define_property4(this, "_lastEventTime", void 0), _define_property4(this, "_deferredUpdate", void 0), this._mediaStreamTrack = _mediaStreamTrack, this.speakingChanged = new Event2(), this._isSpeaking = false, this._lastEventTime = 0;
1265
- }
1266
1174
  };
1267
1175
 
1268
1176
  // src/calls/media-manager.ts
1269
1177
  import { DeferredTask as DeferredTask3, Event as Event3, sleep as sleep2, synchronized as synchronized2 } from "@dxos/async";
1270
1178
  import { Resource as Resource4, cancelWithContext } from "@dxos/context";
1271
- import { invariant as invariant3 } from "@dxos/invariant";
1179
+ import { invariant as invariant4 } from "@dxos/invariant";
1272
1180
  import { log as log4 } from "@dxos/log";
1273
- function _define_property5(obj, key, value) {
1274
- if (key in obj) {
1275
- Object.defineProperty(obj, key, {
1276
- value,
1277
- enumerable: true,
1278
- configurable: true,
1279
- writable: true
1280
- });
1281
- } else {
1282
- obj[key] = value;
1283
- }
1284
- return obj;
1285
- }
1286
1181
  function _ts_decorate2(decorators, target, key, desc) {
1287
1182
  var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
1288
1183
  if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
1289
1184
  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;
1290
1185
  return c > 3 && r && Object.defineProperty(target, key, r), r;
1291
1186
  }
1292
- var __dxlog_file4 = "/__w/dxos/dxos/packages/plugins/plugin-thread/src/calls/media-manager.ts";
1187
+ var __dxlog_file5 = "/__w/dxos/dxos/packages/plugins/plugin-thread/src/calls/media-manager.ts";
1293
1188
  var VIDEO_WIDTH = 1280;
1294
1189
  var VIDEO_HEIGHT = 720;
1295
1190
  var MAX_WEB_CAM_FRAMERATE = 24;
@@ -1297,6 +1192,17 @@ var MAX_WEB_CAM_BITRATE = 12e5;
1297
1192
  var RETRY_INTERVAL = 100;
1298
1193
  var USE_INAUDIBLE_AUDIO = true;
1299
1194
  var MediaManager = class extends Resource4 {
1195
+ stateUpdated = new Event3();
1196
+ _state = {
1197
+ pulledVideoStreams: {},
1198
+ pulledAudioTracks: {}
1199
+ };
1200
+ _speakingMonitor = void 0;
1201
+ _trackToReconcile = [];
1202
+ _blackCanvasStreamTrack = void 0;
1203
+ _inaudibleAudioStreamTrack = void 0;
1204
+ _pushTracksTask = void 0;
1205
+ _pullTracksTask = void 0;
1300
1206
  get isSpeaking() {
1301
1207
  return this._speakingMonitor?.isSpeaking;
1302
1208
  }
@@ -1435,8 +1341,8 @@ var MediaManager = class extends Resource4 {
1435
1341
  }
1436
1342
  async _reconcilePulledMedia() {
1437
1343
  log4("reconciling tracks", void 0, {
1438
- F: __dxlog_file4,
1439
- L: 223,
1344
+ F: __dxlog_file5,
1345
+ L: 229,
1440
1346
  S: this,
1441
1347
  C: (f, a) => f(...a)
1442
1348
  });
@@ -1453,8 +1359,8 @@ var MediaManager = class extends Resource4 {
1453
1359
  currentAudioTracks: Object.keys(this._state.pulledAudioTracks),
1454
1360
  currentVideoStreams: Object.keys(this._state.pulledVideoStreams)
1455
1361
  }, {
1456
- F: __dxlog_file4,
1457
- L: 242,
1362
+ F: __dxlog_file5,
1363
+ L: 247,
1458
1364
  S: this,
1459
1365
  C: (f, a) => f(...a)
1460
1366
  });
@@ -1467,8 +1373,8 @@ var MediaManager = class extends Resource4 {
1467
1373
  currentAudioTracks: Object.keys(this._state.pulledAudioTracks),
1468
1374
  currentVideoStreams: Object.keys(this._state.pulledVideoStreams)
1469
1375
  }, {
1470
- F: __dxlog_file4,
1471
- L: 257,
1376
+ F: __dxlog_file5,
1377
+ L: 262,
1472
1378
  S: this,
1473
1379
  C: (f, a) => f(...a)
1474
1380
  });
@@ -1478,14 +1384,14 @@ var MediaManager = class extends Resource4 {
1478
1384
  log4.info("retrying pull tracks", {
1479
1385
  tracksToPull
1480
1386
  }, {
1481
- F: __dxlog_file4,
1482
- L: 265,
1387
+ F: __dxlog_file5,
1388
+ L: 270,
1483
1389
  S: this,
1484
1390
  C: (f, a) => f(...a)
1485
1391
  });
1486
- invariant3(this._pullTracksTask, void 0, {
1487
- F: __dxlog_file4,
1488
- L: 266,
1392
+ invariant4(this._pullTracksTask, void 0, {
1393
+ F: __dxlog_file5,
1394
+ L: 271,
1489
1395
  S: this,
1490
1396
  A: [
1491
1397
  "this._pullTracksTask",
@@ -1537,14 +1443,14 @@ var MediaManager = class extends Resource4 {
1537
1443
  pushAudioResult,
1538
1444
  pushScreenshareResult
1539
1445
  }, {
1540
- F: __dxlog_file4,
1541
- L: 306,
1446
+ F: __dxlog_file5,
1447
+ L: 310,
1542
1448
  S: this,
1543
1449
  C: (f, a) => f(...a)
1544
1450
  });
1545
- invariant3(this._pushTracksTask, void 0, {
1546
- F: __dxlog_file4,
1547
- L: 307,
1451
+ invariant4(this._pushTracksTask, void 0, {
1452
+ F: __dxlog_file5,
1453
+ L: 311,
1548
1454
  S: this,
1549
1455
  A: [
1550
1456
  "this._pushTracksTask",
@@ -1559,7 +1465,10 @@ var MediaManager = class extends Resource4 {
1559
1465
  try {
1560
1466
  const trackData = TrackNameCodec.decode(name);
1561
1467
  const track = await this._state.peer.pullTrack({
1562
- trackData,
1468
+ trackData: {
1469
+ ...trackData,
1470
+ mid: void 0
1471
+ },
1563
1472
  ctx
1564
1473
  });
1565
1474
  if (track?.readyState === "ended") {
@@ -1600,8 +1509,8 @@ var MediaManager = class extends Resource4 {
1600
1509
  err,
1601
1510
  name
1602
1511
  }, {
1603
- F: __dxlog_file4,
1604
- L: 342,
1512
+ F: __dxlog_file5,
1513
+ L: 347,
1605
1514
  S: this,
1606
1515
  C: (f, a) => f(...a)
1607
1516
  });
@@ -1634,8 +1543,8 @@ var MediaManager = class extends Resource4 {
1634
1543
  previousTrack,
1635
1544
  encodings
1636
1545
  }, {
1637
- F: __dxlog_file4,
1638
- L: 369,
1546
+ F: __dxlog_file5,
1547
+ L: 373,
1639
1548
  S: this,
1640
1549
  C: (f, a) => f(...a)
1641
1550
  });
@@ -1645,12 +1554,6 @@ var MediaManager = class extends Resource4 {
1645
1554
  };
1646
1555
  }
1647
1556
  }
1648
- constructor(...args) {
1649
- super(...args), _define_property5(this, "stateUpdated", new Event3()), _define_property5(this, "_state", {
1650
- pulledVideoStreams: {},
1651
- pulledAudioTracks: {}
1652
- }), _define_property5(this, "_speakingMonitor", void 0), _define_property5(this, "_trackToReconcile", []), _define_property5(this, "_blackCanvasStreamTrack", void 0), _define_property5(this, "_inaudibleAudioStreamTrack", void 0), _define_property5(this, "_pushTracksTask", void 0), _define_property5(this, "_pullTracksTask", void 0);
1653
- }
1654
1557
  };
1655
1558
  _ts_decorate2([
1656
1559
  synchronized2
@@ -1663,30 +1566,39 @@ _ts_decorate2([
1663
1566
  import { computed } from "@preact/signals-core";
1664
1567
  import { Event as Event4, synchronized as synchronized3 } from "@dxos/async";
1665
1568
  import { Resource as Resource5 } from "@dxos/context";
1666
- import { invariant as invariant4 } from "@dxos/invariant";
1569
+ import { invariant as invariant5 } from "@dxos/invariant";
1667
1570
  import { live } from "@dxos/live-object";
1668
1571
  import { isNonNullable as isNonNullable2 } from "@dxos/util";
1669
- function _define_property6(obj, key, value) {
1670
- if (key in obj) {
1671
- Object.defineProperty(obj, key, {
1672
- value,
1673
- enumerable: true,
1674
- configurable: true,
1675
- writable: true
1676
- });
1677
- } else {
1678
- obj[key] = value;
1679
- }
1680
- return obj;
1681
- }
1682
1572
  function _ts_decorate3(decorators, target, key, desc) {
1683
1573
  var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
1684
1574
  if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
1685
1575
  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;
1686
1576
  return c > 3 && r && Object.defineProperty(target, key, r), r;
1687
1577
  }
1688
- var __dxlog_file5 = "/__w/dxos/dxos/packages/plugins/plugin-thread/src/calls/call-manager.ts";
1578
+ var __dxlog_file6 = "/__w/dxos/dxos/packages/plugins/plugin-thread/src/calls/call-manager.ts";
1689
1579
  var CallManager = class extends Resource5 {
1580
+ _client;
1581
+ callStateUpdated = new Event4();
1582
+ // TODO(wittjosiah): Consolidate isSpeaking into the MediaState type.
1583
+ mediaStateUpdated = new Event4();
1584
+ left = new Event4();
1585
+ /**
1586
+ * Live object state. Is changed on internal events.
1587
+ * CAUTION: Do not change directly.
1588
+ */
1589
+ _state = live({
1590
+ call: {},
1591
+ media: {
1592
+ pulledAudioTracks: {},
1593
+ pulledVideoStreams: {}
1594
+ }
1595
+ });
1596
+ // TODO(wittjosiah): This shouldn't be necessary, live-object's signals should be granular.
1597
+ _raisedHandSignal = computed(() => this._state.call.raisedHand ?? false);
1598
+ _speakingSignal = computed(() => this._state.call.speaking ?? false);
1599
+ _joinedSignal = computed(() => this._state.call.joined ?? false);
1600
+ _swarmSynchronizer;
1601
+ _mediaManager;
1690
1602
  /** @reactive */
1691
1603
  get roomId() {
1692
1604
  return this._state.call.roomId;
@@ -1765,6 +1677,25 @@ var CallManager = class extends Resource5 {
1765
1677
  turnScreenshareOff() {
1766
1678
  return this._mediaManager.turnScreenshareOff();
1767
1679
  }
1680
+ // TODO(burdon): Can this be mocked?
1681
+ constructor(_client) {
1682
+ super(), this._client = _client;
1683
+ this._client.config.getOrThrow("runtime.services.edge.url");
1684
+ const networkService = this._client.services.services.NetworkService;
1685
+ invariant5(networkService, "network service not found", {
1686
+ F: __dxlog_file6,
1687
+ L: 159,
1688
+ S: this,
1689
+ A: [
1690
+ "networkService",
1691
+ "'network service not found'"
1692
+ ]
1693
+ });
1694
+ this._swarmSynchronizer = new CallSwarmSynchronizer({
1695
+ networkService
1696
+ });
1697
+ this._mediaManager = new MediaManager();
1698
+ }
1768
1699
  async _open() {
1769
1700
  await this._mediaManager.open();
1770
1701
  await this._swarmSynchronizer.open();
@@ -1805,7 +1736,7 @@ var CallManager = class extends Resource5 {
1805
1736
  this.roomId && this.left.emit(this.roomId);
1806
1737
  }
1807
1738
  _onCallStateUpdated(state) {
1808
- const tracksToPull = state.users?.filter((user) => user.joined && user.id !== state.self?.id)?.flatMap((user) => [
1739
+ const tracksToPull = state.users?.filter((user) => user.joined && user.id !== state.self.id)?.flatMap((user) => [
1809
1740
  user.tracks?.video,
1810
1741
  user.tracks?.audio,
1811
1742
  user.tracks?.screenshare
@@ -1838,37 +1769,6 @@ var CallManager = class extends Resource5 {
1838
1769
  this._state.call = this._swarmSynchronizer._getState();
1839
1770
  this._state.media = this._mediaManager._getState();
1840
1771
  }
1841
- // TODO(burdon): Can this be mocked?
1842
- constructor(_client) {
1843
- super(), _define_property6(this, "_client", void 0), _define_property6(this, "callStateUpdated", void 0), // TODO(wittjosiah): Consolidate isSpeaking into the MediaState type.
1844
- _define_property6(this, "mediaStateUpdated", void 0), _define_property6(this, "left", void 0), /**
1845
- * Live object state. Is changed on internal events.
1846
- * CAUTION: Do not change directly.
1847
- */
1848
- _define_property6(this, "_state", void 0), // TODO(wittjosiah): This shouldn't be necessary, live-object's signals should be granular.
1849
- _define_property6(this, "_raisedHandSignal", void 0), _define_property6(this, "_speakingSignal", void 0), _define_property6(this, "_joinedSignal", void 0), _define_property6(this, "_swarmSynchronizer", void 0), _define_property6(this, "_mediaManager", void 0), this._client = _client, this.callStateUpdated = new Event4(), this.mediaStateUpdated = new Event4(), this.left = new Event4(), this._state = live({
1850
- call: {},
1851
- media: {
1852
- pulledAudioTracks: {},
1853
- pulledVideoStreams: {}
1854
- }
1855
- }), this._raisedHandSignal = computed(() => this._state.call.raisedHand ?? false), this._speakingSignal = computed(() => this._state.call.speaking ?? false), this._joinedSignal = computed(() => this._state.call.joined ?? false);
1856
- this._client.config.getOrThrow("runtime.services.edge.url");
1857
- const networkService = this._client.services.services.NetworkService;
1858
- invariant4(networkService, "network service not found", {
1859
- F: __dxlog_file5,
1860
- L: 159,
1861
- S: this,
1862
- A: [
1863
- "networkService",
1864
- "'network service not found'"
1865
- ]
1866
- });
1867
- this._swarmSynchronizer = new CallSwarmSynchronizer({
1868
- networkService
1869
- });
1870
- this._mediaManager = new MediaManager();
1871
- }
1872
1772
  };
1873
1773
  _ts_decorate3([
1874
1774
  synchronized3
@@ -1891,4 +1791,4 @@ export {
1891
1791
  MediaManager,
1892
1792
  CallManager
1893
1793
  };
1894
- //# sourceMappingURL=chunk-JR7KESLL.mjs.map
1794
+ //# sourceMappingURL=chunk-7KZWZS2U.mjs.map