@dxos/plugin-thread 0.8.4-main.72ec0f3 → 0.8.4-main.937b3ca

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 (353) hide show
  1. package/dist/lib/browser/app-graph-builder-SPAZN5XL.mjs +188 -0
  2. package/dist/lib/browser/app-graph-builder-SPAZN5XL.mjs.map +7 -0
  3. package/dist/lib/browser/blueprint-definition-UQ63QKQG.mjs +17 -0
  4. package/dist/lib/browser/blueprint-definition-UQ63QKQG.mjs.map +7 -0
  5. package/dist/lib/browser/blueprints/index.mjs +8 -0
  6. package/dist/lib/browser/call-manager-YBRTG6T3.mjs +26 -0
  7. package/dist/lib/browser/call-manager-YBRTG6T3.mjs.map +7 -0
  8. package/dist/lib/browser/{chunk-KOBXMDCI.mjs → chunk-DLO2G3DM.mjs} +14 -12
  9. package/dist/lib/browser/chunk-DLO2G3DM.mjs.map +7 -0
  10. package/dist/lib/browser/{chunk-ZCW3NSDZ.mjs → chunk-ERK254BS.mjs} +68 -51
  11. package/dist/lib/browser/chunk-ERK254BS.mjs.map +7 -0
  12. package/dist/lib/browser/chunk-J5LGTIGS.mjs +10 -0
  13. package/dist/lib/browser/chunk-TAWDJPMD.mjs +293 -0
  14. package/dist/lib/browser/chunk-TAWDJPMD.mjs.map +7 -0
  15. package/dist/lib/browser/chunk-VZICDGBW.mjs +1813 -0
  16. package/dist/lib/browser/chunk-VZICDGBW.mjs.map +7 -0
  17. package/dist/lib/browser/{blueprint-definition-6BKYTMJS.mjs → chunk-ZFLSTQSE.mjs} +40 -38
  18. package/dist/lib/browser/chunk-ZFLSTQSE.mjs.map +7 -0
  19. package/dist/lib/browser/index.mjs +113 -105
  20. package/dist/lib/browser/index.mjs.map +4 -4
  21. package/dist/lib/browser/markdown-TSXOA3GV.mjs +210 -0
  22. package/dist/lib/browser/markdown-TSXOA3GV.mjs.map +7 -0
  23. package/dist/lib/browser/meta.json +1 -1
  24. package/dist/lib/browser/operation-resolver-MDMEBYH2.mjs +441 -0
  25. package/dist/lib/browser/operation-resolver-MDMEBYH2.mjs.map +7 -0
  26. package/dist/lib/browser/react-root-Q7U5D3DA.mjs +25 -0
  27. package/dist/lib/browser/react-root-Q7U5D3DA.mjs.map +7 -0
  28. package/dist/lib/browser/{react-surface-BCD5ODQ6.mjs → react-surface-WDZQSDWH.mjs} +35 -35
  29. package/dist/lib/browser/react-surface-WDZQSDWH.mjs.map +7 -0
  30. package/dist/lib/browser/repair-TDKAFAGH.mjs +38 -0
  31. package/dist/lib/browser/repair-TDKAFAGH.mjs.map +7 -0
  32. package/dist/lib/browser/settings-OOKKVXV7.mjs +32 -0
  33. package/dist/lib/browser/settings-OOKKVXV7.mjs.map +7 -0
  34. package/dist/lib/browser/state-3LKZHDRI.mjs +24 -0
  35. package/dist/lib/browser/state-3LKZHDRI.mjs.map +7 -0
  36. package/dist/lib/browser/types/index.mjs +7 -7
  37. package/dist/lib/node-esm/app-graph-builder-3LJAPDUW.mjs +189 -0
  38. package/dist/lib/node-esm/app-graph-builder-3LJAPDUW.mjs.map +7 -0
  39. package/dist/lib/node-esm/blueprint-definition-MZZXXL37.mjs +18 -0
  40. package/dist/lib/node-esm/blueprint-definition-MZZXXL37.mjs.map +7 -0
  41. package/dist/lib/node-esm/blueprints/index.mjs +9 -0
  42. package/dist/lib/node-esm/call-manager-MMCTNFOH.mjs +27 -0
  43. package/dist/lib/node-esm/call-manager-MMCTNFOH.mjs.map +7 -0
  44. package/dist/lib/node-esm/chunk-3RD3IVVD.mjs +1814 -0
  45. package/dist/lib/node-esm/chunk-3RD3IVVD.mjs.map +7 -0
  46. package/dist/lib/node-esm/{blueprint-definition-6LEAWSC7.mjs → chunk-AQHPP6ZX.mjs} +40 -38
  47. package/dist/lib/node-esm/chunk-AQHPP6ZX.mjs.map +7 -0
  48. package/dist/lib/node-esm/chunk-ARTUUKTM.mjs +294 -0
  49. package/dist/lib/node-esm/chunk-ARTUUKTM.mjs.map +7 -0
  50. package/dist/lib/node-esm/chunk-HSLMI22Q.mjs +11 -0
  51. package/dist/lib/node-esm/{chunk-PZH2EDU5.mjs → chunk-KRBZBJRI.mjs} +14 -12
  52. package/dist/lib/node-esm/chunk-KRBZBJRI.mjs.map +7 -0
  53. package/dist/lib/node-esm/{chunk-7KZWZS2U.mjs → chunk-QP3KQOPQ.mjs} +68 -51
  54. package/dist/lib/node-esm/chunk-QP3KQOPQ.mjs.map +7 -0
  55. package/dist/lib/node-esm/index.mjs +113 -105
  56. package/dist/lib/node-esm/index.mjs.map +4 -4
  57. package/dist/lib/node-esm/markdown-N2UJ3D6L.mjs +211 -0
  58. package/dist/lib/node-esm/markdown-N2UJ3D6L.mjs.map +7 -0
  59. package/dist/lib/node-esm/meta.json +1 -1
  60. package/dist/lib/node-esm/operation-resolver-7PHDJZA2.mjs +442 -0
  61. package/dist/lib/node-esm/operation-resolver-7PHDJZA2.mjs.map +7 -0
  62. package/dist/lib/node-esm/react-root-SZIGQRDZ.mjs +26 -0
  63. package/dist/lib/node-esm/react-root-SZIGQRDZ.mjs.map +7 -0
  64. package/dist/lib/node-esm/{react-surface-WZH7OAO3.mjs → react-surface-24PNWUDX.mjs} +35 -35
  65. package/dist/lib/node-esm/react-surface-24PNWUDX.mjs.map +7 -0
  66. package/dist/lib/node-esm/repair-LHLLGXKF.mjs +39 -0
  67. package/dist/lib/node-esm/repair-LHLLGXKF.mjs.map +7 -0
  68. package/dist/lib/node-esm/settings-LXZQXSPL.mjs +33 -0
  69. package/dist/lib/node-esm/settings-LXZQXSPL.mjs.map +7 -0
  70. package/dist/lib/node-esm/state-YYAK5ENM.mjs +25 -0
  71. package/dist/lib/node-esm/state-YYAK5ENM.mjs.map +7 -0
  72. package/dist/lib/node-esm/types/index.mjs +7 -7
  73. package/dist/types/src/ThreadPlugin.d.ts +2 -1
  74. package/dist/types/src/ThreadPlugin.d.ts.map +1 -1
  75. package/dist/types/src/blueprints/index.d.ts +2 -0
  76. package/dist/types/src/blueprints/index.d.ts.map +1 -0
  77. package/dist/types/src/blueprints/thread-blueprint.d.ts +21 -0
  78. package/dist/types/src/blueprints/thread-blueprint.d.ts.map +1 -0
  79. package/dist/types/src/calls/call-manager.d.ts +40 -30
  80. package/dist/types/src/calls/call-manager.d.ts.map +1 -1
  81. package/dist/types/src/calls/call-swarm-synchronizer.d.ts +2 -2
  82. package/dist/types/src/calls/call-swarm-synchronizer.d.ts.map +1 -1
  83. package/dist/types/src/calls/media-manager.d.ts +1 -1
  84. package/dist/types/src/calls/media-manager.d.ts.map +1 -1
  85. package/dist/types/src/calls/util/calls-service.d.ts +1 -1
  86. package/dist/types/src/calls/util/calls-service.d.ts.map +1 -1
  87. package/dist/types/src/calls/util/task-scheduling.d.ts +2 -2
  88. package/dist/types/src/calls/util/task-scheduling.d.ts.map +1 -1
  89. package/dist/types/src/capabilities/app-graph-builder/app-graph-builder.d.ts +6 -0
  90. package/dist/types/src/capabilities/app-graph-builder/app-graph-builder.d.ts.map +1 -0
  91. package/dist/types/src/capabilities/app-graph-builder/index.d.ts +3 -0
  92. package/dist/types/src/capabilities/app-graph-builder/index.d.ts.map +1 -0
  93. package/dist/types/src/capabilities/blueprint-definition/blueprint-definition.d.ts +9 -0
  94. package/dist/types/src/capabilities/blueprint-definition/blueprint-definition.d.ts.map +1 -0
  95. package/dist/types/src/capabilities/blueprint-definition/index.d.ts +3 -0
  96. package/dist/types/src/capabilities/blueprint-definition/index.d.ts.map +1 -0
  97. package/dist/types/src/capabilities/call-manager/call-manager.d.ts +6 -0
  98. package/dist/types/src/capabilities/call-manager/call-manager.d.ts.map +1 -0
  99. package/dist/types/src/capabilities/call-manager/index.d.ts +3 -0
  100. package/dist/types/src/capabilities/call-manager/index.d.ts.map +1 -0
  101. package/dist/types/src/capabilities/index.d.ts +10 -16
  102. package/dist/types/src/capabilities/index.d.ts.map +1 -1
  103. package/dist/types/src/capabilities/markdown/index.d.ts +3 -0
  104. package/dist/types/src/capabilities/markdown/index.d.ts.map +1 -0
  105. package/dist/types/src/capabilities/markdown/markdown.d.ts +5 -0
  106. package/dist/types/src/capabilities/markdown/markdown.d.ts.map +1 -0
  107. package/dist/types/src/capabilities/operation-resolver/index.d.ts +3 -0
  108. package/dist/types/src/capabilities/operation-resolver/index.d.ts.map +1 -0
  109. package/dist/types/src/capabilities/operation-resolver/operation-resolver.d.ts +5 -0
  110. package/dist/types/src/capabilities/operation-resolver/operation-resolver.d.ts.map +1 -0
  111. package/dist/types/src/capabilities/react-root/index.d.ts +6 -0
  112. package/dist/types/src/capabilities/react-root/index.d.ts.map +1 -0
  113. package/dist/types/src/capabilities/react-root/react-root.d.ts +9 -0
  114. package/dist/types/src/capabilities/react-root/react-root.d.ts.map +1 -0
  115. package/dist/types/src/capabilities/react-surface/index.d.ts +3 -0
  116. package/dist/types/src/capabilities/react-surface/index.d.ts.map +1 -0
  117. package/dist/types/src/capabilities/react-surface/react-surface.d.ts +5 -0
  118. package/dist/types/src/capabilities/react-surface/react-surface.d.ts.map +1 -0
  119. package/dist/types/src/capabilities/repair/index.d.ts +3 -0
  120. package/dist/types/src/capabilities/repair/index.d.ts.map +1 -0
  121. package/dist/types/src/capabilities/repair/repair.d.ts +6 -0
  122. package/dist/types/src/capabilities/repair/repair.d.ts.map +1 -0
  123. package/dist/types/src/capabilities/settings/index.d.ts +3 -0
  124. package/dist/types/src/capabilities/settings/index.d.ts.map +1 -0
  125. package/dist/types/src/capabilities/settings/settings.d.ts +5 -0
  126. package/dist/types/src/capabilities/settings/settings.d.ts.map +1 -0
  127. package/dist/types/src/capabilities/state/index.d.ts +3 -0
  128. package/dist/types/src/capabilities/state/index.d.ts.map +1 -0
  129. package/dist/types/src/capabilities/state/state.d.ts +7 -0
  130. package/dist/types/src/capabilities/state/state.d.ts.map +1 -0
  131. package/dist/types/src/components/Call/Call.d.ts.map +1 -1
  132. package/dist/types/src/components/Call/Toolbar.d.ts.map +1 -1
  133. package/dist/types/src/components/CallSidebar.d.ts.map +1 -1
  134. package/dist/types/src/components/ChannelContainer.d.ts +4 -5
  135. package/dist/types/src/components/ChannelContainer.d.ts.map +1 -1
  136. package/dist/types/src/components/ChannelContainer.stories.d.ts +5 -1
  137. package/dist/types/src/components/ChannelContainer.stories.d.ts.map +1 -1
  138. package/dist/types/src/components/Chat.stories.d.ts +4 -0
  139. package/dist/types/src/components/Chat.stories.d.ts.map +1 -1
  140. package/dist/types/src/components/ChatContainer.d.ts +2 -2
  141. package/dist/types/src/components/ChatContainer.d.ts.map +1 -1
  142. package/dist/types/src/components/Comments.stories.d.ts +4 -0
  143. package/dist/types/src/components/Comments.stories.d.ts.map +1 -1
  144. package/dist/types/src/components/CommentsContainer.d.ts.map +1 -1
  145. package/dist/types/src/components/CommentsThreadContainer.d.ts.map +1 -1
  146. package/dist/types/src/components/Lobby/Lobby.d.ts.map +1 -1
  147. package/dist/types/src/components/Media/VideoObject.d.ts +1 -1
  148. package/dist/types/src/components/Media/VideoObject.stories.d.ts +1 -1
  149. package/dist/types/src/components/MessageContainer.d.ts +3 -2
  150. package/dist/types/src/components/MessageContainer.d.ts.map +1 -1
  151. package/dist/types/src/components/Participant/Participant.d.ts.map +1 -1
  152. package/dist/types/src/components/ResponsiveGrid/ResponsiveContainer.stories.d.ts +4 -0
  153. package/dist/types/src/components/ResponsiveGrid/ResponsiveContainer.stories.d.ts.map +1 -1
  154. package/dist/types/src/components/ResponsiveGrid/ResponsiveGrid.stories.d.ts +4 -0
  155. package/dist/types/src/components/ResponsiveGrid/ResponsiveGrid.stories.d.ts.map +1 -1
  156. package/dist/types/src/components/ThreadCompanion.d.ts.map +1 -1
  157. package/dist/types/src/components/ThreadSettings.d.ts +4 -2
  158. package/dist/types/src/components/ThreadSettings.d.ts.map +1 -1
  159. package/dist/types/src/components/index.d.ts +2 -2
  160. package/dist/types/src/components/index.d.ts.map +1 -1
  161. package/dist/types/src/components/testing.d.ts +1 -1
  162. package/dist/types/src/components/testing.d.ts.map +1 -1
  163. package/dist/types/src/extensions/threads.d.ts +7 -2
  164. package/dist/types/src/extensions/threads.d.ts.map +1 -1
  165. package/dist/types/src/functions/create-proposals.d.ts.map +1 -1
  166. package/dist/types/src/hooks/analytics.d.ts +1 -2
  167. package/dist/types/src/hooks/analytics.d.ts.map +1 -1
  168. package/dist/types/src/index.d.ts +1 -1
  169. package/dist/types/src/index.d.ts.map +1 -1
  170. package/dist/types/src/meta.d.ts +2 -2
  171. package/dist/types/src/meta.d.ts.map +1 -1
  172. package/dist/types/src/testing/stories.d.ts +2 -1
  173. package/dist/types/src/testing/stories.d.ts.map +1 -1
  174. package/dist/types/src/translations.d.ts +4 -0
  175. package/dist/types/src/translations.d.ts.map +1 -1
  176. package/dist/types/src/types/Channel.d.ts +691 -12
  177. package/dist/types/src/types/Channel.d.ts.map +1 -1
  178. package/dist/types/src/types/capabilities.d.ts +23 -0
  179. package/dist/types/src/types/capabilities.d.ts.map +1 -0
  180. package/dist/types/src/types/index.d.ts +1 -1
  181. package/dist/types/src/types/index.d.ts.map +1 -1
  182. package/dist/types/src/types/types.d.ts +3213 -354
  183. package/dist/types/src/types/types.d.ts.map +1 -1
  184. package/dist/types/tsconfig.tsbuildinfo +1 -1
  185. package/package.json +86 -69
  186. package/src/ThreadPlugin.tsx +54 -90
  187. package/src/blueprints/index.ts +5 -0
  188. package/src/blueprints/thread-blueprint.ts +32 -0
  189. package/src/calls/call-manager.ts +76 -52
  190. package/src/calls/call-swarm-synchronizer.ts +2 -2
  191. package/src/calls/media-manager.ts +1 -1
  192. package/src/calls/util/calls-service.ts +1 -1
  193. package/src/calls/util/task-scheduling.ts +4 -4
  194. package/src/capabilities/app-graph-builder/app-graph-builder.ts +201 -0
  195. package/src/capabilities/app-graph-builder/index.ts +7 -0
  196. package/src/capabilities/blueprint-definition/blueprint-definition.ts +23 -0
  197. package/src/capabilities/blueprint-definition/index.ts +7 -0
  198. package/src/capabilities/call-manager/call-manager.ts +26 -0
  199. package/src/capabilities/call-manager/index.ts +7 -0
  200. package/src/capabilities/index.ts +10 -13
  201. package/src/capabilities/markdown/index.ts +7 -0
  202. package/src/capabilities/markdown/markdown.ts +83 -0
  203. package/src/capabilities/operation-resolver/index.ts +7 -0
  204. package/src/capabilities/operation-resolver/operation-resolver.ts +400 -0
  205. package/src/capabilities/react-root/index.ts +7 -0
  206. package/src/capabilities/react-root/react-root.tsx +20 -0
  207. package/src/capabilities/react-surface/index.ts +7 -0
  208. package/src/capabilities/react-surface/react-surface.tsx +97 -0
  209. package/src/capabilities/repair/index.ts +7 -0
  210. package/src/capabilities/repair/repair.ts +51 -0
  211. package/src/capabilities/settings/index.ts +7 -0
  212. package/src/capabilities/settings/settings.ts +33 -0
  213. package/src/capabilities/state/index.ts +7 -0
  214. package/src/capabilities/state/state.ts +22 -0
  215. package/src/components/Call/Call.tsx +7 -3
  216. package/src/components/Call/Toolbar.tsx +28 -20
  217. package/src/components/CallSidebar.tsx +4 -2
  218. package/src/components/ChannelContainer.stories.tsx +12 -10
  219. package/src/components/ChannelContainer.tsx +18 -16
  220. package/src/components/Chat.stories.tsx +8 -8
  221. package/src/components/ChatContainer.tsx +8 -9
  222. package/src/components/Comments.stories.tsx +22 -20
  223. package/src/components/CommentsContainer.tsx +1 -2
  224. package/src/components/CommentsThreadContainer.tsx +10 -11
  225. package/src/components/Lobby/Lobby.tsx +8 -6
  226. package/src/components/Media/AudioStream.tsx +2 -2
  227. package/src/components/Media/VideoObject.tsx +1 -1
  228. package/src/components/MessageContainer.tsx +54 -23
  229. package/src/components/Participant/Participant.tsx +31 -18
  230. package/src/components/ResponsiveGrid/ResponsiveContainer.tsx +1 -1
  231. package/src/components/ResponsiveGrid/ResponsiveGrid.tsx +1 -1
  232. package/src/components/ResponsiveGrid/ResponsiveGridItem.tsx +1 -1
  233. package/src/components/ThreadCompanion.tsx +70 -65
  234. package/src/components/ThreadSettings.tsx +6 -1
  235. package/src/components/command-extension.ts +2 -2
  236. package/src/components/index.ts +2 -5
  237. package/src/components/testing.ts +1 -3
  238. package/src/extensions/threads.ts +78 -43
  239. package/src/functions/create-proposals.ts +6 -7
  240. package/src/hooks/analytics.ts +23 -20
  241. package/src/index.ts +1 -1
  242. package/src/meta.ts +2 -2
  243. package/src/testing/stories.ts +15 -11
  244. package/src/translations.ts +2 -0
  245. package/src/types/Channel.ts +13 -10
  246. package/src/types/capabilities.ts +34 -0
  247. package/src/types/index.ts +1 -1
  248. package/src/types/types.ts +161 -74
  249. package/dist/lib/browser/ChannelContainer-MX5ABVGC.mjs +0 -16
  250. package/dist/lib/browser/ChatContainer-7F5Y6GXJ.mjs +0 -15
  251. package/dist/lib/browser/app-graph-builder-HNYLII5E.mjs +0 -170
  252. package/dist/lib/browser/app-graph-builder-HNYLII5E.mjs.map +0 -7
  253. package/dist/lib/browser/blueprint-definition-6BKYTMJS.mjs.map +0 -7
  254. package/dist/lib/browser/call-manager-MAXQLMMS.mjs +0 -24
  255. package/dist/lib/browser/call-manager-MAXQLMMS.mjs.map +0 -7
  256. package/dist/lib/browser/chunk-BBTXGRIR.mjs +0 -18
  257. package/dist/lib/browser/chunk-BBTXGRIR.mjs.map +0 -7
  258. package/dist/lib/browser/chunk-BQWQFTWT.mjs +0 -612
  259. package/dist/lib/browser/chunk-BQWQFTWT.mjs.map +0 -7
  260. package/dist/lib/browser/chunk-FR6MEAZI.mjs +0 -377
  261. package/dist/lib/browser/chunk-FR6MEAZI.mjs.map +0 -7
  262. package/dist/lib/browser/chunk-INQVAYPN.mjs +0 -989
  263. package/dist/lib/browser/chunk-INQVAYPN.mjs.map +0 -7
  264. package/dist/lib/browser/chunk-K2DUJRFJ.mjs +0 -27
  265. package/dist/lib/browser/chunk-K2DUJRFJ.mjs.map +0 -7
  266. package/dist/lib/browser/chunk-KOBXMDCI.mjs.map +0 -7
  267. package/dist/lib/browser/chunk-NMJEVD36.mjs +0 -168
  268. package/dist/lib/browser/chunk-NMJEVD36.mjs.map +0 -7
  269. package/dist/lib/browser/chunk-OOUDK7Q7.mjs +0 -23
  270. package/dist/lib/browser/chunk-OOUDK7Q7.mjs.map +0 -7
  271. package/dist/lib/browser/chunk-ZCW3NSDZ.mjs.map +0 -7
  272. package/dist/lib/browser/intent-resolver-BOUT4WGY.mjs +0 -361
  273. package/dist/lib/browser/intent-resolver-BOUT4WGY.mjs.map +0 -7
  274. package/dist/lib/browser/markdown-74EUSQGV.mjs +0 -171
  275. package/dist/lib/browser/markdown-74EUSQGV.mjs.map +0 -7
  276. package/dist/lib/browser/react-root-BVG7B2LW.mjs +0 -28
  277. package/dist/lib/browser/react-root-BVG7B2LW.mjs.map +0 -7
  278. package/dist/lib/browser/react-surface-BCD5ODQ6.mjs.map +0 -7
  279. package/dist/lib/browser/settings-LGQUZITB.mjs +0 -22
  280. package/dist/lib/browser/settings-LGQUZITB.mjs.map +0 -7
  281. package/dist/lib/browser/state-36REWXO5.mjs +0 -34
  282. package/dist/lib/browser/state-36REWXO5.mjs.map +0 -7
  283. package/dist/lib/node-esm/ChannelContainer-2JJJ3IDK.mjs +0 -17
  284. package/dist/lib/node-esm/ChatContainer-C526R4DI.mjs +0 -16
  285. package/dist/lib/node-esm/app-graph-builder-SOCKP4ST.mjs +0 -171
  286. package/dist/lib/node-esm/app-graph-builder-SOCKP4ST.mjs.map +0 -7
  287. package/dist/lib/node-esm/blueprint-definition-6LEAWSC7.mjs.map +0 -7
  288. package/dist/lib/node-esm/call-manager-LC4OS2KD.mjs +0 -25
  289. package/dist/lib/node-esm/call-manager-LC4OS2KD.mjs.map +0 -7
  290. package/dist/lib/node-esm/chunk-5DLH4MWN.mjs +0 -25
  291. package/dist/lib/node-esm/chunk-5DLH4MWN.mjs.map +0 -7
  292. package/dist/lib/node-esm/chunk-7KZWZS2U.mjs.map +0 -7
  293. package/dist/lib/node-esm/chunk-JF7THR7F.mjs +0 -990
  294. package/dist/lib/node-esm/chunk-JF7THR7F.mjs.map +0 -7
  295. package/dist/lib/node-esm/chunk-JJW6YMLC.mjs +0 -613
  296. package/dist/lib/node-esm/chunk-JJW6YMLC.mjs.map +0 -7
  297. package/dist/lib/node-esm/chunk-PZH2EDU5.mjs.map +0 -7
  298. package/dist/lib/node-esm/chunk-TJKM5JZT.mjs +0 -169
  299. package/dist/lib/node-esm/chunk-TJKM5JZT.mjs.map +0 -7
  300. package/dist/lib/node-esm/chunk-TWKGDFCS.mjs +0 -378
  301. package/dist/lib/node-esm/chunk-TWKGDFCS.mjs.map +0 -7
  302. package/dist/lib/node-esm/chunk-XI45H4IV.mjs +0 -28
  303. package/dist/lib/node-esm/chunk-XI45H4IV.mjs.map +0 -7
  304. package/dist/lib/node-esm/chunk-ZQAGII7M.mjs +0 -19
  305. package/dist/lib/node-esm/chunk-ZQAGII7M.mjs.map +0 -7
  306. package/dist/lib/node-esm/intent-resolver-45PLIFCJ.mjs +0 -362
  307. package/dist/lib/node-esm/intent-resolver-45PLIFCJ.mjs.map +0 -7
  308. package/dist/lib/node-esm/markdown-566XXB55.mjs +0 -172
  309. package/dist/lib/node-esm/markdown-566XXB55.mjs.map +0 -7
  310. package/dist/lib/node-esm/react-root-DCY6DKLC.mjs +0 -29
  311. package/dist/lib/node-esm/react-root-DCY6DKLC.mjs.map +0 -7
  312. package/dist/lib/node-esm/react-surface-WZH7OAO3.mjs.map +0 -7
  313. package/dist/lib/node-esm/settings-WKLJSP6R.mjs +0 -23
  314. package/dist/lib/node-esm/settings-WKLJSP6R.mjs.map +0 -7
  315. package/dist/lib/node-esm/state-X3W67GTL.mjs +0 -35
  316. package/dist/lib/node-esm/state-X3W67GTL.mjs.map +0 -7
  317. package/dist/types/src/capabilities/app-graph-builder.d.ts +0 -4
  318. package/dist/types/src/capabilities/app-graph-builder.d.ts.map +0 -1
  319. package/dist/types/src/capabilities/blueprint-definition.d.ts +0 -5
  320. package/dist/types/src/capabilities/blueprint-definition.d.ts.map +0 -1
  321. package/dist/types/src/capabilities/call-manager.d.ts +0 -5
  322. package/dist/types/src/capabilities/call-manager.d.ts.map +0 -1
  323. package/dist/types/src/capabilities/capabilities.d.ts +0 -27
  324. package/dist/types/src/capabilities/capabilities.d.ts.map +0 -1
  325. package/dist/types/src/capabilities/intent-resolver.d.ts +0 -4
  326. package/dist/types/src/capabilities/intent-resolver.d.ts.map +0 -1
  327. package/dist/types/src/capabilities/markdown.d.ts +0 -4
  328. package/dist/types/src/capabilities/markdown.d.ts.map +0 -1
  329. package/dist/types/src/capabilities/react-root.d.ts +0 -7
  330. package/dist/types/src/capabilities/react-root.d.ts.map +0 -1
  331. package/dist/types/src/capabilities/react-surface.d.ts +0 -4
  332. package/dist/types/src/capabilities/react-surface.d.ts.map +0 -1
  333. package/dist/types/src/capabilities/settings.d.ts +0 -4
  334. package/dist/types/src/capabilities/settings.d.ts.map +0 -1
  335. package/dist/types/src/capabilities/state.d.ts +0 -7
  336. package/dist/types/src/capabilities/state.d.ts.map +0 -1
  337. package/dist/types/src/types/Thread.d.ts +0 -167
  338. package/dist/types/src/types/Thread.d.ts.map +0 -1
  339. package/src/capabilities/app-graph-builder.ts +0 -194
  340. package/src/capabilities/blueprint-definition.ts +0 -38
  341. package/src/capabilities/call-manager.ts +0 -20
  342. package/src/capabilities/capabilities.ts +0 -33
  343. package/src/capabilities/intent-resolver.ts +0 -311
  344. package/src/capabilities/markdown.ts +0 -71
  345. package/src/capabilities/react-root.tsx +0 -17
  346. package/src/capabilities/react-surface.tsx +0 -90
  347. package/src/capabilities/settings.ts +0 -19
  348. package/src/capabilities/state.ts +0 -26
  349. package/src/types/Thread.ts +0 -26
  350. /package/dist/lib/browser/{ChannelContainer-MX5ABVGC.mjs.map → blueprints/index.mjs.map} +0 -0
  351. /package/dist/lib/browser/{ChatContainer-7F5Y6GXJ.mjs.map → chunk-J5LGTIGS.mjs.map} +0 -0
  352. /package/dist/lib/node-esm/{ChannelContainer-2JJJ3IDK.mjs.map → blueprints/index.mjs.map} +0 -0
  353. /package/dist/lib/node-esm/{ChatContainer-C526R4DI.mjs.map → chunk-HSLMI22Q.mjs.map} +0 -0
