@dxos/plugin-thread 0.8.4-main.406dc2a → 0.8.4-main.548089c

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 (234) hide show
  1. package/dist/lib/browser/ChannelContainer-56QROCE4.mjs +16 -0
  2. package/dist/lib/browser/ChatContainer-7F5Y6GXJ.mjs +15 -0
  3. package/dist/lib/browser/{app-graph-builder-ODKIAXR7.mjs → app-graph-builder-USFBLGFG.mjs} +19 -20
  4. package/dist/lib/browser/app-graph-builder-USFBLGFG.mjs.map +7 -0
  5. package/dist/lib/browser/blueprint-definition-6BKYTMJS.mjs +104 -0
  6. package/dist/lib/browser/blueprint-definition-6BKYTMJS.mjs.map +7 -0
  7. package/dist/lib/browser/{call-manager-BCKLI4QD.mjs → call-manager-MAXQLMMS.mjs} +5 -5
  8. package/dist/lib/browser/{chunk-CMCVHULC.mjs → chunk-44S2SB4N.mjs} +34 -31
  9. package/dist/lib/browser/chunk-44S2SB4N.mjs.map +7 -0
  10. package/dist/lib/browser/{chunk-L326LSNS.mjs → chunk-BBTXGRIR.mjs} +2 -2
  11. package/dist/lib/browser/{chunk-L326LSNS.mjs.map → chunk-BBTXGRIR.mjs.map} +1 -1
  12. package/dist/lib/browser/{chunk-B7YQ7QR2.mjs → chunk-FR6MEAZI.mjs} +17 -16
  13. package/dist/lib/browser/chunk-FR6MEAZI.mjs.map +7 -0
  14. package/dist/lib/browser/{chunk-XYUJXHYV.mjs → chunk-ISCHODBV.mjs} +1 -1
  15. package/dist/lib/browser/{chunk-XYUJXHYV.mjs.map → chunk-ISCHODBV.mjs.map} +2 -2
  16. package/dist/lib/browser/chunk-K2DUJRFJ.mjs +27 -0
  17. package/dist/lib/browser/chunk-K2DUJRFJ.mjs.map +7 -0
  18. package/dist/lib/browser/{chunk-HDEQRBOC.mjs → chunk-KOBXMDCI.mjs} +68 -67
  19. package/dist/lib/browser/chunk-KOBXMDCI.mjs.map +7 -0
  20. package/dist/lib/browser/chunk-NMJEVD36.mjs +168 -0
  21. package/dist/lib/browser/chunk-NMJEVD36.mjs.map +7 -0
  22. package/dist/lib/browser/chunk-NSREO7OX.mjs +23 -0
  23. package/dist/lib/browser/chunk-NSREO7OX.mjs.map +7 -0
  24. package/dist/lib/browser/{chunk-ZCEU5K23.mjs → chunk-ZCW3NSDZ.mjs} +139 -236
  25. package/dist/lib/browser/chunk-ZCW3NSDZ.mjs.map +7 -0
  26. package/dist/lib/browser/{chunk-VJMKS4CZ.mjs → chunk-ZO5ZGDN5.mjs} +45 -47
  27. package/dist/lib/browser/chunk-ZO5ZGDN5.mjs.map +7 -0
  28. package/dist/lib/browser/index.mjs +37 -36
  29. package/dist/lib/browser/index.mjs.map +3 -3
  30. package/dist/lib/browser/{intent-resolver-VOQD3TQ2.mjs → intent-resolver-BOUT4WGY.mjs} +25 -91
  31. package/dist/lib/browser/intent-resolver-BOUT4WGY.mjs.map +7 -0
  32. package/dist/lib/browser/{markdown-R6MGRIA6.mjs → markdown-74EUSQGV.mjs} +22 -20
  33. package/dist/lib/browser/markdown-74EUSQGV.mjs.map +7 -0
  34. package/dist/lib/browser/meta.json +1 -1
  35. package/dist/lib/browser/{react-root-UMSBTN6H.mjs → react-root-2VRIT2HF.mjs} +10 -10
  36. package/dist/lib/browser/{react-surface-SXMQEWKE.mjs → react-surface-UOECBYHE.mjs} +17 -16
  37. package/dist/lib/browser/react-surface-UOECBYHE.mjs.map +7 -0
  38. package/dist/lib/browser/{settings-TCNF54PN.mjs → settings-LGQUZITB.mjs} +3 -3
  39. package/dist/lib/browser/{state-ZQ4IPOJT.mjs → state-36REWXO5.mjs} +3 -3
  40. package/dist/lib/browser/types/index.mjs +7 -9
  41. package/dist/lib/node-esm/ChannelContainer-4SV22AKC.mjs +17 -0
  42. package/dist/lib/node-esm/{ChatContainer-SH6LTFQL.mjs → ChatContainer-C526R4DI.mjs} +5 -5
  43. package/dist/lib/node-esm/{app-graph-builder-DMPT3MY6.mjs → app-graph-builder-DWYGNENL.mjs} +19 -20
  44. package/dist/lib/node-esm/app-graph-builder-DWYGNENL.mjs.map +7 -0
  45. package/dist/lib/node-esm/blueprint-definition-6LEAWSC7.mjs +105 -0
  46. package/dist/lib/node-esm/blueprint-definition-6LEAWSC7.mjs.map +7 -0
  47. package/dist/lib/node-esm/{call-manager-Q7RY2YP4.mjs → call-manager-LC4OS2KD.mjs} +5 -5
  48. package/dist/lib/node-esm/{chunk-TIPIOH2J.mjs → chunk-7KZWZS2U.mjs} +139 -236
  49. package/dist/lib/node-esm/chunk-7KZWZS2U.mjs.map +7 -0
  50. package/dist/lib/node-esm/{chunk-NHSIAEDW.mjs → chunk-KE6SKBPO.mjs} +45 -47
  51. package/dist/lib/node-esm/chunk-KE6SKBPO.mjs.map +7 -0
  52. package/dist/lib/node-esm/{chunk-2KZ4ODHU.mjs → chunk-NEGIPZTJ.mjs} +34 -31
  53. package/dist/lib/node-esm/chunk-NEGIPZTJ.mjs.map +7 -0
  54. package/dist/lib/node-esm/{chunk-2MMJF7DW.mjs → chunk-PZH2EDU5.mjs} +68 -67
  55. package/dist/lib/node-esm/chunk-PZH2EDU5.mjs.map +7 -0
  56. package/dist/lib/node-esm/chunk-TJKM5JZT.mjs +169 -0
  57. package/dist/lib/node-esm/chunk-TJKM5JZT.mjs.map +7 -0
  58. package/dist/lib/node-esm/{chunk-BTGKI5IK.mjs → chunk-TWKGDFCS.mjs} +17 -16
  59. package/dist/lib/node-esm/chunk-TWKGDFCS.mjs.map +7 -0
  60. package/dist/lib/node-esm/{chunk-2V3WSLUZ.mjs → chunk-VBI32FGI.mjs} +1 -1
  61. package/dist/lib/node-esm/{chunk-2V3WSLUZ.mjs.map → chunk-VBI32FGI.mjs.map} +2 -2
  62. package/dist/lib/node-esm/chunk-VM6WD3YY.mjs +25 -0
  63. package/dist/lib/node-esm/chunk-VM6WD3YY.mjs.map +7 -0
  64. package/dist/lib/node-esm/chunk-XI45H4IV.mjs +28 -0
  65. package/dist/lib/node-esm/chunk-XI45H4IV.mjs.map +7 -0
  66. package/dist/lib/node-esm/{chunk-LCHTNRK7.mjs → chunk-ZQAGII7M.mjs} +2 -2
  67. package/dist/lib/node-esm/{chunk-LCHTNRK7.mjs.map → chunk-ZQAGII7M.mjs.map} +1 -1
  68. package/dist/lib/node-esm/index.mjs +37 -36
  69. package/dist/lib/node-esm/index.mjs.map +3 -3
  70. package/dist/lib/node-esm/{intent-resolver-AKVH66PH.mjs → intent-resolver-45PLIFCJ.mjs} +25 -91
  71. package/dist/lib/node-esm/intent-resolver-45PLIFCJ.mjs.map +7 -0
  72. package/dist/lib/node-esm/{markdown-MYGTDXT6.mjs → markdown-566XXB55.mjs} +22 -20
  73. package/dist/lib/node-esm/markdown-566XXB55.mjs.map +7 -0
  74. package/dist/lib/node-esm/meta.json +1 -1
  75. package/dist/lib/node-esm/{react-root-W6AVTL5M.mjs → react-root-JAE2VI2D.mjs} +10 -10
  76. package/dist/lib/node-esm/{react-surface-NLSZJGMO.mjs → react-surface-BYKXK5YA.mjs} +17 -16
  77. package/dist/lib/node-esm/react-surface-BYKXK5YA.mjs.map +7 -0
  78. package/dist/lib/node-esm/{settings-ZQHGVFBY.mjs → settings-WKLJSP6R.mjs} +3 -3
  79. package/dist/lib/node-esm/{state-FSLLJ5TZ.mjs → state-X3W67GTL.mjs} +3 -3
  80. package/dist/lib/node-esm/types/index.mjs +7 -9
  81. package/dist/types/src/ThreadPlugin.d.ts.map +1 -1
  82. package/dist/types/src/calls/media-manager.d.ts.map +1 -1
  83. package/dist/types/src/capabilities/app-graph-builder.d.ts.map +1 -1
  84. package/dist/types/src/capabilities/blueprint-definition.d.ts +5 -0
  85. package/dist/types/src/capabilities/blueprint-definition.d.ts.map +1 -0
  86. package/dist/types/src/capabilities/capabilities.d.ts +2 -2
  87. package/dist/types/src/capabilities/capabilities.d.ts.map +1 -1
  88. package/dist/types/src/capabilities/index.d.ts +1 -1
  89. package/dist/types/src/capabilities/index.d.ts.map +1 -1
  90. package/dist/types/src/capabilities/intent-resolver.d.ts.map +1 -1
  91. package/dist/types/src/capabilities/markdown.d.ts.map +1 -1
  92. package/dist/types/src/capabilities/react-surface.d.ts.map +1 -1
  93. package/dist/types/src/components/Call/Toolbar.d.ts +2 -2
  94. package/dist/types/src/components/Call/Toolbar.d.ts.map +1 -1
  95. package/dist/types/src/components/ChannelContainer.d.ts +2 -2
  96. package/dist/types/src/components/ChannelContainer.d.ts.map +1 -1
  97. package/dist/types/src/components/ChannelContainer.stories.d.ts +71 -5
  98. package/dist/types/src/components/ChannelContainer.stories.d.ts.map +1 -1
  99. package/dist/types/src/components/Chat.stories.d.ts +71 -4
  100. package/dist/types/src/components/Chat.stories.d.ts.map +1 -1
  101. package/dist/types/src/components/ChatContainer.d.ts +6 -5
  102. package/dist/types/src/components/ChatContainer.d.ts.map +1 -1
  103. package/dist/types/src/components/CommentsContainer.d.ts +2 -2
  104. package/dist/types/src/components/CommentsContainer.d.ts.map +1 -1
  105. package/dist/types/src/components/CommentsThreadContainer.d.ts +8 -8
  106. package/dist/types/src/components/CommentsThreadContainer.d.ts.map +1 -1
  107. package/dist/types/src/components/MessageContainer.d.ts +2 -2
  108. package/dist/types/src/components/MessageContainer.d.ts.map +1 -1
  109. package/dist/types/src/components/ResponsiveGrid/ResponsiveGridItem.d.ts.map +1 -1
  110. package/dist/types/src/components/ThreadComplementary.d.ts.map +1 -1
  111. package/dist/types/src/components/index.d.ts +1 -1
  112. package/dist/types/src/components/index.d.ts.map +1 -1
  113. package/dist/types/src/components/testing.d.ts +3 -3
  114. package/dist/types/src/components/testing.d.ts.map +1 -1
  115. package/dist/types/src/extensions/threads.d.ts.map +1 -1
  116. package/dist/types/src/functions/create-proposals.d.ts +6 -0
  117. package/dist/types/src/functions/create-proposals.d.ts.map +1 -0
  118. package/dist/types/src/functions/index.d.ts +2 -0
  119. package/dist/types/src/functions/index.d.ts.map +1 -0
  120. package/dist/types/src/hooks/analytics.d.ts +2 -2
  121. package/dist/types/src/hooks/analytics.d.ts.map +1 -1
  122. package/dist/types/src/hooks/index.d.ts +2 -2
  123. package/dist/types/src/hooks/index.d.ts.map +1 -1
  124. package/dist/types/src/meta.d.ts.map +1 -1
  125. package/dist/types/src/testing/stories.d.ts.map +1 -1
  126. package/dist/types/src/translations.d.ts +71 -5
  127. package/dist/types/src/translations.d.ts.map +1 -1
  128. package/dist/types/src/types/Channel.d.ts +16 -0
  129. package/dist/types/src/types/Channel.d.ts.map +1 -0
  130. package/dist/types/src/types/{schema.d.ts → Thread.d.ts} +13 -25
  131. package/dist/types/src/types/Thread.d.ts.map +1 -0
  132. package/dist/types/src/types/index.d.ts +2 -1
  133. package/dist/types/src/types/index.d.ts.map +1 -1
  134. package/dist/types/src/types/types.d.ts +22 -110
  135. package/dist/types/src/types/types.d.ts.map +1 -1
  136. package/dist/types/tsconfig.tsbuildinfo +1 -1
  137. package/package.json +50 -46
  138. package/src/ThreadPlugin.tsx +26 -18
  139. package/src/calls/media-manager.ts +9 -6
  140. package/src/calls/util/stub-media-streams.ts +2 -2
  141. package/src/capabilities/app-graph-builder.ts +27 -17
  142. package/src/capabilities/blueprint-definition.ts +38 -0
  143. package/src/capabilities/capabilities.ts +2 -2
  144. package/src/capabilities/index.ts +1 -1
  145. package/src/capabilities/intent-resolver.ts +17 -54
  146. package/src/capabilities/markdown.ts +5 -3
  147. package/src/capabilities/react-surface.tsx +8 -7
  148. package/src/components/Call/Call.tsx +1 -1
  149. package/src/components/Call/Toolbar.tsx +5 -5
  150. package/src/components/CallDebugPanel.tsx +2 -2
  151. package/src/components/CallSidebar.tsx +1 -1
  152. package/src/components/ChannelContainer.stories.tsx +6 -6
  153. package/src/components/ChannelContainer.tsx +18 -14
  154. package/src/components/Chat.stories.tsx +7 -13
  155. package/src/components/ChatContainer.tsx +30 -21
  156. package/src/components/Comments.stories.tsx +6 -6
  157. package/src/components/CommentsContainer.tsx +6 -7
  158. package/src/components/CommentsThreadContainer.tsx +32 -27
  159. package/src/components/Lobby/Lobby.tsx +1 -1
  160. package/src/components/Media/VideoObject.tsx +1 -1
  161. package/src/components/MessageContainer.tsx +6 -6
  162. package/src/components/Participant/Participant.tsx +1 -1
  163. package/src/components/ResponsiveGrid/ResponsiveContainer.tsx +2 -2
  164. package/src/components/ResponsiveGrid/ResponsiveGrid.stories.tsx +1 -1
  165. package/src/components/ResponsiveGrid/ResponsiveGrid.tsx +4 -4
  166. package/src/components/ResponsiveGrid/ResponsiveGridItem.tsx +5 -2
  167. package/src/components/ThreadComplementary.tsx +38 -31
  168. package/src/components/testing.ts +8 -8
  169. package/src/extensions/threads.ts +25 -16
  170. package/src/functions/create-proposals.ts +58 -0
  171. package/src/functions/index.ts +5 -0
  172. package/src/hooks/analytics.ts +4 -7
  173. package/src/hooks/index.ts +3 -2
  174. package/src/meta.ts +6 -1
  175. package/src/testing/stories.ts +2 -5
  176. package/src/translations.ts +3 -2
  177. package/src/types/Channel.ts +27 -0
  178. package/src/types/Thread.ts +26 -0
  179. package/src/types/index.ts +2 -1
  180. package/src/types/types.ts +17 -25
  181. package/dist/lib/browser/ChannelContainer-BGDGZHV4.mjs +0 -16
  182. package/dist/lib/browser/ChatContainer-75KJZ4XR.mjs +0 -15
  183. package/dist/lib/browser/app-graph-builder-ODKIAXR7.mjs.map +0 -7
  184. package/dist/lib/browser/chunk-2MUYQOQE.mjs +0 -23
  185. package/dist/lib/browser/chunk-2MUYQOQE.mjs.map +0 -7
  186. package/dist/lib/browser/chunk-B7YQ7QR2.mjs.map +0 -7
  187. package/dist/lib/browser/chunk-CMCVHULC.mjs.map +0 -7
  188. package/dist/lib/browser/chunk-HDEQRBOC.mjs.map +0 -7
  189. package/dist/lib/browser/chunk-T4KJ5JR4.mjs +0 -15
  190. package/dist/lib/browser/chunk-T4KJ5JR4.mjs.map +0 -7
  191. package/dist/lib/browser/chunk-VJMKS4CZ.mjs.map +0 -7
  192. package/dist/lib/browser/chunk-VTYX3SIM.mjs +0 -147
  193. package/dist/lib/browser/chunk-VTYX3SIM.mjs.map +0 -7
  194. package/dist/lib/browser/chunk-ZCEU5K23.mjs.map +0 -7
  195. package/dist/lib/browser/intent-resolver-VOQD3TQ2.mjs.map +0 -7
  196. package/dist/lib/browser/markdown-R6MGRIA6.mjs.map +0 -7
  197. package/dist/lib/browser/react-surface-SXMQEWKE.mjs.map +0 -7
  198. package/dist/lib/browser/toolkit-JF4B4QIO.mjs +0 -84
  199. package/dist/lib/browser/toolkit-JF4B4QIO.mjs.map +0 -7
  200. package/dist/lib/node-esm/ChannelContainer-OXC6BTU7.mjs +0 -17
  201. package/dist/lib/node-esm/app-graph-builder-DMPT3MY6.mjs.map +0 -7
  202. package/dist/lib/node-esm/chunk-2KZ4ODHU.mjs.map +0 -7
  203. package/dist/lib/node-esm/chunk-2MMJF7DW.mjs.map +0 -7
  204. package/dist/lib/node-esm/chunk-BAMZXJS4.mjs +0 -148
  205. package/dist/lib/node-esm/chunk-BAMZXJS4.mjs.map +0 -7
  206. package/dist/lib/node-esm/chunk-BTGKI5IK.mjs.map +0 -7
  207. package/dist/lib/node-esm/chunk-GZ4WL2IS.mjs +0 -25
  208. package/dist/lib/node-esm/chunk-GZ4WL2IS.mjs.map +0 -7
  209. package/dist/lib/node-esm/chunk-NHSIAEDW.mjs.map +0 -7
  210. package/dist/lib/node-esm/chunk-OBVAURUU.mjs +0 -17
  211. package/dist/lib/node-esm/chunk-OBVAURUU.mjs.map +0 -7
  212. package/dist/lib/node-esm/chunk-TIPIOH2J.mjs.map +0 -7
  213. package/dist/lib/node-esm/intent-resolver-AKVH66PH.mjs.map +0 -7
  214. package/dist/lib/node-esm/markdown-MYGTDXT6.mjs.map +0 -7
  215. package/dist/lib/node-esm/react-surface-NLSZJGMO.mjs.map +0 -7
  216. package/dist/lib/node-esm/toolkit-DHPKJITO.mjs +0 -85
  217. package/dist/lib/node-esm/toolkit-DHPKJITO.mjs.map +0 -7
  218. package/dist/types/src/capabilities/toolkit.d.ts +0 -6
  219. package/dist/types/src/capabilities/toolkit.d.ts.map +0 -1
  220. package/dist/types/src/types/schema.d.ts.map +0 -1
  221. package/src/capabilities/toolkit.ts +0 -82
  222. package/src/types/schema.ts +0 -33
  223. /package/dist/lib/browser/{ChannelContainer-BGDGZHV4.mjs.map → ChannelContainer-56QROCE4.mjs.map} +0 -0
  224. /package/dist/lib/browser/{ChatContainer-75KJZ4XR.mjs.map → ChatContainer-7F5Y6GXJ.mjs.map} +0 -0
  225. /package/dist/lib/browser/{call-manager-BCKLI4QD.mjs.map → call-manager-MAXQLMMS.mjs.map} +0 -0
  226. /package/dist/lib/browser/{react-root-UMSBTN6H.mjs.map → react-root-2VRIT2HF.mjs.map} +0 -0
  227. /package/dist/lib/browser/{settings-TCNF54PN.mjs.map → settings-LGQUZITB.mjs.map} +0 -0
  228. /package/dist/lib/browser/{state-ZQ4IPOJT.mjs.map → state-36REWXO5.mjs.map} +0 -0
  229. /package/dist/lib/node-esm/{ChannelContainer-OXC6BTU7.mjs.map → ChannelContainer-4SV22AKC.mjs.map} +0 -0
  230. /package/dist/lib/node-esm/{ChatContainer-SH6LTFQL.mjs.map → ChatContainer-C526R4DI.mjs.map} +0 -0
  231. /package/dist/lib/node-esm/{call-manager-Q7RY2YP4.mjs.map → call-manager-LC4OS2KD.mjs.map} +0 -0
  232. /package/dist/lib/node-esm/{react-root-W6AVTL5M.mjs.map → react-root-JAE2VI2D.mjs.map} +0 -0
  233. /package/dist/lib/node-esm/{settings-ZQHGVFBY.mjs.map → settings-WKLJSP6R.mjs.map} +0 -0
  234. /package/dist/lib/node-esm/{state-FSLLJ5TZ.mjs.map → state-X3W67GTL.mjs.map} +0 -0
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@dxos/plugin-thread",
3
- "version": "0.8.4-main.406dc2a",
3
+ "version": "0.8.4-main.548089c",
4
4
  "description": "DXOS Threads Surface plugin",
