@dxos/plugin-thread 0.8.4-main.67995b8 → 0.8.4-main.70d3990

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 (330) hide show
  1. package/dist/lib/browser/ChannelContainer-L7MKV7DS.mjs +17 -0
  2. package/dist/lib/browser/ChatContainer-KPY4BAUE.mjs +16 -0
  3. package/dist/lib/browser/{app-graph-builder-N7BE5TYW.mjs → app-graph-builder-TWJ2UCOZ.mjs} +33 -33
  4. package/dist/lib/browser/app-graph-builder-TWJ2UCOZ.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-NIPDYUVD.mjs → call-manager-4YFT4XA6.mjs} +8 -7
  8. package/dist/lib/browser/call-manager-4YFT4XA6.mjs.map +7 -0
  9. package/dist/lib/browser/{chunk-KWPRNHTK.mjs → chunk-ALZKJOZK.mjs} +251 -246
  10. package/dist/lib/browser/chunk-ALZKJOZK.mjs.map +7 -0
  11. package/dist/lib/browser/chunk-ANTFU4JB.mjs +25 -0
  12. package/dist/lib/browser/chunk-ANTFU4JB.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-6NSMBO3B.mjs → chunk-ISCHODBV.mjs} +55 -5
  18. package/dist/lib/browser/chunk-ISCHODBV.mjs.map +7 -0
  19. package/dist/lib/browser/chunk-J5LGTIGS.mjs +10 -0
  20. package/dist/lib/browser/chunk-JDJPMI7V.mjs +143 -0
  21. package/dist/lib/browser/chunk-JDJPMI7V.mjs.map +7 -0
  22. package/dist/lib/browser/{chunk-ERWASUQK.mjs → chunk-KOBXMDCI.mjs} +74 -41
  23. package/dist/lib/browser/chunk-KOBXMDCI.mjs.map +7 -0
  24. package/dist/lib/browser/chunk-NPT5S6N4.mjs +611 -0
  25. package/dist/lib/browser/chunk-NPT5S6N4.mjs.map +7 -0
  26. package/dist/lib/browser/chunk-QM34EZQK.mjs +20 -0
  27. package/dist/lib/browser/chunk-QM34EZQK.mjs.map +7 -0
  28. package/dist/lib/browser/chunk-TLOOZTRD.mjs +377 -0
  29. package/dist/lib/browser/chunk-TLOOZTRD.mjs.map +7 -0
  30. package/dist/lib/browser/{chunk-ZE7KWN36.mjs → chunk-ZCW3NSDZ.mjs} +310 -186
  31. package/dist/lib/browser/chunk-ZCW3NSDZ.mjs.map +7 -0
  32. package/dist/lib/browser/index.mjs +61 -53
  33. package/dist/lib/browser/index.mjs.map +3 -3
  34. package/dist/lib/browser/{intent-resolver-JFGLZ6VI.mjs → intent-resolver-G33FT3NO.mjs} +41 -55
  35. package/dist/lib/browser/intent-resolver-G33FT3NO.mjs.map +7 -0
  36. package/dist/lib/browser/{markdown-M3FMR7OD.mjs → markdown-WFZFYJBQ.mjs} +30 -27
  37. package/dist/lib/browser/markdown-WFZFYJBQ.mjs.map +7 -0
  38. package/dist/lib/browser/meta.json +1 -1
  39. package/dist/lib/browser/react-root-ED7PHA44.mjs +29 -0
  40. package/dist/lib/browser/react-root-ED7PHA44.mjs.map +7 -0
  41. package/dist/lib/browser/{react-surface-XWS6GIZY.mjs → react-surface-AUQQSQQC.mjs} +38 -36
  42. package/dist/lib/browser/react-surface-AUQQSQQC.mjs.map +7 -0
  43. package/dist/lib/browser/repair-JFJLEM2O.mjs +35 -0
  44. package/dist/lib/browser/repair-JFJLEM2O.mjs.map +7 -0
  45. package/dist/lib/browser/{settings-E32MTL7A.mjs → settings-E6IOLK46.mjs} +6 -5
  46. package/dist/lib/{node-esm/settings-SJ24YG7M.mjs.map → browser/settings-E6IOLK46.mjs.map} +1 -1
  47. package/dist/lib/browser/{state-H6CYONWE.mjs → state-UYPLBGZJ.mjs} +6 -5
  48. package/dist/lib/browser/state-UYPLBGZJ.mjs.map +7 -0
  49. package/dist/lib/browser/types/index.mjs +7 -10
  50. package/dist/lib/node-esm/ChannelContainer-FYONOOZ6.mjs +18 -0
  51. package/dist/lib/node-esm/ChatContainer-TLQG23K7.mjs +17 -0
  52. package/dist/lib/node-esm/ChatContainer-TLQG23K7.mjs.map +7 -0
  53. package/dist/lib/node-esm/{app-graph-builder-VCW76Z6V.mjs → app-graph-builder-VD6I2V5H.mjs} +33 -33
  54. package/dist/lib/node-esm/app-graph-builder-VD6I2V5H.mjs.map +7 -0
  55. package/dist/lib/node-esm/blueprint-definition-TSX5HHW7.mjs +102 -0
  56. package/dist/lib/node-esm/blueprint-definition-TSX5HHW7.mjs.map +7 -0
  57. package/dist/lib/node-esm/{call-manager-D6O5ZJJ4.mjs → call-manager-UMUXEYH5.mjs} +8 -7
  58. package/dist/lib/node-esm/call-manager-UMUXEYH5.mjs.map +7 -0
  59. package/dist/lib/node-esm/chunk-2AEIN5MI.mjs +22 -0
  60. package/dist/lib/node-esm/chunk-2AEIN5MI.mjs.map +7 -0
  61. package/dist/lib/node-esm/{chunk-IHDNQLLR.mjs → chunk-7KZWZS2U.mjs} +310 -186
  62. package/dist/lib/node-esm/chunk-7KZWZS2U.mjs.map +7 -0
  63. package/dist/lib/node-esm/{chunk-C3XFMUAY.mjs → chunk-AB42KYF3.mjs} +251 -246
  64. package/dist/lib/node-esm/chunk-AB42KYF3.mjs.map +7 -0
  65. package/dist/lib/node-esm/{chunk-57XR3LEF.mjs → chunk-ABUFOZVX.mjs} +2 -2
  66. package/dist/lib/node-esm/chunk-ABUFOZVX.mjs.map +7 -0
  67. package/dist/lib/node-esm/chunk-ATNY37UV.mjs +27 -0
  68. package/dist/lib/node-esm/chunk-ATNY37UV.mjs.map +7 -0
  69. package/dist/lib/node-esm/chunk-E5HNHFYH.mjs +378 -0
  70. package/dist/lib/node-esm/chunk-E5HNHFYH.mjs.map +7 -0
  71. package/dist/lib/node-esm/chunk-FF3QVPY4.mjs +612 -0
  72. package/dist/lib/node-esm/chunk-FF3QVPY4.mjs.map +7 -0
  73. package/dist/lib/node-esm/chunk-HSLMI22Q.mjs +11 -0
  74. package/dist/lib/node-esm/chunk-HSLMI22Q.mjs.map +7 -0
  75. package/dist/lib/node-esm/chunk-P2M364TO.mjs +144 -0
  76. package/dist/lib/node-esm/chunk-P2M364TO.mjs.map +7 -0
  77. package/dist/lib/node-esm/{chunk-25ABSYP2.mjs → chunk-PZH2EDU5.mjs} +74 -41
  78. package/dist/lib/node-esm/chunk-PZH2EDU5.mjs.map +7 -0
  79. package/dist/lib/node-esm/chunk-RT6NRL2I.mjs +19 -0
  80. package/dist/lib/node-esm/chunk-RT6NRL2I.mjs.map +7 -0
  81. package/dist/lib/node-esm/{chunk-OU5BYIDO.mjs → chunk-VBI32FGI.mjs} +55 -5
  82. package/dist/lib/node-esm/chunk-VBI32FGI.mjs.map +7 -0
  83. package/dist/lib/node-esm/index.mjs +61 -53
  84. package/dist/lib/node-esm/index.mjs.map +3 -3
  85. package/dist/lib/node-esm/{intent-resolver-OXGNQ44Y.mjs → intent-resolver-4PX3WXQG.mjs} +41 -55
  86. package/dist/lib/node-esm/intent-resolver-4PX3WXQG.mjs.map +7 -0
  87. package/dist/lib/node-esm/{markdown-INKTE4MH.mjs → markdown-CSR5MAPZ.mjs} +30 -27
  88. package/dist/lib/node-esm/markdown-CSR5MAPZ.mjs.map +7 -0
  89. package/dist/lib/node-esm/meta.json +1 -1
  90. package/dist/lib/node-esm/react-root-DZN324JA.mjs +30 -0
  91. package/dist/lib/node-esm/react-root-DZN324JA.mjs.map +7 -0
  92. package/dist/lib/node-esm/{react-surface-MJ33KPYE.mjs → react-surface-AMVESEF4.mjs} +38 -36
  93. package/dist/lib/node-esm/react-surface-AMVESEF4.mjs.map +7 -0
  94. package/dist/lib/node-esm/repair-RMLR24YR.mjs +36 -0
  95. package/dist/lib/node-esm/repair-RMLR24YR.mjs.map +7 -0
  96. package/dist/lib/node-esm/{settings-SJ24YG7M.mjs → settings-RGZHWDSO.mjs} +6 -5
  97. package/dist/lib/{browser/settings-E32MTL7A.mjs.map → node-esm/settings-RGZHWDSO.mjs.map} +1 -1
  98. package/dist/lib/node-esm/{state-D7WNDT3N.mjs → state-XNWOLBNE.mjs} +6 -5
  99. package/dist/lib/node-esm/state-XNWOLBNE.mjs.map +7 -0
  100. package/dist/lib/node-esm/types/index.mjs +7 -10
  101. package/dist/types/src/ThreadPlugin.d.ts +1 -1
  102. package/dist/types/src/ThreadPlugin.d.ts.map +1 -1
  103. package/dist/types/src/calls/call-manager.d.ts.map +1 -1
  104. package/dist/types/src/calls/call-swarm-synchronizer.d.ts.map +1 -1
  105. package/dist/types/src/calls/media-manager.d.ts +1 -1
  106. package/dist/types/src/calls/media-manager.d.ts.map +1 -1
  107. package/dist/types/src/calls/types.d.ts +1 -1
  108. package/dist/types/src/calls/types.d.ts.map +1 -1
  109. package/dist/types/src/calls/util/calls-service.d.ts +4 -2
  110. package/dist/types/src/calls/util/calls-service.d.ts.map +1 -1
  111. package/dist/types/src/calls/util/stub-media-streams.d.ts.map +1 -1
  112. package/dist/types/src/calls-service.stories.d.ts +10 -9
  113. package/dist/types/src/calls-service.stories.d.ts.map +1 -1
  114. package/dist/types/src/capabilities/app-graph-builder.d.ts +1 -1
  115. package/dist/types/src/capabilities/app-graph-builder.d.ts.map +1 -1
  116. package/dist/types/src/capabilities/blueprint-definition.d.ts +5 -0
  117. package/dist/types/src/capabilities/blueprint-definition.d.ts.map +1 -0
  118. package/dist/types/src/capabilities/call-manager.d.ts +1 -1
  119. package/dist/types/src/capabilities/call-manager.d.ts.map +1 -1
  120. package/dist/types/src/capabilities/capabilities.d.ts +3 -3
  121. package/dist/types/src/capabilities/capabilities.d.ts.map +1 -1
  122. package/dist/types/src/capabilities/index.d.ts +12 -10
  123. package/dist/types/src/capabilities/index.d.ts.map +1 -1
  124. package/dist/types/src/capabilities/intent-resolver.d.ts +1 -1
  125. package/dist/types/src/capabilities/intent-resolver.d.ts.map +1 -1
  126. package/dist/types/src/capabilities/markdown.d.ts +1 -1
  127. package/dist/types/src/capabilities/markdown.d.ts.map +1 -1
  128. package/dist/types/src/capabilities/react-root.d.ts +2 -2
  129. package/dist/types/src/capabilities/react-surface.d.ts +1 -1
  130. package/dist/types/src/capabilities/react-surface.d.ts.map +1 -1
  131. package/dist/types/src/capabilities/repair.d.ts +4 -0
  132. package/dist/types/src/capabilities/repair.d.ts.map +1 -0
  133. package/dist/types/src/capabilities/settings.d.ts +1 -1
  134. package/dist/types/src/capabilities/state.d.ts +2 -2
  135. package/dist/types/src/capabilities/state.d.ts.map +1 -1
  136. package/dist/types/src/components/Call/Call.d.ts.map +1 -1
  137. package/dist/types/src/components/Call/Toolbar.d.ts +2 -2
  138. package/dist/types/src/components/Call/Toolbar.d.ts.map +1 -1
  139. package/dist/types/src/components/CallDebugPanel.d.ts +7 -0
  140. package/dist/types/src/components/CallDebugPanel.d.ts.map +1 -1
  141. package/dist/types/src/components/CallSidebar.d.ts.map +1 -1
  142. package/dist/types/src/components/ChannelContainer.d.ts +2 -2
  143. package/dist/types/src/components/ChannelContainer.d.ts.map +1 -1
  144. package/dist/types/src/components/ChannelContainer.stories.d.ts +159 -5
  145. package/dist/types/src/components/ChannelContainer.stories.d.ts.map +1 -1
  146. package/dist/types/src/components/Chat.stories.d.ts +162 -5
  147. package/dist/types/src/components/Chat.stories.d.ts.map +1 -1
  148. package/dist/types/src/components/ChatContainer.d.ts +6 -5
  149. package/dist/types/src/components/ChatContainer.d.ts.map +1 -1
  150. package/dist/types/src/components/Comments.stories.d.ts +160 -4
  151. package/dist/types/src/components/Comments.stories.d.ts.map +1 -1
  152. package/dist/types/src/components/CommentsContainer.d.ts +2 -2
  153. package/dist/types/src/components/CommentsContainer.d.ts.map +1 -1
  154. package/dist/types/src/components/CommentsThreadContainer.d.ts +9 -9
  155. package/dist/types/src/components/CommentsThreadContainer.d.ts.map +1 -1
  156. package/dist/types/src/components/Lobby/Lobby.d.ts.map +1 -1
  157. package/dist/types/src/components/Media/VideoObject.d.ts +2 -2
  158. package/dist/types/src/components/Media/VideoObject.d.ts.map +1 -1
  159. package/dist/types/src/components/Media/VideoObject.stories.d.ts +18 -4
  160. package/dist/types/src/components/Media/VideoObject.stories.d.ts.map +1 -1
  161. package/dist/types/src/components/MessageContainer.d.ts +8 -3
  162. package/dist/types/src/components/MessageContainer.d.ts.map +1 -1
  163. package/dist/types/src/components/Participant/Participant.d.ts.map +1 -1
  164. package/dist/types/src/components/Participant/ParticipantGrid.d.ts.map +1 -1
  165. package/dist/types/src/components/ResponsiveGrid/ResponsiveContainer.stories.d.ts +159 -3
  166. package/dist/types/src/components/ResponsiveGrid/ResponsiveContainer.stories.d.ts.map +1 -1
  167. package/dist/types/src/components/ResponsiveGrid/ResponsiveGrid.stories.d.ts +161 -4
  168. package/dist/types/src/components/ResponsiveGrid/ResponsiveGrid.stories.d.ts.map +1 -1
  169. package/dist/types/src/components/ResponsiveGrid/ResponsiveGridItem.d.ts.map +1 -1
  170. package/dist/types/src/components/ThreadCompanion.d.ts +5 -0
  171. package/dist/types/src/components/ThreadCompanion.d.ts.map +1 -0
  172. package/dist/types/src/components/ThreadSettings.d.ts +1 -1
  173. package/dist/types/src/components/ThreadSettings.d.ts.map +1 -1
  174. package/dist/types/src/components/command-extension.d.ts.map +1 -1
  175. package/dist/types/src/components/index.d.ts +3 -3
  176. package/dist/types/src/components/index.d.ts.map +1 -1
  177. package/dist/types/src/components/testing.d.ts +3 -2
  178. package/dist/types/src/components/testing.d.ts.map +1 -1
  179. package/dist/types/src/extensions/threads.d.ts.map +1 -1
  180. package/dist/types/src/functions/create-proposals.d.ts +6 -0
  181. package/dist/types/src/functions/create-proposals.d.ts.map +1 -0
  182. package/dist/types/src/functions/index.d.ts +2 -0
  183. package/dist/types/src/functions/index.d.ts.map +1 -0
  184. package/dist/types/src/hooks/analytics.d.ts +2 -2
  185. package/dist/types/src/hooks/analytics.d.ts.map +1 -1
  186. package/dist/types/src/hooks/index.d.ts +2 -1
  187. package/dist/types/src/hooks/index.d.ts.map +1 -1
  188. package/dist/types/src/hooks/useBlackCanvasStreamTrack.d.ts +2 -0
  189. package/dist/types/src/hooks/useBlackCanvasStreamTrack.d.ts.map +1 -0
  190. package/dist/types/src/hooks/useVideoStreamTrack.d.ts +1 -1
  191. package/dist/types/src/hooks/useVideoStreamTrack.d.ts.map +1 -1
  192. package/dist/types/src/meta.d.ts +1 -2
  193. package/dist/types/src/meta.d.ts.map +1 -1
  194. package/dist/types/src/testing/stories.d.ts.map +1 -1
  195. package/dist/types/src/translations.d.ts +79 -7
  196. package/dist/types/src/translations.d.ts.map +1 -1
  197. package/dist/types/src/types/Channel.d.ts +16 -0
  198. package/dist/types/src/types/Channel.d.ts.map +1 -0
  199. package/dist/types/src/types/index.d.ts +1 -1
  200. package/dist/types/src/types/index.d.ts.map +1 -1
  201. package/dist/types/src/types/types.d.ts +236 -265
  202. package/dist/types/src/types/types.d.ts.map +1 -1
  203. package/dist/types/tsconfig.tsbuildinfo +1 -1
  204. package/package.json +69 -63
  205. package/src/ThreadPlugin.tsx +137 -129
  206. package/src/calls/call-manager.ts +2 -2
  207. package/src/calls/call-swarm-synchronizer.ts +1 -1
  208. package/src/calls/media-manager.ts +66 -37
  209. package/src/calls/types.ts +8 -4
  210. package/src/calls/util/calls-service.ts +65 -14
  211. package/src/calls/util/stub-media-streams.ts +64 -7
  212. package/src/calls-service.stories.tsx +78 -65
  213. package/src/capabilities/app-graph-builder.ts +47 -33
  214. package/src/capabilities/blueprint-definition.ts +38 -0
  215. package/src/capabilities/call-manager.ts +3 -2
  216. package/src/capabilities/capabilities.ts +8 -8
  217. package/src/capabilities/index.ts +2 -0
  218. package/src/capabilities/intent-resolver.ts +32 -35
  219. package/src/capabilities/markdown.ts +9 -6
  220. package/src/capabilities/react-root.tsx +2 -2
  221. package/src/capabilities/react-surface.tsx +29 -26
  222. package/src/capabilities/repair.ts +40 -0
  223. package/src/capabilities/state.ts +2 -1
  224. package/src/components/Call/Call.tsx +4 -3
  225. package/src/components/Call/Toolbar.tsx +10 -10
  226. package/src/components/CallDebugPanel.tsx +112 -55
  227. package/src/components/CallSidebar.tsx +3 -2
  228. package/src/components/ChannelContainer.stories.tsx +15 -14
  229. package/src/components/ChannelContainer.tsx +25 -20
  230. package/src/components/Chat.stories.tsx +33 -36
  231. package/src/components/ChatContainer.tsx +35 -23
  232. package/src/components/Comments.stories.tsx +39 -41
  233. package/src/components/CommentsContainer.tsx +7 -8
  234. package/src/components/CommentsThreadContainer.tsx +39 -33
  235. package/src/components/Lobby/Lobby.tsx +2 -2
  236. package/src/components/Media/VideoObject.stories.tsx +36 -28
  237. package/src/components/Media/VideoObject.tsx +1 -1
  238. package/src/components/MessageContainer.tsx +53 -17
  239. package/src/components/Participant/Participant.tsx +14 -8
  240. package/src/components/Participant/ParticipantGrid.tsx +2 -1
  241. package/src/components/ResponsiveGrid/ResponsiveContainer.stories.tsx +8 -8
  242. package/src/components/ResponsiveGrid/ResponsiveContainer.tsx +2 -2
  243. package/src/components/ResponsiveGrid/ResponsiveGrid.stories.tsx +45 -43
  244. package/src/components/ResponsiveGrid/ResponsiveGrid.tsx +6 -6
  245. package/src/components/ResponsiveGrid/ResponsiveGridItem.tsx +7 -4
  246. package/src/components/{ThreadComplementary.tsx → ThreadCompanion.tsx} +72 -35
  247. package/src/components/ThreadSettings.tsx +6 -7
  248. package/src/components/command-extension.ts +5 -2
  249. package/src/components/index.ts +4 -4
  250. package/src/components/testing.ts +26 -6
  251. package/src/extensions/threads.ts +31 -21
  252. package/src/functions/create-proposals.ts +56 -0
  253. package/src/functions/index.ts +5 -0
  254. package/src/hooks/analytics.ts +4 -7
  255. package/src/hooks/index.ts +3 -1
  256. package/src/hooks/useBlackCanvasStreamTrack.tsx +27 -0
  257. package/src/hooks/useDebugMode.ts +1 -1
  258. package/src/hooks/useVideoStreamTrack.tsx +6 -3
  259. package/src/meta.ts +9 -5
  260. package/src/testing/stories.ts +5 -8
  261. package/src/translations.ts +9 -4
  262. package/src/types/Channel.ts +26 -0
  263. package/src/types/index.ts +1 -1
  264. package/src/types/types.ts +31 -30
  265. package/src/typings/peermetrics-webrtc-stats.d.ts +17 -1
  266. package/src/typings.d.ts +8 -0
  267. package/src/util.ts +1 -1
  268. package/dist/lib/browser/ChannelContainer-3GIE7ASU.mjs +0 -16
  269. package/dist/lib/browser/ChatContainer-AIGIWAUG.mjs +0 -15
  270. package/dist/lib/browser/app-graph-builder-N7BE5TYW.mjs.map +0 -7
  271. package/dist/lib/browser/call-manager-NIPDYUVD.mjs.map +0 -7
  272. package/dist/lib/browser/chunk-3SGRT4NM.mjs +0 -367
  273. package/dist/lib/browser/chunk-3SGRT4NM.mjs.map +0 -7
  274. package/dist/lib/browser/chunk-6NSMBO3B.mjs.map +0 -7
  275. package/dist/lib/browser/chunk-ERWASUQK.mjs.map +0 -7
  276. package/dist/lib/browser/chunk-EV4JWI7L.mjs +0 -17
  277. package/dist/lib/browser/chunk-EV4JWI7L.mjs.map +0 -7
  278. package/dist/lib/browser/chunk-FR7KJPNY.mjs +0 -21
  279. package/dist/lib/browser/chunk-FR7KJPNY.mjs.map +0 -7
  280. package/dist/lib/browser/chunk-GCLD5ESP.mjs +0 -137
  281. package/dist/lib/browser/chunk-GCLD5ESP.mjs.map +0 -7
  282. package/dist/lib/browser/chunk-GERVMFQW.mjs.map +0 -7
  283. package/dist/lib/browser/chunk-KWPRNHTK.mjs.map +0 -7
  284. package/dist/lib/browser/chunk-LGSDKXPF.mjs +0 -18
  285. package/dist/lib/browser/chunk-LGSDKXPF.mjs.map +0 -7
  286. package/dist/lib/browser/chunk-VUWC4IJM.mjs +0 -479
  287. package/dist/lib/browser/chunk-VUWC4IJM.mjs.map +0 -7
  288. package/dist/lib/browser/chunk-ZE7KWN36.mjs.map +0 -7
  289. package/dist/lib/browser/intent-resolver-JFGLZ6VI.mjs.map +0 -7
  290. package/dist/lib/browser/markdown-M3FMR7OD.mjs.map +0 -7
  291. package/dist/lib/browser/react-root-JEUSQXI6.mjs +0 -28
  292. package/dist/lib/browser/react-root-JEUSQXI6.mjs.map +0 -7
  293. package/dist/lib/browser/react-surface-XWS6GIZY.mjs.map +0 -7
  294. package/dist/lib/browser/state-H6CYONWE.mjs.map +0 -7
  295. package/dist/lib/node-esm/ChannelContainer-7FXCKO7X.mjs +0 -17
  296. package/dist/lib/node-esm/ChatContainer-IQUWU426.mjs +0 -16
  297. package/dist/lib/node-esm/app-graph-builder-VCW76Z6V.mjs.map +0 -7
  298. package/dist/lib/node-esm/call-manager-D6O5ZJJ4.mjs.map +0 -7
  299. package/dist/lib/node-esm/chunk-25ABSYP2.mjs.map +0 -7
  300. package/dist/lib/node-esm/chunk-2CXOK2TD.mjs +0 -23
  301. package/dist/lib/node-esm/chunk-2CXOK2TD.mjs.map +0 -7
  302. package/dist/lib/node-esm/chunk-2MFNK53T.mjs +0 -480
  303. package/dist/lib/node-esm/chunk-2MFNK53T.mjs.map +0 -7
  304. package/dist/lib/node-esm/chunk-57XR3LEF.mjs.map +0 -7
  305. package/dist/lib/node-esm/chunk-75RJ5DJI.mjs +0 -19
  306. package/dist/lib/node-esm/chunk-75RJ5DJI.mjs.map +0 -7
  307. package/dist/lib/node-esm/chunk-C3XFMUAY.mjs.map +0 -7
  308. package/dist/lib/node-esm/chunk-FLBFYGBK.mjs +0 -368
  309. package/dist/lib/node-esm/chunk-FLBFYGBK.mjs.map +0 -7
  310. package/dist/lib/node-esm/chunk-GRLRWTRU.mjs +0 -19
  311. package/dist/lib/node-esm/chunk-GRLRWTRU.mjs.map +0 -7
  312. package/dist/lib/node-esm/chunk-IHDNQLLR.mjs.map +0 -7
  313. package/dist/lib/node-esm/chunk-OU5BYIDO.mjs.map +0 -7
  314. package/dist/lib/node-esm/chunk-TDFHTCZZ.mjs +0 -138
  315. package/dist/lib/node-esm/chunk-TDFHTCZZ.mjs.map +0 -7
  316. package/dist/lib/node-esm/intent-resolver-OXGNQ44Y.mjs.map +0 -7
  317. package/dist/lib/node-esm/markdown-INKTE4MH.mjs.map +0 -7
  318. package/dist/lib/node-esm/react-root-XYYY2JXZ.mjs +0 -29
  319. package/dist/lib/node-esm/react-root-XYYY2JXZ.mjs.map +0 -7
  320. package/dist/lib/node-esm/react-surface-MJ33KPYE.mjs.map +0 -7
  321. package/dist/lib/node-esm/state-D7WNDT3N.mjs.map +0 -7
  322. package/dist/types/src/components/ThreadComplementary.d.ts +0 -5
  323. package/dist/types/src/components/ThreadComplementary.d.ts.map +0 -1
  324. package/dist/types/src/types/schema.d.ts +0 -162
  325. package/dist/types/src/types/schema.d.ts.map +0 -1
  326. package/src/types/schema.ts +0 -33
  327. /package/dist/lib/browser/{ChannelContainer-3GIE7ASU.mjs.map → ChannelContainer-L7MKV7DS.mjs.map} +0 -0
  328. /package/dist/lib/browser/{ChatContainer-AIGIWAUG.mjs.map → ChatContainer-KPY4BAUE.mjs.map} +0 -0
  329. /package/dist/lib/{node-esm/ChannelContainer-7FXCKO7X.mjs.map → browser/chunk-J5LGTIGS.mjs.map} +0 -0
  330. /package/dist/lib/node-esm/{ChatContainer-IQUWU426.mjs.map → ChannelContainer-FYONOOZ6.mjs.map} +0 -0
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../src/calls/util/stub-media-streams.ts"],
4
+ "sourcesContent": ["//\n// Copyright 2025 DXOS.org\n//\n//\n\nimport { scheduleTaskInterval, waitForCondition } from '@dxos/async';\nimport { type Context, cancelWithContext } from '@dxos/context';\nimport { invariant } from '@dxos/invariant';\n\n/**\n * Creates a black canvas stream track.\n * We need this to to have black rectangle video that is live (have frames) when video feed is disabled.\n */\nexport const createBlackCanvasStreamTrack = async ({\n ctx,\n width,\n height,\n}: {\n ctx: Context;\n width: number;\n height: number;\n}): Promise<MediaStreamTrack> => {\n const canvas = document.createElement('canvas');\n canvas.width = width;\n canvas.height = height;\n\n const canvasCtx = canvas.getContext('2d');\n invariant(canvasCtx);\n const drawFrame = () => {\n canvasCtx.fillStyle = 'black';\n canvasCtx.fillRect(0, 0, canvas.width, canvas.height);\n };\n scheduleTaskInterval(ctx, async () => drawFrame(), 200);\n\n const track = canvas.captureStream().getVideoTracks()[0];\n drawFrame();\n\n await cancelWithContext(ctx, waitForCondition({ condition: () => track.readyState === 'live', timeout: 1_000 }));\n\n return track;\n};\n\nlet audioContextStartedPreviously = false;\nconst userGestureEvents = [\n 'click',\n 'contextmenu',\n 'auxclick',\n 'dblclick',\n 'mousedown',\n 'mouseup',\n 'pointerup',\n 'touchend',\n 'keydown',\n 'keyup',\n];\n\n/**\n * Creates an inaudible audio stream track.\n * We need this to have audio track available when audio is disabled.\n */\nexport const createInaudibleAudioStreamTrack = async ({ ctx }: { ctx: Context }): Promise<MediaStreamTrack> => {\n const audioContext = new window.AudioContext();\n\n const oscillator = audioContext.createOscillator();\n oscillator.type = 'triangle';\n oscillator.frequency.setValueAtTime(20, audioContext.currentTime);\n\n const gainNode = audioContext.createGain();\n gainNode.gain.setValueAtTime(0, audioContext.currentTime);\n oscillator.connect(gainNode);\n\n const destination = audioContext.createMediaStreamDestination();\n gainNode.connect(destination);\n\n let oscillatorStarted = false;\n const ensureOscillatorStarted = () => {\n if (oscillatorStarted) return;\n oscillator.start();\n oscillatorStarted = true;\n };\n\n const stateChangeHandler = () => {\n if (audioContext.state === 'running') {\n audioContextStartedPreviously = true;\n ensureOscillatorStarted();\n }\n\n if (audioContext.state === 'suspended' || (audioContext.state as string) === 'interrupted') {\n resumeAudioContext();\n }\n };\n\n audioContext.addEventListener('statechange', stateChangeHandler);\n\n const resumeAudioContext = () => {\n void audioContext.resume().then(() => {\n cleanUpUserGestureListeners();\n });\n };\n\n const cleanUpUserGestureListeners = () => {\n userGestureEvents.forEach((gesture) => {\n document.removeEventListener(gesture, resumeAudioContext, {\n capture: true,\n });\n });\n };\n\n if (audioContextStartedPreviously) {\n resumeAudioContext();\n } else {\n userGestureEvents.forEach((gesture) => {\n document.addEventListener(gesture, resumeAudioContext, {\n capture: true,\n });\n });\n }\n\n ctx.onDispose(async () => {\n cleanUpUserGestureListeners();\n oscillator.disconnect();\n oscillator.stop();\n await audioContext.close();\n });\n\n return destination.stream.getAudioTracks()[0];\n};\n"],
5
+ "mappings": ";;;AAKA,SAASA,sBAAsBC,wBAAwB;AACvD,SAAuBC,yBAAyB;AAChD,SAASC,iBAAiB;;AAMnB,IAAMC,+BAA+B,OAAO,EACjDC,KACAC,OACAC,OAAM,MAKP;AACC,QAAMC,SAASC,SAASC,cAAc,QAAA;AACtCF,SAAOF,QAAQA;AACfE,SAAOD,SAASA;AAEhB,QAAMI,YAAYH,OAAOI,WAAW,IAAA;AACpCT,YAAUQ,WAAAA,QAAAA;;;;;;;;;AACV,QAAME,YAAY,MAAA;AAChBF,cAAUG,YAAY;AACtBH,cAAUI,SAAS,GAAG,GAAGP,OAAOF,OAAOE,OAAOD,MAAM;EACtD;AACAP,uBAAqBK,KAAK,YAAYQ,UAAAA,GAAa,GAAA;AAEnD,QAAMG,QAAQR,OAAOS,cAAa,EAAGC,eAAc,EAAG,CAAA;AACtDL,YAAAA;AAEA,QAAMX,kBAAkBG,KAAKJ,iBAAiB;IAAEkB,WAAW,MAAMH,MAAMI,eAAe;IAAQC,SAAS;EAAM,CAAA,CAAA;AAE7G,SAAOL;AACT;AAEA,IAAIM,gCAAgC;AACpC,IAAMC,oBAAoB;EACxB;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAOK,IAAMC,kCAAkC,OAAO,EAAEnB,IAAG,MAAoB;AAC7E,QAAMoB,eAAe,IAAIC,OAAOC,aAAY;AAE5C,QAAMC,aAAaH,aAAaI,iBAAgB;AAChDD,aAAWE,OAAO;AAClBF,aAAWG,UAAUC,eAAe,IAAIP,aAAaQ,WAAW;AAEhE,QAAMC,WAAWT,aAAaU,WAAU;AACxCD,WAASE,KAAKJ,eAAe,GAAGP,aAAaQ,WAAW;AACxDL,aAAWS,QAAQH,QAAAA;AAEnB,QAAMI,cAAcb,aAAac,6BAA4B;AAC7DL,WAASG,QAAQC,WAAAA;AAEjB,MAAIE,oBAAoB;AACxB,QAAMC,0BAA0B,MAAA;AAC9B,QAAID,kBAAmB;AACvBZ,eAAWc,MAAK;AAChBF,wBAAoB;EACtB;AAEA,QAAMG,qBAAqB,MAAA;AACzB,QAAIlB,aAAamB,UAAU,WAAW;AACpCtB,sCAAgC;AAChCmB,8BAAAA;IACF;AAEA,QAAIhB,aAAamB,UAAU,eAAgBnB,aAAamB,UAAqB,eAAe;AAC1FC,yBAAAA;IACF;EACF;AAEApB,eAAaqB,iBAAiB,eAAeH,kBAAAA;AAE7C,QAAME,qBAAqB,MAAA;AACzB,SAAKpB,aAAasB,OAAM,EAAGC,KAAK,MAAA;AAC9BC,kCAAAA;IACF,CAAA;EACF;AAEA,QAAMA,8BAA8B,MAAA;AAClC1B,sBAAkB2B,QAAQ,CAACC,YAAAA;AACzB1C,eAAS2C,oBAAoBD,SAASN,oBAAoB;QACxDQ,SAAS;MACX,CAAA;IACF,CAAA;EACF;AAEA,MAAI/B,+BAA+B;AACjCuB,uBAAAA;EACF,OAAO;AACLtB,sBAAkB2B,QAAQ,CAACC,YAAAA;AACzB1C,eAASqC,iBAAiBK,SAASN,oBAAoB;QACrDQ,SAAS;MACX,CAAA;IACF,CAAA;EACF;AAEAhD,MAAIiD,UAAU,YAAA;AACZL,gCAAAA;AACArB,eAAW2B,WAAU;AACrB3B,eAAW4B,KAAI;AACf,UAAM/B,aAAagC,MAAK;EAC1B,CAAA;AAEA,SAAOnB,YAAYoB,OAAOC,eAAc,EAAG,CAAA;AAC7C;",
6
+ "names": ["scheduleTaskInterval", "waitForCondition", "cancelWithContext", "invariant", "createBlackCanvasStreamTrack", "ctx", "width", "height", "canvas", "document", "createElement", "canvasCtx", "getContext", "drawFrame", "fillStyle", "fillRect", "track", "captureStream", "getVideoTracks", "condition", "readyState", "timeout", "audioContextStartedPreviously", "userGestureEvents", "createInaudibleAudioStreamTrack", "audioContext", "window", "AudioContext", "oscillator", "createOscillator", "type", "frequency", "setValueAtTime", "currentTime", "gainNode", "createGain", "gain", "connect", "destination", "createMediaStreamDestination", "oscillatorStarted", "ensureOscillatorStarted", "start", "stateChangeHandler", "state", "resumeAudioContext", "addEventListener", "resume", "then", "cleanUpUserGestureListeners", "forEach", "gesture", "removeEventListener", "capture", "onDispose", "disconnect", "stop", "close", "stream", "getAudioTracks"]
7
+ }
@@ -1,4 +1,15 @@
1
1
  import { createRequire } from 'node:module';const require = createRequire(import.meta.url);
