@dxos/plugin-thread 0.8.4-main.1f223c7 → 0.8.4-main.2c6827d

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 (279) hide show
  1. package/dist/lib/browser/ChannelContainer-JI3ZRZ5S.mjs +17 -0
  2. package/dist/lib/browser/ChatContainer-6FVFME3R.mjs +16 -0
  3. package/dist/lib/browser/{app-graph-builder-FHAOPO57.mjs → app-graph-builder-URVQHGMR.mjs} +32 -32
  4. package/dist/lib/browser/app-graph-builder-URVQHGMR.mjs.map +7 -0
  5. package/dist/lib/browser/blueprint-definition-TQ4JFMZZ.mjs +101 -0
  6. package/dist/lib/browser/blueprint-definition-TQ4JFMZZ.mjs.map +7 -0
  7. package/dist/lib/browser/{call-manager-RMPTWSTF.mjs → call-manager-4YFT4XA6.mjs} +8 -7
  8. package/dist/lib/{node-esm/call-manager-QAREJFVX.mjs.map → browser/call-manager-4YFT4XA6.mjs.map} +1 -1
  9. package/dist/lib/browser/{chunk-PBMNFG3B.mjs → chunk-6LWKNZUV.mjs} +18 -17
  10. package/dist/lib/browser/chunk-6LWKNZUV.mjs.map +7 -0
  11. package/dist/lib/browser/chunk-CBUNHCOE.mjs +23 -0
  12. package/dist/lib/browser/chunk-CBUNHCOE.mjs.map +7 -0
  13. package/dist/lib/browser/chunk-CFC7LEPD.mjs +18 -0
  14. package/dist/lib/browser/chunk-CFC7LEPD.mjs.map +7 -0
  15. package/dist/lib/browser/{chunk-GERVMFQW.mjs → chunk-CP7E2HRE.mjs} +2 -2
  16. package/dist/lib/browser/chunk-CP7E2HRE.mjs.map +7 -0
  17. package/dist/lib/browser/{chunk-7W7QK5ZP.mjs → chunk-F36NHPJG.mjs} +37 -34
  18. package/dist/lib/browser/chunk-F36NHPJG.mjs.map +7 -0
  19. package/dist/lib/browser/{chunk-XYUJXHYV.mjs → chunk-ISCHODBV.mjs} +1 -1
  20. package/dist/lib/browser/{chunk-XYUJXHYV.mjs.map → chunk-ISCHODBV.mjs.map} +2 -2
  21. package/dist/lib/browser/chunk-J5LGTIGS.mjs +10 -0
  22. package/dist/lib/browser/{chunk-RI3Z6MK3.mjs → chunk-KOBXMDCI.mjs} +68 -67
  23. package/dist/lib/browser/chunk-KOBXMDCI.mjs.map +7 -0
  24. package/dist/lib/browser/chunk-QM34EZQK.mjs +20 -0
  25. package/dist/lib/browser/chunk-QM34EZQK.mjs.map +7 -0
  26. package/dist/lib/browser/{chunk-KTWYVC5X.mjs → chunk-R5UOPOO7.mjs} +44 -49
  27. package/dist/lib/browser/chunk-R5UOPOO7.mjs.map +7 -0
  28. package/dist/lib/browser/{chunk-ZH2WPTNP.mjs → chunk-VIRD2QSK.mjs} +65 -72
  29. package/dist/lib/browser/chunk-VIRD2QSK.mjs.map +7 -0
  30. package/dist/lib/browser/{chunk-ZCEU5K23.mjs → chunk-ZCW3NSDZ.mjs} +139 -236
  31. package/dist/lib/browser/chunk-ZCW3NSDZ.mjs.map +7 -0
  32. package/dist/lib/browser/index.mjs +41 -42
  33. package/dist/lib/browser/index.mjs.map +3 -3
  34. package/dist/lib/browser/{intent-resolver-J7OCP2P6.mjs → intent-resolver-YR6W4CRP.mjs} +32 -108
  35. package/dist/lib/browser/intent-resolver-YR6W4CRP.mjs.map +7 -0
  36. package/dist/lib/browser/{markdown-Z677YORA.mjs → markdown-GSOBOXA7.mjs} +26 -24
  37. package/dist/lib/browser/markdown-GSOBOXA7.mjs.map +7 -0
  38. package/dist/lib/browser/meta.json +1 -1
  39. package/dist/lib/browser/react-root-RAWRPF7Z.mjs +29 -0
  40. package/dist/lib/browser/react-root-RAWRPF7Z.mjs.map +7 -0
  41. package/dist/lib/browser/{react-surface-GVGZRBDK.mjs → react-surface-GOEFSXQ6.mjs} +38 -36
  42. package/dist/lib/browser/react-surface-GOEFSXQ6.mjs.map +7 -0
  43. package/dist/lib/browser/{settings-GRKEID73.mjs → settings-JN2HHORY.mjs} +6 -5
  44. package/dist/lib/{node-esm/settings-F2ODVNNW.mjs.map → browser/settings-JN2HHORY.mjs.map} +1 -1
  45. package/dist/lib/browser/{state-2T4KDWBX.mjs → state-UYPLBGZJ.mjs} +6 -5
  46. package/dist/lib/{node-esm/state-62TQKQVB.mjs.map → browser/state-UYPLBGZJ.mjs.map} +1 -1
  47. package/dist/lib/browser/types/index.mjs +7 -10
  48. package/dist/lib/node-esm/ChannelContainer-RQY4PR4F.mjs +18 -0
  49. package/dist/lib/node-esm/ChatContainer-KWNON7EN.mjs +17 -0
  50. package/dist/lib/node-esm/ChatContainer-KWNON7EN.mjs.map +7 -0
  51. package/dist/lib/node-esm/{app-graph-builder-XEYWX5FC.mjs → app-graph-builder-2IH5RPR7.mjs} +32 -32
  52. package/dist/lib/node-esm/app-graph-builder-2IH5RPR7.mjs.map +7 -0
  53. package/dist/lib/node-esm/blueprint-definition-TSX5HHW7.mjs +102 -0
  54. package/dist/lib/node-esm/blueprint-definition-TSX5HHW7.mjs.map +7 -0
  55. package/dist/lib/node-esm/{call-manager-QAREJFVX.mjs → call-manager-UMUXEYH5.mjs} +8 -7
  56. package/dist/lib/{browser/call-manager-RMPTWSTF.mjs.map → node-esm/call-manager-UMUXEYH5.mjs.map} +1 -1
  57. package/dist/lib/node-esm/chunk-2AEIN5MI.mjs +22 -0
  58. package/dist/lib/node-esm/chunk-2AEIN5MI.mjs.map +7 -0
  59. package/dist/lib/node-esm/{chunk-TIPIOH2J.mjs → chunk-7KZWZS2U.mjs} +139 -236
  60. package/dist/lib/node-esm/chunk-7KZWZS2U.mjs.map +7 -0
  61. package/dist/lib/node-esm/{chunk-57XR3LEF.mjs → chunk-ABUFOZVX.mjs} +2 -2
  62. package/dist/lib/node-esm/chunk-ABUFOZVX.mjs.map +7 -0
  63. package/dist/lib/node-esm/chunk-HSLMI22Q.mjs +11 -0
  64. package/dist/lib/node-esm/chunk-HSLMI22Q.mjs.map +7 -0
  65. package/dist/lib/node-esm/chunk-I3O6NXMN.mjs +25 -0
  66. package/dist/lib/node-esm/chunk-I3O6NXMN.mjs.map +7 -0
  67. package/dist/lib/node-esm/{chunk-P6E247RF.mjs → chunk-MEIWWPR2.mjs} +44 -49
  68. package/dist/lib/node-esm/chunk-MEIWWPR2.mjs.map +7 -0
  69. package/dist/lib/node-esm/{chunk-JNPKMT7O.mjs → chunk-PZH2EDU5.mjs} +68 -67
  70. package/dist/lib/node-esm/chunk-PZH2EDU5.mjs.map +7 -0
  71. package/dist/lib/node-esm/{chunk-LE2LIYGX.mjs → chunk-QFCIKJOD.mjs} +65 -72
  72. package/dist/lib/node-esm/chunk-QFCIKJOD.mjs.map +7 -0
  73. package/dist/lib/node-esm/chunk-RT6NRL2I.mjs +19 -0
  74. package/dist/lib/node-esm/chunk-RT6NRL2I.mjs.map +7 -0
  75. package/dist/lib/node-esm/{chunk-2V3WSLUZ.mjs → chunk-VBI32FGI.mjs} +1 -1
  76. package/dist/lib/node-esm/{chunk-2V3WSLUZ.mjs.map → chunk-VBI32FGI.mjs.map} +2 -2
  77. package/dist/lib/node-esm/{chunk-SNKFZQST.mjs → chunk-Y3F2SGNH.mjs} +37 -34
  78. package/dist/lib/node-esm/chunk-Y3F2SGNH.mjs.map +7 -0
  79. package/dist/lib/node-esm/{chunk-DKCQCENK.mjs → chunk-Z4GUSLWL.mjs} +18 -17
  80. package/dist/lib/node-esm/chunk-Z4GUSLWL.mjs.map +7 -0
  81. package/dist/lib/node-esm/index.mjs +41 -42
  82. package/dist/lib/node-esm/index.mjs.map +3 -3
  83. package/dist/lib/node-esm/{intent-resolver-SR2LW4HF.mjs → intent-resolver-SJFABEE7.mjs} +32 -108
  84. package/dist/lib/node-esm/intent-resolver-SJFABEE7.mjs.map +7 -0
  85. package/dist/lib/node-esm/{markdown-FL4IXLRP.mjs → markdown-GG5566TL.mjs} +26 -24
  86. package/dist/lib/node-esm/markdown-GG5566TL.mjs.map +7 -0
  87. package/dist/lib/node-esm/meta.json +1 -1
  88. package/dist/lib/node-esm/react-root-K5OGECUS.mjs +30 -0
  89. package/dist/lib/node-esm/react-root-K5OGECUS.mjs.map +7 -0
  90. package/dist/lib/node-esm/{react-surface-WLQUVRAX.mjs → react-surface-5QDQD7MN.mjs} +38 -36
  91. package/dist/lib/node-esm/react-surface-5QDQD7MN.mjs.map +7 -0
  92. package/dist/lib/node-esm/{settings-F2ODVNNW.mjs → settings-VSPM3BIM.mjs} +6 -5
  93. package/dist/lib/{browser/settings-GRKEID73.mjs.map → node-esm/settings-VSPM3BIM.mjs.map} +1 -1
  94. package/dist/lib/node-esm/{state-62TQKQVB.mjs → state-XNWOLBNE.mjs} +6 -5
  95. package/dist/lib/{browser/state-2T4KDWBX.mjs.map → node-esm/state-XNWOLBNE.mjs.map} +1 -1
  96. package/dist/lib/node-esm/types/index.mjs +7 -10
  97. package/dist/types/src/ThreadPlugin.d.ts +1 -1
  98. package/dist/types/src/ThreadPlugin.d.ts.map +1 -1
  99. package/dist/types/src/calls/media-manager.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.map +1 -1
  115. package/dist/types/src/components/ChannelContainer.d.ts +2 -2
  116. package/dist/types/src/components/ChannelContainer.d.ts.map +1 -1
  117. package/dist/types/src/components/ChannelContainer.stories.d.ts +73 -8
  118. package/dist/types/src/components/ChannelContainer.stories.d.ts.map +1 -1
  119. package/dist/types/src/components/Chat.stories.d.ts +73 -6
  120. package/dist/types/src/components/Chat.stories.d.ts.map +1 -1
  121. package/dist/types/src/components/ChatContainer.d.ts +6 -5
  122. package/dist/types/src/components/ChatContainer.d.ts.map +1 -1
  123. package/dist/types/src/components/Comments.stories.d.ts +1 -2
  124. package/dist/types/src/components/Comments.stories.d.ts.map +1 -1
  125. package/dist/types/src/components/CommentsContainer.d.ts +2 -2
  126. package/dist/types/src/components/CommentsContainer.d.ts.map +1 -1
  127. package/dist/types/src/components/CommentsThreadContainer.d.ts +8 -8
  128. package/dist/types/src/components/CommentsThreadContainer.d.ts.map +1 -1
  129. package/dist/types/src/components/Media/VideoObject.d.ts +2 -2
  130. package/dist/types/src/components/Media/VideoObject.d.ts.map +1 -1
  131. package/dist/types/src/components/Media/VideoObject.stories.d.ts +5 -3
  132. package/dist/types/src/components/Media/VideoObject.stories.d.ts.map +1 -1
  133. package/dist/types/src/components/MessageContainer.d.ts +2 -2
  134. package/dist/types/src/components/MessageContainer.d.ts.map +1 -1
  135. package/dist/types/src/components/ResponsiveGrid/ResponsiveContainer.stories.d.ts +2 -2
  136. package/dist/types/src/components/ResponsiveGrid/ResponsiveContainer.stories.d.ts.map +1 -1
  137. package/dist/types/src/components/ResponsiveGrid/ResponsiveGrid.stories.d.ts +2 -2
  138. package/dist/types/src/components/ResponsiveGrid/ResponsiveGrid.stories.d.ts.map +1 -1
  139. package/dist/types/src/components/ResponsiveGrid/ResponsiveGridItem.d.ts.map +1 -1
  140. package/dist/types/src/components/ThreadCompanion.d.ts +5 -0
  141. package/dist/types/src/components/ThreadCompanion.d.ts.map +1 -0
  142. package/dist/types/src/components/ThreadSettings.d.ts +1 -1
  143. package/dist/types/src/components/ThreadSettings.d.ts.map +1 -1
  144. package/dist/types/src/components/index.d.ts +3 -3
  145. package/dist/types/src/components/index.d.ts.map +1 -1
  146. package/dist/types/src/components/testing.d.ts +3 -3
  147. package/dist/types/src/components/testing.d.ts.map +1 -1
  148. package/dist/types/src/extensions/threads.d.ts.map +1 -1
  149. package/dist/types/src/functions/create-proposals.d.ts +6 -0
  150. package/dist/types/src/functions/create-proposals.d.ts.map +1 -0
  151. package/dist/types/src/functions/index.d.ts +2 -0
  152. package/dist/types/src/functions/index.d.ts.map +1 -0
  153. package/dist/types/src/hooks/analytics.d.ts +2 -2
  154. package/dist/types/src/hooks/analytics.d.ts.map +1 -1
  155. package/dist/types/src/hooks/index.d.ts +2 -2
  156. package/dist/types/src/hooks/index.d.ts.map +1 -1
  157. package/dist/types/src/hooks/useVideoStreamTrack.d.ts +1 -1
  158. package/dist/types/src/hooks/useVideoStreamTrack.d.ts.map +1 -1
  159. package/dist/types/src/meta.d.ts +1 -2
  160. package/dist/types/src/meta.d.ts.map +1 -1
  161. package/dist/types/src/testing/stories.d.ts.map +1 -1
  162. package/dist/types/src/translations.d.ts +72 -6
  163. package/dist/types/src/translations.d.ts.map +1 -1
  164. package/dist/types/src/types/Channel.d.ts +16 -0
  165. package/dist/types/src/types/Channel.d.ts.map +1 -0
  166. package/dist/types/src/types/index.d.ts +1 -1
  167. package/dist/types/src/types/index.d.ts.map +1 -1
  168. package/dist/types/src/types/types.d.ts +30 -117
  169. package/dist/types/src/types/types.d.ts.map +1 -1
  170. package/dist/types/tsconfig.tsbuildinfo +1 -1
  171. package/package.json +62 -58
  172. package/src/ThreadPlugin.tsx +139 -132
  173. package/src/calls/media-manager.ts +9 -6
  174. package/src/calls/util/stub-media-streams.ts +2 -2
  175. package/src/calls-service.stories.tsx +2 -5
  176. package/src/capabilities/app-graph-builder.ts +41 -30
  177. package/src/capabilities/blueprint-definition.ts +38 -0
  178. package/src/capabilities/capabilities.ts +7 -7
  179. package/src/capabilities/index.ts +1 -1
  180. package/src/capabilities/intent-resolver.ts +22 -62
  181. package/src/capabilities/markdown.ts +5 -3
  182. package/src/capabilities/react-root.tsx +2 -2
  183. package/src/capabilities/react-surface.tsx +25 -23
  184. package/src/components/Call/Call.tsx +1 -1
  185. package/src/components/Call/Toolbar.tsx +5 -5
  186. package/src/components/CallDebugPanel.tsx +12 -14
  187. package/src/components/CallSidebar.tsx +1 -1
  188. package/src/components/ChannelContainer.stories.tsx +10 -10
  189. package/src/components/ChannelContainer.tsx +19 -15
  190. package/src/components/Chat.stories.tsx +14 -19
  191. package/src/components/ChatContainer.tsx +29 -21
  192. package/src/components/Comments.stories.tsx +11 -17
  193. package/src/components/CommentsContainer.tsx +5 -7
  194. package/src/components/CommentsThreadContainer.tsx +31 -27
  195. package/src/components/Lobby/Lobby.tsx +1 -1
  196. package/src/components/Media/VideoObject.stories.tsx +12 -7
  197. package/src/components/Media/VideoObject.tsx +1 -1
  198. package/src/components/MessageContainer.tsx +6 -6
  199. package/src/components/Participant/Participant.tsx +1 -1
  200. package/src/components/ResponsiveGrid/ResponsiveContainer.stories.tsx +3 -4
  201. package/src/components/ResponsiveGrid/ResponsiveContainer.tsx +2 -2
  202. package/src/components/ResponsiveGrid/ResponsiveGrid.stories.tsx +4 -5
  203. package/src/components/ResponsiveGrid/ResponsiveGrid.tsx +5 -5
  204. package/src/components/ResponsiveGrid/ResponsiveGridItem.tsx +5 -2
  205. package/src/components/{ThreadComplementary.tsx → ThreadCompanion.tsx} +41 -34
  206. package/src/components/ThreadSettings.tsx +4 -5
  207. package/src/components/index.ts +4 -4
  208. package/src/components/testing.ts +7 -9
  209. package/src/extensions/threads.ts +26 -17
  210. package/src/functions/create-proposals.ts +56 -0
  211. package/src/functions/index.ts +5 -0
  212. package/src/hooks/analytics.ts +4 -7
  213. package/src/hooks/index.ts +3 -2
  214. package/src/hooks/useVideoStreamTrack.tsx +1 -1
  215. package/src/meta.ts +9 -5
  216. package/src/testing/stories.ts +3 -6
  217. package/src/translations.ts +4 -3
  218. package/src/types/Channel.ts +26 -0
  219. package/src/types/index.ts +1 -1
  220. package/src/types/types.ts +18 -27
  221. package/src/util.ts +1 -1
  222. package/dist/lib/browser/ChannelContainer-4PYFOIDK.mjs +0 -16
  223. package/dist/lib/browser/ChatContainer-EXNNREYB.mjs +0 -15
  224. package/dist/lib/browser/app-graph-builder-FHAOPO57.mjs.map +0 -7
  225. package/dist/lib/browser/chunk-4APCDRSH.mjs +0 -18
  226. package/dist/lib/browser/chunk-4APCDRSH.mjs.map +0 -7
  227. package/dist/lib/browser/chunk-7W7QK5ZP.mjs.map +0 -7
  228. package/dist/lib/browser/chunk-EV4JWI7L.mjs +0 -17
  229. package/dist/lib/browser/chunk-EV4JWI7L.mjs.map +0 -7
  230. package/dist/lib/browser/chunk-G4CNILRR.mjs +0 -23
  231. package/dist/lib/browser/chunk-G4CNILRR.mjs.map +0 -7
  232. package/dist/lib/browser/chunk-GERVMFQW.mjs.map +0 -7
  233. package/dist/lib/browser/chunk-KTWYVC5X.mjs.map +0 -7
  234. package/dist/lib/browser/chunk-PBMNFG3B.mjs.map +0 -7
  235. package/dist/lib/browser/chunk-RI3Z6MK3.mjs.map +0 -7
  236. package/dist/lib/browser/chunk-ZCEU5K23.mjs.map +0 -7
  237. package/dist/lib/browser/chunk-ZH2WPTNP.mjs.map +0 -7
  238. package/dist/lib/browser/intent-resolver-J7OCP2P6.mjs.map +0 -7
  239. package/dist/lib/browser/markdown-Z677YORA.mjs.map +0 -7
  240. package/dist/lib/browser/react-root-XKOD4KRB.mjs +0 -28
  241. package/dist/lib/browser/react-root-XKOD4KRB.mjs.map +0 -7
  242. package/dist/lib/browser/react-surface-GVGZRBDK.mjs.map +0 -7
  243. package/dist/lib/browser/toolkit-KUPIIFC6.mjs +0 -80
  244. package/dist/lib/browser/toolkit-KUPIIFC6.mjs.map +0 -7
  245. package/dist/lib/node-esm/ChannelContainer-KQQEZWUN.mjs +0 -17
  246. package/dist/lib/node-esm/ChatContainer-QVQKFBWA.mjs +0 -16
  247. package/dist/lib/node-esm/app-graph-builder-XEYWX5FC.mjs.map +0 -7
  248. package/dist/lib/node-esm/chunk-4T45PCKP.mjs +0 -25
  249. package/dist/lib/node-esm/chunk-4T45PCKP.mjs.map +0 -7
  250. package/dist/lib/node-esm/chunk-57XR3LEF.mjs.map +0 -7
  251. package/dist/lib/node-esm/chunk-DKCQCENK.mjs.map +0 -7
  252. package/dist/lib/node-esm/chunk-GRLRWTRU.mjs +0 -19
  253. package/dist/lib/node-esm/chunk-GRLRWTRU.mjs.map +0 -7
  254. package/dist/lib/node-esm/chunk-JNPKMT7O.mjs.map +0 -7
  255. package/dist/lib/node-esm/chunk-LE2LIYGX.mjs.map +0 -7
  256. package/dist/lib/node-esm/chunk-P6E247RF.mjs.map +0 -7
  257. package/dist/lib/node-esm/chunk-PYTVBN5J.mjs +0 -19
  258. package/dist/lib/node-esm/chunk-PYTVBN5J.mjs.map +0 -7
  259. package/dist/lib/node-esm/chunk-SNKFZQST.mjs.map +0 -7
  260. package/dist/lib/node-esm/chunk-TIPIOH2J.mjs.map +0 -7
  261. package/dist/lib/node-esm/intent-resolver-SR2LW4HF.mjs.map +0 -7
  262. package/dist/lib/node-esm/markdown-FL4IXLRP.mjs.map +0 -7
  263. package/dist/lib/node-esm/react-root-4JWDRIQB.mjs +0 -29
  264. package/dist/lib/node-esm/react-root-4JWDRIQB.mjs.map +0 -7
  265. package/dist/lib/node-esm/react-surface-WLQUVRAX.mjs.map +0 -7
  266. package/dist/lib/node-esm/toolkit-KZIS7G36.mjs +0 -81
  267. package/dist/lib/node-esm/toolkit-KZIS7G36.mjs.map +0 -7
  268. package/dist/types/src/capabilities/toolkit.d.ts +0 -5
  269. package/dist/types/src/capabilities/toolkit.d.ts.map +0 -1
  270. package/dist/types/src/components/ThreadComplementary.d.ts +0 -5
  271. package/dist/types/src/components/ThreadComplementary.d.ts.map +0 -1
  272. package/dist/types/src/types/schema.d.ts +0 -177
  273. package/dist/types/src/types/schema.d.ts.map +0 -1
  274. package/src/capabilities/toolkit.ts +0 -78
  275. package/src/types/schema.ts +0 -33
  276. /package/dist/lib/browser/{ChannelContainer-4PYFOIDK.mjs.map → ChannelContainer-JI3ZRZ5S.mjs.map} +0 -0
  277. /package/dist/lib/browser/{ChatContainer-EXNNREYB.mjs.map → ChatContainer-6FVFME3R.mjs.map} +0 -0
  278. /package/dist/lib/{node-esm/ChannelContainer-KQQEZWUN.mjs.map → browser/chunk-J5LGTIGS.mjs.map} +0 -0
  279. /package/dist/lib/node-esm/{ChatContainer-QVQKFBWA.mjs.map → ChannelContainer-RQY4PR4F.mjs.map} +0 -0
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@dxos/plugin-thread",
3
- "version": "0.8.4-main.1f223c7",
3
+ "version": "0.8.4-main.2c6827d",
4
4
  "description": "DXOS Threads Surface plugin",