5
5
  "homepage": "https://dxos.org",
6
6
  "bugs": "https://github.com/dxos/dxos/issues",
@@ -49,65 +49,69 @@
49
49
  "md5-hex": "5.0.0",
50
50
  "react-resize-detector": "^11.0.1",
51
51
  "wavefile": "^11.0.0",
52
- "@dxos/app-framework": "0.8.4-main.406dc2a",
53
- "@dxos/assistant": "0.8.4-main.406dc2a",
54
- "@dxos/codec-protobuf": "0.8.4-main.406dc2a",
55
- "@dxos/async": "0.8.4-main.406dc2a",
56
- "@dxos/context": "0.8.4-main.406dc2a",
57
- "@dxos/devtools": "0.8.4-main.406dc2a",
58
- "@dxos/display-name": "0.8.4-main.406dc2a",
59
- "@dxos/echo": "0.8.4-main.406dc2a",
60
- "@dxos/invariant": "0.8.4-main.406dc2a",
61
- "@dxos/keys": "0.8.4-main.406dc2a",
62
- "@dxos/live-object": "0.8.4-main.406dc2a",
63
- "@dxos/debug": "0.8.4-main.406dc2a",
64
- "@dxos/local-storage": "0.8.4-main.406dc2a",
65
- "@dxos/log": "0.8.4-main.406dc2a",
66
- "@dxos/plugin-attention": "0.8.4-main.406dc2a",
67
- "@dxos/plugin-client": "0.8.4-main.406dc2a",
68
- "@dxos/plugin-deck": "0.8.4-main.406dc2a",
69
- "@dxos/plugin-observability": "0.8.4-main.406dc2a",
70
- "@dxos/plugin-graph": "0.8.4-main.406dc2a",
71
- "@dxos/plugin-space": "0.8.4-main.406dc2a",
72
- "@dxos/react-client": "0.8.4-main.406dc2a",
73
- "@dxos/react-ui-dnd": "0.8.4-main.406dc2a",
74
- "@dxos/react-ui-attention": "0.8.4-main.406dc2a",
75
- "@dxos/protocols": "0.8.4-main.406dc2a",
76
- "@dxos/react-ui-form": "0.8.4-main.406dc2a",
77
- "@dxos/react-ui-menu": "0.8.4-main.406dc2a",
78
- "@dxos/react-ui-sfx": "0.8.4-main.406dc2a",
79
- "@dxos/react-ui-stack": "0.8.4-main.406dc2a",
80
- "@dxos/react-ui-editor": "0.8.4-main.406dc2a",
81
- "@dxos/react-ui-syntax-highlighter": "0.8.4-main.406dc2a",
82
- "@dxos/plugin-markdown": "0.8.4-main.406dc2a",
83
- "@dxos/react-ui-tabs": "0.8.4-main.406dc2a",
84
- "@dxos/schema": "0.8.4-main.406dc2a",
85
- "@dxos/react-ui-thread": "0.8.4-main.406dc2a",
86
- "@dxos/util": "0.8.4-main.406dc2a"
52
+ "@dxos/app-framework": "0.8.4-main.548089c",
53
+ "@dxos/async": "0.8.4-main.548089c",
54
+ "@dxos/blueprints": "0.8.4-main.548089c",
55
+ "@dxos/codec-protobuf": "0.8.4-main.548089c",
56
+ "@dxos/context": "0.8.4-main.548089c",
57
+ "@dxos/assistant": "0.8.4-main.548089c",
58
+ "@dxos/debug": "0.8.4-main.548089c",
59
+ "@dxos/devtools": "0.8.4-main.548089c",
60
+ "@dxos/display-name": "0.8.4-main.548089c",
61
+ "@dxos/echo": "0.8.4-main.548089c",
62
+ "@dxos/echo-db": "0.8.4-main.548089c",
63
+ "@dxos/functions": "0.8.4-main.548089c",
64
+ "@dxos/invariant": "0.8.4-main.548089c",
65
+ "@dxos/local-storage": "0.8.4-main.548089c",
66
+ "@dxos/keys": "0.8.4-main.548089c",
67
+ "@dxos/log": "0.8.4-main.548089c",
68
+ "@dxos/plugin-attention": "0.8.4-main.548089c",
69
+ "@dxos/live-object": "0.8.4-main.548089c",
70
+ "@dxos/plugin-deck": "0.8.4-main.548089c",
71
+ "@dxos/plugin-client": "0.8.4-main.548089c",
72
+ "@dxos/plugin-graph": "0.8.4-main.548089c",
73
+ "@dxos/plugin-observability": "0.8.4-main.548089c",
74
+ "@dxos/plugin-markdown": "0.8.4-main.548089c",
75
+ "@dxos/plugin-space": "0.8.4-main.548089c",
76
+ "@dxos/protocols": "0.8.4-main.548089c",
77
+ "@dxos/react-ui-attention": "0.8.4-main.548089c",
78
+ "@dxos/react-ui-editor": "0.8.4-main.548089c",
79
+ "@dxos/react-ui-form": "0.8.4-main.548089c",
80
+ "@dxos/react-ui-dnd": "0.8.4-main.548089c",
81
+ "@dxos/react-ui-menu": "0.8.4-main.548089c",
82
+ "@dxos/react-ui-stack": "0.8.4-main.548089c",
83
+ "@dxos/react-ui-syntax-highlighter": "0.8.4-main.548089c",
84
+ "@dxos/react-ui-tabs": "0.8.4-main.548089c",
85
+ "@dxos/react-ui-thread": "0.8.4-main.548089c",
86
+ "@dxos/schema": "0.8.4-main.548089c",
87
+ "@dxos/react-client": "0.8.4-main.548089c",
88
+ "@dxos/types": "0.8.4-main.548089c",
89
+ "@dxos/react-ui-sfx": "0.8.4-main.548089c",
90
+ "@dxos/util": "0.8.4-main.548089c"
87
91
  },