2
+ import {
3
+ AppGraphBuilder,
4
+ BlueprintDefinition,
5
+ CallManager as CallManager2,
6
+ IntentResolver,
7
+ Markdown,
8
+ ReactRoot,
9
+ ReactSurface,
10
+ Repair,
11
+ ThreadState
12
+ } from "./chunk-ATNY37UV.mjs";
2
13
  import {
3
14
  CALLS_URL,
4
15
  CallManager,
@@ -12,63 +23,55 @@ import {
12
23
  getScreenshare,
13
24
  getUserMediaTrack,
14
25
  monitorAudioLevel
15
- } from "./chunk-IHDNQLLR.mjs";
16
- import {
17
- ChannelType,
18
- ThreadAction,
19
- ThreadType
20
- } from "./chunk-TDFHTCZZ.mjs";
26
+ } from "./chunk-7KZWZS2U.mjs";
21
27
  import {
22
- AppGraphBuilder,
23
- CallManager as CallManager2,
24
- IntentResolver,
25
- Markdown,
26
- ReactRoot,
27
- ReactSurface,
28
- ThreadState
29
- } from "./chunk-2CXOK2TD.mjs";
28
+ Channel_exports,
29
+ ThreadAction
30
+ } from "./chunk-P2M364TO.mjs";
30
31
  import {
31
32
  ThreadCapabilities
32
- } from "./chunk-75RJ5DJI.mjs";
33
+ } from "./chunk-RT6NRL2I.mjs";
33
34
  import {
35
+ useBlackCanvasStreamTrack,
34
36
  useDebugMode,
35
37
  useInaudibleAudioStreamTrack,
36
38
  useOnEditAnalytics,
37
39
  useStatus,
38
40
  useVideoStreamTrack
39
- } from "./chunk-25ABSYP2.mjs";
41
+ } from "./chunk-PZH2EDU5.mjs";
40
42
  import {
41
43
  createBlackCanvasStreamTrack,
42
44
  createInaudibleAudioStreamTrack
43
- } from "./chunk-OU5BYIDO.mjs";
45
+ } from "./chunk-VBI32FGI.mjs";
44
46
  import {
45
47
  THREAD_ITEM,
46
- THREAD_PLUGIN,
47
48
  meta
48
- } from "./chunk-GRLRWTRU.mjs";
49
+ } from "./chunk-2AEIN5MI.mjs";
50
+ import "./chunk-HSLMI22Q.mjs";
49
51
 