5
5
  "homepage": "https://dxos.org",
6
6
  "bugs": "https://github.com/dxos/dxos/issues",
@@ -37,77 +37,81 @@
37
37
  "dependencies": {
38
38
  "@codemirror/language": "^6.11.3",
39
39
  "@codemirror/state": "^6.5.2",
40
- "@codemirror/view": "^6.38.2",
41
- "@effect/ai": "0.25.2",
40
+ "@codemirror/view": "^6.38.4",
41
+ "@effect/ai": "0.29.1",
42
+ "@effect/experimental": "0.56.0",
42
43
  "@peermetrics/webrtc-stats": "5.7.1",
43
44
  "@preact-signals/safe-react": "^0.9.0",
44
- "@preact/signals-core": "^1.9.0",
45
+ "@preact/signals-core": "^1.12.1",
45
46
  "date-fns": "^3.3.1",
46
47
  "extendable-media-recorder": "^9.2.19",
47
48
  "extendable-media-recorder-wav-encoder": "^7.0.123",
48
49
  "md5-hex": "5.0.0",
49
50
  "react-resize-detector": "^11.0.1",
50
51
  "wavefile": "^11.0.0",
51
- "@dxos/app-framework": "0.8.4-main.1f223c7",
52
- "@dxos/async": "0.8.4-main.1f223c7",
53
- "@dxos/context": "0.8.4-main.1f223c7",
54
- "@dxos/codec-protobuf": "0.8.4-main.1f223c7",
55
- "@dxos/debug": "0.8.4-main.1f223c7",
56
- "@dxos/assistant": "0.8.4-main.1f223c7",
57
- "@dxos/display-name": "0.8.4-main.1f223c7",
58
- "@dxos/echo": "0.8.4-main.1f223c7",
59
- "@dxos/devtools": "0.8.4-main.1f223c7",
60
- "@dxos/invariant": "0.8.4-main.1f223c7",
61
- "@dxos/echo-schema": "0.8.4-main.1f223c7",
62
- "@dxos/keys": "0.8.4-main.1f223c7",
63
- "@dxos/live-object": "0.8.4-main.1f223c7",
64
- "@dxos/local-storage": "0.8.4-main.1f223c7",
65
- "@dxos/log": "0.8.4-main.1f223c7",
66
- "@dxos/plugin-attention": "0.8.4-main.1f223c7",
67
- "@dxos/plugin-client": "0.8.4-main.1f223c7",
68
- "@dxos/plugin-deck": "0.8.4-main.1f223c7",
69
- "@dxos/plugin-markdown": "0.8.4-main.1f223c7",
70
- "@dxos/plugin-space": "0.8.4-main.1f223c7",
71
- "@dxos/plugin-observability": "0.8.4-main.1f223c7",
72
- "@dxos/protocols": "0.8.4-main.1f223c7",
73
- "@dxos/plugin-graph": "0.8.4-main.1f223c7",
74
- "@dxos/react-client": "0.8.4-main.1f223c7",
75
- "@dxos/react-ui-attention": "0.8.4-main.1f223c7",
76
- "@dxos/react-ui-dnd": "0.8.4-main.1f223c7",
77
- "@dxos/react-ui-editor": "0.8.4-main.1f223c7",
78
- "@dxos/react-ui-form": "0.8.4-main.1f223c7",
79
- "@dxos/react-ui-menu": "0.8.4-main.1f223c7",
80
- "@dxos/react-ui-sfx": "0.8.4-main.1f223c7",
81
- "@dxos/react-ui-stack": "0.8.4-main.1f223c7",
82
- "@dxos/react-ui-syntax-highlighter": "0.8.4-main.1f223c7",
83
- "@dxos/react-ui-tabs": "0.8.4-main.1f223c7",
84
- "@dxos/react-ui-thread": "0.8.4-main.1f223c7",
85
- "@dxos/util": "0.8.4-main.1f223c7",
86
- "@dxos/schema": "0.8.4-main.1f223c7"
52
+ "@dxos/async": "0.8.4-main.2c6827d",
53
+ "@dxos/assistant": "0.8.4-main.2c6827d",
54
+ "@dxos/blueprints": "0.8.4-main.2c6827d",
55
+ "@dxos/context": "0.8.4-main.2c6827d",
56
+ "@dxos/debug": "0.8.4-main.2c6827d",
57
+ "@dxos/codec-protobuf": "0.8.4-main.2c6827d",
58
+ "@dxos/app-framework": "0.8.4-main.2c6827d",
59
+ "@dxos/echo-db": "0.8.4-main.2c6827d",
60
+ "@dxos/invariant": "0.8.4-main.2c6827d",
61
+ "@dxos/functions": "0.8.4-main.2c6827d",
62
+ "@dxos/display-name": "0.8.4-main.2c6827d",
63
+ "@dxos/keys": "0.8.4-main.2c6827d",
64
+ "@dxos/live-object": "0.8.4-main.2c6827d",
65
+ "@dxos/local-storage": "0.8.4-main.2c6827d",
66
+ "@dxos/log": "0.8.4-main.2c6827d",
67
+ "@dxos/devtools": "0.8.4-main.2c6827d",
68
+ "@dxos/plugin-client": "0.8.4-main.2c6827d",
69
+ "@dxos/plugin-attention": "0.8.4-main.2c6827d",
70
+ "@dxos/plugin-deck": "0.8.4-main.2c6827d",
71
+ "@dxos/echo": "0.8.4-main.2c6827d",
72
+ "@dxos/plugin-graph": "0.8.4-main.2c6827d",
73
+ "@dxos/plugin-observability": "0.8.4-main.2c6827d",
74
+ "@dxos/plugin-markdown": "0.8.4-main.2c6827d",
75
+ "@dxos/plugin-space": "0.8.4-main.2c6827d",
76
+ "@dxos/protocols": "0.8.4-main.2c6827d",
77
+ "@dxos/react-ui-attention": "0.8.4-main.2c6827d",
78
+ "@dxos/react-client": "0.8.4-main.2c6827d",
79
+ "@dxos/react-ui-dnd": "0.8.4-main.2c6827d",
80
+ "@dxos/react-ui-form": "0.8.4-main.2c6827d",
81
+ "@dxos/react-ui-menu": "0.8.4-main.2c6827d",
82
+ "@dxos/react-ui-sfx": "0.8.4-main.2c6827d",
83
+ "@dxos/react-ui-stack": "0.8.4-main.2c6827d",
84
+ "@dxos/react-ui-editor": "0.8.4-main.2c6827d",
85
+ "@dxos/react-ui-tabs": "0.8.4-main.2c6827d",
86
+ "@dxos/react-ui-syntax-highlighter": "0.8.4-main.2c6827d",
87
+ "@dxos/react-ui-thread": "0.8.4-main.2c6827d",
88
+ "@dxos/schema": "0.8.4-main.2c6827d",
89
+ "@dxos/util": "0.8.4-main.2c6827d",
90
+ "@dxos/types": "0.8.4-main.2c6827d"
87
91
  },