88
92
  "devDependencies": {
89
- "@effect-rx/rx-react": "0.42.4",
93
+ "@effect-atom/atom-react": "^0.3.4",
90
94
  "@effect/platform": "0.92.1",
91
95
  "@types/react": "~19.2.2",
92
- "@types/react-dom": "~19.2.1",
96
+ "@types/react-dom": "~19.2.2",
93
97
  "effect": "3.18.3",
94
98
  "react": "~19.2.0",
95
99
  "react-dom": "~19.2.0",
96
100
  "vite": "7.1.9",
97
- "@dxos/random": "0.8.4-main.406dc2a",
98
- "@dxos/plugin-theme": "0.8.4-main.406dc2a",
99
- "@dxos/storybook-utils": "0.8.4-main.406dc2a",
100
- "@dxos/react-ui": "0.8.4-main.406dc2a",
101
- "@dxos/react-ui-theme": "0.8.4-main.406dc2a"
101
+ "@dxos/plugin-theme": "0.8.4-main.548089c",
102
+ "@dxos/random": "0.8.4-main.548089c",
103
+ "@dxos/react-ui": "0.8.4-main.548089c",
104
+ "@dxos/react-ui-theme": "0.8.4-main.548089c",
105
+ "@dxos/storybook-utils": "0.8.4-main.548089c"
102
106
  },
