@dxos/app-framework 0.8.4-main.69d29f4 → 0.8.4-main.6fa680abb7

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 (363) hide show
  1. package/.storybook/main.mts +1 -3
  2. package/dist/lib/browser/{capability-7PCNSWBT.mjs → capability-6YMUBS54.mjs} +15 -11
  3. package/dist/lib/browser/capability-6YMUBS54.mjs.map +7 -0
  4. package/dist/lib/browser/capability-LF3OXSCV.mjs +34 -0
  5. package/dist/lib/browser/capability-LF3OXSCV.mjs.map +7 -0
  6. package/dist/lib/browser/{chunk-PKQT6C53.mjs → chunk-272IPLHQ.mjs} +1 -1
  7. package/dist/lib/browser/{chunk-PKQT6C53.mjs.map → chunk-272IPLHQ.mjs.map} +1 -1
  8. package/dist/lib/browser/{chunk-FMZN33N4.mjs → chunk-2UI6ACB5.mjs} +48 -31
  9. package/dist/lib/browser/chunk-2UI6ACB5.mjs.map +7 -0
  10. package/dist/lib/browser/{chunk-TCLLRCS3.mjs → chunk-7M4467QR.mjs} +6 -6
  11. package/dist/lib/browser/chunk-7M4467QR.mjs.map +7 -0
  12. package/dist/lib/browser/{chunk-7IQHKD4U.mjs → chunk-JGWCBVKJ.mjs} +2 -2
  13. package/dist/lib/browser/chunk-JGWCBVKJ.mjs.map +7 -0
  14. package/dist/lib/browser/chunk-M5IC326L.mjs +34 -0
  15. package/dist/lib/browser/chunk-M5IC326L.mjs.map +7 -0
  16. package/dist/lib/browser/{chunk-XYNO72GQ.mjs → chunk-NQPYE365.mjs} +435 -478
  17. package/dist/lib/browser/chunk-NQPYE365.mjs.map +7 -0
  18. package/dist/lib/browser/chunk-TGX63LTL.mjs +8 -0
  19. package/dist/lib/browser/{chunk-FHQTHCX7.mjs.map → chunk-TGX63LTL.mjs.map} +1 -1
  20. package/dist/lib/browser/chunk-TIEBZMTF.mjs +44 -0
  21. package/dist/lib/browser/chunk-TIEBZMTF.mjs.map +7 -0
  22. package/dist/lib/browser/chunk-WEBSGU5L.mjs +80 -0
  23. package/dist/lib/browser/chunk-WEBSGU5L.mjs.map +7 -0
  24. package/dist/lib/browser/chunk-YAFEA4GV.mjs +1 -0
  25. package/dist/lib/browser/{chunk-6Y7PZV72.mjs → chunk-YNFPIQGB.mjs} +2 -3
  26. package/dist/lib/browser/{chunk-6Y7PZV72.mjs.map → chunk-YNFPIQGB.mjs.map} +3 -3
  27. package/dist/lib/browser/cli/index.mjs +89 -0
  28. package/dist/lib/browser/cli/index.mjs.map +7 -0
  29. package/dist/lib/browser/common/activation-events.mjs +23 -0
  30. package/dist/lib/browser/common/capabilities.mjs +45 -0
  31. package/dist/lib/browser/core/activation-event.mjs +1 -1
  32. package/dist/lib/browser/core/capability.mjs +1 -1
  33. package/dist/lib/browser/core/plugin-manager.mjs +4 -4
  34. package/dist/lib/browser/core/plugin.mjs +2 -2
  35. package/dist/lib/browser/index.mjs +37 -132
  36. package/dist/lib/browser/index.mjs.map +4 -4
  37. package/dist/lib/browser/{invoker-capability-SZRSTHEH.mjs → invoker-capability-4AUGUMM5.mjs} +16 -12
  38. package/dist/lib/browser/invoker-capability-4AUGUMM5.mjs.map +7 -0
  39. package/dist/lib/browser/meta.json +1 -1
  40. package/dist/lib/browser/testing/index.mjs +28 -20
  41. package/dist/lib/browser/testing/index.mjs.map +3 -3
  42. package/dist/lib/browser/{react → ui}/index.mjs +18 -19
  43. package/dist/lib/node-esm/{capability-CFLQ2QQU.mjs → capability-R5O2OYX4.mjs} +15 -11
  44. package/dist/lib/node-esm/capability-R5O2OYX4.mjs.map +7 -0
  45. package/dist/lib/node-esm/capability-SA6LPYGL.mjs +35 -0
  46. package/dist/lib/node-esm/capability-SA6LPYGL.mjs.map +7 -0
  47. package/dist/lib/node-esm/{chunk-663A54LQ.mjs → chunk-3D66SZHP.mjs} +2 -2
  48. package/dist/lib/node-esm/chunk-3D66SZHP.mjs.map +7 -0
  49. package/dist/lib/node-esm/{chunk-7OWSHPYK.mjs → chunk-6REV5DE7.mjs} +1 -1
  50. package/dist/lib/node-esm/{chunk-7OWSHPYK.mjs.map → chunk-6REV5DE7.mjs.map} +1 -1
  51. package/dist/lib/node-esm/{chunk-6WXBT3EC.mjs → chunk-FHWPWQRJ.mjs} +435 -478
  52. package/dist/lib/node-esm/chunk-FHWPWQRJ.mjs.map +7 -0
  53. package/dist/lib/node-esm/{chunk-UEWJDI2L.mjs → chunk-FKE4Z3D6.mjs} +2 -2
  54. package/dist/lib/node-esm/{chunk-UEWJDI2L.mjs.map → chunk-FKE4Z3D6.mjs.map} +1 -1
  55. package/dist/lib/node-esm/{chunk-GT6OKM5I.mjs → chunk-JHFY3HTS.mjs} +6 -6
  56. package/dist/lib/node-esm/chunk-JHFY3HTS.mjs.map +7 -0
  57. package/dist/lib/node-esm/{chunk-XYQTBFPA.mjs → chunk-JIVXIJ2T.mjs} +48 -31
  58. package/dist/lib/node-esm/chunk-JIVXIJ2T.mjs.map +7 -0
  59. package/dist/lib/node-esm/chunk-NHXBSAQR.mjs +35 -0
  60. package/dist/lib/node-esm/chunk-NHXBSAQR.mjs.map +7 -0
  61. package/dist/lib/node-esm/{chunk-STMXUEPO.mjs → chunk-SB5ODNPX.mjs} +2 -3
  62. package/dist/lib/node-esm/{chunk-STMXUEPO.mjs.map → chunk-SB5ODNPX.mjs.map} +3 -3
  63. package/dist/lib/node-esm/chunk-SCDGIGGU.mjs +45 -0
  64. package/dist/lib/node-esm/chunk-SCDGIGGU.mjs.map +7 -0
  65. package/dist/lib/node-esm/chunk-SQICGJBW.mjs +81 -0
  66. package/dist/lib/node-esm/chunk-SQICGJBW.mjs.map +7 -0
  67. package/dist/lib/node-esm/chunk-Z4TJPSMP.mjs +2 -0
  68. package/dist/lib/node-esm/chunk-Z4TJPSMP.mjs.map +7 -0
  69. package/dist/lib/node-esm/cli/index.mjs +90 -0
  70. package/dist/lib/node-esm/cli/index.mjs.map +7 -0
  71. package/dist/lib/node-esm/common/activation-events.mjs +24 -0
  72. package/dist/lib/node-esm/common/activation-events.mjs.map +7 -0
  73. package/dist/lib/node-esm/common/capabilities.mjs +46 -0
  74. package/dist/lib/node-esm/common/capabilities.mjs.map +7 -0
  75. package/dist/lib/node-esm/core/activation-event.mjs +1 -1
  76. package/dist/lib/node-esm/core/capability.mjs +1 -1
  77. package/dist/lib/node-esm/core/plugin-manager.mjs +4 -4
  78. package/dist/lib/node-esm/core/plugin.mjs +2 -2
  79. package/dist/lib/node-esm/index.mjs +37 -132
  80. package/dist/lib/node-esm/index.mjs.map +4 -4
  81. package/dist/lib/node-esm/{invoker-capability-PNMA5JOS.mjs → invoker-capability-3YDIVDWV.mjs} +16 -12
  82. package/dist/lib/node-esm/invoker-capability-3YDIVDWV.mjs.map +7 -0
  83. package/dist/lib/node-esm/meta.json +1 -1
  84. package/dist/lib/node-esm/testing/index.mjs +28 -20
  85. package/dist/lib/node-esm/testing/index.mjs.map +3 -3
  86. package/dist/lib/node-esm/{react → ui}/index.mjs +18 -19
  87. package/dist/lib/node-esm/ui/index.mjs.map +7 -0
  88. package/dist/types/src/{cli.d.ts → cli/cli.d.ts} +2 -2
  89. package/dist/types/src/cli/cli.d.ts.map +1 -0
  90. package/dist/types/src/cli/index.d.ts +2 -0
  91. package/dist/types/src/cli/index.d.ts.map +1 -0
  92. package/dist/types/src/common/activation-events.d.ts +27 -0
  93. package/dist/types/src/common/activation-events.d.ts.map +1 -0
  94. package/dist/types/src/common/capabilities.d.ts +115 -0
  95. package/dist/types/src/common/capabilities.d.ts.map +1 -0
  96. package/dist/types/src/common/index.d.ts +4 -9
  97. package/dist/types/src/common/index.d.ts.map +1 -1
  98. package/dist/types/src/common/operations.d.ts +1 -348
  99. package/dist/types/src/common/operations.d.ts.map +1 -1
  100. package/dist/types/src/common/translations.d.ts +0 -9
  101. package/dist/types/src/common/translations.d.ts.map +1 -1
  102. package/dist/types/src/core/activation-event.d.ts +1 -1
  103. package/dist/types/src/core/capability.d.ts +7 -7
  104. package/dist/types/src/core/capability.d.ts.map +1 -1
  105. package/dist/types/src/core/plugin-manager.d.ts.map +1 -1
  106. package/dist/types/src/core/plugin.d.ts +1 -1
  107. package/dist/types/src/core/plugin.d.ts.map +1 -1
  108. package/dist/types/src/index.d.ts +1 -3
  109. package/dist/types/src/index.d.ts.map +1 -1
  110. package/dist/types/src/plugin-operation/history/capability.d.ts +1 -1
  111. package/dist/types/src/plugin-operation/history/undo-mapping.d.ts +11 -3
  112. package/dist/types/src/plugin-operation/history/undo-mapping.d.ts.map +1 -1
  113. package/dist/types/src/plugin-operation/invoker-capability.d.ts +1 -1
  114. package/dist/types/src/plugin-runtime/capability.d.ts +2 -2
  115. package/dist/types/src/plugin-runtime/capability.d.ts.map +1 -1
  116. package/dist/types/src/testing/withPluginManager.d.ts +1 -1
  117. package/dist/types/src/testing/withPluginManager.d.ts.map +1 -1
  118. package/dist/types/src/{react → ui/components/App}/App.d.ts +1 -1
  119. package/dist/types/src/ui/components/App/App.d.ts.map +1 -0
  120. package/dist/types/src/{react/Surface.stories.d.ts → ui/components/App/App.stories.d.ts} +7 -2
  121. package/dist/types/src/ui/components/App/App.stories.d.ts.map +1 -0
  122. package/dist/types/src/ui/components/App/index.d.ts +2 -0
  123. package/dist/types/src/ui/components/App/index.d.ts.map +1 -0
  124. package/dist/types/src/ui/components/PluginManager/PluginManagerContext.stories.d.ts.map +1 -0
  125. package/dist/types/src/{react → ui/components/PluginManager}/PluginManagerProvider.d.ts +1 -1
  126. package/dist/types/src/ui/components/PluginManager/PluginManagerProvider.d.ts.map +1 -0
  127. package/dist/types/src/ui/components/PluginManager/index.d.ts +2 -0
  128. package/dist/types/src/ui/components/PluginManager/index.d.ts.map +1 -0
  129. package/dist/types/src/ui/components/Surface/SurfaceComponent.d.ts +12 -0
  130. package/dist/types/src/ui/components/Surface/SurfaceComponent.d.ts.map +1 -0
  131. package/dist/types/src/{react/App.stories.d.ts → ui/components/Surface/SurfaceComponent.stories.d.ts} +1 -1
  132. package/dist/types/src/ui/components/Surface/SurfaceComponent.stories.d.ts.map +1 -0
  133. package/dist/types/src/ui/components/Surface/SurfaceInfo.d.ts.map +1 -0
  134. package/dist/types/src/ui/components/Surface/context.d.ts +5 -0
  135. package/dist/types/src/ui/components/Surface/context.d.ts.map +1 -0
  136. package/dist/types/src/ui/components/Surface/index.d.ts +20 -0
  137. package/dist/types/src/ui/components/Surface/index.d.ts.map +1 -0
  138. package/dist/types/src/{common/surface.d.ts → ui/components/Surface/types.d.ts} +20 -18
  139. package/dist/types/src/ui/components/Surface/types.d.ts.map +1 -0
  140. package/dist/types/src/ui/components/index.d.ts +4 -0
  141. package/dist/types/src/ui/components/index.d.ts.map +1 -0
  142. package/dist/types/src/ui/hooks/index.d.ts +7 -0
  143. package/dist/types/src/ui/hooks/index.d.ts.map +1 -0
  144. package/dist/types/src/{react → ui/hooks}/useApp.d.ts +14 -9
  145. package/dist/types/src/ui/hooks/useApp.d.ts.map +1 -0
  146. package/dist/types/src/{react → ui/hooks}/useCapabilities.d.ts +6 -1
  147. package/dist/types/src/ui/hooks/useCapabilities.d.ts.map +1 -0
  148. package/dist/types/src/ui/hooks/useLoading.d.ts.map +1 -0
  149. package/dist/types/src/{react → ui/hooks}/useOperationResolver.d.ts +2 -2
  150. package/dist/types/src/ui/hooks/useOperationResolver.d.ts.map +1 -0
  151. package/dist/types/src/{react/common.d.ts → ui/hooks/useSettingsState.d.ts} +1 -5
  152. package/dist/types/src/ui/hooks/useSettingsState.d.ts.map +1 -0
  153. package/dist/types/src/ui/hooks/useSurface.d.ts +3 -0
  154. package/dist/types/src/ui/hooks/useSurface.d.ts.map +1 -0
  155. package/dist/types/src/ui/index.d.ts +3 -0
  156. package/dist/types/src/ui/index.d.ts.map +1 -0
  157. package/dist/types/tsconfig.tsbuildinfo +1 -1
  158. package/moon.yml +6 -6
  159. package/package.json +72 -64
  160. package/src/{cli.ts → cli/cli.ts} +10 -10
  161. package/src/{playground/debug → cli}/index.ts +1 -1
  162. package/src/common/activation-events.ts +44 -0
  163. package/src/common/capabilities.ts +178 -0
  164. package/src/common/index.ts +4 -9
  165. package/src/common/operations.ts +2 -376
  166. package/src/common/translations.ts +0 -12
  167. package/src/context.ts +1 -1
  168. package/src/core/activation-event.ts +1 -1
  169. package/src/core/capability.ts +9 -9
  170. package/src/core/plugin-manager.test.ts +44 -44
  171. package/src/core/plugin-manager.ts +19 -0
  172. package/src/core/plugin.ts +3 -2
  173. package/src/index.ts +1 -3
  174. package/src/plugin-operation/OperationPlugin.ts +5 -5
  175. package/src/plugin-operation/history/capability.ts +5 -5
  176. package/src/plugin-operation/history/undo-mapping.ts +6 -3
  177. package/src/plugin-operation/invoker-capability.ts +5 -5
  178. package/src/plugin-operation/meta.ts +1 -1
  179. package/src/plugin-runtime/RuntimePlugin.ts +4 -4
  180. package/src/plugin-runtime/capability.ts +5 -5
  181. package/src/plugin-runtime/meta.ts +1 -1
  182. package/src/testing/service.ts +6 -6
  183. package/src/testing/withPluginManager.stories.tsx +6 -6
  184. package/src/testing/withPluginManager.tsx +11 -8
  185. package/src/ui/components/App/App.stories.tsx +92 -0
  186. package/src/{react → ui/components/App}/App.tsx +6 -9
  187. package/src/{playground/layout → ui/components/App}/index.ts +1 -1
  188. package/src/{react → ui/components/PluginManager}/PluginManagerContext.stories.tsx +13 -14
  189. package/src/{react → ui/components/PluginManager}/PluginManagerProvider.ts +1 -1
  190. package/src/ui/components/PluginManager/index.ts +5 -0
  191. package/src/{react/Surface.stories.tsx → ui/components/Surface/SurfaceComponent.stories.tsx} +18 -16
  192. package/src/{react/Surface.tsx → ui/components/Surface/SurfaceComponent.tsx} +36 -56
  193. package/src/{react → ui/components/Surface}/SurfaceInfo.tsx +2 -2
  194. package/src/ui/components/Surface/context.ts +12 -0
  195. package/src/ui/components/Surface/index.ts +20 -0
  196. package/src/{common/surface.ts → ui/components/Surface/types.ts} +22 -25
  197. package/src/ui/components/index.ts +7 -0
  198. package/src/ui/hooks/index.ts +10 -0
  199. package/src/{react → ui/hooks}/useApp.tsx +29 -25
  200. package/src/{react → ui/hooks}/useCapabilities.ts +9 -5
  201. package/src/{react → ui/hooks}/useOperationResolver.ts +5 -5
  202. package/src/{react/common.ts → ui/hooks/useSettingsState.ts} +0 -11
  203. package/src/ui/hooks/useSurface.ts +13 -0
  204. package/src/ui/index.ts +6 -0
  205. package/tsconfig.json +2 -29
  206. package/tsconfig.node.json +1 -3
  207. package/typedoc.json +2 -4
  208. package/dist/lib/browser/app-graph-builder-M2VPYQC6.mjs +0 -149
  209. package/dist/lib/browser/app-graph-builder-M2VPYQC6.mjs.map +0 -7
  210. package/dist/lib/browser/capability-7PCNSWBT.mjs.map +0 -7
  211. package/dist/lib/browser/capability-KP3PFEXD.mjs +0 -31
  212. package/dist/lib/browser/capability-KP3PFEXD.mjs.map +0 -7
  213. package/dist/lib/browser/chunk-7IQHKD4U.mjs.map +0 -7
  214. package/dist/lib/browser/chunk-BLQJSGL3.mjs +0 -732
  215. package/dist/lib/browser/chunk-BLQJSGL3.mjs.map +0 -7
  216. package/dist/lib/browser/chunk-FHQTHCX7.mjs +0 -8
  217. package/dist/lib/browser/chunk-FMZN33N4.mjs.map +0 -7
  218. package/dist/lib/browser/chunk-H4WPA7U7.mjs +0 -77
  219. package/dist/lib/browser/chunk-H4WPA7U7.mjs.map +0 -7
  220. package/dist/lib/browser/chunk-TCLLRCS3.mjs.map +0 -7
  221. package/dist/lib/browser/chunk-XYNO72GQ.mjs.map +0 -7
  222. package/dist/lib/browser/common/index.mjs +0 -38
  223. package/dist/lib/browser/invoker-capability-SZRSTHEH.mjs.map +0 -7
  224. package/dist/lib/browser/operation-resolver-6MP2MYOY.mjs +0 -64
  225. package/dist/lib/browser/operation-resolver-6MP2MYOY.mjs.map +0 -7
  226. package/dist/lib/node-esm/app-graph-builder-LROHGJEM.mjs +0 -150
  227. package/dist/lib/node-esm/app-graph-builder-LROHGJEM.mjs.map +0 -7
  228. package/dist/lib/node-esm/capability-CFLQ2QQU.mjs.map +0 -7
  229. package/dist/lib/node-esm/capability-RCUNM2M7.mjs +0 -32
  230. package/dist/lib/node-esm/capability-RCUNM2M7.mjs.map +0 -7
  231. package/dist/lib/node-esm/chunk-663A54LQ.mjs.map +0 -7
  232. package/dist/lib/node-esm/chunk-6WXBT3EC.mjs.map +0 -7
  233. package/dist/lib/node-esm/chunk-GQEBIGKD.mjs +0 -733
  234. package/dist/lib/node-esm/chunk-GQEBIGKD.mjs.map +0 -7
  235. package/dist/lib/node-esm/chunk-GT6OKM5I.mjs.map +0 -7
  236. package/dist/lib/node-esm/chunk-XR6NMKEP.mjs +0 -78
  237. package/dist/lib/node-esm/chunk-XR6NMKEP.mjs.map +0 -7
  238. package/dist/lib/node-esm/chunk-XYQTBFPA.mjs.map +0 -7
  239. package/dist/lib/node-esm/common/index.mjs +0 -39
  240. package/dist/lib/node-esm/invoker-capability-PNMA5JOS.mjs.map +0 -7
  241. package/dist/lib/node-esm/operation-resolver-7YWDMTNU.mjs +0 -65
  242. package/dist/lib/node-esm/operation-resolver-7YWDMTNU.mjs.map +0 -7
  243. package/dist/types/src/cli.d.ts.map +0 -1
  244. package/dist/types/src/common/activation-event.d.ts +0 -66
  245. package/dist/types/src/common/activation-event.d.ts.map +0 -1
  246. package/dist/types/src/common/capability.d.ts +0 -265
  247. package/dist/types/src/common/capability.d.ts.map +0 -1
  248. package/dist/types/src/common/collaboration.d.ts +0 -26
  249. package/dist/types/src/common/collaboration.d.ts.map +0 -1
  250. package/dist/types/src/common/file.d.ts +0 -14
  251. package/dist/types/src/common/file.d.ts.map +0 -1
  252. package/dist/types/src/common/graph.d.ts +0 -21
  253. package/dist/types/src/common/graph.d.ts.map +0 -1
  254. package/dist/types/src/common/plugin.d.ts +0 -201
  255. package/dist/types/src/common/plugin.d.ts.map +0 -1
  256. package/dist/types/src/common/surface.d.ts.map +0 -1
  257. package/dist/types/src/playground/debug/Debug.d.ts +0 -8
  258. package/dist/types/src/playground/debug/Debug.d.ts.map +0 -1
  259. package/dist/types/src/playground/debug/index.d.ts +0 -2
  260. package/dist/types/src/playground/debug/index.d.ts.map +0 -1
  261. package/dist/types/src/playground/debug/plugin.d.ts +0 -3
  262. package/dist/types/src/playground/debug/plugin.d.ts.map +0 -1
  263. package/dist/types/src/playground/generator/Main.d.ts +0 -8
  264. package/dist/types/src/playground/generator/Main.d.ts.map +0 -1
  265. package/dist/types/src/playground/generator/Toolbar.d.ts +0 -8
  266. package/dist/types/src/playground/generator/Toolbar.d.ts.map +0 -1
  267. package/dist/types/src/playground/generator/generator.d.ts +0 -19
  268. package/dist/types/src/playground/generator/generator.d.ts.map +0 -1
  269. package/dist/types/src/playground/generator/index.d.ts +0 -3
  270. package/dist/types/src/playground/generator/index.d.ts.map +0 -1
  271. package/dist/types/src/playground/generator/plugin.d.ts +0 -3
  272. package/dist/types/src/playground/generator/plugin.d.ts.map +0 -1
  273. package/dist/types/src/playground/layout/Layout.d.ts +0 -10
  274. package/dist/types/src/playground/layout/Layout.d.ts.map +0 -1
  275. package/dist/types/src/playground/layout/index.d.ts +0 -2
  276. package/dist/types/src/playground/layout/index.d.ts.map +0 -1
  277. package/dist/types/src/playground/layout/plugin.d.ts +0 -3
  278. package/dist/types/src/playground/layout/plugin.d.ts.map +0 -1
  279. package/dist/types/src/playground/logger/Toolbar.d.ts +0 -8
  280. package/dist/types/src/playground/logger/Toolbar.d.ts.map +0 -1
  281. package/dist/types/src/playground/logger/index.d.ts +0 -2
  282. package/dist/types/src/playground/logger/index.d.ts.map +0 -1
  283. package/dist/types/src/playground/logger/plugin.d.ts +0 -3
  284. package/dist/types/src/playground/logger/plugin.d.ts.map +0 -1
  285. package/dist/types/src/playground/logger/schema.d.ts +0 -27
  286. package/dist/types/src/playground/logger/schema.d.ts.map +0 -1
  287. package/dist/types/src/playground/playground.stories.d.ts +0 -11
  288. package/dist/types/src/playground/playground.stories.d.ts.map +0 -1
  289. package/dist/types/src/plugin-settings/SettingsPlugin.d.ts +0 -3
  290. package/dist/types/src/plugin-settings/SettingsPlugin.d.ts.map +0 -1
  291. package/dist/types/src/plugin-settings/actions.d.ts +0 -61
  292. package/dist/types/src/plugin-settings/actions.d.ts.map +0 -1
  293. package/dist/types/src/plugin-settings/app-graph-builder.d.ts +0 -6
  294. package/dist/types/src/plugin-settings/app-graph-builder.d.ts.map +0 -1
  295. package/dist/types/src/plugin-settings/index.d.ts +0 -3
  296. package/dist/types/src/plugin-settings/index.d.ts.map +0 -1
  297. package/dist/types/src/plugin-settings/meta.d.ts +0 -3
  298. package/dist/types/src/plugin-settings/meta.d.ts.map +0 -1
  299. package/dist/types/src/plugin-settings/operation-resolver.d.ts +0 -6
  300. package/dist/types/src/plugin-settings/operation-resolver.d.ts.map +0 -1
  301. package/dist/types/src/plugin-settings/translations.d.ts +0 -11
  302. package/dist/types/src/plugin-settings/translations.d.ts.map +0 -1
  303. package/dist/types/src/react/App.d.ts.map +0 -1
  304. package/dist/types/src/react/App.stories.d.ts.map +0 -1
  305. package/dist/types/src/react/DefaultFallback.d.ts +0 -8
  306. package/dist/types/src/react/DefaultFallback.d.ts.map +0 -1
  307. package/dist/types/src/react/ErrorBoundary.d.ts +0 -30
  308. package/dist/types/src/react/ErrorBoundary.d.ts.map +0 -1
  309. package/dist/types/src/react/PluginManagerContext.stories.d.ts.map +0 -1
  310. package/dist/types/src/react/PluginManagerProvider.d.ts.map +0 -1
  311. package/dist/types/src/react/Surface.d.ts +0 -14
  312. package/dist/types/src/react/Surface.d.ts.map +0 -1
  313. package/dist/types/src/react/Surface.stories.d.ts.map +0 -1
  314. package/dist/types/src/react/SurfaceInfo.d.ts.map +0 -1
  315. package/dist/types/src/react/common.d.ts.map +0 -1
  316. package/dist/types/src/react/index.d.ts +0 -9
  317. package/dist/types/src/react/index.d.ts.map +0 -1
  318. package/dist/types/src/react/types.d.ts +0 -12
  319. package/dist/types/src/react/types.d.ts.map +0 -1
  320. package/dist/types/src/react/useApp.d.ts.map +0 -1
  321. package/dist/types/src/react/useCapabilities.d.ts.map +0 -1
  322. package/dist/types/src/react/useLoading.d.ts.map +0 -1
  323. package/dist/types/src/react/useOperationResolver.d.ts.map +0 -1
  324. package/src/common/activation-event.ts +0 -99
  325. package/src/common/capability.ts +0 -343
  326. package/src/common/collaboration.ts +0 -31
  327. package/src/common/file.ts +0 -22
  328. package/src/common/graph.ts +0 -30
  329. package/src/common/plugin.ts +0 -364
  330. package/src/playground/debug/Debug.tsx +0 -49
  331. package/src/playground/debug/plugin.ts +0 -16
  332. package/src/playground/generator/Main.tsx +0 -80
  333. package/src/playground/generator/Toolbar.tsx +0 -57
  334. package/src/playground/generator/generator.ts +0 -48
  335. package/src/playground/generator/index.ts +0 -6
  336. package/src/playground/generator/plugin.ts +0 -21
  337. package/src/playground/layout/Layout.tsx +0 -37
  338. package/src/playground/layout/plugin.ts +0 -18
  339. package/src/playground/logger/Toolbar.tsx +0 -33
  340. package/src/playground/logger/index.ts +0 -5
  341. package/src/playground/logger/plugin.ts +0 -42
  342. package/src/playground/logger/schema.ts +0 -22
  343. package/src/playground/playground.stories.tsx +0 -54
  344. package/src/plugin-settings/SettingsPlugin.ts +0 -19
  345. package/src/plugin-settings/actions.ts +0 -64
  346. package/src/plugin-settings/app-graph-builder.ts +0 -140
  347. package/src/plugin-settings/index.ts +0 -6
  348. package/src/plugin-settings/meta.ts +0 -10
  349. package/src/plugin-settings/operation-resolver.ts +0 -55
  350. package/src/plugin-settings/translations.ts +0 -19
  351. package/src/react/App.stories.tsx +0 -63
  352. package/src/react/DefaultFallback.tsx +0 -26
  353. package/src/react/ErrorBoundary.tsx +0 -56
  354. package/src/react/index.ts +0 -14
  355. package/src/react/types.ts +0 -27
  356. /package/dist/lib/{node-esm/react/index.mjs.map → browser/chunk-YAFEA4GV.mjs.map} +0 -0
  357. /package/dist/lib/{node-esm/common/index.mjs.map → browser/common/activation-events.mjs.map} +0 -0
  358. /package/dist/lib/browser/{react/index.mjs.map → common/capabilities.mjs.map} +0 -0
  359. /package/dist/lib/browser/{common → ui}/index.mjs.map +0 -0
  360. /package/dist/types/src/{react → ui/components/PluginManager}/PluginManagerContext.stories.d.ts +0 -0
  361. /package/dist/types/src/{react → ui/components/Surface}/SurfaceInfo.d.ts +0 -0
  362. /package/dist/types/src/{react → ui/hooks}/useLoading.d.ts +0 -0
  363. /package/src/{react → ui/hooks}/useLoading.tsx +0 -0