88
92
  "devDependencies": {
89
- "@effect-rx/rx-react": "0.38.0",
90
- "@effect/platform": "0.90.2",
91
- "@types/react": "~18.2.0",
92
- "@types/react-dom": "~18.2.0",
93
- "effect": "3.17.7",
94
- "react": "~18.2.0",
95
- "react-dom": "~18.2.0",
96
- "vite": "7.1.1",
97
- "@dxos/react-ui": "0.8.4-main.1f223c7",
98
- "@dxos/random": "0.8.4-main.1f223c7",
99
- "@dxos/react-ui-theme": "0.8.4-main.1f223c7",
100
- "@dxos/plugin-theme": "0.8.4-main.1f223c7",
101
- "@dxos/storybook-utils": "0.8.4-main.1f223c7"
93
+ "@effect-atom/atom-react": "^0.3.4",
94
+ "@effect/platform": "0.92.1",
95
+ "@types/react": "~19.2.2",
96
+ "@types/react-dom": "~19.2.2",
97
+ "effect": "3.18.3",
98
+ "react": "~19.2.0",
99
+ "react-dom": "~19.2.0",
100
+ "vite": "7.1.9",
101
+ "@dxos/random": "0.8.4-main.2c6827d",
102
+ "@dxos/plugin-theme": "0.8.4-main.2c6827d",
103
+ "@dxos/react-ui": "0.8.4-main.2c6827d",
104
+ "@dxos/storybook-utils": "0.8.4-main.2c6827d",
105
+ "@dxos/react-ui-theme": "0.8.4-main.2c6827d"
102
106
  },