103
107
  "peerDependencies": {
104
- "@effect-rx/rx-react": "^0.34.1",
108
+ "@effect-atom/atom-react": "^0.3.4",
105
109
  "@effect/platform": "^0.80.12",
106
110
  "effect": "^3.13.3",
107
111
  "react": "^19.0.0",
108
112
  "react-dom": "^19.0.0",
109
- "@dxos/react-ui": "0.8.4-main.406dc2a",
110
- "@dxos/react-ui-theme": "0.8.4-main.406dc2a"
113
+ "@dxos/react-ui": "0.8.4-main.548089c",
114
+ "@dxos/react-ui-theme": "0.8.4-main.548089c"
111
115
  },
112
116
  "publishConfig": {
113
117
  "access": "public"
@@ -3,27 +3,27 @@
3
3
  //
4
4
 
5
5
  import { Capabilities, Events, contributes, createIntent, defineModule, definePlugin } from '@dxos/app-framework';
6
- import { Ref } from '@dxos/echo';
6
+ import { Ref, Type } from '@dxos/echo';
7
7
  import { ClientCapabilities, ClientEvents } from '@dxos/plugin-client';
8
8
  import { MarkdownEvents } from '@dxos/plugin-markdown';
9
9
  import { SpaceCapabilities, SpaceEvents } from '@dxos/plugin-space';
10
10
  import { defineObjectForm } from '@dxos/plugin-space/types';
11
11
  import { translations as threadTranslations } from '@dxos/react-ui-thread';
12
- import { AnchoredTo, DataType } from '@dxos/schema';
12
+ import { AnchoredTo, Message } from '@dxos/types';
13
13
 
14
14
  import {
15
15
  AppGraphBuilder,
16
+ BlueprintDefinition,
16
17
  CallManager,
17
18
  IntentResolver,
18
19
  Markdown,
19
20
  ReactRoot,
20
21
  ReactSurface,
21
22
  ThreadState,
22
- Toolkit,
23
23
  } from './capabilities';
24
24
  import { THREAD_ITEM, meta } from './meta';
25
25
  import { translations } from './translations';
26
- import { ChannelType, ThreadAction, ThreadType } from './types';
26
+ import { Channel, Thread, ThreadAction } from './types';
27
27
 
28
28
  // TODO(Zan): Every instance of `cursor` should be replaced with `anchor`.
29
29
  // NOTE(burdon): Review/discuss CursorConverter semantics.
@@ -60,29 +60,30 @@ export const ThreadPlugin = definePlugin(meta, () => [
60
60
  activatesOn: Events.SetupMetadata,
61
61
  activate: () => [
62
62
  contributes(Capabilities.Metadata, {
63
- id: ChannelType.typename,
63
+ id: Type.getTypename(Channel.Channel),
64
64
  metadata: {
65
65
  icon: 'ph--hash--regular',
66
+ iconHue: 'rose',
66
67
  },
67
68
  }),
68
69
  contributes(Capabilities.Metadata, {
69
- id: ThreadType.typename,
70
+ id: Type.getTypename(Thread.Thread),
70
71
  metadata: {
71
72
  // TODO(wittjosiah): Move out of metadata.
72
- loadReferences: async (thread: ThreadType) => await Ref.Array.loadAll(thread.messages ?? []),
73
+ loadReferences: async (thread: Thread.Thread) => await Ref.Array.loadAll(thread.messages ?? []),
73
74
  },
74
75
  }),
75
76
  contributes(Capabilities.Metadata, {
76
- id: DataType.Message.typename,
77
+ id: Message.Message.typename,
77
78
  metadata: {
78
79
  // TODO(wittjosiah): Move out of metadata.
79
- loadReferences: (message: DataType.Message) => [], // loadObjectReferences(message, (message) => [...message.parts, message.context]),
80
+ loadReferences: () => [], // loadObjectReferences(message, (message) => [...message.parts, message.context]),
80
81
  },
81
82
  }),
82
83
  contributes(Capabilities.Metadata, {
83
84
  id: THREAD_ITEM,
84
85
  metadata: {
85
- parse: (item: ThreadType, type: string) => {
86
+ parse: (item: Thread.Thread, type: string) => {
86
87
  switch (type) {
87
88
  case 'node':
88
89
  return { id: item.id, label: item.name, data: item };
@@ -103,8 +104,11 @@ export const ThreadPlugin = definePlugin(meta, () => [
103
104
  contributes(
104
105
  SpaceCapabilities.ObjectForm,
105
106
  defineObjectForm({
106
- objectSchema: ChannelType,
107
- getIntent: (_, options) => createIntent(ThreadAction.CreateChannel, { spaceId: options.space.id }),
107
+ objectSchema: Channel.Channel,
108
+ getIntent: (_, options) =>
109
+ createIntent(ThreadAction.CreateChannel, {
110
+ spaceId: options.space.id,
111
+ }),
108
112
  }),
109
113
  ),
110
114
  }),
@@ -112,12 +116,17 @@ export const ThreadPlugin = definePlugin(meta, () => [
112
116
  id: `${meta.id}/module/schema`,
113
117
  activatesOn: ClientEvents.SetupSchema,
114
118
  activate: () =>
115
- contributes(ClientCapabilities.Schema, [AnchoredTo, ThreadType, DataType.Message, DataType.MessageV1]),
119
+ contributes(ClientCapabilities.Schema, [
120
+ AnchoredTo.AnchoredTo,
121
+ Thread.Thread,
122
+ Message.Message,
123
+ Message.MessageV1,
124
+ ]),
116
125
  }),
117
126
  defineModule({
118
127
  id: `${meta.id}/module/migration`,
119
128
  activatesOn: ClientEvents.SetupMigration,
120
- activate: () => contributes(ClientCapabilities.Migration, [DataType.MessageV1ToV2]),
129
+ activate: () => contributes(ClientCapabilities.Migration, [Message.MessageV1ToV2]),
121
130
  }),
122
131
  defineModule({
123
132
  id: `${meta.id}/module/on-space-created`,
@@ -153,9 +162,8 @@ export const ThreadPlugin = definePlugin(meta, () => [
153
162
  activate: AppGraphBuilder,
154
163
  }),
155
164
  defineModule({
156
- id: `${meta.id}/module/toolkit`,
157
- // TODO(wittjosiah): Shouldn't use the startup event.
158
- activatesOn: Events.Startup,
159
- activate: Toolkit,
165
+ id: `${meta.id}/module/blueprint`,
166
+ activatesOn: Events.SetupArtifactDefinition,
167
+ activate: BlueprintDefinition,
160
168
  }),
161
169
  ]);
@@ -59,9 +59,13 @@ const USE_INAUDIBLE_AUDIO = true;
59
59
 
60
60
  export class MediaManager extends Resource {
61
61
  public readonly stateUpdated = new Event<MediaState>();
62
- private readonly _state: MediaState = { pulledVideoStreams: {}, pulledAudioTracks: {} };
63
- private _speakingMonitor?: SpeakingMonitor = undefined;
64
62
 
63
+ private readonly _state: MediaState = {
64
+ pulledVideoStreams: {},
65
+ pulledAudioTracks: {},
66
+ };
67
+
68
+ private _speakingMonitor?: SpeakingMonitor = undefined;
65
69
  private _trackToReconcile: EncodedTrackName[] = [];
66
70
  private _blackCanvasStreamTrack?: MediaStreamTrack = undefined;
67
71
  private _inaudibleAudioStreamTrack?: MediaStreamTrack = undefined;
@@ -85,6 +89,7 @@ export class MediaManager extends Resource {
85
89
  width: VIDEO_WIDTH,
86
90
  height: VIDEO_HEIGHT,
87
91
  });
92
+
88
93
  this._state.videoTrack = this._blackCanvasStreamTrack;
89
94
  this._state.videoStream = new MediaStream();
90
95
  this._state.videoStream.addTrack(this._state.videoTrack);
@@ -137,6 +142,7 @@ export class MediaManager extends Resource {
137
142
  this._state.videoStream!.removeTrack(this._state.videoTrack!);
138
143
  this._state.videoTrack = await getUserMediaTrack('videoinput', { width: VIDEO_WIDTH, height: VIDEO_HEIGHT });
139
144
  this._state.videoStream!.addTrack(this._state.videoTrack);
145
+
140
146
  this._state.videoEnabled = true;
141
147
  this.stateUpdated.emit(this._state);
142
148
  this._pushTracksTask!.schedule();
@@ -226,7 +232,6 @@ export class MediaManager extends Resource {
226
232
  // Wait for cloudflare to process the track.
227
233
  await cancelWithContext(this._ctx, sleep(800));
228
234
  const trackNames = this._trackToReconcile;
229
-
230
235
  const tracksToPull = trackNames.filter(
231
236
  (name) => !this._state.pulledAudioTracks[name] && !this._state.pulledVideoStreams[name],
232
237
  );
@@ -258,8 +263,8 @@ export class MediaManager extends Resource {
258
263
  currentAudioTracks: Object.keys(this._state.pulledAudioTracks),
259
264
  currentVideoStreams: Object.keys(this._state.pulledVideoStreams),
260
265
  });
261
- this.stateUpdated.emit(this._state);
262
266
 
267
+ this.stateUpdated.emit(this._state);
263
268
  if (pullResults.some(({ shouldRetry }) => shouldRetry)) {
264
269
  await cancelWithContext(this._ctx, sleep(RETRY_INTERVAL));
265
270
  log.info('retrying pull tracks', { tracksToPull });
@@ -296,7 +301,6 @@ export class MediaManager extends Resource {
296
301
  }
297
302
 
298
303
  const shouldRetry = pushVideoResult.shouldRetry || pushAudioResult.shouldRetry || pushScreenshareResult.shouldRetry;
299
-
300
304
  if (updated) {
301
305
  this.stateUpdated.emit(this._state);
302
306
  }
@@ -356,7 +360,6 @@ export class MediaManager extends Resource {
356
360
  }
357
361
 
358
362
  const ctx = this._ctx.derive();
359
-
360
363
  try {
361
364
  return {
362
365
  track: await this._state.peer!.pushTrack({
@@ -60,13 +60,12 @@ const userGestureEvents = [
60
60
  */
61
61
  export const createInaudibleAudioStreamTrack = async ({ ctx }: { ctx: Context }): Promise<MediaStreamTrack> => {
62
62
  const audioContext = new window.AudioContext();
63
+
63
64
  const oscillator = audioContext.createOscillator();
64
65
  oscillator.type = 'triangle';
65
- // roughly sounds like a box fan
66
66
  oscillator.frequency.setValueAtTime(20, audioContext.currentTime);
67
67
 
68
68
  const gainNode = audioContext.createGain();
69
- // even w/ gain at 0 some packets are sent
70
69
  gainNode.gain.setValueAtTime(0, audioContext.currentTime);
71
70
  oscillator.connect(gainNode);
72
71
 
@@ -85,6 +84,7 @@ export const createInaudibleAudioStreamTrack = async ({ ctx }: { ctx: Context })
85
84
  audioContextStartedPreviously = true;
86
85
  ensureOscillatorStarted();
87
86
  }
87
+
88
88
  if (audioContext.state === 'suspended' || (audioContext.state as string) === 'interrupted') {
89
89
  resumeAudioContext();
90
90
  }
@@ -2,7 +2,7 @@
2
2
  // Copyright 2025 DXOS.org
3
3
  //
4
4
 
5
- import { Rx } from '@effect-rx/rx-react';
5
+ import { Atom } from '@effect-atom/atom-react';
6
6
  import * as Function from 'effect/Function';
7
7
  import * as Option from 'effect/Option';
8
8
 
@@ -11,10 +11,9 @@ import { Obj } from '@dxos/echo';
11
11
  import { AttentionCapabilities } from '@dxos/plugin-attention';
12
12
  import { ATTENDABLE_PATH_SEPARATOR, DECK_COMPANION_TYPE, PLANK_COMPANION_TYPE } from '@dxos/plugin-deck/types';
13
13
  import { ROOT_ID, createExtension, rxFromSignal } from '@dxos/plugin-graph';
14
- import { fullyQualifiedId } from '@dxos/react-client/echo';
15
14
 
16
15
  import { meta } from '../meta';
17
- import { ChannelType, ThreadAction } from '../types';
16
+ import { Channel, ThreadAction } from '../types';
18
17
  import { getAnchor } from '../util';
19
18
 
20
19
  import { ThreadCapabilities } from './capabilities';
@@ -29,7 +28,7 @@ export default (context: PluginContext) => {
29
28
  createExtension({
30
29
  id: `${meta.id}/active-call`,
31
30
  connector: (node) =>
32
- Rx.make((get) =>
31
+ Atom.make((get) =>
33
32
  Function.pipe(
34
33
  get(node),
35
34
  Option.flatMap((node) => (node.id === ROOT_ID ? Option.some(node) : Option.none())),
@@ -64,14 +63,16 @@ export default (context: PluginContext) => {
64
63
  createExtension({
65
64
  id: `${meta.id}/channel-chat-companion`,
66
65
  connector: (node) => {
67
- return Rx.make((get) => {
66
+ return Atom.make((get) => {
68
67
  return Function.pipe(
69
68
  get(node),
70
- Option.flatMap((node) => (Obj.instanceOf(ChannelType, node.data) ? Option.some(node.data) : Option.none())),
69
+ Option.flatMap((node) =>
70
+ Obj.instanceOf(Channel.Channel, node.data) ? Option.some(node.data) : Option.none(),
71
+ ),
71
72
  Option.map((channel) => {
72
73
  const callManager = context.getCapability(ThreadCapabilities.CallManager);
73
74
  const joined = get(
74
- rxFromSignal(() => callManager.joined && callManager.roomId === fullyQualifiedId(channel)),
75
+ rxFromSignal(() => callManager.joined && callManager.roomId === Obj.getDXN(channel).toString()),
75
76
  );
76
77
  if (!joined) {
77
78
  return [];
@@ -79,7 +80,7 @@ export default (context: PluginContext) => {
79
80
 
80
81
  return [
81
82
  {
82
- id: `${fullyQualifiedId(channel)}${ATTENDABLE_PATH_SEPARATOR}chat`,
83
+ id: `${Obj.getDXN(channel).toString()}${ATTENDABLE_PATH_SEPARATOR}chat`,
83
84
  type: PLANK_COMPANION_TYPE,
84
85
  data: 'chat',
85
86
  properties: {
@@ -99,11 +100,11 @@ export default (context: PluginContext) => {
99
100
  createExtension({
100
101
  id: `${meta.id}/comments-companion`,
101
102
  connector: (node) =>
102
- Rx.make((get) =>
103
+ Atom.make((get) =>
103
104
  Function.pipe(
104
105
  get(node),
105
106
  Option.flatMap((node) => {
106
- if (!Obj.isObject(node.data) || Obj.instanceOf(ChannelType, node.data)) {
107
+ if (!Obj.isObject(node.data) || Obj.instanceOf(Channel.Channel, node.data)) {
107
108
  return Option.none();
108
109
  }
109
110
  const metadata = resolve(Obj.getTypename(node.data)!);
@@ -129,11 +130,11 @@ export default (context: PluginContext) => {
129
130
  createExtension({
130
131
  id: `${meta.id}/comment-toolbar`,
131
132
  actions: (node) =>
132
- Rx.make((get) =>
133
+ Atom.make((get) =>
133
134
  Function.pipe(
134
135
  get(node),
135
136
  Option.flatMap((node) => {
136
- if (!Obj.isObject(node.data) || Obj.instanceOf(ChannelType, node.data)) {
137
+ if (!Obj.isObject(node.data) || Obj.instanceOf(Channel.Channel, node.data)) {
137
138
  return Option.none();
138
139
  }
139
140
  const metadata = resolve(Obj.getTypename(node.data)!);
@@ -145,26 +146,35 @@ export default (context: PluginContext) => {
145
146
  const disabled = get(
146
147
  rxFromSignal(() => {
147
148
  const metadata = resolve(Obj.getTypename(object)!);
148
- const selection = selectionManager.getSelection(fullyQualifiedId(object), metadata.selectionMode);
149
+ const selection = selectionManager.getSelection(
150
+ Obj.getDXN(object).toString(),
151
+ metadata.selectionMode,
152
+ );
149
153
  const anchor = getAnchor(selection);
150
154
  const invalidSelection = !anchor;
151
- const overlappingComment = toolbar[fullyQualifiedId(object)];
155
+ const overlappingComment = toolbar[Obj.getDXN(object).toString()];
152
156
  return (metadata.comments === 'anchored' && invalidSelection) || overlappingComment;
153
157
  }),
154
158
  );
155
159
 
156
160
  return [
157
161
  {
158
- id: `${fullyQualifiedId(object)}/comment`,
162
+ id: `${Obj.getDXN(object).toString()}/comment`,
159
163
  data: () => {
160
164
  const { dispatchPromise: dispatch } = context.getCapability(Capabilities.IntentDispatcher);
161
165
  const metadata = resolve(Obj.getTypename(object)!);
162
- const selection = selectionManager.getSelection(fullyQualifiedId(object));
166
+ const selection = selectionManager.getSelection(Obj.getDXN(object).toString());
163
167
  // TODO(wittjosiah): Use presence of selection to determine if the comment should be anchored.
164
168
  // Requires all components which support selection (e.g. table/kanban) to support anchored comments.
165
169
  const anchor = metadata.comments === 'anchored' ? getAnchor(selection) : Date.now().toString();
166
170
  const name = metadata.getAnchorLabel?.(object, anchor);
167
- void dispatch(createIntent(ThreadAction.Create, { anchor, name, subject: object }));
171
+ void dispatch(
172
+ createIntent(ThreadAction.Create, {
173
+ anchor,
174
+ name,
175
+ subject: object,
176
+ }),
177
+ );
168
178
  },
169
179
  properties: {
170
180
  label: ['add comment label', { ns: meta.id }],
@@ -0,0 +1,38 @@
1
+ //
2
+ // Copyright 2025 DXOS.org
3
+ //
4
+
5
+ import { Capabilities, type Capability, contributes } from '@dxos/app-framework';
6
+ import { Blueprint, Template } from '@dxos/blueprints';
7
+ import { type FunctionDefinition } from '@dxos/functions';
8
+ import { trim } from '@dxos/util';
9
+
10
+ import { createProposals } from '../functions';
11
+
12
+ const functions: FunctionDefinition[] = [createProposals];
13
+
14
+ export const ASSISTANT_BLUEPRINT_KEY = 'dxos.org/blueprint/thread';
15
+
16
+ export default (): Capability<any>[] => [
17
+ contributes(Capabilities.Functions, functions),
18
+ contributes(
19
+ Capabilities.BlueprintDefinition,
20
+ Blueprint.make({
21
+ key: ASSISTANT_BLUEPRINT_KEY,
22
+ name: 'Thread',
23
+ tools: Blueprint.toolDefinitions({ functions }),
24
+ instructions: Template.make({
25
+ // TODO(wittjosiah): Move example to function input schema annotation.
26
+ source: trim`
27
+ You can update markdown documents via proposals.
28
+ For each diff, respond with the smallest possible matching span.
29
+ For example:
30
+ - "There is a tyop in this sentence."
31
+ + "There is a typo in this sentence."
32
+ - "This id goof."
33
+ + "This is good."
34
+ `,
35
+ }),
36
+ }),
37
+ ),
38
+ ];
@@ -7,7 +7,7 @@ import { type DeepReadonly } from '@dxos/util';
7
7
 
8
8
  import { type CallManager, type CallState, type MediaState } from '../calls';
9
9
  import { meta } from '../meta';
10
- import { type ChannelType, type ThreadState, type ViewState } from '../types';
10
+ import { type Channel, type ThreadState, type ViewState } from '../types';
11
11
 
12
12
  export namespace ThreadCapabilities {
13
13
  export const CallManager = defineCapability<CallManager>(`${meta.id}/capability/call-manager`);
@@ -16,7 +16,7 @@ export namespace ThreadCapabilities {
16
16
  // TODO(burdon): This brings in deps from ../calls; how should we manage/minimize explicit type exposure to other plugins?
17
17
  // TODO(wittjosiah): These callbacks could be intents once we support broadcast.
18
18
  export type CallProperties = {
19
- onJoin: (state: { channel?: ChannelType; roomId?: string }) => Promise<void>;
19
+ onJoin: (state: { channel?: Channel.Channel; roomId?: string }) => Promise<void>;
20
20
  onLeave: (roomId?: string) => Promise<void>;
21
21
  onCallStateUpdated: (callState: CallState) => Promise<void>;
22
22
  onMediaStateUpdated: ([mediaState, isSpeaking]: [MediaState, boolean]) => Promise<void>;
@@ -5,6 +5,7 @@
5
5
  import { lazy } from '@dxos/app-framework';
6
6
 
7
7
  export const AppGraphBuilder = lazy(() => import('./app-graph-builder'));
8
+ export const BlueprintDefinition = lazy(() => import('./blueprint-definition'));
8
9
  export const CallManager = lazy(() => import('./call-manager'));
9
10
  export const IntentResolver = lazy(() => import('./intent-resolver'));
10
11
  export const Markdown = lazy(() => import('./markdown'));
@@ -12,6 +13,5 @@ export const ReactRoot = lazy(() => import('./react-root'));
12
13
  export const ReactSurface = lazy(() => import('./react-surface'));
13
14
  export const ThreadSettings = lazy(() => import('./settings'));
14
15
  export const ThreadState = lazy(() => import('./state'));
15
- export const Toolkit = lazy(() => import('./toolkit'));
16
16
 
17
17
  export * from './capabilities';