package/moon.yml CHANGED
@@ -1,22 +1,22 @@
1
- type: library
1
+ layer: library
2
2
  language: typescript
3
3
  tags:
4
4
  - pack
5
5
  - ts-build
6
6
  - ts-test
7
+ - ts-test-storybook
7
8
  - typedoc
8
9
  - storybook
9
10
  tasks:
10
11
  compile:
11
12
  args:
12
13
  - '--entryPoint=src/index.ts'
13
- - '--entryPoint=src/common/index.ts'
14
+ - '--entryPoint=src/cli/index.ts'
14
15
  - '--entryPoint=src/core/activation-event.ts'
15
16
  - '--entryPoint=src/core/capability.ts'
16
17
  - '--entryPoint=src/core/plugin.ts'
17
18
  - '--entryPoint=src/core/plugin-manager.ts'
18
- - '--entryPoint=src/react/index.ts'
19
+ - '--entryPoint=src/common/capabilities.ts'
20
+ - '--entryPoint=src/common/activation-events.ts'
21
+ - '--entryPoint=src/ui/index.ts'
19
22
  - '--entryPoint=src/testing/index.ts'
20
- test:
21
- inputs:
22
- - .storybook/*
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@dxos/app-framework",
3
- "version": "0.8.4-main.69d29f4",
3
+ "version": "0.8.4-main.6fa680abb7",
4
4
  "description": "A framework for building applications from composible plugins.",
5
5
  "homepage": "https://dxos.org",
6
6
  "bugs": "https://github.com/dxos/dxos/issues",
@@ -15,51 +15,63 @@
15
15
  "exports": {
16
16
  ".": {
17
17
  "source": "./src/index.ts",
18
- "types": "./dist/types/src/index.d.ts",
19
18
  "browser": "./dist/lib/browser/index.mjs",
20
- "node": "./dist/lib/node-esm/index.mjs"
19
+ "node": "./dist/lib/node-esm/index.mjs",
20
+ "types": "./dist/types/src/index.d.ts"
21
21
  },
22
22
  "./ActivationEvent": {
23
23
  "source": "./src/core/activation-event.ts",
24
- "types": "./dist/types/src/activation-event/index.d.ts",
25
24
  "browser": "./dist/lib/browser/activation-event/index.mjs",
26
- "node": "./dist/lib/node-esm/activation-event/index.mjs"
25
+ "node": "./dist/lib/node-esm/activation-event/index.mjs",
26
+ "types": "./dist/types/src/activation-event/index.d.ts"
27
+ },
28
+ "./ActivationEvents": {
29
+ "source": "./src/common/activation-events.ts",
30
+ "browser": "./dist/lib/browser/common/activation-events.mjs",
31
+ "node": "./dist/lib/node-esm/common/activation-events.mjs",
32
+ "types": "./dist/types/src/common/activation-events.d.ts"
33
+ },
34
+ "./Capabilities": {
35
+ "source": "./src/common/capabilities.ts",
36
+ "browser": "./dist/lib/browser/common/capabilities.mjs",
37
+ "node": "./dist/lib/node-esm/common/capabilities.mjs",
38
+ "types": "./dist/types/src/common/capabilities.d.ts"
27
39
  },
28
40
  "./Capability": {
29
41
  "source": "./src/core/capability.ts",
30
- "types": "./dist/types/src/capability/index.d.ts",
31
42
  "browser": "./dist/lib/browser/capability/index.mjs",
32
- "node": "./dist/lib/node-esm/capability/index.mjs"
33
- },
34
- "./Common": {
35
- "source": "./src/common/index.ts",
36
- "types": "./dist/types/src/common/index.d.ts",
37
- "browser": "./dist/lib/browser/common/index.mjs",
38
- "node": "./dist/lib/node-esm/common/index.mjs"
43
+ "node": "./dist/lib/node-esm/capability/index.mjs",
44
+ "types": "./dist/types/src/capability/index.d.ts"
39
45
  },
40
46
  "./Plugin": {
41
47
  "source": "./src/core/plugin.ts",
42
- "types": "./dist/types/src/plugin/index.d.ts",
43
48
  "browser": "./dist/lib/browser/plugin/index.mjs",
44
- "node": "./dist/lib/node-esm/plugin/index.mjs"
49
+ "node": "./dist/lib/node-esm/plugin/index.mjs",
50
+ "types": "./dist/types/src/plugin/index.d.ts"
45
51
  },
46
52
  "./PluginManager": {
47
53
  "source": "./src/core/plugin-manager.ts",
48
- "types": "./dist/types/src/plugin-manager/index.d.ts",
49
54
  "browser": "./dist/lib/browser/plugin-manager/index.mjs",
50
- "node": "./dist/lib/node-esm/plugin-manager/index.mjs"
55
+ "node": "./dist/lib/node-esm/plugin-manager/index.mjs",
56
+ "types": "./dist/types/src/plugin-manager/index.d.ts"
51
57
  },
52
- "./react": {
53
- "source": "./src/react/index.ts",
54
- "types": "./dist/types/src/react/index.d.ts",
55
- "browser": "./dist/lib/browser/react/index.mjs",
56
- "node": "./dist/lib/node-esm/react/index.mjs"
58
+ "./cli": {
59
+ "source": "./src/cli/index.ts",
60
+ "browser": "./dist/lib/browser/cli/index.mjs",
61
+ "node": "./dist/lib/node-esm/cli/index.mjs",
62
+ "types": "./dist/types/src/cli/index.d.ts"
57
63
  },
58
64
  "./testing": {
59
65
  "source": "./src/testing/index.ts",
60
- "types": "./dist/types/src/testing/index.d.ts",
61
66
  "browser": "./dist/lib/browser/testing/index.mjs",
62
- "node": "./dist/lib/node-esm/testing/index.mjs"
67
+ "node": "./dist/lib/node-esm/testing/index.mjs",
68
+ "types": "./dist/types/src/testing/index.d.ts"
69
+ },
70
+ "./ui": {
71
+ "source": "./src/ui/index.ts",
72
+ "browser": "./dist/lib/browser/ui/index.mjs",
73
+ "node": "./dist/lib/node-esm/ui/index.mjs",
74
+ "types": "./dist/types/src/ui/index.d.ts"
63
75
  }
64
76
  },
65
77
  "types": "dist/types/src/index.d.ts",
@@ -68,71 +80,67 @@
68
80
  "ActivationEvent": [
69
81
  "dist/types/src/activation-event/index.d.ts"
70
82
  ],
83
+ "ActivationEvents": [
84
+ "dist/types/src/common/activation-events.d.ts"
85
+ ],
86
+ "Capabilities": [
87
+ "dist/types/src/common/capabilities.d.ts"
88
+ ],
71
89
  "Capability": [
72
90
  "dist/types/src/capability/index.d.ts"
73
91
  ],
74
- "Common": [
75
- "dist/types/src/common/index.d.ts"
76
- ],
77
92
  "Plugin": [
78
93
  "dist/types/src/plugin/index.d.ts"
79
94
  ],
80
95
  "PluginManager": [
81
96
  "dist/types/src/plugin-manager/index.d.ts"
82
97
  ],
83
- "react": [
84
- "dist/types/src/react/index.d.ts"
98
+ "cli": [
99
+ "dist/types/src/cli/index.d.ts"
85
100
  ],
86
101
  "testing": [
87
102
  "dist/types/src/testing/index.d.ts"
103
+ ],
104
+ "ui": [
105
+ "dist/types/src/ui/index.d.ts"
88
106
  ]
89
107
  }
90
108
  },
91
109
  "dependencies": {
92
- "@effect/ai": "0.32.1",
93
- "@effect/cli": "0.72.1",
94
- "@dxos/ai": "0.8.4-main.69d29f4",
95
- "@dxos/app-graph": "0.8.4-main.69d29f4",
96
- "@dxos/assistant": "0.8.4-main.69d29f4",
97
- "@dxos/async": "0.8.4-main.69d29f4",
98
- "@dxos/blueprints": "0.8.4-main.69d29f4",
99
- "@dxos/client-protocol": "0.8.4-main.69d29f4",
100
- "@dxos/debug": "0.8.4-main.69d29f4",
101
- "@dxos/echo": "0.8.4-main.69d29f4",
102
- "@dxos/effect": "0.8.4-main.69d29f4",
103
- "@dxos/functions": "0.8.4-main.69d29f4",
104
- "@dxos/invariant": "0.8.4-main.69d29f4",
105
- "@dxos/keys": "0.8.4-main.69d29f4",
106
- "@dxos/log": "0.8.4-main.69d29f4",
107
- "@dxos/operation": "0.8.4-main.69d29f4",
108
- "@dxos/react-hooks": "0.8.4-main.69d29f4",
109
- "@dxos/schema": "0.8.4-main.69d29f4",
110
- "@dxos/types": "0.8.4-main.69d29f4",
111
- "@dxos/util": "0.8.4-main.69d29f4",
112
- "@dxos/web-context": "0.8.4-main.69d29f4",
113
- "@dxos/web-context-react": "0.8.4-main.69d29f4"
110
+ "@effect/cli": "0.73.2",
111
+ "@dxos/async": "0.8.4-main.6fa680abb7",
112
+ "@dxos/debug": "0.8.4-main.6fa680abb7",
113
+ "@dxos/echo": "0.8.4-main.6fa680abb7",
114
+ "@dxos/effect": "0.8.4-main.6fa680abb7",
115
+ "@dxos/invariant": "0.8.4-main.6fa680abb7",
116
+ "@dxos/log": "0.8.4-main.6fa680abb7",
117
+ "@dxos/operation": "0.8.4-main.6fa680abb7",
118
+ "@dxos/react-error-boundary": "0.8.4-main.6fa680abb7",
119
+ "@dxos/react-hooks": "0.8.4-main.6fa680abb7",
120
+ "@dxos/util": "0.8.4-main.6fa680abb7",
121
+ "@dxos/web-context": "0.8.4-main.6fa680abb7",
122
+ "@dxos/web-context-react": "0.8.4-main.6fa680abb7"
114
123
  },
115
124
  "devDependencies": {
116
- "@effect-atom/atom-react": "^0.4.6",
117
- "@effect/platform": "0.93.6",
125
+ "@effect-atom/atom-react": "^0.5.0",
126
+ "@effect/platform": "0.94.4",
118
127
  "@effect/vitest": "0.27.0",
119
128
  "@types/react": "~19.2.7",
120
- "effect": "3.19.11",
129
+ "effect": "3.19.16",
121
130
  "react": "~19.2.3",
122
131
  "react-dom": "~19.2.3",
123
132
  "typedoc": "0.28.1",
124
- "@dxos/echo-db": "0.8.4-main.69d29f4",
125
- "@dxos/random": "0.8.4-main.69d29f4",
126
- "@dxos/react-ui-syntax-highlighter": "0.8.4-main.69d29f4",
127
- "@dxos/react-ui": "0.8.4-main.69d29f4",
128
- "@dxos/storybook-utils": "0.8.4-main.69d29f4",
129
- "@dxos/test-utils": "0.8.4-main.69d29f4",
130
- "@dxos/ui-theme": "0.8.4-main.69d29f4"
133
+ "@dxos/echo-db": "0.8.4-main.6fa680abb7",
134
+ "@dxos/random": "0.8.4-main.6fa680abb7",
135
+ "@dxos/react-ui": "0.8.4-main.6fa680abb7",
136
+ "@dxos/storybook-utils": "0.8.4-main.6fa680abb7",
137
+ "@dxos/ui-theme": "0.8.4-main.6fa680abb7",
138
+ "@dxos/test-utils": "0.8.4-main.6fa680abb7"
131
139
  },
132
140
  "peerDependencies": {
133
- "@effect-atom/atom-react": "^0.4.6",
134
- "@effect/platform": "0.93.6",
135
- "effect": "3.19.11",
141
+ "@effect-atom/atom-react": "^0.5.0",
142
+ "@effect/platform": "0.94.4",
143
+ "effect": "3.19.16",
136
144
  "react": "~19.2.3",
137
145
  "react-dom": "~19.2.3"
138
146
  },
@@ -8,8 +8,8 @@ import * as Layer from 'effect/Layer';
8
8
 
9
9
  import { invariant } from '@dxos/invariant';
10
10
 
11
- import * as Common from './common';
12
- import { Capability, Plugin, PluginManager } from './core';
11
+ import { ActivationEvents, Capabilities } from '../common';
12
+ import { Capability, Plugin, PluginManager } from '../core';
13
13
 
14
14
  const defaultPluginLoader =
15
15
  (plugins: Plugin.Plugin[]): PluginManager.ManagerOptions['pluginLoader'] =>
@@ -40,7 +40,7 @@ export type CreateCliAppOptions = {
40
40
  * @example
41
41
  * const plugins = [ClientPluginCLI()];
42
42
  * const manager = await createCliApp({ plugins });
43
- * const commands = manager.capabilities.getAll(Common.Capability.Command);
43
+ * const commands = manager.capabilities.getAll(Capabilities.Command);
44
44
  *
45
45
  * @param options.pluginManager Optional existing PluginManager instance.
46
46
  * @param options.pluginLoader Function to load plugins by ID.
@@ -73,22 +73,22 @@ export const createCliApp = Effect.fn(function* ({
73
73
  });
74
74
 
75
75
  manager.capabilities.contribute({
76
- interface: Common.Capability.PluginManager,
76
+ interface: Capabilities.PluginManager,
77
77
  implementation: manager,
78
- module: 'dxos.org/app-framework/plugin-manager',
78
+ module: 'org.dxos.app-framework.plugin-manager',
79
79
  });
80
80
 
81
81
  manager.capabilities.contribute({
82
- interface: Common.Capability.AtomRegistry,
82
+ interface: Capabilities.AtomRegistry,
83
83
  implementation: manager.registry,
84
- module: 'dxos.org/app-framework/atom-registry',
84
+ module: 'org.dxos.app-framework.atom-registry',
85
85
  });
86
86
 
87
87
  // Activate startup event to load CLI commands and Effect layers.
88
- yield* manager.activate(Common.ActivationEvent.Startup);
88
+ yield* manager.activate(ActivationEvents.Startup);
89
89
 
90
90
  // Gather all layers and merge them into a single layer.
91
- const layers = manager.capabilities.getAll(Common.Capability.Layer);
91
+ const layers = manager.capabilities.getAll(Capabilities.Layer);
92
92
  const capabilityServiceLayer = Layer.succeed(Capability.Service, manager.capabilities);
93
93
  const pluginServiceLayer = Layer.succeed(Plugin.Service, manager);
94
94
  const layer = (Layer.mergeAll as (...args: Layer.Layer<any, any, any>[]) => Layer.Layer<any, any, never>)(
@@ -98,7 +98,7 @@ export const createCliApp = Effect.fn(function* ({
98
98
  );
99
99
 
100
100
  // Gather all commands and provide them to the root command.
101
- const pluginCommands = manager.capabilities.getAll(Common.Capability.Command);
101
+ const pluginCommands = manager.capabilities.getAll(Capabilities.Command);
102
102
  const subCommands = subCommandsProp ? [...subCommandsProp, ...pluginCommands] : pluginCommands;
103
103
  invariant(subCommands.length > 0, 'No subcommands provided');
104
104
  const command = rootCommand.pipe(Command.withSubcommands(subCommands as SubCommands));
@@ -2,4 +2,4 @@
2
2
  // Copyright 2025 DXOS.org
3
3
  //
4
4
 
5
- export * from './plugin';
5
+ export * from './cli';
@@ -0,0 +1,44 @@
1
+ //
2
+ // Copyright 2025 DXOS.org
3
+ //
4
+
5
+ import { ActivationEvent as ActivationEvent$ } from '../core';
6
+
7
+ /**
8
+ * Fired when the app is started.
9
+ */
10
+ export const Startup = ActivationEvent$.make('org.dxos.app-framework.event.startup');
11
+
12
+ //
13
+ // Dependent Events
14
+ //
15
+
16
+ /**
17
+ * Fired to load any newly available surfaces.
18
+ */
19
+ export const SetupReactSurface = ActivationEvent$.make('org.dxos.app-framework.event.setup-react-surface');
20
+
21
+ /**
22
+ * Fired before the operation invoker is activated.
23
+ */
24
+ export const SetupOperationResolver = ActivationEvent$.make('org.dxos.app-framework.event.setup-operation-resolver');
25
+
26
+ /**
27
+ * Fired before the managed runtime is created.
28
+ * Plugins should contribute their Layer capabilities before this event.
29
+ */
30
+ export const SetupLayer = ActivationEvent$.make('org.dxos.app-framework.event.setup-layer');
31
+
32
+ //
33
+ // Triggered Events
34
+ //
35
+
36
+ /**
37
+ * Fired after the operation invoker is ready.
38
+ */
39
+ export const OperationInvokerReady = ActivationEvent$.make('org.dxos.app-framework.event.operation-invoker-ready');
40
+
41
+ /**
42
+ * Fired after the managed runtime is ready.
43
+ */
44
+ export const ManagedRuntimeReady = ActivationEvent$.make('org.dxos.app-framework.event.managed-runtime-ready');
@@ -0,0 +1,178 @@
1
+ //
2
+ // Copyright 2025 DXOS.org
3
+ //
4
+
5
+ import type * as Command$ from '@effect/cli/Command';
6
+ import { type Atom, type Registry } from '@effect-atom/atom-react';
7
+ import * as Effect from 'effect/Effect';
8
+ import type * as Layer$ from 'effect/Layer';
9
+ import type * as ManagedRuntime$ from 'effect/ManagedRuntime';
10
+ import type { FC, PropsWithChildren } from 'react';
11
+
12
+ import type { OperationInvoker as OperationInvoker$, OperationResolver as OperationResolver$ } from '@dxos/operation';
13
+
14
+ import { Capability as Capability$, type PluginManager as PluginManager$ } from '../core';
15
+ import type {
16
+ HistoryTracker as HistoryTracker$,
17
+ UndoMapping as UndoMapping$,
18
+ UndoRegistry as UndoRegistry$,
19
+ } from '../plugin-operation';
20
+ import type { Surface } from '../ui';
21
+
22
+ /**
23
+ * Null capability.
24
+ * @category Capability
25
+ */
26
+ export const Null = Capability$.make<null>('org.dxos.app-framework.capability.null');
27
+
28
+ /**
29
+ * @category Capability
30
+ */
31
+ export const PluginManager = Capability$.make<PluginManager$.PluginManager>(
32
+ 'org.dxos.app-framework.capability.plugin-manager',
33
+ );
34
+
35
+ /**
36
+ * @category Capability
37
+ */
38
+ export const AtomRegistry = Capability$.make<Registry.Registry>('org.dxos.app-framework.capability.atom-registry');
39
+
40
+ export type ReactContext = Readonly<{
41
+ id: string;
42
+ dependsOn?: string[];
43
+ context: FC<PropsWithChildren>;
44
+ }>;
45
+
46
+ /**
47
+ * @category Capability
48
+ */
49
+ export const ReactContext = Capability$.make<ReactContext>('org.dxos.app-framework.capability.react-context');
50
+
51
+ export type ReactRoot = Readonly<{ id: string; root: FC<PropsWithChildren> }>;
52
+
53
+ /**
54
+ * @category Capability
55
+ */
56
+ export const ReactRoot = Capability$.make<ReactRoot>('org.dxos.app-framework.capability.react-root');
57
+
58
+ /**
59
+ * Surface definitions that can be either React components or Web Components.
60
+ */
61
+ export type ReactSurface = Surface.Definition | readonly Surface.Definition[];
62
+
63
+ /**
64
+ * @category Capability
65
+ */
66
+ export const ReactSurface = Capability$.make<ReactSurface>('org.dxos.app-framework.common.react-surface');
67
+
68
+ export type AnyCommand = Command$.Command<any, any, any, any>;
69
+
70
+ /**
71
+ * @category Capability
72
+ */
73
+ export const Command = Capability$.make<AnyCommand>('org.dxos.app-framework.capability.command');
74
+
75
+ /**
76
+ * @category Capability
77
+ */
78
+ export const Layer = Capability$.make<Layer$.Layer<any, any, any>>('org.dxos.app-framework.capability.layer');
79
+
80
+ export type ManagedRuntime = ManagedRuntime$.ManagedRuntime<any, any>;
81
+
82
+ /**
83
+ * @category Capability
84
+ */
85
+ export const ManagedRuntime = Capability$.make<ManagedRuntime>('org.dxos.app-framework.capability.managed-runtime');
86
+
87
+ //
88
+ // Operation System Capabilities
89
+ //
90
+
91
+ export type OperationResolver = OperationResolver$.OperationResolver<any, any, any, any>;
92
+
93
+ /**
94
+ * Handler registration for operations - contributed by plugins.
95
+ * @category Capability
96
+ */
97
+ export const OperationResolver = Capability$.make<OperationResolver[]>(
98
+ 'org.dxos.app-framework.capability.operation-resolver',
99
+ );
100
+
101
+ export type UndoMapping = UndoMapping$.UndoMapping;
102
+
103
+ /**
104
+ * Undo mapping registration - contributed by plugins.
105
+ * @category Capability
106
+ */
107
+ export const UndoMapping = Capability$.make<UndoMapping[]>('org.dxos.app-framework.capability.undo-mapping');
108
+
109
+ export type OperationInvoker = OperationInvoker$.OperationInvoker;
110
+
111
+ /**
112
+ * Operation invoker - provided by OperationPlugin.
113
+ * @category Capability
114
+ */
115
+ export const OperationInvoker = Capability$.make<OperationInvoker>(
116
+ 'org.dxos.app-framework.capability.operation-invoker',
117
+ );
118
+
119
+ export type UndoRegistry = UndoRegistry$.UndoRegistry;
120
+
121
+ /**
122
+ * Undo registry - provided by OperationPlugin.
123
+ * @category Capability
124
+ */
125
+ export const UndoRegistry = Capability$.make<UndoRegistry>('org.dxos.app-framework.capability.undo-registry');
126
+
127
+ export type HistoryTracker = HistoryTracker$.HistoryTracker;
128
+
129
+ /**
130
+ * History tracker - provided by OperationPlugin.
131
+ * @category Capability
132
+ */
133
+ export const HistoryTracker = Capability$.make<HistoryTracker>('org.dxos.app-framework.capability.history-tracker');
134
+
135
+ //
136
+ // Atom Capability Helpers
137
+ //
138
+
139
+ /**
140
+ * Get the current value of an atom capability.
141
+ * @example const settings = yield* Capabilities.getAtomValue(ThreadCapabilities.Settings);
142
+ */
143
+ export const getAtomValue = <T>(
144
+ atomCapability: Capability$.InterfaceDef<Atom.Atom<T>>,
145
+ ): Effect.Effect<T, Error, Capability$.Service> =>
146
+ Effect.gen(function* () {
147
+ const registry = yield* Capability$.get(AtomRegistry);
148
+ const atom = yield* Capability$.get(atomCapability);
149
+ return registry.get(atom);
150
+ });
151
+
152
+ /**
153
+ * Update an atom capability value (requires writable atom).
154
+ * @example yield* Capabilities.updateAtomValue(ThreadCapabilities.Settings, (s) => ({ ...s, foo: true }));
155
+ */
156
+ export const updateAtomValue = <T>(
157
+ atomCapability: Capability$.InterfaceDef<Atom.Writable<T>>,
158
+ fn: (current: T) => T,
159
+ ): Effect.Effect<void, Error, Capability$.Service> =>
160
+ Effect.gen(function* () {
161
+ const registry = yield* Capability$.get(AtomRegistry);
162
+ const atom = yield* Capability$.get(atomCapability);
163
+ registry.set(atom, fn(registry.get(atom)));
164
+ });
165
+
166
+ /**
167
+ * Subscribe to an atom capability.
168
+ * @example const unsubscribe = yield* Capabilities.subscribeAtom(ThreadCapabilities.Settings, (value) => ...);
169
+ */
170
+ export const subscribeAtom = <T>(
171
+ atomCapability: Capability$.InterfaceDef<Atom.Atom<T>>,
172
+ callback: (value: T) => void,
173
+ ): Effect.Effect<() => void, Error, Capability$.Service> =>
174
+ Effect.gen(function* () {
175
+ const registry = yield* Capability$.get(AtomRegistry);
176
+ const atom = yield* Capability$.get(atomCapability);
177
+ return registry.subscribe(atom, () => callback(registry.get(atom)));
178
+ });
@@ -2,12 +2,7 @@
2
2
  // Copyright 2023 DXOS.org
3
3
  //
4
4
 
5
- export * from './activation-event';
6
- export * from './capability';
7
- export * from './collaboration';
8
- export * from './file';
9
- export * from './graph';
10
- export * from './operations';
11
- export * from './plugin';
12
- export * from './surface';
13
- export * from './translations';
5
+ export * as Capabilities from './capabilities';
6
+ export * as ActivationEvents from './activation-events';
7
+ export { UndoOperation } from './operations';
8
+ export { Label } from './translations';