package/package.json CHANGED
@@ -1,30 +1,43 @@
1
1
  {
2
2
  "name": "@dxos/plugin-thread",
3
- "version": "0.8.4-main.72ec0f3",
3
+ "version": "0.8.4-main.937b3ca",
4
4
  "description": "DXOS Threads Surface plugin",
5
5
  "homepage": "https://dxos.org",
6
6
  "bugs": "https://github.com/dxos/dxos/issues",
7
+ "repository": {
8
+ "type": "git",
9
+ "url": "https://github.com/dxos/dxos"
10
+ },
7
11
  "license": "MIT",
8
12
  "author": "DXOS.org",
9
13
  "sideEffects": true,
10
14
  "type": "module",
11
15
  "exports": {
12
16
  ".": {
13
- "source": "./src/index.ts",
14
- "types": "./dist/types/src/index.d.ts",
15
17
  "browser": "./dist/lib/browser/index.mjs",
16
- "node": "./dist/lib/node-esm/index.mjs"
18
+ "node": "./dist/lib/node-esm/index.mjs",
19
+ "source": "./src/index.ts",
20
+ "types": "./dist/types/src/index.d.ts"
21
+ },
22
+ "./blueprints": {
23
+ "browser": "./dist/lib/browser/blueprints/index.mjs",
24
+ "node": "./dist/lib/node-esm/blueprints/index.mjs",
25
+ "source": "./src/blueprints/index.ts",
26
+ "types": "./dist/types/src/blueprints/index.d.ts"
17
27
  },
18
28
  "./types": {
19
- "source": "./src/types/index.ts",
20
- "types": "./dist/types/src/types/index.d.ts",
21
29
  "browser": "./dist/lib/browser/types/index.mjs",
22
- "node": "./dist/lib/node-esm/types/index.mjs"
30
+ "node": "./dist/lib/node-esm/types/index.mjs",
31
+ "source": "./src/types/index.ts",
32
+ "types": "./dist/types/src/types/index.d.ts"
23
33
  }
24
34
  },
25
35
  "types": "dist/types/src/index.d.ts",
26
36
  "typesVersions": {
27
37
  "*": {
38
+ "blueprints": [
39
+ "dist/types/src/blueprints/index.d.ts"
40
+ ],
28
41
  "types": [
29
42
  "dist/types/src/types/index.d.ts"
30
43
  ]
@@ -38,80 +51,84 @@
38
51
  "@codemirror/language": "^6.11.3",
39
52
  "@codemirror/state": "^6.5.2",
40
53
  "@codemirror/view": "^6.38.4",
41
- "@effect/ai": "0.29.1",
42
- "@effect/experimental": "0.56.0",
54
+ "@effect-atom/atom": "^0.4.13",
55
+ "@effect-atom/atom-react": "^0.4.6",
56
+ "@effect/ai": "0.32.1",
57
+ "@effect/experimental": "0.57.11",
43
58
  "@peermetrics/webrtc-stats": "5.7.1",
44
- "@preact-signals/safe-react": "^0.9.0",
45
- "@preact/signals-core": "^1.12.1",
46
59
  "date-fns": "^3.3.1",
47
60
  "extendable-media-recorder": "^9.2.19",
48
61
  "extendable-media-recorder-wav-encoder": "^7.0.123",
49
62
  "md5-hex": "5.0.0",
50
63
  "react-resize-detector": "^11.0.1",
51
64
  "wavefile": "^11.0.0",
52
- "@dxos/app-framework": "0.8.4-main.72ec0f3",
53
- "@dxos/async": "0.8.4-main.72ec0f3",
54
- "@dxos/assistant": "0.8.4-main.72ec0f3",
55
- "@dxos/codec-protobuf": "0.8.4-main.72ec0f3",
56
- "@dxos/context": "0.8.4-main.72ec0f3",
57
- "@dxos/debug": "0.8.4-main.72ec0f3",
58
- "@dxos/display-name": "0.8.4-main.72ec0f3",
59
- "@dxos/devtools": "0.8.4-main.72ec0f3",
60
- "@dxos/echo": "0.8.4-main.72ec0f3",
61
- "@dxos/echo-db": "0.8.4-main.72ec0f3",
62
- "@dxos/functions": "0.8.4-main.72ec0f3",
63
- "@dxos/keys": "0.8.4-main.72ec0f3",
64
- "@dxos/invariant": "0.8.4-main.72ec0f3",
65
- "@dxos/blueprints": "0.8.4-main.72ec0f3",
66
- "@dxos/live-object": "0.8.4-main.72ec0f3",
67
- "@dxos/log": "0.8.4-main.72ec0f3",
68
- "@dxos/plugin-attention": "0.8.4-main.72ec0f3",
69
- "@dxos/plugin-client": "0.8.4-main.72ec0f3",
70
- "@dxos/local-storage": "0.8.4-main.72ec0f3",
71
- "@dxos/plugin-deck": "0.8.4-main.72ec0f3",
72
- "@dxos/plugin-graph": "0.8.4-main.72ec0f3",
73
- "@dxos/plugin-observability": "0.8.4-main.72ec0f3",
74
- "@dxos/plugin-space": "0.8.4-main.72ec0f3",
75
- "@dxos/plugin-markdown": "0.8.4-main.72ec0f3",
76
- "@dxos/protocols": "0.8.4-main.72ec0f3",
77
- "@dxos/react-client": "0.8.4-main.72ec0f3",
78
- "@dxos/react-ui-attention": "0.8.4-main.72ec0f3",
79
- "@dxos/react-ui-dnd": "0.8.4-main.72ec0f3",
80
- "@dxos/react-ui-editor": "0.8.4-main.72ec0f3",
81
- "@dxos/react-ui-form": "0.8.4-main.72ec0f3",
82
- "@dxos/react-ui-menu": "0.8.4-main.72ec0f3",
83
- "@dxos/react-ui-stack": "0.8.4-main.72ec0f3",
84
- "@dxos/react-ui-syntax-highlighter": "0.8.4-main.72ec0f3",
85
- "@dxos/react-ui-sfx": "0.8.4-main.72ec0f3",
86
- "@dxos/react-ui-tabs": "0.8.4-main.72ec0f3",
87
- "@dxos/react-ui-thread": "0.8.4-main.72ec0f3",
88
- "@dxos/schema": "0.8.4-main.72ec0f3",
89
- "@dxos/types": "0.8.4-main.72ec0f3",
90
- "@dxos/util": "0.8.4-main.72ec0f3"
65
+ "@dxos/app-framework": "0.8.4-main.937b3ca",
66
+ "@dxos/assistant": "0.8.4-main.937b3ca",
67
+ "@dxos/blueprints": "0.8.4-main.937b3ca",
68
+ "@dxos/async": "0.8.4-main.937b3ca",
69
+ "@dxos/codec-protobuf": "0.8.4-main.937b3ca",
70
+ "@dxos/context": "0.8.4-main.937b3ca",
71
+ "@dxos/devtools": "0.8.4-main.937b3ca",
72
+ "@dxos/debug": "0.8.4-main.937b3ca",
73
+ "@dxos/display-name": "0.8.4-main.937b3ca",
74
+ "@dxos/echo-react": "0.8.4-main.937b3ca",
75
+ "@dxos/echo": "0.8.4-main.937b3ca",
76
+ "@dxos/echo-db": "0.8.4-main.937b3ca",
77
+ "@dxos/effect": "0.8.4-main.937b3ca",
78
+ "@dxos/functions": "0.8.4-main.937b3ca",
79
+ "@dxos/invariant": "0.8.4-main.937b3ca",
80
+ "@dxos/keys": "0.8.4-main.937b3ca",
81
+ "@dxos/plugin-attention": "0.8.4-main.937b3ca",
82
+ "@dxos/operation": "0.8.4-main.937b3ca",
83
+ "@dxos/plugin-client": "0.8.4-main.937b3ca",
84
+ "@dxos/plugin-deck": "0.8.4-main.937b3ca",
85
+ "@dxos/plugin-graph": "0.8.4-main.937b3ca",
86
+ "@dxos/plugin-observability": "0.8.4-main.937b3ca",
87
+ "@dxos/plugin-markdown": "0.8.4-main.937b3ca",
88
+ "@dxos/protocols": "0.8.4-main.937b3ca",
89
+ "@dxos/plugin-space": "0.8.4-main.937b3ca",
90
+ "@dxos/react-client": "0.8.4-main.937b3ca",
91
+ "@dxos/react-ui-attention": "0.8.4-main.937b3ca",
92
+ "@dxos/react-ui-dnd": "0.8.4-main.937b3ca",
93
+ "@dxos/react-ui-editor": "0.8.4-main.937b3ca",
94
+ "@dxos/react-ui-menu": "0.8.4-main.937b3ca",
95
+ "@dxos/react-ui-mosaic": "0.8.4-main.937b3ca",
96
+ "@dxos/react-ui-sfx": "0.8.4-main.937b3ca",
97
+ "@dxos/react-ui-stack": "0.8.4-main.937b3ca",
98
+ "@dxos/react-ui-syntax-highlighter": "0.8.4-main.937b3ca",
99
+ "@dxos/react-ui-form": "0.8.4-main.937b3ca",
100
+ "@dxos/react-ui-tabs": "0.8.4-main.937b3ca",
101
+ "@dxos/schema": "0.8.4-main.937b3ca",
102
+ "@dxos/react-ui-thread": "0.8.4-main.937b3ca",
103
+ "@dxos/types": "0.8.4-main.937b3ca",
104
+ "@dxos/util": "0.8.4-main.937b3ca",
105
+ "@dxos/ui-editor": "0.8.4-main.937b3ca",
106
+ "@dxos/log": "0.8.4-main.937b3ca"
91
107
  },
92
108
  "devDependencies": {
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",
109
+ "@effect-atom/atom-react": "^0.4.6",
110
+ "@effect/platform": "0.93.6",
111
+ "@types/react": "~19.2.7",
112
+ "@types/react-dom": "~19.2.3",
113
+ "effect": "3.19.11",
114
+ "react": "~19.2.3",
115
+ "react-dom": "~19.2.3",
100
116
  "vite": "7.1.9",
101
- "@dxos/plugin-theme": "0.8.4-main.72ec0f3",
102
- "@dxos/random": "0.8.4-main.72ec0f3",
103
- "@dxos/react-ui-theme": "0.8.4-main.72ec0f3",
104
- "@dxos/react-ui": "0.8.4-main.72ec0f3",
105
- "@dxos/storybook-utils": "0.8.4-main.72ec0f3"
117
+ "@dxos/plugin-testing": "0.8.4-main.937b3ca",
118
+ "@dxos/plugin-theme": "0.8.4-main.937b3ca",
119
+ "@dxos/random": "0.8.4-main.937b3ca",
120
+ "@dxos/react-ui": "0.8.4-main.937b3ca",
121
+ "@dxos/ui-theme": "0.8.4-main.937b3ca",
122
+ "@dxos/storybook-utils": "0.8.4-main.937b3ca"
106
123
  },
107
124
  "peerDependencies": {
108
- "@effect-atom/atom-react": "^0.3.4",
109
- "@effect/platform": "^0.80.12",
110
- "effect": "^3.13.3",
111
- "react": "^19.0.0",
112
- "react-dom": "^19.0.0",
113
- "@dxos/react-ui": "0.8.4-main.72ec0f3",
114
- "@dxos/react-ui-theme": "0.8.4-main.72ec0f3"
125
+ "@effect-atom/atom-react": "^0.4.6",
126
+ "@effect/platform": "0.93.6",
127
+ "effect": "3.19.11",
128
+ "react": "~19.2.3",
129
+ "react-dom": "~19.2.3",
130
+ "@dxos/ui-theme": "0.8.4-main.937b3ca",
131
+ "@dxos/react-ui": "0.8.4-main.937b3ca"
115
132
  },
116
133
  "publishConfig": {
117
134
  "access": "public"
@@ -2,85 +2,84 @@
2
2
  // Copyright 2023 DXOS.org
3
3
  //
4
4
 
5
- import { Capabilities, Events, contributes, createIntent, defineModule, definePlugin } from '@dxos/app-framework';
5
+ import * as Effect from 'effect/Effect';
6
+
7
+ import { Capability, Common, Plugin } from '@dxos/app-framework';
6
8
  import { Ref, Type } from '@dxos/echo';
9
+ import { Operation } from '@dxos/operation';
7
10
  import { ClientCapabilities, ClientEvents } from '@dxos/plugin-client';
8
11
  import { MarkdownEvents } from '@dxos/plugin-markdown';
9
12
  import { SpaceCapabilities, SpaceEvents } from '@dxos/plugin-space';
10
- import { defineObjectForm } from '@dxos/plugin-space/types';
13
+ import { type CreateObject } from '@dxos/plugin-space/types';
11
14
  import { translations as threadTranslations } from '@dxos/react-ui-thread';
12
- import { AnchoredTo, Message } from '@dxos/types';
15
+ import { AnchoredTo, Message, Thread } from '@dxos/types';
13
16
 
14
17
  import {
15
18
  AppGraphBuilder,
16
19
  BlueprintDefinition,
17
20
  CallManager,
18
- IntentResolver,
19
21
  Markdown,
22
+ OperationResolver,
20
23
  ReactRoot,
21
24
  ReactSurface,
25
+ Repair,
22
26
  ThreadState,
23
27
  } from './capabilities';
24
28
  import { THREAD_ITEM, meta } from './meta';
25
29
  import { translations } from './translations';
26
- import { Channel, Thread, ThreadAction } from './types';
30
+ import { Channel, ThreadOperation } from './types';
27
31
 
28
32
  // TODO(Zan): Every instance of `cursor` should be replaced with `anchor`.
29
33
  // NOTE(burdon): Review/discuss CursorConverter semantics.
30
34
 
31
35
  // TODO(wittjosiah): Rename to ChatPlugin.
32
36
  // TODO(wittjosiah): Enabling comments should likely be factored out of this plugin but depend on it's capabilities.
33
- export const ThreadPlugin = definePlugin(meta, () => [
34
- defineModule({
35
- id: `${meta.id}/module/call-manager`,
37
+ export const ThreadPlugin = Plugin.define(meta).pipe(
38
+ Plugin.addModule({
39
+ id: 'call-manager',
36
40
  activatesOn: ClientEvents.ClientReady,
37
41
  activate: CallManager,
38
42
  }),
39
43
  // TODO(wittjosiah): Currently not used but leaving because there will likely be settings for threads again.
40
- // defineModule({
41
- // id: `${meta.id}/module/settings`,
44
+ // Plugin.addModule({
45
+ // id: 'settings',
42
46
  // activatesOn: Events.SetupSettings,
43
47
  // activate: ThreadSettings,
44
48
  // }),
45
- defineModule({
46
- id: `${meta.id}/module/state`,
49
+ Plugin.addModule({
50
+ id: 'state',
47
51
  // TODO(wittjosiah): Does not integrate with settings store.
48
52
  // Should this be a different event?
49
53
  // Should settings store be renamed to be more generic?
50
- activatesOn: Events.SetupSettings,
54
+ activatesOn: Common.ActivationEvent.SetupSettings,
51
55
  activate: ThreadState,
52
56
  }),
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, {
57
+ Common.Plugin.addTranslationsModule({ translations: [...translations, ...threadTranslations] }),
58
+ Common.Plugin.addMetadataModule({
59
+ metadata: [
60
+ {
63
61
  id: Type.getTypename(Channel.Channel),
64
62
  metadata: {
65
63
  icon: 'ph--hash--regular',
66
64
  iconHue: 'rose',
65
+ createObject: ((props) => Effect.sync(() => Channel.make(props))) satisfies CreateObject,
67
66
  },
68
- }),
69
- contributes(Capabilities.Metadata, {
67
+ },
68
+ {
70
69
  id: Type.getTypename(Thread.Thread),
71
70
  metadata: {
72
71
  // TODO(wittjosiah): Move out of metadata.
73
72
  loadReferences: async (thread: Thread.Thread) => await Ref.Array.loadAll(thread.messages ?? []),
74
73
  },
75
- }),
76
- contributes(Capabilities.Metadata, {
74
+ },
75
+ {
77
76
  id: Message.Message.typename,
78
77
  metadata: {
79
78
  // TODO(wittjosiah): Move out of metadata.
80
79
  loadReferences: () => [], // loadObjectReferences(message, (message) => [...message.parts, message.context]),
81
80
  },
82
- }),
83
- contributes(Capabilities.Metadata, {
81
+ },
82
+ {
84
83
  id: THREAD_ITEM,
85
84
  metadata: {
86
85
  parse: (item: Thread.Thread, type: string) => {
@@ -94,76 +93,41 @@ export const ThreadPlugin = definePlugin(meta, () => [
94
93
  }
95
94
  },
96
95
  },
97
- }),
96
+ },
98
97
  ],
99
98
  }),
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
- }),
112
- }),
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
- ]),
99
+ Common.Plugin.addSchemaModule({
100
+ schema: [AnchoredTo.AnchoredTo, Channel.Channel, Message.Message, Message.MessageV1, Thread.Thread],
125
101
  }),
126
- defineModule({
127
- id: `${meta.id}/module/migration`,
102
+ Plugin.addModule({
103
+ id: 'migration',
128
104
  activatesOn: ClientEvents.SetupMigration,
129
- activate: () => contributes(ClientCapabilities.Migration, [Message.MessageV1ToV2]),
105
+ activate: () => Effect.succeed(Capability.contributes(ClientCapabilities.Migration, [Message.MessageV1ToV2])),
130
106
  }),
131
- defineModule({
132
- id: `${meta.id}/module/on-space-created`,
107
+ Plugin.addModule({
108
+ id: 'on-space-created',
133
109
  activatesOn: SpaceEvents.SpaceCreated,
134
110
  activate: () =>
135
- contributes(SpaceCapabilities.onCreateSpace, ({ space, rootCollection }) =>
136
- createIntent(ThreadAction.onCreateSpace, { space, rootCollection }),
111
+ Effect.succeed(
112
+ Capability.contributes(SpaceCapabilities.OnCreateSpace, (params) =>
113
+ Operation.invoke(ThreadOperation.OnCreateSpace, params),
114
+ ),
137
115
  ),
138
116
  }),
139
- defineModule({
140
- id: `${meta.id}/module/markdown`,
117
+ Plugin.addModule({
118
+ id: 'repair',
119
+ activatesOn: ClientEvents.SpacesReady,
120
+ activate: Repair,
121
+ }),
122
+ Plugin.addModule({
123
+ id: 'markdown',
141
124
  activatesOn: MarkdownEvents.SetupExtensions,
142
125
  activate: Markdown,
143
126
  }),
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
- ]);
127
+ Common.Plugin.addReactRootModule({ activate: ReactRoot }),
128
+ Common.Plugin.addSurfaceModule({ activate: ReactSurface }),
129
+ Common.Plugin.addOperationResolverModule({ activate: OperationResolver }),
130
+ Common.Plugin.addAppGraphModule({ activate: AppGraphBuilder }),
131
+ Common.Plugin.addBlueprintDefinitionModule({ activate: BlueprintDefinition }),
132
+ Plugin.make,
133
+ );
@@ -0,0 +1,5 @@
1
+ //
2
+ // Copyright 2025 DXOS.org
3
+ //
4
+
5
+ export * as ThreadBlueprint from './thread-blueprint';
@@ -0,0 +1,32 @@
1
+ //
2
+ // Copyright 2025 DXOS.org
3
+ //
4
+
5
+ import { Blueprint, Template } from '@dxos/blueprints';
6
+ import { type FunctionDefinition } from '@dxos/functions';
7
+ import { trim } from '@dxos/util';
8
+
9
+ import { createProposals } from '../functions';
10
+
11
+ export const functions: FunctionDefinition[] = [createProposals];
12
+
13
+ export const Key = 'dxos.org/blueprint/thread';
14
+
15
+ export const make = () =>
16
+ Blueprint.make({
17
+ key: Key,
18
+ name: 'Thread',
19
+ tools: Blueprint.toolDefinitions({ functions }),
20
+ instructions: Template.make({
21
+ // TODO(wittjosiah): Move example to function input schema annotation.
22
+ source: trim`
23
+ You can update markdown documents via proposals.
24
+ For each diff, respond with the smallest possible matching span.
25
+ For example:
26
+ - "There is a tyop in this sentence."
27
+ + "There is a typo in this sentence."
28
+ - "This id goof."
29
+ + "This is good."
30
+ `,
31
+ }),
32
+ });
@@ -2,13 +2,12 @@
2
2
  // Copyright 2025 DXOS.org
3
3
  //
4
4
 
5
- import { computed } from '@preact/signals-core';
5
+ import { Atom, type Registry } from '@effect-atom/atom-react';
6
6
 
7
7
  import { Event, synchronized } from '@dxos/async';
8
8
  import { type Client } from '@dxos/client';
9
9
  import { Resource } from '@dxos/context';
10
10
  import { invariant } from '@dxos/invariant';
11
- import { live } from '@dxos/live-object';
12
11
  import { type Tracks } from '@dxos/protocols/proto/dxos/edge/calls';
13
12
  import { isNonNullable } from '@dxos/util';
14
13
 
@@ -31,84 +30,103 @@ export class CallManager extends Resource {
31
30
  public readonly left = new Event<string>();
32
31
 
33
32
  /**
34
- * Live object state. Is changed on internal events.
33
+ * Atom-based state. Updated via `_updateState()`.
35
34
  * CAUTION: Do not change directly.
36
35
  */
37
- private readonly _state = live<GlobalState>({
36
+ private readonly _stateAtom = Atom.make<GlobalState>({
38
37
  call: {},
39
38
  media: { pulledAudioTracks: {}, pulledVideoStreams: {} },
40
39
  });
41
40
 
42
- // TODO(wittjosiah): This shouldn't be necessary, live-object's signals should be granular.
43
- private readonly _raisedHandSignal = computed(() => this._state.call.raisedHand ?? false);
44
- private readonly _speakingSignal = computed(() => this._state.call.speaking ?? false);
45
- private readonly _joinedSignal = computed(() => this._state.call.joined ?? false);
41
+ // Derived atoms for reactive subscriptions.
42
+ private readonly _roomIdAtom = Atom.make((get) => get(this._stateAtom).call.roomId);
43
+ private readonly _raisedHandAtom = Atom.make((get) => get(this._stateAtom).call.raisedHand ?? false);
44
+ private readonly _speakingAtom = Atom.make((get) => get(this._stateAtom).call.speaking ?? false);
45
+ private readonly _joinedAtom = Atom.make((get) => get(this._stateAtom).call.joined ?? false);
46
+ private readonly _selfAtom = Atom.make((get) => get(this._stateAtom).call.self ?? {});
47
+ private readonly _tracksAtom = Atom.make((get) => get(this._stateAtom).call.tracks ?? {});
48
+ private readonly _usersAtom = Atom.make((get) => get(this._stateAtom).call.users ?? []);
49
+ private readonly _mediaAtom = Atom.make((get) => get(this._stateAtom).media);
50
+ private readonly _audioTracksToPlayAtom = Atom.make((get) => {
51
+ const state = get(this._stateAtom);
52
+ return (state.call.users ?? [])
53
+ .map((user: UserState) => (user.tracks?.audioEnabled ? user.tracks?.audio : undefined))
54
+ .filter(isNonNullable)
55
+ .map((track: string) => state.media.pulledAudioTracks[track as EncodedTrackName]?.track)
56
+ .filter(isNonNullable);
57
+ });
58
+ private readonly _videoStreamAtomFamily = Atom.family<EncodedTrackName, Atom.Atom<MediaStream | undefined>>((name) =>
59
+ Atom.make((get) => get(this._stateAtom).media.pulledVideoStreams[name]?.stream),
60
+ );
61
+ private readonly _activityAtomFamily = Atom.family<string, Atom.Atom<ActivityState | undefined>>((key) =>
62
+ Atom.make((get) => get(this._stateAtom).call.activities?.[key]),
63
+ );
46
64
 
47
65
  private readonly _swarmSynchronizer: CallSwarmSynchronizer;
48
66
  private readonly _mediaManager: MediaManager;
49
67
 
50
- /** @reactive */
51
- get roomId(): string | undefined {
52
- return this._state.call.roomId;
68
+ //
69
+ // Derived atoms for reactive UI subscriptions.
70
+ //
71
+
72
+ /** Derived atom for roomId. */
73
+ get roomIdAtom(): Atom.Atom<string | undefined> {
74
+ return this._roomIdAtom;
53
75
  }
54
76
 
55
- /** @reactive */
56
- get raisedHand(): boolean {
57
- return this._raisedHandSignal.value;
77
+ /** Derived atom for raisedHand. */
78
+ get raisedHandAtom(): Atom.Atom<boolean> {
79
+ return this._raisedHandAtom;
58
80
  }
59
81
 
60
- /** @reactive */
61
- get speaking(): boolean {
62
- return this._speakingSignal.value;
82
+ /** Derived atom for speaking. */
83
+ get speakingAtom(): Atom.Atom<boolean> {
84
+ return this._speakingAtom;
63
85
  }
64
86
 
65
- /** @reactive */
66
- get joined(): boolean {
67
- return this._joinedSignal.value;
87
+ /** Derived atom for joined. */
88
+ get joinedAtom(): Atom.Atom<boolean> {
89
+ return this._joinedAtom;
68
90
  }
69
91
 
70
- /** @reactive */
71
- get self(): UserState {
72
- return this._state.call.self ?? {};
92
+ /** Derived atom for self. */
93
+ get selfAtom(): Atom.Atom<UserState> {
94
+ return this._selfAtom;
73
95
  }
74
96
 
75
- /** @reactive */
76
- get tracks(): Tracks {
77
- return this._state.call.tracks ?? {};
97
+ /** Derived atom for tracks. */
98
+ get tracksAtom(): Atom.Atom<Tracks> {
99
+ return this._tracksAtom;
78
100
  }
79
101
 
80
- /** @reactive */
81
- get users(): UserState[] {
82
- return this._state.call.users ?? [];
102
+ /** Derived atom for users. */
103
+ get usersAtom(): Atom.Atom<UserState[]> {
104
+ return this._usersAtom;
83
105
  }
84
106
 
85
- /** @reactive */
86
- get media() {
87
- return this._state.media;
107
+ /** Derived atom for media. */
108
+ get mediaAtom(): Atom.Atom<MediaState> {
109
+ return this._mediaAtom;
88
110
  }
89
111
 
90
- /** @reactive */
91
- get audioTracksToPlay(): MediaStreamTrack[] {
92
- return (this._state.call.users ?? [])
93
- .map((user) => (user.tracks?.audioEnabled ? user.tracks?.audio : undefined))
94
- .filter(isNonNullable)
95
- .map((track) => this._state.media.pulledAudioTracks[track as EncodedTrackName]?.track)
96
- .filter(isNonNullable);
112
+ /** Derived atom for audioTracksToPlay. */
113
+ get audioTracksToPlayAtom(): Atom.Atom<MediaStreamTrack[]> {
114
+ return this._audioTracksToPlayAtom;
97
115
  }
98
116
 
99
- /** @reactive */
100
- get state() {
101
- return this._state;
117
+ /** Returns the full state atom for reactive subscriptions. */
118
+ get stateAtom(): Atom.Atom<GlobalState> {
119
+ return this._stateAtom;
102
120
  }
103
121
 
104
- /** @reactive */
105
- getVideoStream(name?: EncodedTrackName): MediaStream | undefined {
106
- return name ? this._state.media.pulledVideoStreams[name]?.stream : undefined;
122
+ /** Returns a derived atom for a video stream by name. */
123
+ videoStreamAtom(name: EncodedTrackName): Atom.Atom<MediaStream | undefined> {
124
+ return this._videoStreamAtomFamily(name);
107
125
  }
108
126
 
109
- /** @reactive */
110
- getActivity(key: string): ActivityState | undefined {
111
- return this._state.call.activities?.[key];
127
+ /** Returns a derived atom for an activity by key. */
128
+ activityAtom(key: string): Atom.Atom<ActivityState | undefined> {
129
+ return this._activityAtomFamily(key);
112
130
  }
113
131
 
114
132
  setRoomId(roomId: string): void {
@@ -152,7 +170,10 @@ export class CallManager extends Resource {
152
170
  }
153
171
 
154
172
  // TODO(burdon): Can this be mocked?
155
- constructor(private readonly _client: Client) {
173
+ constructor(
174
+ private readonly _client: Client,
175
+ private readonly _registry: Registry.Registry,
176
+ ) {
156
177
  super();
157
178
  this._client.config.getOrThrow('runtime.services.edge.url');
158
179
  const networkService = this._client.services.services.NetworkService;
@@ -205,7 +226,8 @@ export class CallManager extends Resource {
205
226
  this._swarmSynchronizer.setJoined(false);
206
227
  await this._swarmSynchronizer.leave();
207
228
  await this._mediaManager.leave();
208
- this.roomId && this.left.emit(this.roomId);
229
+ const roomId = this._registry.get(this._roomIdAtom);
230
+ roomId && this.left.emit(roomId);
209
231
  }
210
232
 
211
233
  private _onCallStateUpdated(state: CallState): void {
@@ -240,7 +262,9 @@ export class CallManager extends Resource {
240
262
  * Only this method is allowed to change state.
241
263
  */
242
264
  private _updateState(): void {
243
- this._state.call = this._swarmSynchronizer._getState();
244
- this._state.media = this._mediaManager._getState();
265
+ this._registry.set(this._stateAtom, {
266
+ call: this._swarmSynchronizer._getState(),
267
+ media: this._mediaManager._getState(),
268
+ });
245
269
  }
246
270
  }