103
107
  "peerDependencies": {
104
- "@effect-rx/rx-react": "^0.34.1",
108
+ "@effect-atom/atom-react": "^0.3.4",
105
109
  "@effect/platform": "^0.80.12",
106
110
  "effect": "^3.13.3",
107
- "react": "~18.2.0",
108
- "react-dom": "~18.2.0",
109
- "@dxos/react-ui": "0.8.4-main.1f223c7",
110
- "@dxos/react-ui-theme": "0.8.4-main.1f223c7"
111
+ "react": "^19.0.0",
112
+ "react-dom": "^19.0.0",
113
+ "@dxos/react-ui": "0.8.4-main.2c6827d",
114
+ "@dxos/react-ui-theme": "0.8.4-main.2c6827d"
111
115
  },
112
116
  "publishConfig": {
113
117
  "access": "public"
@@ -3,160 +3,167 @@
3
3
  //
4
4
 
5
5
  import { Capabilities, Events, contributes, createIntent, defineModule, definePlugin } from '@dxos/app-framework';
6
- import { Ref } from '@dxos/echo';
6
+ import { Ref, Type } from '@dxos/echo';
7
7
  import { ClientCapabilities, ClientEvents } from '@dxos/plugin-client';
8
8
  import { MarkdownEvents } from '@dxos/plugin-markdown';
9
9
  import { SpaceCapabilities, SpaceEvents } from '@dxos/plugin-space';
10
10
  import { defineObjectForm } from '@dxos/plugin-space/types';
11
11
  import { translations as threadTranslations } from '@dxos/react-ui-thread';
12
- import { AnchoredTo, DataType } from '@dxos/schema';
12
+ import { AnchoredTo, Message, Thread } from '@dxos/types';
13
13
 
14
14
  import {
15
15
  AppGraphBuilder,
16
+ BlueprintDefinition,
16
17
  CallManager,
17
18
  IntentResolver,
18
19
  Markdown,
19
20
  ReactRoot,
20
21
  ReactSurface,
21
22
  ThreadState,
22
- Toolkit,
23
23
  } from './capabilities';
24
24
  import { THREAD_ITEM, meta } from './meta';
25
25
  import { translations } from './translations';
26
- import { ChannelType, ThreadAction, ThreadType } from './types';
26
+ import { Channel, ThreadAction } from './types';
27
27
 
28
28
  // TODO(Zan): Every instance of `cursor` should be replaced with `anchor`.
29
29
  // NOTE(burdon): Review/discuss CursorConverter semantics.
30
30
 
31
31
  // TODO(wittjosiah): Rename to ChatPlugin.
32
32
  // TODO(wittjosiah): Enabling comments should likely be factored out of this plugin but depend on it's capabilities.
33
- export const ThreadPlugin = () =>
34
- definePlugin(meta, [
35
- defineModule({
36
- id: `${meta.id}/module/call-manager`,
37
- activatesOn: ClientEvents.ClientReady,
38
- activate: CallManager,
39
- }),
40
- // TODO(wittjosiah): Currently not used but leaving because there will likely be settings for threads again.
41
- // defineModule({
42
- // id: `${meta.id}/module/settings`,
43
- // activatesOn: Events.SetupSettings,
44
- // activate: ThreadSettings,
45
- // }),
46
- defineModule({
47
- id: `${meta.id}/module/state`,
48
- // TODO(wittjosiah): Does not integrate with settings store.
49
- // Should this be a different event?
50
- // Should settings store be renamed to be more generic?
51
- activatesOn: Events.SetupSettings,
52
- activate: ThreadState,
53
- }),
54
- defineModule({
55
- id: `${meta.id}/module/translations`,
56
- activatesOn: Events.SetupTranslations,
57
- activate: () => contributes(Capabilities.Translations, [...translations, ...threadTranslations]),
58
- }),
59
- defineModule({
60
- id: `${meta.id}/module/metadata`,
61
- activatesOn: Events.SetupMetadata,
62
- activate: () => [
63
- contributes(Capabilities.Metadata, {
64
- id: ChannelType.typename,
65
- metadata: {
66
- icon: 'ph--hash--regular',
33
+ export const ThreadPlugin = definePlugin(meta, () => [
34
+ defineModule({
35
+ id: `${meta.id}/module/call-manager`,
36
+ activatesOn: ClientEvents.ClientReady,
37
+ activate: CallManager,
38
+ }),
39
+ // TODO(wittjosiah): Currently not used but leaving because there will likely be settings for threads again.
40
+ // defineModule({
41
+ // id: `${meta.id}/module/settings`,
42
+ // activatesOn: Events.SetupSettings,
43
+ // activate: ThreadSettings,
44
+ // }),
45
+ defineModule({
46
+ id: `${meta.id}/module/state`,
47
+ // TODO(wittjosiah): Does not integrate with settings store.
48
+ // Should this be a different event?
49
+ // Should settings store be renamed to be more generic?
50
+ activatesOn: Events.SetupSettings,
51
+ activate: ThreadState,
52
+ }),
53
+ defineModule({
54
+ id: `${meta.id}/module/translations`,
55
+ activatesOn: Events.SetupTranslations,
56
+ activate: () => contributes(Capabilities.Translations, [...translations, ...threadTranslations]),
57
+ }),
58
+ defineModule({
59
+ id: `${meta.id}/module/metadata`,
60
+ activatesOn: Events.SetupMetadata,
61
+ activate: () => [
62
+ contributes(Capabilities.Metadata, {
63
+ id: Type.getTypename(Channel.Channel),
64
+ metadata: {
65
+ icon: 'ph--hash--regular',
66
+ iconHue: 'rose',
67
+ },
68
+ }),
69
+ contributes(Capabilities.Metadata, {
70
+ id: Type.getTypename(Thread.Thread),
71
+ metadata: {
72
+ // TODO(wittjosiah): Move out of metadata.
73
+ loadReferences: async (thread: Thread.Thread) => await Ref.Array.loadAll(thread.messages ?? []),
74
+ },
75
+ }),
76
+ contributes(Capabilities.Metadata, {
77
+ id: Message.Message.typename,
78
+ metadata: {
79
+ // TODO(wittjosiah): Move out of metadata.
80
+ loadReferences: () => [], // loadObjectReferences(message, (message) => [...message.parts, message.context]),
81
+ },
82
+ }),
83
+ contributes(Capabilities.Metadata, {
84
+ id: THREAD_ITEM,
85
+ metadata: {
86
+ parse: (item: Thread.Thread, type: string) => {
87
+ switch (type) {
88
+ case 'node':
89
+ return { id: item.id, label: item.name, data: item };
90
+ case 'object':
91
+ return item;
92
+ case 'view-object':
93
+ return { id: `${item.id}-view`, object: item };
94
+ }
67
95
  },
96
+ },
97
+ }),
98
+ ],
99
+ }),
100
+ defineModule({
101
+ id: `${meta.id}/module/object-form`,
102
+ activatesOn: ClientEvents.SetupSchema,
103
+ activate: () =>
104
+ contributes(
105
+ SpaceCapabilities.ObjectForm,
106
+ defineObjectForm({
107
+ objectSchema: Channel.Channel,
108
+ getIntent: (_, options) =>
109
+ createIntent(ThreadAction.CreateChannel, {
110
+ spaceId: options.space.id,
111
+ }),
68
112
  }),
69
- contributes(Capabilities.Metadata, {
70
- id: ThreadType.typename,
71
- metadata: {
72
- // TODO(wittjosiah): Move out of metadata.
73
- loadReferences: async (thread: ThreadType) => await Ref.Array.loadAll(thread.messages ?? []),
74
- },
75
- }),
76
- contributes(Capabilities.Metadata, {
77
- id: DataType.Message.typename,
78
- metadata: {
79
- // TODO(wittjosiah): Move out of metadata.
80
- loadReferences: (message: DataType.Message) => [], // loadObjectReferences(message, (message) => [...message.parts, message.context]),
81
- },
82
- }),
83
- contributes(Capabilities.Metadata, {
84
- id: THREAD_ITEM,
85
- metadata: {
86
- parse: (item: ThreadType, type: string) => {
87
- switch (type) {
88
- case 'node':
89
- return { id: item.id, label: item.name, data: item };
90
- case 'object':
91
- return item;
92
- case 'view-object':
93
- return { id: `${item.id}-view`, object: item };
94
- }
95
- },
96
- },
97
- }),
98
- ],
99
- }),
100
- defineModule({
101
- id: `${meta.id}/module/object-form`,
102
- activatesOn: ClientEvents.SetupSchema,
103
- activate: () =>
104
- contributes(
105
- SpaceCapabilities.ObjectForm,
106
- defineObjectForm({
107
- objectSchema: ChannelType,
108
- getIntent: (_, options) => createIntent(ThreadAction.CreateChannel, { spaceId: options.space.id }),
109
- }),
110
- ),
111
- }),
112
- defineModule({
113
- id: `${meta.id}/module/schema`,
114
- activatesOn: ClientEvents.SetupSchema,
115
- activate: () =>
116
- contributes(ClientCapabilities.Schema, [AnchoredTo, ThreadType, DataType.Message, DataType.MessageV1]),
117
- }),
118
- defineModule({
119
- id: `${meta.id}/module/migration`,
120
- activatesOn: ClientEvents.SetupMigration,
121
- activate: () => contributes(ClientCapabilities.Migration, [DataType.MessageV1ToV2]),
122
- }),
123
- defineModule({
124
- id: `${meta.id}/module/on-space-created`,
125
- activatesOn: SpaceEvents.SpaceCreated,
126
- activate: () =>
127
- contributes(SpaceCapabilities.OnSpaceCreated, ({ space, rootCollection }) =>
128
- createIntent(ThreadAction.OnSpaceCreated, { space, rootCollection }),
129
- ),
130
- }),
131
- defineModule({
132
- id: `${meta.id}/module/markdown`,
133
- activatesOn: MarkdownEvents.SetupExtensions,
134
- activate: Markdown,
135
- }),
136
- defineModule({
137
- id: `${meta.id}/module/react-root`,
138
- activatesOn: Events.Startup,
139
- activate: ReactRoot,
140
- }),
141
- defineModule({
142
- id: `${meta.id}/module/react-surface`,
143
- activatesOn: Events.SetupReactSurface,
144
- activate: ReactSurface,
145
- }),
146
- defineModule({
147
- id: `${meta.id}/module/intent-resolver`,
148
- activatesOn: Events.SetupIntentResolver,
149
- activate: IntentResolver,
150
- }),
151
- defineModule({
152
- id: `${meta.id}/module/app-graph-builder`,
153
- activatesOn: Events.SetupAppGraph,
154
- activate: AppGraphBuilder,
155
- }),
156
- defineModule({
157
- id: `${meta.id}/module/toolkit`,
158
- // TODO(wittjosiah): Shouldn't use the startup event.
159
- activatesOn: Events.Startup,
160
- activate: Toolkit,
161
- }),
162
- ]);
113
+ ),
114
+ }),
115
+ defineModule({
116
+ id: `${meta.id}/module/schema`,
117
+ activatesOn: ClientEvents.SetupSchema,
118
+ activate: () =>
119
+ contributes(ClientCapabilities.Schema, [
120
+ AnchoredTo.AnchoredTo,
121
+ Thread.Thread,
122
+ Message.Message,
123
+ Message.MessageV1,
124
+ ]),
125
+ }),
126
+ defineModule({
127
+ id: `${meta.id}/module/migration`,
128
+ activatesOn: ClientEvents.SetupMigration,
129
+ activate: () => contributes(ClientCapabilities.Migration, [Message.MessageV1ToV2]),
130
+ }),
131
+ defineModule({
132
+ id: `${meta.id}/module/on-space-created`,
133
+ activatesOn: SpaceEvents.SpaceCreated,
134
+ activate: () =>
135
+ contributes(SpaceCapabilities.onCreateSpace, ({ space, rootCollection }) =>
136
+ createIntent(ThreadAction.onCreateSpace, { space, rootCollection }),
137
+ ),
138
+ }),
139
+ defineModule({
140
+ id: `${meta.id}/module/markdown`,
141
+ activatesOn: MarkdownEvents.SetupExtensions,
142
+ activate: Markdown,
143
+ }),
144
+ defineModule({
145
+ id: `${meta.id}/module/react-root`,
146
+ activatesOn: Events.Startup,
147
+ activate: ReactRoot,
148
+ }),
149
+ defineModule({
150
+ id: `${meta.id}/module/react-surface`,
151
+ activatesOn: Events.SetupReactSurface,
152
+ activate: ReactSurface,
153
+ }),
154
+ defineModule({
155
+ id: `${meta.id}/module/intent-resolver`,
156
+ activatesOn: Events.SetupIntentResolver,
157
+ activate: IntentResolver,
158
+ }),
159
+ defineModule({
160
+ id: `${meta.id}/module/app-graph-builder`,
161
+ activatesOn: Events.SetupAppGraph,
162
+ activate: AppGraphBuilder,
163
+ }),
164
+ defineModule({
165
+ id: `${meta.id}/module/blueprint`,
166
+ activatesOn: Events.SetupArtifactDefinition,
167
+ activate: BlueprintDefinition,
168
+ }),
169
+ ]);
@@ -59,9 +59,13 @@ const USE_INAUDIBLE_AUDIO = true;
59
59
 
60
60
  export class MediaManager extends Resource {
61
61
  public readonly stateUpdated = new Event<MediaState>();
62
- private readonly _state: MediaState = { pulledVideoStreams: {}, pulledAudioTracks: {} };
63
- private _speakingMonitor?: SpeakingMonitor = undefined;
64
62
 
63
+ private readonly _state: MediaState = {
64
+ pulledVideoStreams: {},
65
+ pulledAudioTracks: {},
66
+ };
67
+
68
+ private _speakingMonitor?: SpeakingMonitor = undefined;
65
69
  private _trackToReconcile: EncodedTrackName[] = [];
66
70
  private _blackCanvasStreamTrack?: MediaStreamTrack = undefined;
67
71
  private _inaudibleAudioStreamTrack?: MediaStreamTrack = undefined;
@@ -85,6 +89,7 @@ export class MediaManager extends Resource {
85
89
  width: VIDEO_WIDTH,
86
90
  height: VIDEO_HEIGHT,
87
91
  });
92
+
88
93
  this._state.videoTrack = this._blackCanvasStreamTrack;
89
94
  this._state.videoStream = new MediaStream();
90
95
  this._state.videoStream.addTrack(this._state.videoTrack);
@@ -137,6 +142,7 @@ export class MediaManager extends Resource {
137
142
  this._state.videoStream!.removeTrack(this._state.videoTrack!);
138
143
  this._state.videoTrack = await getUserMediaTrack('videoinput', { width: VIDEO_WIDTH, height: VIDEO_HEIGHT });
139
144
  this._state.videoStream!.addTrack(this._state.videoTrack);
145
+
140
146
  this._state.videoEnabled = true;
141
147
  this.stateUpdated.emit(this._state);
142
148
  this._pushTracksTask!.schedule();
@@ -226,7 +232,6 @@ export class MediaManager extends Resource {
226
232
  // Wait for cloudflare to process the track.
227
233
  await cancelWithContext(this._ctx, sleep(800));
228
234
  const trackNames = this._trackToReconcile;
229
-
230
235
  const tracksToPull = trackNames.filter(
231
236
  (name) => !this._state.pulledAudioTracks[name] && !this._state.pulledVideoStreams[name],
232
237
  );
@@ -258,8 +263,8 @@ export class MediaManager extends Resource {
258
263
  currentAudioTracks: Object.keys(this._state.pulledAudioTracks),
259
264
  currentVideoStreams: Object.keys(this._state.pulledVideoStreams),
260
265
  });
261
- this.stateUpdated.emit(this._state);
262
266
 
267
+ this.stateUpdated.emit(this._state);
263
268
  if (pullResults.some(({ shouldRetry }) => shouldRetry)) {
264
269
  await cancelWithContext(this._ctx, sleep(RETRY_INTERVAL));
265
270
  log.info('retrying pull tracks', { tracksToPull });
@@ -296,7 +301,6 @@ export class MediaManager extends Resource {
296
301
  }
297
302
 
298
303
  const shouldRetry = pushVideoResult.shouldRetry || pushAudioResult.shouldRetry || pushScreenshareResult.shouldRetry;
299
-
300
304
  if (updated) {
301
305
  this.stateUpdated.emit(this._state);
302
306
  }
@@ -356,7 +360,6 @@ export class MediaManager extends Resource {
356
360
  }
357
361
 
358
362
  const ctx = this._ctx.derive();
359
-
360
363
  try {
361
364
  return {
362
365
  track: await this._state.peer!.pushTrack({
@@ -60,13 +60,12 @@ const userGestureEvents = [
60
60
  */
61
61
  export const createInaudibleAudioStreamTrack = async ({ ctx }: { ctx: Context }): Promise<MediaStreamTrack> => {
62
62
  const audioContext = new window.AudioContext();
63
+
63
64
  const oscillator = audioContext.createOscillator();
64
65
  oscillator.type = 'triangle';
65
- // roughly sounds like a box fan
66
66
  oscillator.frequency.setValueAtTime(20, audioContext.currentTime);
67
67
 
68
68
  const gainNode = audioContext.createGain();
69
- // even w/ gain at 0 some packets are sent
70
69
  gainNode.gain.setValueAtTime(0, audioContext.currentTime);
71
70
  oscillator.connect(gainNode);
72
71
 
@@ -85,6 +84,7 @@ export const createInaudibleAudioStreamTrack = async ({ ctx }: { ctx: Context })
85
84
  audioContextStartedPreviously = true;
86
85
  ensureOscillatorStarted();
87
86
  }
87
+
88
88
  if (audioContext.state === 'suspended' || (audioContext.state as string) === 'interrupted') {
89
89
  resumeAudioContext();
90
90
  }
@@ -2,8 +2,6 @@
2
2
  // Copyright 2025 DXOS.org
3
3
  //
4
4
 
5
- import '@dxos-theme';
6
-
7
5
  import { type Meta, type StoryObj } from '@storybook/react-vite';
8
6
  import React, { useCallback, useEffect, useMemo, useRef, useState } from 'react';
9
7
 
@@ -14,8 +12,8 @@ import { log } from '@dxos/log';
14
12
  import { Config, useConfig } from '@dxos/react-client';
15
13
  import { withClientProvider } from '@dxos/react-client/testing';
16
14
  import { Button } from '@dxos/react-ui';
15
+ import { withTheme } from '@dxos/react-ui/testing';
17
16
  import { Json } from '@dxos/react-ui-syntax-highlighter';
18
- import { withLayout, withTheme } from '@dxos/storybook-utils';
19
17
 
20
18
  const testVideo = new URL('../testing/video.mp4', import.meta.url).href;
21
19
 
@@ -177,6 +175,7 @@ const meta = {
177
175
  title: 'plugins/plugin-thread/calls-service',
178
176
  render: DefaultStory,
179
177
  decorators: [
178
+ withTheme,
180
179
  withClientProvider({
181
180
  config: new Config({
182
181
  runtime: {
@@ -186,8 +185,6 @@ const meta = {
186
185
  },
187
186
  }),
188
187
  }),
189
- withTheme,
190
- withLayout(),
191
188
  ],
192
189
  parameters: {
193
190
  layout: 'centered',