50
52
  // src/ThreadPlugin.tsx
51
- import { Capabilities, contributes, createIntent, defineModule, definePlugin, Events } from "@dxos/app-framework";
52
- import { Ref } from "@dxos/echo";
53
+ import { Capabilities, Events, contributes, createIntent, defineModule, definePlugin } from "@dxos/app-framework";
54
+ import { Ref, Type as Type2 } from "@dxos/echo";
53
55
  import { ClientCapabilities, ClientEvents } from "@dxos/plugin-client";
54
56
  import { MarkdownEvents } from "@dxos/plugin-markdown";
55
57
  import { SpaceCapabilities, SpaceEvents } from "@dxos/plugin-space";
56
- import { defineObjectForm } from "@dxos/plugin-space/types";
57
58
  import { translations as threadTranslations } from "@dxos/react-ui-thread";
58
- import { AnchoredTo, DataType } from "@dxos/schema";
59
+ import { AnchoredTo, Message, Thread } from "@dxos/types";
59
60
 
60
61
  // src/translations.ts
62
+ import { Type } from "@dxos/echo";
61
63
  var translations = [
62
64
  {
63
65
  "en-US": {
64
- [ChannelType.typename]: {
66
+ [Type.getTypename(Channel_exports.Channel)]: {
65
67
  "typename label": "Channel",
66
68
  "typename label_zero": "Channels",
67
69
  "typename label_one": "Channel",
68
70
  "typename label_other": "Channels",
69
71
  "object name placeholder": "New channel",
70
72
  "rename object label": "Rename channel",
71
- "delete object label": "Delete channel"
73
+ "delete object label": "Delete channel",
74
+ "object deleted label": "Channel deleted"
72
75
  },
73
76
  [meta.id]: {
74
77
  "plugin name": "Chat",
@@ -94,10 +97,12 @@ var translations = [
94
97
  "save message label": "Save",
95
98
  "edit message label": "Edit",
96
99
  "delete message label": "Delete message",
100
+ "accept proposal label": "Accept proposal",
97
101
  "open comments panel label": "Show Comments",
98
102
  "comments label": "Comments",
99
103
  "show all label": "All comments",
100
104
  "show unresolved label": "Unresolved comments",
105
+ "add comment label": "Add comment",
101
106
  "channel companion label": "Channel",
102
107
  "call panel label": "Active Call",
103
108
  "display name label": "Display name",
@@ -105,9 +110,10 @@ var translations = [
105
110
  "display name input placeholder": "Enter your name",
106
111
  "set display name label": "Continue",
107
112
  "call tab label": "Call",
108
- "meeting status title": "Meeting",
113
+ "meeting status title": "Calls",
109
114
  "share meeting link label": "Share meeting",
110
- "show webrtc stats title": "Detailed WebRTC Stats",
115
+ "show webrtc stats title": "WebRTC Stats",
116
+ "show calls history title": "Service History",
111
117
  "meeting summary label": "Summary",
112
118
  "summarize label": "Summarize",
113
119
  "summarizing label": "Creating summary...",
@@ -137,7 +143,7 @@ var translations = [
137
143
  ];
138
144
 
139
145
  // src/ThreadPlugin.tsx
140
- var ThreadPlugin = () => definePlugin(meta, [
146
+ var ThreadPlugin = definePlugin(meta, () => [
141
147
  defineModule({
142
148
  id: `${meta.id}/module/call-manager`,
143
149
  activatesOn: ClientEvents.ClientReady,
@@ -170,23 +176,27 @@ var ThreadPlugin = () => definePlugin(meta, [
170
176
  activatesOn: Events.SetupMetadata,
171
177
  activate: () => [
172
178
  contributes(Capabilities.Metadata, {
173
- id: ChannelType.typename,
179
+ id: Type2.getTypename(Channel_exports.Channel),
174
180
  metadata: {
175
- icon: "ph--hash--regular"
181
+ icon: "ph--hash--regular",
182
+ iconHue: "rose",
183
+ createObjectIntent: (_, options) => createIntent(ThreadAction.CreateChannel, {
184
+ spaceId: options.space.id
185
+ })
176
186
  }
177
187
  }),
178
188
  contributes(Capabilities.Metadata, {
179
- id: ThreadType.typename,
189
+ id: Type2.getTypename(Thread.Thread),
180
190
  metadata: {
181
191
  // TODO(wittjosiah): Move out of metadata.
182
192
  loadReferences: async (thread) => await Ref.Array.loadAll(thread.messages ?? [])
183
193
  }
184
194
  }),
185
195
  contributes(Capabilities.Metadata, {
186
- id: DataType.Message.typename,
196
+ id: Message.Message.typename,
187
197
  metadata: {
188
198
  // TODO(wittjosiah): Move out of metadata.
189
- loadReferences: (message) => []
199
+ loadReferences: () => []
190
200
  }
191
201
  }),
192
202
  contributes(Capabilities.Metadata, {
@@ -213,40 +223,33 @@ var ThreadPlugin = () => definePlugin(meta, [
213
223
  })
214
224
  ]
215
225
  }),
216
- defineModule({
217
- id: `${meta.id}/module/object-form`,
218
- activatesOn: ClientEvents.SetupSchema,
219
- activate: () => contributes(SpaceCapabilities.ObjectForm, defineObjectForm({
220
- objectSchema: ChannelType,
221
- getIntent: (_, options) => createIntent(ThreadAction.CreateChannel, {
222
- spaceId: options.space.id
223
- })
224
- }))
225
- }),
226
226
  defineModule({
227
227
  id: `${meta.id}/module/schema`,
228
228
  activatesOn: ClientEvents.SetupSchema,
229
229
  activate: () => contributes(ClientCapabilities.Schema, [
230
- AnchoredTo,
231
- ThreadType,
232
- DataType.Message,
233
- DataType.MessageV1
230
+ AnchoredTo.AnchoredTo,
231
+ Channel_exports.Channel,
232
+ Message.Message,
233
+ Message.MessageV1,
234
+ Thread.Thread
234
235
  ])
235
236
  }),
236
237
  defineModule({
237
238
  id: `${meta.id}/module/migration`,
238
239
  activatesOn: ClientEvents.SetupMigration,
239
240
  activate: () => contributes(ClientCapabilities.Migration, [
240
- DataType.MessageV1ToV2
241
+ Message.MessageV1ToV2
241
242
  ])
242
243
  }),
243
244
  defineModule({
244
245
  id: `${meta.id}/module/on-space-created`,
245
246
  activatesOn: SpaceEvents.SpaceCreated,
246
- activate: () => contributes(SpaceCapabilities.OnSpaceCreated, ({ space, rootCollection }) => createIntent(ThreadAction.OnSpaceCreated, {
247
- space,
248
- rootCollection
249
- }))
247
+ activate: () => contributes(SpaceCapabilities.OnCreateSpace, (params) => createIntent(ThreadAction.OnCreateSpace, params))
248
+ }),
249
+ defineModule({
250
+ id: `${meta.id}/module/repair`,
251
+ activatesOn: ClientEvents.SpacesReady,
252
+ activate: Repair
250
253
  }),
251
254
  defineModule({
252
255
  id: `${meta.id}/module/markdown`,
@@ -272,6 +275,11 @@ var ThreadPlugin = () => definePlugin(meta, [
272
275
  id: `${meta.id}/module/app-graph-builder`,
273
276
  activatesOn: Events.SetupAppGraph,
274
277
  activate: AppGraphBuilder
278
+ }),
279
+ defineModule({
280
+ id: `${meta.id}/module/blueprint`,
281
+ activatesOn: Events.SetupArtifactDefinition,
282
+ activate: BlueprintDefinition
275
283
  })
276
284
  ]);
277
285
  export {
@@ -282,7 +290,6 @@ export {
282
290
  MediaManager,
283
291
  SpeakingMonitor,
284
292
  THREAD_ITEM,
285
- THREAD_PLUGIN,
286
293
  ThreadCapabilities,
287
294
  ThreadPlugin,
288
295
  TrackNameCodec,
@@ -294,6 +301,7 @@ export {
294
301
  getUserMediaTrack,
295
302
  meta,
296
303
  monitorAudioLevel,
304
+ useBlackCanvasStreamTrack,
297
305
  useDebugMode,
298
306
  useInaudibleAudioStreamTrack,
299
307
  useOnEditAnalytics,
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../src/ThreadPlugin.tsx", "../../../src/translations.ts"],
4
- "sourcesContent": ["//\n// Copyright 2023 DXOS.org\n//\n\nimport { Capabilities, contributes, createIntent, defineModule, definePlugin, Events } from '@dxos/app-framework';\nimport { Ref } from '@dxos/echo';\nimport { ClientCapabilities, ClientEvents } from '@dxos/plugin-client';\nimport { MarkdownEvents } from '@dxos/plugin-markdown';\nimport { SpaceCapabilities, SpaceEvents } from '@dxos/plugin-space';\nimport { defineObjectForm } from '@dxos/plugin-space/types';\nimport { translations as threadTranslations } from '@dxos/react-ui-thread';\nimport { AnchoredTo, DataType } from '@dxos/schema';\n\nimport {\n AppGraphBuilder,\n CallManager,\n IntentResolver,\n Markdown,\n ReactRoot,\n ReactSurface,\n ThreadState,\n} from './capabilities';\nimport { meta, THREAD_ITEM } from './meta';\nimport { translations } from './translations';\nimport { ChannelType, ThreadAction, ThreadType } from './types';\n\n// TODO(Zan): Every instance of `cursor` should be replaced with `anchor`.\n// NOTE(burdon): Review/discuss CursorConverter semantics.\n\n// TODO(wittjosiah): Rename to ChatPlugin.\n// TODO(wittjosiah): Enabling comments should likely be factored out of this plugin but depend on it's capabilities.\nexport const ThreadPlugin = () =>\n definePlugin(meta, [\n defineModule({\n id: `${meta.id}/module/call-manager`,\n activatesOn: ClientEvents.ClientReady,\n activate: CallManager,\n }),\n // TODO(wittjosiah): Currently not used but leaving because there will likely be settings for threads again.\n // defineModule({\n // id: `${meta.id}/module/settings`,\n // activatesOn: Events.SetupSettings,\n // activate: ThreadSettings,\n // }),\n defineModule({\n id: `${meta.id}/module/state`,\n // TODO(wittjosiah): Does not integrate with settings store.\n // Should this be a different event?\n // Should settings store be renamed to be more generic?\n activatesOn: Events.SetupSettings,\n activate: ThreadState,\n }),\n defineModule({\n id: `${meta.id}/module/translations`,\n activatesOn: Events.SetupTranslations,\n activate: () => contributes(Capabilities.Translations, [...translations, ...threadTranslations]),\n }),\n defineModule({\n id: `${meta.id}/module/metadata`,\n activatesOn: Events.SetupMetadata,\n activate: () => [\n contributes(Capabilities.Metadata, {\n id: ChannelType.typename,\n metadata: {\n icon: 'ph--hash--regular',\n },\n }),\n contributes(Capabilities.Metadata, {\n id: ThreadType.typename,\n metadata: {\n // TODO(wittjosiah): Move out of metadata.\n loadReferences: async (thread: ThreadType) => await Ref.Array.loadAll(thread.messages ?? []),\n },\n }),\n contributes(Capabilities.Metadata, {\n id: DataType.Message.typename,\n metadata: {\n // TODO(wittjosiah): Move out of metadata.\n loadReferences: (message: DataType.Message) => [], // loadObjectReferences(message, (message) => [...message.parts, message.context]),\n },\n }),\n contributes(Capabilities.Metadata, {\n id: THREAD_ITEM,\n metadata: {\n parse: (item: ThreadType, type: string) => {\n switch (type) {\n case 'node':\n return { id: item.id, label: item.name, data: item };\n case 'object':\n return item;\n case 'view-object':\n return { id: `${item.id}-view`, object: item };\n }\n },\n },\n }),\n ],\n }),\n defineModule({\n id: `${meta.id}/module/object-form`,\n activatesOn: ClientEvents.SetupSchema,\n activate: () =>\n contributes(\n SpaceCapabilities.ObjectForm,\n defineObjectForm({\n objectSchema: ChannelType,\n getIntent: (_, options) => createIntent(ThreadAction.CreateChannel, { spaceId: options.space.id }),\n }),\n ),\n }),\n defineModule({\n id: `${meta.id}/module/schema`,\n activatesOn: ClientEvents.SetupSchema,\n activate: () =>\n contributes(ClientCapabilities.Schema, [AnchoredTo, ThreadType, DataType.Message, DataType.MessageV1]),\n }),\n defineModule({\n id: `${meta.id}/module/migration`,\n activatesOn: ClientEvents.SetupMigration,\n activate: () => contributes(ClientCapabilities.Migration, [DataType.MessageV1ToV2]),\n }),\n defineModule({\n id: `${meta.id}/module/on-space-created`,\n activatesOn: SpaceEvents.SpaceCreated,\n activate: () =>\n contributes(SpaceCapabilities.OnSpaceCreated, ({ space, rootCollection }) =>\n createIntent(ThreadAction.OnSpaceCreated, { space, rootCollection }),\n ),\n }),\n defineModule({\n id: `${meta.id}/module/markdown`,\n activatesOn: MarkdownEvents.SetupExtensions,\n activate: Markdown,\n }),\n defineModule({\n id: `${meta.id}/module/react-root`,\n activatesOn: Events.Startup,\n activate: ReactRoot,\n }),\n defineModule({\n id: `${meta.id}/module/react-surface`,\n activatesOn: Events.SetupReactSurface,\n activate: ReactSurface,\n }),\n defineModule({\n id: `${meta.id}/module/intent-resolver`,\n activatesOn: Events.SetupIntentResolver,\n activate: IntentResolver,\n }),\n defineModule({\n id: `${meta.id}/module/app-graph-builder`,\n activatesOn: Events.SetupAppGraph,\n activate: AppGraphBuilder,\n }),\n ]);\n", "//\n// Copyright 2023 DXOS.org\n//\n\nimport { type Resource } from '@dxos/react-ui';\n\nimport { meta } from './meta';\nimport { ChannelType } from './types';\n\nexport const translations = [\n {\n 'en-US': {\n [ChannelType.typename]: {\n 'typename label': 'Channel',\n 'typename label_zero': 'Channels',\n 'typename label_one': 'Channel',\n 'typename label_other': 'Channels',\n 'object name placeholder': 'New channel',\n 'rename object label': 'Rename channel',\n 'delete object label': 'Delete channel',\n },\n [meta.id]: {\n 'plugin name': 'Chat',\n 'channel title label': 'Title',\n 'message placeholder': 'Reply…',\n 'activity message': 'Processing…',\n 'anonymous label': 'Anonymous',\n 'delete message block label': 'Delete message block',\n 'detached thread label': 'Referenced content was removed',\n 'delete thread label': 'Delete thread',\n 'resolve thread label': 'Resolve thread',\n 'thread deleted label': 'Thread deleted',\n 'message deleted label': 'Message deleted',\n 'comments heading': 'Comments',\n 'chat heading': 'Chat',\n 'draft button': 'DRAFT',\n 'no comments title': 'Comments',\n 'no comments message':\n 'Click on the <commentIcon></commentIcon> button in the document toolbar to create a comment thread on the selected text.',\n 'toggle show resolved': 'Show resolved',\n 'unnamed object threads label': 'Threads',\n 'mark as resolved label': 'Mark as resolved',\n 'mark as unresolved label': 'Mark as unresolved',\n 'save message label': 'Save',\n 'edit message label': 'Edit',\n 'delete message label': 'Delete message',\n 'open comments panel label': 'Show Comments',\n 'comments label': 'Comments',\n 'show all label': 'All comments',\n 'show unresolved label': 'Unresolved comments',\n\n 'channel companion label': 'Channel',\n 'call panel label': 'Active Call',\n\n 'display name label': 'Display name',\n 'display name description': 'Set your display name before joining a meeting.',\n 'display name input placeholder': 'Enter your name',\n 'set display name label': 'Continue',\n\n 'call tab label': 'Call',\n 'meeting status title': 'Meeting',\n 'share meeting link label': 'Share meeting',\n 'show webrtc stats title': 'Detailed WebRTC Stats',\n\n 'meeting summary label': 'Summary',\n 'summarize label': 'Summarize',\n 'summarizing label': 'Creating summary...',\n 'create summary message': 'A summary doesn’t exist for this meeting yet. Create one now?',\n\n 'join call': 'Join',\n 'leave call': 'Leave',\n\n 'lobby participants_zero': 'No participants',\n 'lobby participants_one': '1 participant',\n 'lobby participants_other': '{{count}} participants',\n\n 'icon pin': 'Pin video',\n 'icon unpin': 'Unpin video',\n 'icon wave': 'Waving',\n 'icon muted': 'Muted',\n 'icon speaking': 'Speaking',\n\n 'mic on': 'Unmute',\n 'mic off': 'Mute',\n 'camera on': 'Turn camera on',\n 'camera off': 'Turn camera off',\n 'camera off label': 'Camera off',\n\n 'raise hand': 'Raise hand',\n 'lower hand': 'Lower hand',\n 'screenshare on': 'Share screen',\n 'screenshare off': 'Stop streaming',\n },\n },\n },\n] as const satisfies Resource[];\n"],
5
- "mappings": "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",
6
- "names": ["Capabilities", "contributes", "createIntent", "defineModule", "definePlugin", "Events", "Ref", "ClientCapabilities", "ClientEvents", "MarkdownEvents", "SpaceCapabilities", "SpaceEvents", "defineObjectForm", "translations", "threadTranslations", "AnchoredTo", "DataType", "translations", "ChannelType", "typename", "meta", "id", "ThreadPlugin", "definePlugin", "meta", "defineModule", "id", "activatesOn", "ClientEvents", "ClientReady", "activate", "CallManager", "Events", "SetupSettings", "ThreadState", "SetupTranslations", "contributes", "Capabilities", "Translations", "translations", "threadTranslations", "SetupMetadata", "Metadata", "ChannelType", "typename", "metadata", "icon", "ThreadType", "loadReferences", "thread", "Ref", "Array", "loadAll", "messages", "DataType", "Message", "message", "THREAD_ITEM", "parse", "item", "type", "label", "name", "data", "object", "SetupSchema", "SpaceCapabilities", "ObjectForm", "defineObjectForm", "objectSchema", "getIntent", "_", "options", "createIntent", "ThreadAction", "CreateChannel", "spaceId", "space", "ClientCapabilities", "Schema", "AnchoredTo", "MessageV1", "SetupMigration", "Migration", "MessageV1ToV2", "SpaceEvents", "SpaceCreated", "OnSpaceCreated", "rootCollection", "MarkdownEvents", "SetupExtensions", "Markdown", "Startup", "ReactRoot", "SetupReactSurface", "ReactSurface", "SetupIntentResolver", "IntentResolver", "SetupAppGraph", "AppGraphBuilder"]
4
+ "sourcesContent": ["//\n// Copyright 2023 DXOS.org\n//\n\nimport { Capabilities, Events, contributes, createIntent, defineModule, definePlugin } from '@dxos/app-framework';\nimport { Ref, Type } from '@dxos/echo';\nimport { ClientCapabilities, ClientEvents } from '@dxos/plugin-client';\nimport { MarkdownEvents } from '@dxos/plugin-markdown';\nimport { SpaceCapabilities, SpaceEvents } from '@dxos/plugin-space';\nimport { type CreateObjectIntent } from '@dxos/plugin-space/types';\nimport { translations as threadTranslations } from '@dxos/react-ui-thread';\nimport { AnchoredTo, Message, Thread } from '@dxos/types';\n\nimport {\n AppGraphBuilder,\n BlueprintDefinition,\n CallManager,\n IntentResolver,\n Markdown,\n ReactRoot,\n ReactSurface,\n Repair,\n ThreadState,\n} from './capabilities';\nimport { THREAD_ITEM, meta } from './meta';\nimport { translations } from './translations';\nimport { Channel, ThreadAction } from './types';\n\n// TODO(Zan): Every instance of `cursor` should be replaced with `anchor`.\n// NOTE(burdon): Review/discuss CursorConverter semantics.\n\n// TODO(wittjosiah): Rename to ChatPlugin.\n// TODO(wittjosiah): Enabling comments should likely be factored out of this plugin but depend on it's capabilities.\nexport const ThreadPlugin = definePlugin(meta, () => [\n defineModule({\n id: `${meta.id}/module/call-manager`,\n activatesOn: ClientEvents.ClientReady,\n activate: CallManager,\n }),\n // TODO(wittjosiah): Currently not used but leaving because there will likely be settings for threads again.\n // defineModule({\n // id: `${meta.id}/module/settings`,\n // activatesOn: Events.SetupSettings,\n // activate: ThreadSettings,\n // }),\n defineModule({\n id: `${meta.id}/module/state`,\n // TODO(wittjosiah): Does not integrate with settings store.\n // Should this be a different event?\n // Should settings store be renamed to be more generic?\n activatesOn: Events.SetupSettings,\n activate: ThreadState,\n }),\n defineModule({\n id: `${meta.id}/module/translations`,\n activatesOn: Events.SetupTranslations,\n activate: () => contributes(Capabilities.Translations, [...translations, ...threadTranslations]),\n }),\n defineModule({\n id: `${meta.id}/module/metadata`,\n activatesOn: Events.SetupMetadata,\n activate: () => [\n contributes(Capabilities.Metadata, {\n id: Type.getTypename(Channel.Channel),\n metadata: {\n icon: 'ph--hash--regular',\n iconHue: 'rose',\n createObjectIntent: ((_, options) =>\n createIntent(ThreadAction.CreateChannel, {\n spaceId: options.space.id,\n })) satisfies CreateObjectIntent,\n },\n }),\n contributes(Capabilities.Metadata, {\n id: Type.getTypename(Thread.Thread),\n metadata: {\n // TODO(wittjosiah): Move out of metadata.\n loadReferences: async (thread: Thread.Thread) => await Ref.Array.loadAll(thread.messages ?? []),\n },\n }),\n contributes(Capabilities.Metadata, {\n id: Message.Message.typename,\n metadata: {\n // TODO(wittjosiah): Move out of metadata.\n loadReferences: () => [], // loadObjectReferences(message, (message) => [...message.parts, message.context]),\n },\n }),\n contributes(Capabilities.Metadata, {\n id: THREAD_ITEM,\n metadata: {\n parse: (item: Thread.Thread, type: string) => {\n switch (type) {\n case 'node':\n return { id: item.id, label: item.name, data: item };\n case 'object':\n return item;\n case 'view-object':\n return { id: `${item.id}-view`, object: item };\n }\n },\n },\n }),\n ],\n }),\n defineModule({\n id: `${meta.id}/module/schema`,\n activatesOn: ClientEvents.SetupSchema,\n activate: () =>\n contributes(ClientCapabilities.Schema, [\n AnchoredTo.AnchoredTo,\n Channel.Channel,\n Message.Message,\n Message.MessageV1,\n Thread.Thread,\n ]),\n }),\n defineModule({\n id: `${meta.id}/module/migration`,\n activatesOn: ClientEvents.SetupMigration,\n activate: () => contributes(ClientCapabilities.Migration, [Message.MessageV1ToV2]),\n }),\n defineModule({\n id: `${meta.id}/module/on-space-created`,\n activatesOn: SpaceEvents.SpaceCreated,\n activate: () =>\n contributes(SpaceCapabilities.OnCreateSpace, (params) => createIntent(ThreadAction.OnCreateSpace, params)),\n }),\n defineModule({\n id: `${meta.id}/module/repair`,\n activatesOn: ClientEvents.SpacesReady,\n activate: Repair,\n }),\n defineModule({\n id: `${meta.id}/module/markdown`,\n activatesOn: MarkdownEvents.SetupExtensions,\n activate: Markdown,\n }),\n defineModule({\n id: `${meta.id}/module/react-root`,\n activatesOn: Events.Startup,\n activate: ReactRoot,\n }),\n defineModule({\n id: `${meta.id}/module/react-surface`,\n activatesOn: Events.SetupReactSurface,\n activate: ReactSurface,\n }),\n defineModule({\n id: `${meta.id}/module/intent-resolver`,\n activatesOn: Events.SetupIntentResolver,\n activate: IntentResolver,\n }),\n defineModule({\n id: `${meta.id}/module/app-graph-builder`,\n activatesOn: Events.SetupAppGraph,\n activate: AppGraphBuilder,\n }),\n defineModule({\n id: `${meta.id}/module/blueprint`,\n activatesOn: Events.SetupArtifactDefinition,\n activate: BlueprintDefinition,\n }),\n]);\n", "//\n// Copyright 2023 DXOS.org\n//\n\nimport { Type } from '@dxos/echo';\nimport { type Resource } from '@dxos/react-ui';\n\nimport { meta } from './meta';\nimport { Channel } from './types';\n\nexport const translations = [\n {\n 'en-US': {\n [Type.getTypename(Channel.Channel)]: {\n 'typename label': 'Channel',\n 'typename label_zero': 'Channels',\n 'typename label_one': 'Channel',\n 'typename label_other': 'Channels',\n 'object name placeholder': 'New channel',\n 'rename object label': 'Rename channel',\n 'delete object label': 'Delete channel',\n 'object deleted label': 'Channel deleted',\n },\n [meta.id]: {\n 'plugin name': 'Chat',\n 'channel title label': 'Title',\n 'message placeholder': 'Reply…',\n 'activity message': 'Processing…',\n 'anonymous label': 'Anonymous',\n 'delete message block label': 'Delete message block',\n 'detached thread label': 'Referenced content was removed',\n 'delete thread label': 'Delete thread',\n 'resolve thread label': 'Resolve thread',\n 'thread deleted label': 'Thread deleted',\n 'message deleted label': 'Message deleted',\n 'comments heading': 'Comments',\n 'chat heading': 'Chat',\n 'draft button': 'DRAFT',\n 'no comments title': 'Comments',\n 'no comments message':\n 'Click on the <commentIcon></commentIcon> button in the document toolbar to create a comment thread on the selected text.',\n 'toggle show resolved': 'Show resolved',\n 'unnamed object threads label': 'Threads',\n 'mark as resolved label': 'Mark as resolved',\n 'mark as unresolved label': 'Mark as unresolved',\n 'save message label': 'Save',\n 'edit message label': 'Edit',\n 'delete message label': 'Delete message',\n 'accept proposal label': 'Accept proposal',\n 'open comments panel label': 'Show Comments',\n 'comments label': 'Comments',\n 'show all label': 'All comments',\n 'show unresolved label': 'Unresolved comments',\n 'add comment label': 'Add comment',\n\n 'channel companion label': 'Channel',\n 'call panel label': 'Active Call',\n\n 'display name label': 'Display name',\n 'display name description': 'Set your display name before joining a meeting.',\n 'display name input placeholder': 'Enter your name',\n 'set display name label': 'Continue',\n\n 'call tab label': 'Call',\n 'meeting status title': 'Calls',\n 'share meeting link label': 'Share meeting',\n 'show webrtc stats title': 'WebRTC Stats',\n 'show calls history title': 'Service History',\n\n 'meeting summary label': 'Summary',\n 'summarize label': 'Summarize',\n 'summarizing label': 'Creating summary...',\n 'create summary message': 'A summary doesn’t exist for this meeting yet. Create one now?',\n\n 'join call': 'Join',\n 'leave call': 'Leave',\n\n 'lobby participants_zero': 'No participants',\n 'lobby participants_one': '1 participant',\n 'lobby participants_other': '{{count}} participants',\n\n 'icon pin': 'Pin video',\n 'icon unpin': 'Unpin video',\n 'icon wave': 'Waving',\n 'icon muted': 'Muted',\n 'icon speaking': 'Speaking',\n\n 'mic on': 'Unmute',\n 'mic off': 'Mute',\n 'camera on': 'Turn camera on',\n 'camera off': 'Turn camera off',\n 'camera off label': 'Camera off',\n\n 'raise hand': 'Raise hand',\n 'lower hand': 'Lower hand',\n 'screenshare on': 'Share screen',\n 'screenshare off': 'Stop streaming',\n },\n },\n },\n] as const satisfies Resource[];\n"],
5
+ "mappings": "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",
6
+ "names": ["Capabilities", "Events", "contributes", "createIntent", "defineModule", "definePlugin", "Ref", "Type", "ClientCapabilities", "ClientEvents", "MarkdownEvents", "SpaceCapabilities", "SpaceEvents", "translations", "threadTranslations", "AnchoredTo", "Message", "Thread", "Type", "translations", "Type", "getTypename", "Channel", "meta", "id", "ThreadPlugin", "definePlugin", "meta", "defineModule", "id", "activatesOn", "ClientEvents", "ClientReady", "activate", "CallManager", "Events", "SetupSettings", "ThreadState", "SetupTranslations", "contributes", "Capabilities", "Translations", "translations", "threadTranslations", "SetupMetadata", "Metadata", "Type", "getTypename", "Channel", "metadata", "icon", "iconHue", "createObjectIntent", "_", "options", "createIntent", "ThreadAction", "CreateChannel", "spaceId", "space", "Thread", "loadReferences", "thread", "Ref", "Array", "loadAll", "messages", "Message", "typename", "THREAD_ITEM", "parse", "item", "type", "label", "name", "data", "object", "SetupSchema", "ClientCapabilities", "Schema", "AnchoredTo", "MessageV1", "SetupMigration", "Migration", "MessageV1ToV2", "SpaceEvents", "SpaceCreated", "SpaceCapabilities", "OnCreateSpace", "params", "SpacesReady", "Repair", "MarkdownEvents", "SetupExtensions", "Markdown", "Startup", "ReactRoot", "SetupReactSurface", "ReactSurface", "SetupIntentResolver", "IntentResolver", "SetupAppGraph", "AppGraphBuilder", "SetupArtifactDefinition", "BlueprintDefinition"]
7
7
  }
@@ -1,36 +1,40 @@
1
1
  import { createRequire } from 'node:module';const require = createRequire(import.meta.url);
2
2
  import {
3
- ChannelType,
4
- ThreadAction,
5
- ThreadType
6
- } from "./chunk-TDFHTCZZ.mjs";
3
+ Channel_exports,
4
+ ThreadAction
5
+ } from "./chunk-P2M364TO.mjs";
7
6
  import {
8
7
  ThreadCapabilities
9
- } from "./chunk-75RJ5DJI.mjs";
8
+ } from "./chunk-RT6NRL2I.mjs";
10
9
  import {
11
- THREAD_PLUGIN
12
- } from "./chunk-GRLRWTRU.mjs";
10
+ meta
11
+ } from "./chunk-2AEIN5MI.mjs";
12
+ import "./chunk-HSLMI22Q.mjs";
13
13
 
14
14
  // src/capabilities/intent-resolver.ts
15
- import { Effect } from "effect";
15
+ import * as Effect from "effect/Effect";
16
16
  import { Capabilities, contributes, createIntent, createResolver } from "@dxos/app-framework";
17
17
  import { sleep } from "@dxos/async";
18
18
  import { Obj, Relation, Type } from "@dxos/echo";
19
19
  import { invariant } from "@dxos/invariant";
20
20
  import { ATTENDABLE_PATH_SEPARATOR, DeckAction } from "@dxos/plugin-deck/types";
21
21
  import { ObservabilityAction } from "@dxos/plugin-observability/types";
22
- import { CollectionAction, SpaceAction } from "@dxos/plugin-space/types";
23
- import { fullyQualifiedId, getSpace, Ref } from "@dxos/react-client/echo";
24
- import { AnchoredTo, DataType } from "@dxos/schema";
22
+ import { SpaceAction } from "@dxos/plugin-space/types";
23
+ import { Ref, getSpace } from "@dxos/react-client/echo";
24
+ import { Collection } from "@dxos/schema";
25
+ import { AnchoredTo, Message, Thread } from "@dxos/types";
25
26
  var __dxlog_file = "/__w/dxos/dxos/packages/plugins/plugin-thread/src/capabilities/intent-resolver.ts";
26
- var intent_resolver_default = (context) => contributes(Capabilities.IntentResolver, [
27
+ var intent_resolver_default = ((context) => contributes(Capabilities.IntentResolver, [
27
28
  createResolver({
28
- intent: ThreadAction.OnSpaceCreated,
29
- resolve: ({ space, rootCollection }) => Effect.gen(function* () {
29
+ intent: ThreadAction.OnCreateSpace,
30
+ resolve: ({ space, isDefault, rootCollection }) => Effect.gen(function* () {
31
+ if (isDefault) {
32
+ return;
33
+ }
30
34
  const { dispatch } = context.getCapability(Capabilities.IntentDispatcher);
31
- const { object: collection } = yield* dispatch(createIntent(CollectionAction.CreateQueryCollection, {
32
- typename: Type.getTypename(ChannelType)
33
- }));
35
+ const collection = Collection.makeManaged({
36
+ key: Type.getTypename(Channel_exports.Channel)
37
+ });
34
38
  rootCollection.objects.push(Ref.make(collection));
35
39
  const { object: channel } = yield* dispatch(createIntent(ThreadAction.CreateChannel, {
36
40
  name: "General",
@@ -43,13 +47,8 @@ var intent_resolver_default = (context) => contributes(Capabilities.IntentResolv
43
47
  intent: ThreadAction.CreateChannel,
44
48
  resolve: ({ name }) => ({
45
49
  data: {
46
- object: Obj.make(ChannelType, {
47
- name,
48
- defaultThread: Ref.make(Obj.make(ThreadType, {
49
- messages: [],
50
- status: "active"
51
- })),
52
- threads: []
50
+ object: Channel_exports.make({
51
+ name
53
52
  })
54
53
  }
55
54
  })
@@ -57,8 +56,7 @@ var intent_resolver_default = (context) => contributes(Capabilities.IntentResolv
57
56
  createResolver({
58
57
  intent: ThreadAction.CreateChannelThread,
59
58
  resolve: ({ channel }) => {
60
- const thread = Obj.make(ThreadType, {
61
- messages: [],
59
+ const thread = Thread.make({
62
60
  status: "active"
63
61
  });
64
62
  channel.threads.push(Ref.make(thread));
@@ -73,24 +71,12 @@ var intent_resolver_default = (context) => contributes(Capabilities.IntentResolv
73
71
  createResolver({
74
72
  intent: ThreadAction.Create,
75
73
  resolve: ({ name, anchor: _anchor, subject }) => {
76
- const space = getSpace(subject);
77
- invariant(space, "Space not found", {
78
- F: __dxlog_file,
79
- L: 68,
80
- S: void 0,
81
- A: [
82
- "space",
83
- "'Space not found'"
84
- ]
85
- });
86
74
  const { state } = context.getCapability(ThreadCapabilities.MutableState);
87
- const subjectId = fullyQualifiedId(subject);
88
- const thread = Obj.make(ThreadType, {
89
- name,
90
- messages: [],
91
- status: "staged"
75
+ const subjectId = Obj.getDXN(subject).toString();
76
+ const thread = Thread.make({
77
+ name
92
78
  });
93
- const anchor = Relation.make(AnchoredTo, {
79
+ const anchor = Relation.make(AnchoredTo.AnchoredTo, {
94
80
  [Relation.Source]: thread,
95
81
  [Relation.Target]: subject,
96
82
  anchor: _anchor
@@ -106,7 +92,7 @@ var intent_resolver_default = (context) => contributes(Capabilities.IntentResolv
106
92
  return {
107
93
  intents: [
108
94
  createIntent(ThreadAction.Select, {
109
- current: fullyQualifiedId(thread)
95
+ current: Obj.getDXN(thread).toString()
110
96
  }),
111
97
  createIntent(DeckAction.ChangeCompanion, {
112
98
  primary: subjectId,
@@ -134,7 +120,7 @@ var intent_resolver_default = (context) => contributes(Capabilities.IntentResolv
134
120
  const space = getSpace(thread);
135
121
  invariant(space, "Space not found", {
136
122
  F: __dxlog_file,
137
- L: 114,
123
+ L: 111,
138
124
  S: void 0,
139
125
  A: [
140
126
  "space",
@@ -160,7 +146,7 @@ var intent_resolver_default = (context) => contributes(Capabilities.IntentResolv
160
146
  resolve: async ({ subject, anchor, thread: _thread }, undo) => {
161
147
  const thread = _thread ?? Relation.getSource(anchor);
162
148
  const { state } = context.getCapability(ThreadCapabilities.MutableState);
163
- const subjectId = fullyQualifiedId(subject);
149
+ const subjectId = Obj.getDXN(subject).toString();
164
150
  const draft = state.drafts[subjectId];
165
151
  if (draft) {
166
152
  const index = draft.findIndex((a) => a.id === anchor.id);
@@ -182,7 +168,7 @@ var intent_resolver_default = (context) => contributes(Capabilities.IntentResolv
182
168
  message: [
183
169
  "thread deleted label",
184
170
  {
185
- ns: THREAD_PLUGIN
171
+ ns: meta.id
186
172
  }
187
173
  ],
188
174
  data: {
@@ -223,19 +209,18 @@ var intent_resolver_default = (context) => contributes(Capabilities.IntentResolv
223
209
  resolve: ({ anchor, subject, sender, text }) => {
224
210
  const thread = Relation.getSource(anchor);
225
211
  const { state } = context.getCapability(ThreadCapabilities.MutableState);
226
- const subjectId = fullyQualifiedId(subject);
212
+ const subjectId = Obj.getDXN(subject).toString();
227
213
  const space = getSpace(subject);
228
214
  invariant(space, "Space not found", {
229
215
  F: __dxlog_file,
230
- L: 199,
216
+ L: 196,
231
217
  S: void 0,
232
218
  A: [
233
219
  "space",
234
220
  "'Space not found'"
235
221
  ]
236
222
  });
237
- const intents = [];
238
- const message = Obj.make(DataType.Message, {
223
+ const message = Obj.make(Message.Message, {
239
224
  created: (/* @__PURE__ */ new Date()).toISOString(),
240
225
  sender,
241
226
  blocks: [
@@ -246,6 +231,7 @@ var intent_resolver_default = (context) => contributes(Capabilities.IntentResolv
246
231
  ]
247
232
  });
248
233
  thread.messages.push(Ref.make(message));
234
+ const intents = [];
249
235
  const draft = state.drafts[subjectId]?.find((a) => a.id === anchor.id);
250
236
  if (draft) {
251
237
  thread.status = "active";
@@ -257,7 +243,7 @@ var intent_resolver_default = (context) => contributes(Capabilities.IntentResolv
257
243
  }));
258
244
  intents.push(createIntent(SpaceAction.AddRelation, {
259
245
  space,
260
- schema: AnchoredTo,
246
+ schema: AnchoredTo.AnchoredTo,
261
247
  source: thread,
262
248
  target: subject,
263
249
  fields: {
@@ -294,7 +280,7 @@ var intent_resolver_default = (context) => contributes(Capabilities.IntentResolv
294
280
  const space = getSpace(subject);
295
281
  invariant(space, "Space not found", {
296
282
  F: __dxlog_file,
297
- L: 259,
283
+ L: 256,
298
284
  S: void 0,
299
285
  A: [
300
286
  "space",
@@ -324,7 +310,7 @@ var intent_resolver_default = (context) => contributes(Capabilities.IntentResolv
324
310
  message: [
325
311
  "message deleted label",
326
312
  {
327
- ns: THREAD_PLUGIN
313
+ ns: meta.id
328
314
  }
329
315
  ],
330
316
  data: {
@@ -363,8 +349,8 @@ var intent_resolver_default = (context) => contributes(Capabilities.IntentResolv
363
349
  }
364
350
  }
365
351
  })
366
- ]);
352
+ ]));
367
353
  export {
368
354
  intent_resolver_default as default
369
355
  };
370
- //# sourceMappingURL=intent-resolver-OXGNQ44Y.mjs.map
356
+ //# sourceMappingURL=intent-resolver-4PX3WXQG.mjs.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../src/capabilities/intent-resolver.ts"],
4
+ "sourcesContent": ["//\n// Copyright 2025 DXOS.org\n//\n\nimport * as Effect from 'effect/Effect';\n\nimport { Capabilities, type PluginContext, contributes, createIntent, createResolver } from '@dxos/app-framework';\nimport { sleep } from '@dxos/async';\nimport { Obj, Relation, Type } from '@dxos/echo';\nimport { invariant } from '@dxos/invariant';\nimport { ATTENDABLE_PATH_SEPARATOR, DeckAction } from '@dxos/plugin-deck/types';\nimport { ObservabilityAction } from '@dxos/plugin-observability/types';\nimport { SpaceAction } from '@dxos/plugin-space/types';\nimport { Ref, getSpace } from '@dxos/react-client/echo';\nimport { Collection } from '@dxos/schema';\nimport { AnchoredTo, Message, Thread } from '@dxos/types';\n\nimport { meta } from '../meta';\nimport { Channel, ThreadAction } from '../types';\n\nimport { ThreadCapabilities } from './capabilities';\n\nexport default (context: PluginContext) =>\n contributes(Capabilities.IntentResolver, [\n createResolver({\n intent: ThreadAction.OnCreateSpace,\n resolve: ({ space, isDefault, rootCollection }) =>\n Effect.gen(function* () {\n if (isDefault) {\n return;\n }\n\n const { dispatch } = context.getCapability(Capabilities.IntentDispatcher);\n const collection = Collection.makeManaged({ key: Type.getTypename(Channel.Channel) });\n rootCollection.objects.push(Ref.make(collection));\n\n const { object: channel } = yield* dispatch(\n createIntent(ThreadAction.CreateChannel, { name: 'General', spaceId: space.id }),\n );\n space.db.add(channel);\n }),\n }),\n createResolver({\n intent: ThreadAction.CreateChannel,\n resolve: ({ name }) => ({\n data: {\n object: Channel.make({ name }),\n },\n }),\n }),\n createResolver({\n intent: ThreadAction.CreateChannelThread,\n resolve: ({ channel }) => {\n const thread = Thread.make({ status: 'active' });\n channel.threads.push(Ref.make(thread));\n return {\n data: {\n object: thread,\n },\n };\n },\n }),\n // TODO(wittjosiah): Break this up into more composable pieces.\n createResolver({\n intent: ThreadAction.Create,\n resolve: ({ name, anchor: _anchor, subject }) => {\n const { state } = context.getCapability(ThreadCapabilities.MutableState);\n const subjectId = Obj.getDXN(subject).toString();\n const thread = Thread.make({ name });\n const anchor = Relation.make(AnchoredTo.AnchoredTo, {\n [Relation.Source]: thread,\n [Relation.Target]: subject,\n anchor: _anchor,\n });\n\n const draft = state.drafts[subjectId];\n if (draft) {\n draft.push(anchor);\n } else {\n state.drafts[subjectId] = [anchor];\n }\n\n return {\n intents: [\n createIntent(ThreadAction.Select, { current: Obj.getDXN(thread).toString() }),\n createIntent(DeckAction.ChangeCompanion, {\n primary: subjectId,\n companion: `${subjectId}${ATTENDABLE_PATH_SEPARATOR}comments`,\n }),\n ],\n };\n },\n }),\n createResolver({\n intent: ThreadAction.Select,\n resolve: ({ current }) => {\n const { state } = context.getCapability(ThreadCapabilities.MutableState);\n state.current = current;\n },\n }),\n createResolver({\n intent: ThreadAction.ToggleResolved,\n resolve: ({ thread }) => {\n if (thread.status === 'active' || thread.status === undefined) {\n thread.status = 'resolved';\n } else if (thread.status === 'resolved') {\n thread.status = 'active';\n }\n\n const space = getSpace(thread);\n invariant(space, 'Space not found');\n const spaceId = space.id;\n\n return {\n intents: [\n createIntent(ObservabilityAction.SendEvent, {\n name: 'threads.toggle-resolved',\n properties: {\n spaceId,\n threadId: thread.id,\n },\n }),\n ],\n };\n },\n }),\n createResolver({\n intent: ThreadAction.Delete,\n resolve: async ({ subject, anchor, thread: _thread }, undo) => {\n const thread = _thread ?? (Relation.getSource(anchor) as Thread.Thread);\n const { state } = context.getCapability(ThreadCapabilities.MutableState);\n const subjectId = Obj.getDXN(subject).toString();\n const draft = state.drafts[subjectId];\n if (draft) {\n // Check if we're deleting a draft; if so, remo ve it.\n const index = draft.findIndex((a) => a.id === anchor.id);\n if (index !== -1) {\n draft.splice(index, 1);\n return;\n }\n }\n\n const space = getSpace(anchor);\n if (!space) {\n return;\n }\n\n if (!undo) {\n // TODO(wittjosiah): Without sleep, rendering crashes at `Relation.setSource(anchor)`.\n space.db.remove(anchor);\n await sleep(100);\n space.db.remove(thread);\n\n return {\n undoable: {\n message: ['thread deleted label', { ns: meta.id }],\n data: { thread, anchor },\n },\n intents: [\n createIntent(ObservabilityAction.SendEvent, {\n name: 'threads.delete',\n properties: {\n spaceId: space.id,\n threadId: thread.id,\n },\n }),\n ],\n };\n } else {\n // TODO(wittjosiah): Without sleep, rendering crashes at `Relation.setSource(anchor)`.\n space.db.add(thread);\n await sleep(100);\n space.db.add(anchor);\n\n return {\n intents: [\n createIntent(ObservabilityAction.SendEvent, {\n name: 'threads.undo-delete',\n properties: {\n spaceId: space.id,\n threadId: thread.id,\n },\n }),\n ],\n };\n }\n },\n }),\n createResolver({\n intent: ThreadAction.AddMessage,\n resolve: ({ anchor, subject, sender, text }) => {\n const thread = Relation.getSource(anchor) as Thread.Thread;\n const { state } = context.getCapability(ThreadCapabilities.MutableState);\n const subjectId = Obj.getDXN(subject).toString();\n const space = getSpace(subject);\n invariant(space, 'Space not found');\n\n const message = Obj.make(Message.Message, {\n created: new Date().toISOString(),\n sender,\n blocks: [{ _tag: 'text', text }],\n // TODO(wittjosiah): Context based on attention.\n // context: context ? Ref.make(context) : undefined,\n });\n thread.messages.push(Ref.make(message));\n\n const intents = [];\n const draft = state.drafts[subjectId]?.find((a) => a.id === anchor.id);\n if (draft) {\n // Move draft to document.\n thread.status = 'active';\n // TODO(wittjosiah): This causes the thread to flash as it transitions from draft to db.\n state.drafts[subjectId] = state.drafts[subjectId]?.filter((a) => a.id !== anchor.id);\n intents.push(createIntent(SpaceAction.AddObject, { object: thread, target: space, hidden: true }));\n intents.push(\n createIntent(SpaceAction.AddRelation, {\n space,\n schema: AnchoredTo.AnchoredTo,\n source: thread,\n target: subject,\n fields: { anchor: draft.anchor },\n }),\n );\n intents.push(\n createIntent(ObservabilityAction.SendEvent, {\n name: 'threads.create',\n properties: {\n spaceId: space.id,\n threadId: thread.id,\n },\n }),\n );\n }\n\n intents.push(\n createIntent(ObservabilityAction.SendEvent, {\n name: 'threads.message.add',\n properties: {\n spaceId: space.id,\n threadId: thread.id,\n threadLength: thread.messages.length,\n messageId: message.id,\n messageLength: text.length,\n },\n }),\n );\n\n return { intents };\n },\n }),\n createResolver({\n intent: ThreadAction.DeleteMessage,\n resolve: ({ subject, anchor, messageId, message, messageIndex }, undo) => {\n const thread = Relation.getSource(anchor) as Thread.Thread;\n const space = getSpace(subject);\n invariant(space, 'Space not found');\n\n if (!undo) {\n const messageIndex = thread.messages.findIndex(Ref.hasObjectId(messageId));\n const message = thread.messages[messageIndex]?.target;\n if (!message) {\n return;\n }\n\n if (messageIndex === 0 && thread.messages.length === 1) {\n // If the message is the only message in the thread, delete the thread.\n return {\n intents: [createIntent(ThreadAction.Delete, { subject, anchor })],\n };\n } else {\n thread.messages.splice(messageIndex, 1);\n }\n\n return {\n undoable: {\n message: ['message deleted label', { ns: meta.id }],\n data: { message, messageIndex },\n },\n intents: [\n createIntent(ObservabilityAction.SendEvent, {\n name: 'threads.message.delete',\n properties: {\n spaceId: space.id,\n threadId: thread.id,\n messageId: message.id,\n },\n }),\n ],\n };\n } else {\n if (messageIndex === undefined || !message) {\n return;\n }\n\n thread.messages.splice(messageIndex, 0, Ref.make(message));\n return {\n intents: [\n createIntent(ObservabilityAction.SendEvent, {\n name: 'threads.message.undo-delete',\n properties: {\n spaceId: space.id,\n threadId: thread.id,\n messageId: message.id,\n },\n }),\n ],\n };\n }\n },\n }),\n ]);\n"],
5
+ "mappings": "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",
6
+ "names": ["Effect", "Capabilities", "contributes", "createIntent", "createResolver", "sleep", "Obj", "Relation", "Type", "invariant", "ATTENDABLE_PATH_SEPARATOR", "DeckAction", "ObservabilityAction", "SpaceAction", "Ref", "getSpace", "Collection", "AnchoredTo", "Message", "Thread", "context", "contributes", "Capabilities", "IntentResolver", "createResolver", "intent", "ThreadAction", "OnCreateSpace", "resolve", "space", "isDefault", "rootCollection", "gen", "dispatch", "getCapability", "IntentDispatcher", "collection", "Collection", "makeManaged", "key", "Type", "getTypename", "Channel", "objects", "push", "Ref", "make", "object", "channel", "createIntent", "CreateChannel", "name", "spaceId", "id", "db", "add", "data", "CreateChannelThread", "thread", "Thread", "status", "threads", "Create", "anchor", "_anchor", "subject", "state", "ThreadCapabilities", "MutableState", "subjectId", "Obj", "getDXN", "toString", "Relation", "AnchoredTo", "Source", "Target", "draft", "drafts", "intents", "Select", "current", "DeckAction", "ChangeCompanion", "primary", "companion", "ATTENDABLE_PATH_SEPARATOR", "ToggleResolved", "undefined", "getSpace", "invariant", "ObservabilityAction", "SendEvent", "properties", "threadId", "Delete", "_thread", "undo", "getSource", "index", "findIndex", "a", "splice", "remove", "sleep", "undoable", "message", "ns", "meta", "AddMessage", "sender", "text", "Message", "created", "Date", "toISOString", "blocks", "_tag", "messages", "find", "filter", "SpaceAction", "AddObject", "target", "hidden", "AddRelation", "schema", "source", "fields", "threadLength", "length", "messageId", "messageLength", "DeleteMessage", "messageIndex", "hasObjectId"]
7
+ }