@dxos/app-framework 0.8.4-main.84f28bd → 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 (594) hide show
  1. package/.storybook/main.mts +11 -0
  2. package/.storybook/preview.mts +8 -0
  3. package/.swc/plugins/linux_x86_64_19.0.0/727453fb3a62f7f1d952a41e051ca8a6f88cadc45cee43c6a4d1aa45f9b75665.wasmer-v7 +0 -0
  4. package/dist/lib/browser/app-graph-builder-M2VPYQC6.mjs +149 -0
  5. package/dist/lib/browser/app-graph-builder-M2VPYQC6.mjs.map +7 -0
  6. package/dist/lib/browser/capability-7PCNSWBT.mjs +33 -0
  7. package/dist/lib/browser/capability-7PCNSWBT.mjs.map +7 -0
  8. package/dist/lib/browser/capability-KP3PFEXD.mjs +31 -0
  9. package/dist/lib/browser/capability-KP3PFEXD.mjs.map +7 -0
  10. package/dist/lib/browser/chunk-6Y7PZV72.mjs +77 -0
  11. package/dist/lib/browser/chunk-6Y7PZV72.mjs.map +7 -0
  12. package/dist/lib/browser/chunk-7IQHKD4U.mjs +170 -0
  13. package/dist/lib/browser/chunk-7IQHKD4U.mjs.map +7 -0
  14. package/dist/lib/browser/chunk-BLQJSGL3.mjs +732 -0
  15. package/dist/lib/browser/chunk-BLQJSGL3.mjs.map +7 -0
  16. package/dist/lib/browser/chunk-FHQTHCX7.mjs +8 -0
  17. package/dist/lib/browser/chunk-FHQTHCX7.mjs.map +7 -0
  18. package/dist/lib/browser/chunk-FMZN33N4.mjs +807 -0
  19. package/dist/lib/browser/chunk-FMZN33N4.mjs.map +7 -0
  20. package/dist/lib/browser/chunk-H4WPA7U7.mjs +77 -0
  21. package/dist/lib/browser/chunk-H4WPA7U7.mjs.map +7 -0
  22. package/dist/lib/browser/chunk-J5LGTIGS.mjs +10 -0
  23. package/dist/lib/browser/chunk-PKQT6C53.mjs +47 -0
  24. package/dist/lib/browser/chunk-PKQT6C53.mjs.map +7 -0
  25. package/dist/lib/browser/chunk-TCLLRCS3.mjs +145 -0
  26. package/dist/lib/browser/chunk-TCLLRCS3.mjs.map +7 -0
  27. package/dist/lib/browser/chunk-XYNO72GQ.mjs +746 -0
  28. package/dist/lib/browser/chunk-XYNO72GQ.mjs.map +7 -0
  29. package/dist/lib/browser/common/index.mjs +38 -0
  30. package/dist/lib/browser/core/activation-event.mjs +20 -0
  31. package/dist/lib/browser/core/capability.mjs +28 -0
  32. package/dist/lib/browser/core/plugin-manager.mjs +15 -0
  33. package/dist/lib/browser/core/plugin-manager.mjs.map +7 -0
  34. package/dist/lib/browser/core/plugin.mjs +27 -0
  35. package/dist/lib/browser/core/plugin.mjs.map +7 -0
  36. package/dist/lib/browser/index.mjs +165 -139
  37. package/dist/lib/browser/index.mjs.map +4 -4
  38. package/dist/lib/browser/invoker-capability-SZRSTHEH.mjs +32 -0
  39. package/dist/lib/browser/invoker-capability-SZRSTHEH.mjs.map +7 -0
  40. package/dist/lib/browser/meta.json +1 -1
  41. package/dist/lib/browser/operation-resolver-6MP2MYOY.mjs +64 -0
  42. package/dist/lib/browser/operation-resolver-6MP2MYOY.mjs.map +7 -0
  43. package/dist/lib/browser/react/index.mjs +46 -0
  44. package/dist/lib/browser/react/index.mjs.map +7 -0
  45. package/dist/lib/browser/testing/index.mjs +79 -37
  46. package/dist/lib/browser/testing/index.mjs.map +4 -4
  47. package/dist/lib/node-esm/app-graph-builder-LROHGJEM.mjs +150 -0
  48. package/dist/lib/node-esm/app-graph-builder-LROHGJEM.mjs.map +7 -0
  49. package/dist/lib/node-esm/capability-CFLQ2QQU.mjs +34 -0
  50. package/dist/lib/node-esm/capability-CFLQ2QQU.mjs.map +7 -0
  51. package/dist/lib/node-esm/capability-RCUNM2M7.mjs +32 -0
  52. package/dist/lib/node-esm/capability-RCUNM2M7.mjs.map +7 -0
  53. package/dist/lib/node-esm/chunk-663A54LQ.mjs +171 -0
  54. package/dist/lib/node-esm/chunk-663A54LQ.mjs.map +7 -0
  55. package/dist/lib/node-esm/chunk-6WXBT3EC.mjs +747 -0
  56. package/dist/lib/node-esm/chunk-6WXBT3EC.mjs.map +7 -0
  57. package/dist/lib/node-esm/chunk-7OWSHPYK.mjs +48 -0
  58. package/dist/lib/node-esm/chunk-7OWSHPYK.mjs.map +7 -0
  59. package/dist/lib/node-esm/chunk-GQEBIGKD.mjs +733 -0
  60. package/dist/lib/node-esm/chunk-GQEBIGKD.mjs.map +7 -0
  61. package/dist/lib/node-esm/chunk-GT6OKM5I.mjs +146 -0
  62. package/dist/lib/node-esm/chunk-GT6OKM5I.mjs.map +7 -0
  63. package/dist/lib/node-esm/chunk-HSLMI22Q.mjs +11 -0
  64. package/dist/lib/node-esm/chunk-HSLMI22Q.mjs.map +7 -0
  65. package/dist/lib/node-esm/chunk-STMXUEPO.mjs +78 -0
  66. package/dist/lib/node-esm/chunk-STMXUEPO.mjs.map +7 -0
  67. package/dist/lib/node-esm/chunk-UEWJDI2L.mjs +10 -0
  68. package/dist/lib/node-esm/chunk-UEWJDI2L.mjs.map +7 -0
  69. package/dist/lib/node-esm/chunk-XR6NMKEP.mjs +78 -0
  70. package/dist/lib/node-esm/chunk-XR6NMKEP.mjs.map +7 -0
  71. package/dist/lib/node-esm/chunk-XYQTBFPA.mjs +808 -0
  72. package/dist/lib/node-esm/chunk-XYQTBFPA.mjs.map +7 -0
  73. package/dist/lib/node-esm/common/index.mjs +39 -0
  74. package/dist/lib/node-esm/common/index.mjs.map +7 -0
  75. package/dist/lib/node-esm/core/activation-event.mjs +21 -0
  76. package/dist/lib/node-esm/core/activation-event.mjs.map +7 -0
  77. package/dist/lib/node-esm/core/capability.mjs +29 -0
  78. package/dist/lib/node-esm/core/capability.mjs.map +7 -0
  79. package/dist/lib/node-esm/core/plugin-manager.mjs +16 -0
  80. package/dist/lib/node-esm/core/plugin-manager.mjs.map +7 -0
  81. package/dist/lib/node-esm/core/plugin.mjs +28 -0
  82. package/dist/lib/node-esm/core/plugin.mjs.map +7 -0
  83. package/dist/lib/node-esm/index.mjs +165 -139
  84. package/dist/lib/node-esm/index.mjs.map +4 -4
  85. package/dist/lib/node-esm/invoker-capability-PNMA5JOS.mjs +33 -0
  86. package/dist/lib/node-esm/invoker-capability-PNMA5JOS.mjs.map +7 -0
  87. package/dist/lib/node-esm/meta.json +1 -1
  88. package/dist/lib/node-esm/operation-resolver-7YWDMTNU.mjs +65 -0
  89. package/dist/lib/node-esm/operation-resolver-7YWDMTNU.mjs.map +7 -0
  90. package/dist/lib/node-esm/react/index.mjs +47 -0
  91. package/dist/lib/node-esm/react/index.mjs.map +7 -0
  92. package/dist/lib/node-esm/testing/index.mjs +79 -37
  93. package/dist/lib/node-esm/testing/index.mjs.map +4 -4
  94. package/dist/types/src/cli.d.ts +39 -0
  95. package/dist/types/src/cli.d.ts.map +1 -0
  96. package/dist/types/src/common/activation-event.d.ts +66 -0
  97. package/dist/types/src/common/activation-event.d.ts.map +1 -0
  98. package/dist/types/src/common/capability.d.ts +265 -0
  99. package/dist/types/src/common/capability.d.ts.map +1 -0
  100. package/dist/types/src/common/collaboration.d.ts +24 -17
  101. package/dist/types/src/common/collaboration.d.ts.map +1 -1
  102. package/dist/types/src/common/file.d.ts +1 -1
  103. package/dist/types/src/common/file.d.ts.map +1 -1
  104. package/dist/types/src/common/graph.d.ts +2 -2
  105. package/dist/types/src/common/graph.d.ts.map +1 -1
  106. package/dist/types/src/common/index.d.ts +4 -3
  107. package/dist/types/src/common/index.d.ts.map +1 -1
  108. package/dist/types/src/common/operations.d.ts +380 -0
  109. package/dist/types/src/common/operations.d.ts.map +1 -0
  110. package/dist/types/src/common/plugin.d.ts +201 -0
  111. package/dist/types/src/common/plugin.d.ts.map +1 -0
  112. package/dist/types/src/common/surface.d.ts +50 -21
  113. package/dist/types/src/common/surface.d.ts.map +1 -1
  114. package/dist/types/src/common/translations.d.ts +10 -1
  115. package/dist/types/src/common/translations.d.ts.map +1 -1
  116. package/dist/types/src/context.d.ts +5 -0
  117. package/dist/types/src/context.d.ts.map +1 -0
  118. package/dist/types/src/core/{events.d.ts → activation-event.d.ts} +6 -6
  119. package/dist/types/src/core/activation-event.d.ts.map +1 -0
  120. package/dist/types/src/core/capability-manager.d.ts +43 -0
  121. package/dist/types/src/core/capability-manager.d.ts.map +1 -0
  122. package/dist/types/src/core/capability-manager.test.d.ts +2 -0
  123. package/dist/types/src/core/capability-manager.test.d.ts.map +1 -0
  124. package/dist/types/src/core/capability.d.ts +150 -0
  125. package/dist/types/src/core/capability.d.ts.map +1 -0
  126. package/dist/types/src/core/index.d.ts +5 -4
  127. package/dist/types/src/core/index.d.ts.map +1 -1
  128. package/dist/types/src/core/plugin-manager.d.ts +66 -0
  129. package/dist/types/src/core/plugin-manager.d.ts.map +1 -0
  130. package/dist/types/src/core/plugin-manager.test.d.ts +2 -0
  131. package/dist/types/src/core/plugin-manager.test.d.ts.map +1 -0
  132. package/dist/types/src/core/plugin.d.ts +97 -32
  133. package/dist/types/src/core/plugin.d.ts.map +1 -1
  134. package/dist/types/src/index.d.ts +5 -4
  135. package/dist/types/src/index.d.ts.map +1 -1
  136. package/dist/types/src/playground/debug/Debug.d.ts +4 -2
  137. package/dist/types/src/playground/debug/Debug.d.ts.map +1 -1
  138. package/dist/types/src/playground/debug/plugin.d.ts +2 -1
  139. package/dist/types/src/playground/debug/plugin.d.ts.map +1 -1
  140. package/dist/types/src/playground/generator/Main.d.ts +4 -2
  141. package/dist/types/src/playground/generator/Main.d.ts.map +1 -1
  142. package/dist/types/src/playground/generator/Toolbar.d.ts +4 -2
  143. package/dist/types/src/playground/generator/Toolbar.d.ts.map +1 -1
  144. package/dist/types/src/playground/generator/generator.d.ts +17 -5
  145. package/dist/types/src/playground/generator/generator.d.ts.map +1 -1
  146. package/dist/types/src/playground/generator/plugin.d.ts +2 -1
  147. package/dist/types/src/playground/generator/plugin.d.ts.map +1 -1
  148. package/dist/types/src/playground/layout/Layout.d.ts +4 -2
  149. package/dist/types/src/playground/layout/Layout.d.ts.map +1 -1
  150. package/dist/types/src/playground/layout/plugin.d.ts +2 -1
  151. package/dist/types/src/playground/layout/plugin.d.ts.map +1 -1
  152. package/dist/types/src/playground/logger/Toolbar.d.ts +4 -2
  153. package/dist/types/src/playground/logger/Toolbar.d.ts.map +1 -1
  154. package/dist/types/src/playground/logger/plugin.d.ts +2 -1
  155. package/dist/types/src/playground/logger/plugin.d.ts.map +1 -1
  156. package/dist/types/src/playground/logger/schema.d.ts +15 -1
  157. package/dist/types/src/playground/logger/schema.d.ts.map +1 -1
  158. package/dist/types/src/playground/playground.stories.d.ts +5 -4
  159. package/dist/types/src/playground/playground.stories.d.ts.map +1 -1
  160. package/dist/types/src/plugin-operation/OperationPlugin.d.ts +3 -0
  161. package/dist/types/src/plugin-operation/OperationPlugin.d.ts.map +1 -0
  162. package/dist/types/src/plugin-operation/history/capability.d.ts +7 -0
  163. package/dist/types/src/plugin-operation/history/capability.d.ts.map +1 -0
  164. package/dist/types/src/plugin-operation/history/errors.d.ts +5 -0
  165. package/dist/types/src/plugin-operation/history/errors.d.ts.map +1 -0
  166. package/dist/types/src/plugin-operation/history/history-tracker.d.ts +18 -0
  167. package/dist/types/src/plugin-operation/history/history-tracker.d.ts.map +1 -0
  168. package/dist/types/src/plugin-operation/history/history-tracker.test.d.ts +2 -0
  169. package/dist/types/src/plugin-operation/history/history-tracker.test.d.ts.map +1 -0
  170. package/dist/types/src/plugin-operation/history/index.d.ts +6 -0
  171. package/dist/types/src/plugin-operation/history/index.d.ts.map +1 -0
  172. package/dist/types/src/plugin-operation/history/types.d.ts +13 -0
  173. package/dist/types/src/plugin-operation/history/types.d.ts.map +1 -0
  174. package/dist/types/src/plugin-operation/history/undo-mapping.d.ts +93 -0
  175. package/dist/types/src/plugin-operation/history/undo-mapping.d.ts.map +1 -0
  176. package/dist/types/src/plugin-operation/history/undo-registry.d.ts +23 -0
  177. package/dist/types/src/plugin-operation/history/undo-registry.d.ts.map +1 -0
  178. package/dist/types/src/plugin-operation/history/undo-registry.test.d.ts +2 -0
  179. package/dist/types/src/plugin-operation/history/undo-registry.test.d.ts.map +1 -0
  180. package/dist/types/src/plugin-operation/index.d.ts +3 -0
  181. package/dist/types/src/plugin-operation/index.d.ts.map +1 -0
  182. package/dist/types/src/plugin-operation/invoker-capability.d.ts +6 -0
  183. package/dist/types/src/plugin-operation/invoker-capability.d.ts.map +1 -0
  184. package/dist/types/src/plugin-operation/meta.d.ts +3 -0
  185. package/dist/types/src/plugin-operation/meta.d.ts.map +1 -0
  186. package/dist/types/src/plugin-operation/testing.d.ts +109 -0
  187. package/dist/types/src/plugin-operation/testing.d.ts.map +1 -0
  188. package/dist/types/src/plugin-runtime/RuntimePlugin.d.ts +3 -0
  189. package/dist/types/src/plugin-runtime/RuntimePlugin.d.ts.map +1 -0
  190. package/dist/types/src/plugin-runtime/capability.d.ts +6 -0
  191. package/dist/types/src/plugin-runtime/capability.d.ts.map +1 -0
  192. package/dist/types/src/plugin-runtime/index.d.ts +2 -0
  193. package/dist/types/src/plugin-runtime/index.d.ts.map +1 -0
  194. package/dist/types/src/plugin-runtime/meta.d.ts +3 -0
  195. package/dist/types/src/plugin-runtime/meta.d.ts.map +1 -0
  196. package/dist/types/src/plugin-settings/SettingsPlugin.d.ts +2 -1
  197. package/dist/types/src/plugin-settings/SettingsPlugin.d.ts.map +1 -1
  198. package/dist/types/src/plugin-settings/actions.d.ts +41 -7
  199. package/dist/types/src/plugin-settings/actions.d.ts.map +1 -1
  200. package/dist/types/src/plugin-settings/app-graph-builder.d.ts +4 -2
  201. package/dist/types/src/plugin-settings/app-graph-builder.d.ts.map +1 -1
  202. package/dist/types/src/plugin-settings/meta.d.ts +3 -0
  203. package/dist/types/src/plugin-settings/meta.d.ts.map +1 -0
  204. package/dist/types/src/plugin-settings/operation-resolver.d.ts +6 -0
  205. package/dist/types/src/plugin-settings/operation-resolver.d.ts.map +1 -0
  206. package/dist/types/src/plugin-settings/translations.d.ts +2 -1
  207. package/dist/types/src/plugin-settings/translations.d.ts.map +1 -1
  208. package/dist/types/src/react/App.d.ts +8 -0
  209. package/dist/types/src/react/App.d.ts.map +1 -0
  210. package/dist/types/src/react/App.stories.d.ts +14 -0
  211. package/dist/types/src/react/App.stories.d.ts.map +1 -0
  212. package/dist/types/src/react/DefaultFallback.d.ts +8 -0
  213. package/dist/types/src/react/DefaultFallback.d.ts.map +1 -0
  214. package/dist/types/src/react/ErrorBoundary.d.ts +13 -14
  215. package/dist/types/src/react/ErrorBoundary.d.ts.map +1 -1
  216. package/dist/types/src/react/PluginManagerContext.stories.d.ts +13 -0
  217. package/dist/types/src/react/PluginManagerContext.stories.d.ts.map +1 -0
  218. package/dist/types/src/react/PluginManagerProvider.d.ts +2 -2
  219. package/dist/types/src/react/PluginManagerProvider.d.ts.map +1 -1
  220. package/dist/types/src/react/Surface.d.ts +9 -7
  221. package/dist/types/src/react/Surface.d.ts.map +1 -1
  222. package/dist/types/src/react/Surface.stories.d.ts +8 -10
  223. package/dist/types/src/react/Surface.stories.d.ts.map +1 -1
  224. package/dist/types/src/react/SurfaceInfo.d.ts +11 -0
  225. package/dist/types/src/react/SurfaceInfo.d.ts.map +1 -0
  226. package/dist/types/src/react/common.d.ts +13 -12
  227. package/dist/types/src/react/common.d.ts.map +1 -1
  228. package/dist/types/src/react/index.d.ts +3 -1
  229. package/dist/types/src/react/index.d.ts.map +1 -1
  230. package/dist/types/src/react/types.d.ts +12 -0
  231. package/dist/types/src/react/types.d.ts.map +1 -0
  232. package/dist/types/src/{App.d.ts → react/useApp.d.ts} +11 -9
  233. package/dist/types/src/react/useApp.d.ts.map +1 -0
  234. package/dist/types/src/react/useCapabilities.d.ts +16 -3
  235. package/dist/types/src/react/useCapabilities.d.ts.map +1 -1
  236. package/dist/types/src/react/useLoading.d.ts +18 -0
  237. package/dist/types/src/react/useLoading.d.ts.map +1 -0
  238. package/dist/types/src/react/useOperationResolver.d.ts +19 -0
  239. package/dist/types/src/react/useOperationResolver.d.ts.map +1 -0
  240. package/dist/types/src/testing/index.d.ts +1 -0
  241. package/dist/types/src/testing/index.d.ts.map +1 -1
  242. package/dist/types/src/testing/service.d.ts +8 -0
  243. package/dist/types/src/testing/service.d.ts.map +1 -0
  244. package/dist/types/src/testing/withPluginManager.d.ts +11 -10
  245. package/dist/types/src/testing/withPluginManager.d.ts.map +1 -1
  246. package/dist/types/src/testing/withPluginManager.stories.d.ts +9 -3
  247. package/dist/types/src/testing/withPluginManager.stories.d.ts.map +1 -1
  248. package/dist/types/tsconfig.tsbuildinfo +1 -1
  249. package/moon.yml +10 -2
  250. package/package.json +103 -42
  251. package/src/cli.ts +107 -0
  252. package/src/common/activation-event.ts +99 -0
  253. package/src/common/capability.ts +343 -0
  254. package/src/common/collaboration.ts +24 -14
  255. package/src/common/file.ts +1 -1
  256. package/src/common/graph.ts +2 -2
  257. package/src/common/index.ts +4 -3
  258. package/src/common/operations.ts +412 -0
  259. package/src/common/plugin.ts +364 -0
  260. package/src/common/surface.ts +60 -26
  261. package/src/common/translations.ts +21 -1
  262. package/src/context.ts +9 -0
  263. package/src/core/{events.ts → activation-event.ts} +5 -5
  264. package/src/core/capability-manager.test.ts +151 -0
  265. package/src/core/capability-manager.ts +171 -0
  266. package/src/core/capability.ts +236 -0
  267. package/src/core/index.ts +5 -4
  268. package/src/core/plugin-manager.test.ts +845 -0
  269. package/src/core/plugin-manager.ts +696 -0
  270. package/src/core/plugin.ts +229 -36
  271. package/src/helpers.test.ts +1 -1
  272. package/src/index.ts +5 -4
  273. package/src/playground/debug/Debug.tsx +27 -17
  274. package/src/playground/debug/plugin.ts +10 -11
  275. package/src/playground/generator/Main.tsx +20 -11
  276. package/src/playground/generator/Toolbar.tsx +27 -16
  277. package/src/playground/generator/generator.ts +28 -28
  278. package/src/playground/generator/plugin.ts +15 -17
  279. package/src/playground/layout/Layout.tsx +11 -7
  280. package/src/playground/layout/plugin.ts +12 -11
  281. package/src/playground/logger/Toolbar.tsx +20 -16
  282. package/src/playground/logger/plugin.ts +33 -27
  283. package/src/playground/logger/schema.ts +11 -1
  284. package/src/playground/playground.stories.tsx +29 -17
  285. package/src/plugin-operation/OperationPlugin.ts +25 -0
  286. package/src/plugin-operation/history/capability.ts +37 -0
  287. package/src/plugin-operation/history/errors.ts +11 -0
  288. package/src/plugin-operation/history/history-tracker.test.ts +380 -0
  289. package/src/plugin-operation/history/history-tracker.ts +129 -0
  290. package/src/plugin-operation/history/index.ts +9 -0
  291. package/src/plugin-operation/history/types.ts +17 -0
  292. package/src/plugin-operation/history/undo-mapping.ts +132 -0
  293. package/src/plugin-operation/history/undo-registry.test.ts +73 -0
  294. package/src/plugin-operation/history/undo-registry.ts +54 -0
  295. package/src/plugin-operation/index.ts +6 -0
  296. package/src/plugin-operation/invoker-capability.ts +40 -0
  297. package/src/plugin-operation/meta.ts +11 -0
  298. package/src/plugin-operation/testing.ts +174 -0
  299. package/src/plugin-runtime/RuntimePlugin.ts +20 -0
  300. package/src/plugin-runtime/capability.ts +53 -0
  301. package/src/plugin-runtime/index.ts +5 -0
  302. package/src/plugin-runtime/meta.ts +11 -0
  303. package/src/plugin-settings/SettingsPlugin.ts +13 -29
  304. package/src/plugin-settings/actions.ts +45 -10
  305. package/src/plugin-settings/app-graph-builder.ts +124 -141
  306. package/src/plugin-settings/meta.ts +10 -0
  307. package/src/plugin-settings/operation-resolver.ts +55 -0
  308. package/src/plugin-settings/translations.ts +4 -4
  309. package/src/react/App.stories.tsx +63 -0
  310. package/src/react/App.tsx +60 -0
  311. package/src/react/DefaultFallback.tsx +26 -0
  312. package/src/react/ErrorBoundary.tsx +26 -15
  313. package/src/react/PluginManagerContext.stories.tsx +184 -0
  314. package/src/react/PluginManagerProvider.ts +2 -2
  315. package/src/react/Surface.stories.tsx +103 -58
  316. package/src/react/Surface.tsx +236 -46
  317. package/src/react/SurfaceInfo.tsx +107 -0
  318. package/src/react/common.ts +30 -5
  319. package/src/react/index.ts +5 -1
  320. package/src/react/types.ts +27 -0
  321. package/src/react/useApp.tsx +209 -0
  322. package/src/react/useCapabilities.ts +38 -5
  323. package/src/react/useLoading.tsx +68 -0
  324. package/src/react/useOperationResolver.ts +40 -0
  325. package/src/testing/index.ts +1 -0
  326. package/src/testing/service.ts +52 -0
  327. package/src/testing/withPluginManager.stories.tsx +14 -10
  328. package/src/testing/withPluginManager.tsx +43 -44
  329. package/tsconfig.json +30 -16
  330. package/vitest.config.ts +8 -6
  331. package/.eslintrc.cjs +0 -9
  332. package/.swc/plugins/v7_linux_x86_64_13.0.0/f45bdff002284d9e8f9ef3f0be909de12da36c049cbcf261ac78fc00abb09a2d +0 -0
  333. package/.swc/plugins/v7_linux_x86_64_13.0.0/fce1bdb8e20a094e4af08bad09cc81497ed0e2e7c51223b07d371063cca18429 +0 -0
  334. package/dist/lib/browser/app-graph-builder-BGGXLD6T.mjs +0 -137
  335. package/dist/lib/browser/app-graph-builder-BGGXLD6T.mjs.map +0 -7
  336. package/dist/lib/browser/chunk-2636QSIK.mjs +0 -1518
  337. package/dist/lib/browser/chunk-2636QSIK.mjs.map +0 -7
  338. package/dist/lib/browser/chunk-DHZB7HG7.mjs +0 -413
  339. package/dist/lib/browser/chunk-DHZB7HG7.mjs.map +0 -7
  340. package/dist/lib/browser/chunk-ORWHM7CO.mjs +0 -32
  341. package/dist/lib/browser/chunk-ORWHM7CO.mjs.map +0 -7
  342. package/dist/lib/browser/intent-dispatcher-TWKB22NI.mjs +0 -11
  343. package/dist/lib/browser/intent-resolver-O67UANYP.mjs +0 -39
  344. package/dist/lib/browser/intent-resolver-O67UANYP.mjs.map +0 -7
  345. package/dist/lib/browser/store-LFKDWHUQ.mjs +0 -30
  346. package/dist/lib/browser/store-LFKDWHUQ.mjs.map +0 -7
  347. package/dist/lib/browser/worker.mjs +0 -79
  348. package/dist/lib/node-esm/app-graph-builder-QHIJUYYW.mjs +0 -138
  349. package/dist/lib/node-esm/app-graph-builder-QHIJUYYW.mjs.map +0 -7
  350. package/dist/lib/node-esm/chunk-NJAFK626.mjs +0 -414
  351. package/dist/lib/node-esm/chunk-NJAFK626.mjs.map +0 -7
  352. package/dist/lib/node-esm/chunk-UMZQERLE.mjs +0 -34
  353. package/dist/lib/node-esm/chunk-UMZQERLE.mjs.map +0 -7
  354. package/dist/lib/node-esm/chunk-VSKRV3NW.mjs +0 -1520
  355. package/dist/lib/node-esm/chunk-VSKRV3NW.mjs.map +0 -7
  356. package/dist/lib/node-esm/intent-dispatcher-5PRM3KGH.mjs +0 -12
  357. package/dist/lib/node-esm/intent-resolver-K3D4BXQQ.mjs +0 -40
  358. package/dist/lib/node-esm/intent-resolver-K3D4BXQQ.mjs.map +0 -7
  359. package/dist/lib/node-esm/store-53XDUBMD.mjs +0 -31
  360. package/dist/lib/node-esm/store-53XDUBMD.mjs.map +0 -7
  361. package/dist/lib/node-esm/worker.mjs +0 -80
  362. package/dist/types/src/App.d.ts.map +0 -1
  363. package/dist/types/src/common/capabilities.d.ts +0 -122
  364. package/dist/types/src/common/capabilities.d.ts.map +0 -1
  365. package/dist/types/src/common/events.d.ts +0 -52
  366. package/dist/types/src/common/events.d.ts.map +0 -1
  367. package/dist/types/src/common/layout.d.ts +0 -281
  368. package/dist/types/src/common/layout.d.ts.map +0 -1
  369. package/dist/types/src/core/capabilities.d.ts +0 -114
  370. package/dist/types/src/core/capabilities.d.ts.map +0 -1
  371. package/dist/types/src/core/capabilities.test.d.ts +0 -2
  372. package/dist/types/src/core/capabilities.test.d.ts.map +0 -1
  373. package/dist/types/src/core/events.d.ts.map +0 -1
  374. package/dist/types/src/core/manager.d.ts +0 -122
  375. package/dist/types/src/core/manager.d.ts.map +0 -1
  376. package/dist/types/src/core/manager.test.d.ts +0 -2
  377. package/dist/types/src/core/manager.test.d.ts.map +0 -1
  378. package/dist/types/src/plugin-intent/IntentPlugin.d.ts +0 -2
  379. package/dist/types/src/plugin-intent/IntentPlugin.d.ts.map +0 -1
  380. package/dist/types/src/plugin-intent/actions.d.ts +0 -38
  381. package/dist/types/src/plugin-intent/actions.d.ts.map +0 -1
  382. package/dist/types/src/plugin-intent/errors.d.ts +0 -16
  383. package/dist/types/src/plugin-intent/errors.d.ts.map +0 -1
  384. package/dist/types/src/plugin-intent/index.d.ts +0 -5
  385. package/dist/types/src/plugin-intent/index.d.ts.map +0 -1
  386. package/dist/types/src/plugin-intent/intent-dispatcher.d.ts +0 -139
  387. package/dist/types/src/plugin-intent/intent-dispatcher.d.ts.map +0 -1
  388. package/dist/types/src/plugin-intent/intent-dispatcher.test.d.ts +0 -2
  389. package/dist/types/src/plugin-intent/intent-dispatcher.test.d.ts.map +0 -1
  390. package/dist/types/src/plugin-intent/intent.d.ts +0 -63
  391. package/dist/types/src/plugin-intent/intent.d.ts.map +0 -1
  392. package/dist/types/src/plugin-settings/intent-resolver.d.ts +0 -4
  393. package/dist/types/src/plugin-settings/intent-resolver.d.ts.map +0 -1
  394. package/dist/types/src/plugin-settings/store.d.ts +0 -5
  395. package/dist/types/src/plugin-settings/store.d.ts.map +0 -1
  396. package/dist/types/src/react/IntentContext.d.ts +0 -8
  397. package/dist/types/src/react/IntentContext.d.ts.map +0 -1
  398. package/dist/types/src/react/useIntentResolver.d.ts +0 -3
  399. package/dist/types/src/react/useIntentResolver.d.ts.map +0 -1
  400. package/dist/types/src/worker.d.ts +0 -4
  401. package/dist/types/src/worker.d.ts.map +0 -1
  402. package/src/App.tsx +0 -276
  403. package/src/common/capabilities.ts +0 -113
  404. package/src/common/events.ts +0 -77
  405. package/src/common/layout.ts +0 -278
  406. package/src/core/capabilities.test.ts +0 -136
  407. package/src/core/capabilities.ts +0 -254
  408. package/src/core/manager.test.ts +0 -515
  409. package/src/core/manager.ts +0 -519
  410. package/src/plugin-intent/IntentPlugin.ts +0 -20
  411. package/src/plugin-intent/actions.ts +0 -33
  412. package/src/plugin-intent/errors.ts +0 -39
  413. package/src/plugin-intent/index.ts +0 -8
  414. package/src/plugin-intent/intent-dispatcher.test.ts +0 -279
  415. package/src/plugin-intent/intent-dispatcher.ts +0 -333
  416. package/src/plugin-intent/intent.ts +0 -154
  417. package/src/plugin-settings/intent-resolver.ts +0 -34
  418. package/src/plugin-settings/store.ts +0 -33
  419. package/src/react/IntentContext.tsx +0 -34
  420. package/src/react/useIntentResolver.ts +0 -22
  421. package/src/worker.ts +0 -11
  422. package/typedoc/.nojekyll +0 -1
  423. package/typedoc/assets/hierarchy.js +0 -1
  424. package/typedoc/assets/highlight.css +0 -106
  425. package/typedoc/assets/icons.js +0 -18
  426. package/typedoc/assets/icons.svg +0 -1
  427. package/typedoc/assets/main.js +0 -60
  428. package/typedoc/assets/navigation.js +0 -1
  429. package/typedoc/assets/search.js +0 -1
  430. package/typedoc/assets/style.css +0 -1640
  431. package/typedoc/classes/CollaborationActions.InsertContent.html +0 -421
  432. package/typedoc/classes/ErrorBoundary.html +0 -125
  433. package/typedoc/classes/IntentAction.ShowUndo.html +0 -227
  434. package/typedoc/classes/IntentAction.Track.html +0 -266
  435. package/typedoc/classes/LayoutAction.AddToast.html +0 -265
  436. package/typedoc/classes/LayoutAction.Close.html +0 -382
  437. package/typedoc/classes/LayoutAction.Expose.html +0 -265
  438. package/typedoc/classes/LayoutAction.Open.html +0 -1123
  439. package/typedoc/classes/LayoutAction.RevertWorkspace.html +0 -343
  440. package/typedoc/classes/LayoutAction.ScrollIntoView.html +0 -460
  441. package/typedoc/classes/LayoutAction.Set.html +0 -460
  442. package/typedoc/classes/LayoutAction.SetLayoutMode.html +0 -499
  443. package/typedoc/classes/LayoutAction.SwitchWorkspace.html +0 -265
  444. package/typedoc/classes/LayoutAction.UpdateComplementary.html +0 -616
  445. package/typedoc/classes/LayoutAction.UpdateDialog.html +0 -1123
  446. package/typedoc/classes/LayoutAction.UpdateLayout.html +0 -461
  447. package/typedoc/classes/LayoutAction.UpdatePopover.html +0 -1435
  448. package/typedoc/classes/LayoutAction.UpdateSidebar.html +0 -616
  449. package/typedoc/classes/Plugin.html +0 -6
  450. package/typedoc/classes/PluginContext.html +0 -38
  451. package/typedoc/classes/PluginManager.html +0 -43
  452. package/typedoc/classes/PluginModule.html +0 -18
  453. package/typedoc/classes/SettingsAction.Open.html +0 -226
  454. package/typedoc/classes/SettingsAction.OpenPluginRegistry.html +0 -265
  455. package/typedoc/functions/Events.createStateEvent.html +0 -2
  456. package/typedoc/functions/IntentPlugin.html +0 -1
  457. package/typedoc/functions/SettingsPlugin.html +0 -1
  458. package/typedoc/functions/allOf.html +0 -2
  459. package/typedoc/functions/chain.html +0 -3
  460. package/typedoc/functions/contributes.html +0 -2
  461. package/typedoc/functions/createDispatcher.html +0 -3
  462. package/typedoc/functions/createIntent.html +0 -6
  463. package/typedoc/functions/createResolver.html +0 -2
  464. package/typedoc/functions/createSurface.html +0 -2
  465. package/typedoc/functions/defineCapability.html +0 -2
  466. package/typedoc/functions/defineEvent.html +0 -2
  467. package/typedoc/functions/defineModule.html +0 -2
  468. package/typedoc/functions/definePlugin.html +0 -2
  469. package/typedoc/functions/eventKey.html +0 -2
  470. package/typedoc/functions/getEvents.html +0 -2
  471. package/typedoc/functions/isAllOf.html +0 -2
  472. package/typedoc/functions/isOneOf.html +0 -2
  473. package/typedoc/functions/isSurfaceAvailable.html +0 -2
  474. package/typedoc/functions/lazy.html +0 -2
  475. package/typedoc/functions/oneOf.html +0 -2
  476. package/typedoc/functions/useApp.html +0 -6
  477. package/typedoc/functions/useAppGraph.html +0 -1
  478. package/typedoc/functions/useCapabilities.html +0 -3
  479. package/typedoc/functions/useCapability.html +0 -4
  480. package/typedoc/functions/useIntentDispatcher.html +0 -1
  481. package/typedoc/functions/useIntentResolver.html +0 -1
  482. package/typedoc/functions/useLayout.html +0 -1
  483. package/typedoc/functions/usePluginManager.html +0 -2
  484. package/typedoc/hierarchy.html +0 -1
  485. package/typedoc/index.html +0 -12
  486. package/typedoc/interfaces/LayoutAction.Toast.html +0 -10
  487. package/typedoc/media/LICENSE +0 -8
  488. package/typedoc/modules/Capabilities.html +0 -1
  489. package/typedoc/modules/CollaborationActions.html +0 -1
  490. package/typedoc/modules/Events.html +0 -1
  491. package/typedoc/modules/IntentAction.html +0 -1
  492. package/typedoc/modules/LayoutAction.html +0 -2
  493. package/typedoc/modules/SettingsAction.html +0 -1
  494. package/typedoc/modules.html +0 -1
  495. package/typedoc/types/ActivationEvent.html +0 -8
  496. package/typedoc/types/ActivationEvents.html +0 -2
  497. package/typedoc/types/AnyCapability.html +0 -1
  498. package/typedoc/types/AnyIntent.html +0 -1
  499. package/typedoc/types/AnyIntentChain.html +0 -1
  500. package/typedoc/types/AnyIntentEffectResult.html +0 -1
  501. package/typedoc/types/AnyIntentResolver.html +0 -1
  502. package/typedoc/types/AnyIntentResult.html +0 -1
  503. package/typedoc/types/Capabilities.FileUploader.html +0 -1
  504. package/typedoc/types/Capabilities.IntentResolver.html +0 -1
  505. package/typedoc/types/Capabilities.Layout.html +0 -1
  506. package/typedoc/types/Capabilities.Metadata.html +0 -1
  507. package/typedoc/types/Capabilities.ReactContext.html +0 -1
  508. package/typedoc/types/Capabilities.ReactRoot.html +0 -1
  509. package/typedoc/types/Capabilities.ReactSurface.html +0 -1
  510. package/typedoc/types/Capabilities.Settings.html +0 -4
  511. package/typedoc/types/Capability.html +0 -9
  512. package/typedoc/types/CreateAppOptions.html +0 -10
  513. package/typedoc/types/FileInfo.html +0 -1
  514. package/typedoc/types/Intent.html +0 -10
  515. package/typedoc/types/IntentChain.html +0 -6
  516. package/typedoc/types/IntentContext.html +0 -5
  517. package/typedoc/types/IntentData.html +0 -1
  518. package/typedoc/types/IntentDispatcher.html +0 -2
  519. package/typedoc/types/IntentDispatcherResult.html +0 -2
  520. package/typedoc/types/IntentEffectDefinition.html +0 -2
  521. package/typedoc/types/IntentEffectResult.html +0 -15
  522. package/typedoc/types/IntentParams.html +0 -3
  523. package/typedoc/types/IntentResolver.html +0 -2
  524. package/typedoc/types/IntentResultData.html +0 -1
  525. package/typedoc/types/IntentSchema.html +0 -1
  526. package/typedoc/types/IntentUndo.html +0 -2
  527. package/typedoc/types/InterfaceDef.html +0 -4
  528. package/typedoc/types/Label.html +0 -1
  529. package/typedoc/types/NodeSerializer.html +0 -8
  530. package/typedoc/types/PluginManagerOptions.html +0 -6
  531. package/typedoc/types/PluginMeta.html +0 -21
  532. package/typedoc/types/PromiseIntentDispatcher.html +0 -2
  533. package/typedoc/types/PromiseIntentUndo.html +0 -2
  534. package/typedoc/types/Resource.html +0 -1
  535. package/typedoc/types/ResourceKey.html +0 -1
  536. package/typedoc/types/ResourceLanguage.html +0 -1
  537. package/typedoc/types/SerializedNode.html +0 -4
  538. package/typedoc/types/SurfaceComponent.html +0 -2
  539. package/typedoc/types/SurfaceDefinition.html +0 -2
  540. package/typedoc/types/SurfaceProps.html +0 -4
  541. package/typedoc/variables/Capabilities.AnchorSort.html +0 -1
  542. package/typedoc/variables/Capabilities.AppGraph.html +0 -1
  543. package/typedoc/variables/Capabilities.AppGraphBuilder.html +0 -1
  544. package/typedoc/variables/Capabilities.AppGraphSerializer.html +0 -1
  545. package/typedoc/variables/Capabilities.ArtifactDefinition.html +0 -1
  546. package/typedoc/variables/Capabilities.FileUploader.html +0 -1
  547. package/typedoc/variables/Capabilities.IntentDispatcher.html +0 -1
  548. package/typedoc/variables/Capabilities.IntentResolver.html +0 -1
  549. package/typedoc/variables/Capabilities.Layout.html +0 -1
  550. package/typedoc/variables/Capabilities.Metadata.html +0 -1
  551. package/typedoc/variables/Capabilities.Null.html +0 -1
  552. package/typedoc/variables/Capabilities.PluginManager.html +0 -1
  553. package/typedoc/variables/Capabilities.ReactContext.html +0 -1
  554. package/typedoc/variables/Capabilities.ReactRoot.html +0 -1
  555. package/typedoc/variables/Capabilities.ReactSurface.html +0 -1
  556. package/typedoc/variables/Capabilities.RxRegistry.html +0 -1
  557. package/typedoc/variables/Capabilities.Settings.html +0 -1
  558. package/typedoc/variables/Capabilities.SettingsStore.html +0 -1
  559. package/typedoc/variables/Capabilities.Tools.html +0 -1
  560. package/typedoc/variables/Capabilities.Translations.html +0 -1
  561. package/typedoc/variables/Events.AppGraphReady.html +0 -2
  562. package/typedoc/variables/Events.DispatcherReady.html +0 -2
  563. package/typedoc/variables/Events.LayoutReady.html +0 -1
  564. package/typedoc/variables/Events.SettingsReady.html +0 -2
  565. package/typedoc/variables/Events.SetupAppGraph.html +0 -2
  566. package/typedoc/variables/Events.SetupArtifactDefinition.html +0 -2
  567. package/typedoc/variables/Events.SetupIntentResolver.html +0 -2
  568. package/typedoc/variables/Events.SetupMetadata.html +0 -2
  569. package/typedoc/variables/Events.SetupReactSurface.html +0 -2
  570. package/typedoc/variables/Events.SetupSettings.html +0 -2
  571. package/typedoc/variables/Events.SetupTranslations.html +0 -2
  572. package/typedoc/variables/Events.Startup.html +0 -2
  573. package/typedoc/variables/FileInfoSchema.html +0 -1
  574. package/typedoc/variables/INTENT_ACTION.html +0 -1
  575. package/typedoc/variables/INTENT_PLUGIN.html +0 -1
  576. package/typedoc/variables/LAYOUT_ACTION.html +0 -1
  577. package/typedoc/variables/LAYOUT_PLUGIN.html +0 -1
  578. package/typedoc/variables/Label.html +0 -1
  579. package/typedoc/variables/LayoutAction.Toast.html +0 -1
  580. package/typedoc/variables/LayoutAction.UPDATE_LAYOUT.html +0 -1
  581. package/typedoc/variables/PluginManagerProvider.html +0 -2
  582. package/typedoc/variables/Resource.html +0 -2
  583. package/typedoc/variables/ResourceKey.html +0 -1
  584. package/typedoc/variables/ResourceLanguage.html +0 -1
  585. package/typedoc/variables/SETTINGS_ACTION.html +0 -1
  586. package/typedoc/variables/SETTINGS_ID.html +0 -1
  587. package/typedoc/variables/SETTINGS_KEY.html +0 -1
  588. package/typedoc/variables/SETTINGS_PLUGIN.html +0 -1
  589. package/typedoc/variables/Surface.html +0 -2
  590. package/typedoc/variables/defaultFileTypes.html +0 -1
  591. /package/dist/lib/browser/{intent-dispatcher-TWKB22NI.mjs.map → chunk-J5LGTIGS.mjs.map} +0 -0
  592. /package/dist/lib/browser/{worker.mjs.map → common/index.mjs.map} +0 -0
  593. /package/dist/lib/{node-esm/intent-dispatcher-5PRM3KGH.mjs.map → browser/core/activation-event.mjs.map} +0 -0
  594. /package/dist/lib/{node-esm/worker.mjs.map → browser/core/capability.mjs.map} +0 -0
@@ -1,38 +1,84 @@
1
1
  import { createRequire } from 'node:module';const require = createRequire(import.meta.url);
2
2
  import {
3
3
  useApp
4
- } from "../chunk-NJAFK626.mjs";
4
+ } from "../chunk-6WXBT3EC.mjs";
5
+ import "../chunk-UEWJDI2L.mjs";
5
6
  import {
6
- Capabilities,
7
- Events,
8
- PluginManager,
9
- contributes,
10
- defineModule,
11
- definePlugin
12
- } from "../chunk-VSKRV3NW.mjs";
7
+ ActivationEvent,
8
+ Capability
9
+ } from "../chunk-GQEBIGKD.mjs";
10
+ import {
11
+ plugin_manager_exports
12
+ } from "../chunk-XYQTBFPA.mjs";
13
+ import "../chunk-7OWSHPYK.mjs";
14
+ import {
15
+ plugin_exports
16
+ } from "../chunk-GT6OKM5I.mjs";
17
+ import {
18
+ capability_exports
19
+ } from "../chunk-STMXUEPO.mjs";
20
+ import "../chunk-HSLMI22Q.mjs";
21
+
22
+ // src/testing/service.ts
23
+ import * as Effect from "effect/Effect";
24
+ import * as Layer from "effect/Layer";
25
+ import { invariant } from "@dxos/invariant";
26
+ var __dxlog_file = "/__w/dxos/dxos/packages/sdk/app-framework/src/testing/service.ts";
27
+ var fromPlugins = (plugins) => Layer.effect(plugin_exports.Service, Effect.gen(function* () {
28
+ const pluginLoader = (id) => Effect.sync(() => {
29
+ const plugin = plugins.find((plugin2) => plugin2.meta.id === id);
30
+ invariant(plugin, `Plugin not found: ${id}`, {
31
+ F: __dxlog_file,
32
+ L: 26,
33
+ S: this,
34
+ A: [
35
+ "plugin",
36
+ "`Plugin not found: ${id}`"
37
+ ]
38
+ });
39
+ return plugin;
40
+ });
41
+ const manager = plugin_manager_exports.make({
42
+ pluginLoader,
43
+ plugins,
44
+ core: plugins.map((plugin) => plugin.meta.id)
45
+ });
46
+ manager.capabilities.contribute({
47
+ interface: Capability.PluginManager,
48
+ implementation: manager,
49
+ module: "dxos.org/app-framework/plugin-manager"
50
+ });
51
+ manager.capabilities.contribute({
52
+ interface: Capability.AtomRegistry,
53
+ implementation: manager.registry,
54
+ module: "dxos.org/app-framework/atom-registry"
55
+ });
56
+ yield* manager.activate(ActivationEvent.Startup);
57
+ return manager;
58
+ }));
13
59
 
14
60
  // src/testing/withPluginManager.tsx
61
+ import * as Effect2 from "effect/Effect";
15
62
  import React, { useEffect, useMemo } from "react";
16
63
  import { raise } from "@dxos/debug";
17
- var getValue = (providerOrValue, context) => {
18
- return typeof providerOrValue === "function" ? providerOrValue(context) : providerOrValue;
19
- };
64
+ import { useAsyncEffect } from "@dxos/react-hooks";
65
+ import { getProviderValue } from "@dxos/util";
20
66
  var setupPluginManager = ({ capabilities, plugins = [], core = plugins.map(({ meta }) => meta.id), ...options } = {}) => {
21
- const pluginManager = new PluginManager({
67
+ const pluginManager = plugin_manager_exports.make({
22
68
  pluginLoader: () => raise(new Error("Not implemented")),
23
69
  plugins: [
24
- storyPlugin(),
70
+ StoryPlugin,
25
71
  ...plugins
26
72
  ],
27
73
  core: [
28
- STORY_PLUGIN,
74
+ StoryPlugin.meta.id,
29
75
  ...core
30
76
  ],
31
77
  ...options
32
78
  });
33
79
  if (capabilities) {
34
- getValue(capabilities, pluginManager.context).forEach((capability) => {
35
- pluginManager.context.contributeCapability({
80
+ getProviderValue(capabilities, pluginManager.capabilities).forEach((capability) => {
81
+ pluginManager.capabilities.contribute({
36
82
  interface: capability.interface,
37
83
  implementation: capability.implementation,
38
84
  module: "story"
@@ -41,32 +87,30 @@ var setupPluginManager = ({ capabilities, plugins = [], core = plugins.map(({ me
41
87
  }
42
88
  return pluginManager;
43
89
  };
44
- var withPluginManager = (options = {}) => {
90
+ var withPluginManager = (init = {}) => {
45
91
  return (Story, context) => {
92
+ const options = typeof init === "function" ? init(context) : init;
46
93
  const pluginManager = useMemo(() => setupPluginManager(options), [
47
- options
94
+ init
48
95
  ]);
49
96
  useEffect(() => {
50
- const capability = contributes(Capabilities.ReactRoot, {
97
+ const capability = capability_exports.contributes(Capability.ReactRoot, {
51
98
  id: context.id,
52
99
  root: () => /* @__PURE__ */ React.createElement(Story, null)
53
100
  });
54
- pluginManager.context.contributeCapability({
101
+ pluginManager.capabilities.contribute({
55
102
  ...capability,
56
103
  module: "dxos.org/app-framework/withPluginManager"
57
104
  });
58
105
  return () => {
59
- pluginManager.context.removeCapability(capability.interface, capability.implementation);
106
+ pluginManager.capabilities.remove(capability.interface, capability.implementation);
60
107
  };
61
108
  }, [
62
109
  pluginManager,
63
110
  context
64
111
  ]);
65
- useEffect(() => {
66
- const timeout = setTimeout(async () => {
67
- await Promise.all(options.fireEvents?.map((event) => pluginManager.activate(event)) ?? []);
68
- });
69
- return () => clearTimeout(timeout);
112
+ useAsyncEffect(async () => {
113
+ await Promise.all(options.fireEvents?.map((event) => pluginManager.activate(event)) ?? []);
70
114
  }, [
71
115
  pluginManager
72
116
  ]);
@@ -76,19 +120,17 @@ var withPluginManager = (options = {}) => {
76
120
  return /* @__PURE__ */ React.createElement(App, null);
77
121
  };
78
122
  };
79
- var STORY_PLUGIN = "dxos.org/app-framework/story";
80
- var storyPlugin = () => definePlugin({
81
- id: STORY_PLUGIN,
123
+ var storyMeta = {
124
+ id: "dxos.org/app-framework/story",
82
125
  name: "Story"
83
- }, [
84
- defineModule({
85
- id: STORY_PLUGIN,
86
- activatesOn: Events.Startup,
87
- activate: () => []
88
- })
89
- ]);
126
+ };
127
+ var StoryPlugin = plugin_exports.define(storyMeta).pipe(plugin_exports.addModule({
128
+ id: "Story",
129
+ activatesOn: ActivationEvent.Startup,
130
+ activate: () => Effect2.succeed([])
131
+ }), plugin_exports.make)();
90
132
  export {
91
- getValue,
133
+ fromPlugins,
92
134
  setupPluginManager,
93
135
  withPluginManager
94
136
  };
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
- "sources": ["../../../../src/testing/withPluginManager.tsx"],
4
- "sourcesContent": ["//\n// Copyright 2025 DXOS.org\n//\n\nimport { type Decorator } from '@storybook/react';\nimport React, { useEffect, useMemo } from 'react';\n\nimport { raise } from '@dxos/debug';\n\nimport { useApp, type CreateAppOptions } from '../App';\nimport { Capabilities, Events } from '../common';\nimport {\n contributes,\n defineModule,\n definePlugin,\n type ActivationEvent,\n type AnyCapability,\n PluginManager,\n type PluginContext,\n} from '../core';\n\n// TODO(burdon): Factor out (use consistently in plugin framework?)\nexport type Provider<C, R> = (context: C) => R;\nexport type ProviderOrValue<C, R> = Provider<C, R> | R;\nexport const getValue = <C, R>(providerOrValue: ProviderOrValue<C, R>, context: C): R => {\n return typeof providerOrValue === 'function' ? (providerOrValue as Provider<C, R>)(context) : providerOrValue;\n};\n\n/**\n * @internal\n */\nexport const setupPluginManager = ({\n capabilities,\n plugins = [],\n core = plugins.map(({ meta }) => meta.id),\n ...options\n}: CreateAppOptions & Pick<WithPluginManagerOptions, 'capabilities'> = {}) => {\n const pluginManager = new PluginManager({\n pluginLoader: () => raise(new Error('Not implemented')),\n plugins: [storyPlugin(), ...plugins],\n core: [STORY_PLUGIN, ...core],\n ...options,\n });\n\n if (capabilities) {\n getValue(capabilities, pluginManager.context).forEach((capability) => {\n pluginManager.context.contributeCapability({\n interface: capability.interface,\n implementation: capability.implementation,\n module: 'story',\n });\n });\n }\n\n return pluginManager;\n};\n\nexport type WithPluginManagerOptions = CreateAppOptions & {\n capabilities?: ProviderOrValue<PluginContext, AnyCapability[]>;\n fireEvents?: (ActivationEvent | string)[];\n};\n\n/**\n * Wraps a story with a plugin manager.\n * NOTE: This builds up and tears down the plugin manager on every render.\n */\nexport const withPluginManager = (options: WithPluginManagerOptions = {}): Decorator => {\n return (Story, context) => {\n const pluginManager = useMemo(() => setupPluginManager(options), [options]);\n\n // Set-up root capability.\n useEffect(() => {\n const capability = contributes(Capabilities.ReactRoot, {\n id: context.id,\n root: () => <Story />,\n });\n\n pluginManager.context.contributeCapability({\n ...capability,\n module: 'dxos.org/app-framework/withPluginManager',\n });\n\n return () => {\n pluginManager.context.removeCapability(capability.interface, capability.implementation);\n };\n }, [pluginManager, context]);\n\n // Fire events.\n useEffect(() => {\n const timeout = setTimeout(async () => {\n await Promise.all(options.fireEvents?.map((event) => pluginManager.activate(event)) ?? []);\n });\n\n return () => clearTimeout(timeout);\n }, [pluginManager]);\n\n // Create app.\n const App = useApp({ pluginManager });\n\n return <App />;\n };\n};\n\n// No-op plugin to ensure there exists at least one plugin for the startup event.\n// This is necessary because `createApp` expects the startup event to complete before the app is ready.\nconst STORY_PLUGIN = 'dxos.org/app-framework/story';\nconst storyPlugin = () =>\n definePlugin({ id: STORY_PLUGIN, name: 'Story' }, [\n defineModule({ id: STORY_PLUGIN, activatesOn: Events.Startup, activate: () => [] }),\n ]);\n"],
5
- "mappings": ";;;;;;;;;;;;;;AAKA,OAAOA,SAASC,WAAWC,eAAe;AAE1C,SAASC,aAAa;AAiBf,IAAMC,WAAW,CAAOC,iBAAwCC,YAAAA;AACrE,SAAO,OAAOD,oBAAoB,aAAcA,gBAAmCC,OAAAA,IAAWD;AAChG;AAKO,IAAME,qBAAqB,CAAC,EACjCC,cACAC,UAAU,CAAA,GACVC,OAAOD,QAAQE,IAAI,CAAC,EAAEC,KAAI,MAAOA,KAAKC,EAAE,GACxC,GAAGC,QAAAA,IACkE,CAAC,MAAC;AACvE,QAAMC,gBAAgB,IAAIC,cAAc;IACtCC,cAAc,MAAMC,MAAM,IAAIC,MAAM,iBAAA,CAAA;IACpCV,SAAS;MAACW,YAAAA;SAAkBX;;IAC5BC,MAAM;MAACW;SAAiBX;;IACxB,GAAGI;EACL,CAAA;AAEA,MAAIN,cAAc;AAChBJ,aAASI,cAAcO,cAAcT,OAAO,EAAEgB,QAAQ,CAACC,eAAAA;AACrDR,oBAAcT,QAAQkB,qBAAqB;QACzCC,WAAWF,WAAWE;QACtBC,gBAAgBH,WAAWG;QAC3BC,QAAQ;MACV,CAAA;IACF,CAAA;EACF;AAEA,SAAOZ;AACT;AAWO,IAAMa,oBAAoB,CAACd,UAAoC,CAAC,MAAC;AACtE,SAAO,CAACe,OAAOvB,YAAAA;AACb,UAAMS,gBAAgBe,QAAQ,MAAMvB,mBAAmBO,OAAAA,GAAU;MAACA;KAAQ;AAG1EiB,cAAU,MAAA;AACR,YAAMR,aAAaS,YAAYC,aAAaC,WAAW;QACrDrB,IAAIP,QAAQO;QACZsB,MAAM,MAAM,sBAAA,cAACN,OAAAA,IAAAA;MACf,CAAA;AAEAd,oBAAcT,QAAQkB,qBAAqB;QACzC,GAAGD;QACHI,QAAQ;MACV,CAAA;AAEA,aAAO,MAAA;AACLZ,sBAAcT,QAAQ8B,iBAAiBb,WAAWE,WAAWF,WAAWG,cAAc;MACxF;IACF,GAAG;MAACX;MAAeT;KAAQ;AAG3ByB,cAAU,MAAA;AACR,YAAMM,UAAUC,WAAW,YAAA;AACzB,cAAMC,QAAQC,IAAI1B,QAAQ2B,YAAY9B,IAAI,CAAC+B,UAAU3B,cAAc4B,SAASD,KAAAA,CAAAA,KAAW,CAAA,CAAE;MAC3F,CAAA;AAEA,aAAO,MAAME,aAAaP,OAAAA;IAC5B,GAAG;MAACtB;KAAc;AAGlB,UAAM8B,MAAMC,OAAO;MAAE/B;IAAc,CAAA;AAEnC,WAAO,sBAAA,cAAC8B,KAAAA,IAAAA;EACV;AACF;AAIA,IAAMxB,eAAe;AACrB,IAAMD,cAAc,MAClB2B,aAAa;EAAElC,IAAIQ;EAAc2B,MAAM;AAAQ,GAAG;EAChDC,aAAa;IAAEpC,IAAIQ;IAAc6B,aAAaC,OAAOC;IAAST,UAAU,MAAM,CAAA;EAAG,CAAA;CAClF;",
6
- "names": ["React", "useEffect", "useMemo", "raise", "getValue", "providerOrValue", "context", "setupPluginManager", "capabilities", "plugins", "core", "map", "meta", "id", "options", "pluginManager", "PluginManager", "pluginLoader", "raise", "Error", "storyPlugin", "STORY_PLUGIN", "forEach", "capability", "contributeCapability", "interface", "implementation", "module", "withPluginManager", "Story", "useMemo", "useEffect", "contributes", "Capabilities", "ReactRoot", "root", "removeCapability", "timeout", "setTimeout", "Promise", "all", "fireEvents", "event", "activate", "clearTimeout", "App", "useApp", "definePlugin", "name", "defineModule", "activatesOn", "Events", "Startup"]
3
+ "sources": ["../../../../src/testing/service.ts", "../../../../src/testing/withPluginManager.tsx"],
4
+ "sourcesContent": ["//\n// Copyright 2025 DXOS.org\n//\n\nimport * as Effect from 'effect/Effect';\nimport * as Layer from 'effect/Layer';\n\nimport { invariant } from '@dxos/invariant';\n\nimport * as Common from '../common';\nimport { Plugin, PluginManager } from '../core';\n\n/**\n * Creates a Plugin.Service layer from a list of plugins.\n * This is primarily used for testing.\n */\nexport const fromPlugins = (plugins: Plugin.Plugin[]) =>\n Layer.effect(\n Plugin.Service,\n Effect.gen(function* () {\n // TODO(wittjosiah): Try to dedupe logic between here, createCliApp and useApp.\n\n const pluginLoader = (id: string) =>\n Effect.sync(() => {\n const plugin = plugins.find((plugin) => plugin.meta.id === id);\n invariant(plugin, `Plugin not found: ${id}`);\n return plugin;\n });\n\n const manager = PluginManager.make({\n pluginLoader,\n plugins,\n core: plugins.map((plugin) => plugin.meta.id),\n });\n\n manager.capabilities.contribute({\n interface: Common.Capability.PluginManager,\n implementation: manager,\n module: 'dxos.org/app-framework/plugin-manager',\n });\n\n manager.capabilities.contribute({\n interface: Common.Capability.AtomRegistry,\n implementation: manager.registry,\n module: 'dxos.org/app-framework/atom-registry',\n });\n\n yield* manager.activate(Common.ActivationEvent.Startup);\n\n return manager;\n }),\n );\n", "//\n// Copyright 2025 DXOS.org\n//\n\nimport { type Decorator, type StoryContext } from '@storybook/react';\nimport * as Effect from 'effect/Effect';\nimport React, { useEffect, useMemo } from 'react';\n\nimport { raise } from '@dxos/debug';\nimport { useAsyncEffect } from '@dxos/react-hooks';\nimport { type MaybeProvider, getProviderValue } from '@dxos/util';\n\nimport * as Common from '../common';\nimport { type ActivationEvent, Capability, type CapabilityManager, Plugin, PluginManager } from '../core';\nimport { type UseAppOptions, useApp } from '../react';\n\n/**\n * @internal\n */\nexport const setupPluginManager = ({\n capabilities,\n plugins = [],\n core = plugins.map(({ meta }) => meta.id),\n ...options\n}: UseAppOptions & Pick<WithPluginManagerOptions, 'capabilities'> = {}) => {\n const pluginManager = PluginManager.make({\n pluginLoader: () => raise(new Error('Not implemented')),\n plugins: [StoryPlugin, ...plugins],\n core: [StoryPlugin.meta.id, ...core],\n ...options,\n });\n\n if (capabilities) {\n getProviderValue(capabilities, pluginManager.capabilities).forEach((capability) => {\n pluginManager.capabilities.contribute({\n interface: capability.interface,\n implementation: capability.implementation,\n module: 'story',\n });\n });\n }\n\n return pluginManager;\n};\n\nexport type WithPluginManagerOptions = UseAppOptions & {\n /** @deprecated */\n capabilities?: MaybeProvider<Capability.Any[], CapabilityManager.CapabilityManager>;\n /** @deprecated */\n fireEvents?: (ActivationEvent.ActivationEvent | string)[];\n};\n\nexport type WithPluginManagerInitializer<Args = void> =\n | WithPluginManagerOptions\n | ((context: StoryContext<Args>) => WithPluginManagerOptions);\n\n/**\n * Wraps a story with a plugin manager.\n * NOTE: This builds up and tears down the plugin manager on every render.\n */\nexport const withPluginManager = <Args,>(init: WithPluginManagerInitializer<Args> = {}): Decorator => {\n return (Story, context) => {\n const options = typeof init === 'function' ? init(context as any) : init;\n const pluginManager = useMemo(() => setupPluginManager(options), [init]);\n\n // Set-up root capability.\n useEffect(() => {\n const capability = Capability.contributes(Common.Capability.ReactRoot, {\n id: context.id,\n root: () => <Story />,\n });\n\n pluginManager.capabilities.contribute({\n ...capability,\n module: 'dxos.org/app-framework/withPluginManager',\n });\n\n return () => {\n pluginManager.capabilities.remove(capability.interface, capability.implementation);\n };\n }, [pluginManager, context]);\n\n // Fire events.\n useAsyncEffect(async () => {\n await Promise.all(options.fireEvents?.map((event) => pluginManager.activate(event)) ?? []);\n }, [pluginManager]);\n\n // Create app.\n const App = useApp({ pluginManager });\n\n return <App />;\n };\n};\n\nconst storyMeta = {\n id: 'dxos.org/app-framework/story',\n name: 'Story',\n};\n\n// No-op plugin to ensure there exists at least one plugin for the startup event.\n// This is necessary because `createApp` expects the startup event to complete before the app is ready.\nconst StoryPlugin = Plugin.define(storyMeta).pipe(\n Plugin.addModule({\n id: 'Story',\n activatesOn: Common.ActivationEvent.Startup,\n activate: () => Effect.succeed([]),\n }),\n Plugin.make,\n)();\n"],
5
+ "mappings": "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",
6
+ "names": ["Effect", "Layer", "invariant", "fromPlugins", "plugins", "effect", "Plugin", "Service", "gen", "pluginLoader", "id", "sync", "plugin", "find", "meta", "invariant", "manager", "PluginManager", "make", "core", "map", "capabilities", "contribute", "interface", "Capability", "implementation", "module", "AtomRegistry", "registry", "activate", "ActivationEvent", "Startup", "Effect", "React", "useEffect", "useMemo", "raise", "useAsyncEffect", "getProviderValue", "setupPluginManager", "capabilities", "plugins", "core", "map", "meta", "id", "options", "pluginManager", "PluginManager", "make", "pluginLoader", "raise", "Error", "StoryPlugin", "getProviderValue", "forEach", "capability", "contribute", "interface", "implementation", "module", "withPluginManager", "init", "Story", "context", "useMemo", "useEffect", "Capability", "contributes", "ReactRoot", "root", "remove", "useAsyncEffect", "Promise", "all", "fireEvents", "event", "activate", "App", "useApp", "storyMeta", "name", "Plugin", "define", "pipe", "addModule", "activatesOn", "ActivationEvent", "Startup", "succeed"]
7
7
  }
@@ -0,0 +1,39 @@
1
+ import * as Command from '@effect/cli/Command';
2
+ import * as Effect from 'effect/Effect';
3
+ import * as Layer from 'effect/Layer';
4
+ import { Plugin, PluginManager } from './core';
5
+ type SubCommands = [Command.Command<any, any, any, any>, ...Array<Command.Command<any, any, any, any>>];
6
+ export type CreateCliAppOptions = {
7
+ rootCommand: Command.Command<any, any, any, any>;
8
+ subCommands?: SubCommands;
9
+ pluginManager?: PluginManager.PluginManager;
10
+ pluginLoader?: PluginManager.ManagerOptions['pluginLoader'];
11
+ plugins?: Plugin.Plugin[];
12
+ core?: string[];
13
+ enabled?: string[];
14
+ safeMode?: boolean;
15
+ };
16
+ /**
17
+ * Creates a CLI application with plugin support.
18
+ * Similar to useApp but for CLI environments.
19
+ *
20
+ * @example
21
+ * const plugins = [ClientPluginCLI()];
22
+ * const manager = await createCliApp({ plugins });
23
+ * const commands = manager.capabilities.getAll(Common.Capability.Command);
24
+ *
25
+ * @param options.pluginManager Optional existing PluginManager instance.
26
+ * @param options.pluginLoader Function to load plugins by ID.
27
+ * @param options.plugins All plugins available to the application.
28
+ * @param options.core Core plugins which will always be enabled.
29
+ * @param options.enabled Enabled plugins.
30
+ * @param options.safeMode Whether to enable safe mode, which disables optional plugins.
31
+ */
32
+ export declare const createCliApp: (args_0: CreateCliAppOptions) => Effect.Effect<{
33
+ command: Command.Command<any, any, any, {
34
+ [x: string]: any;
35
+ }>;
36
+ layer: Layer.Layer<any, any, never>;
37
+ }, Error, never>;
38
+ export {};
39
+ //# sourceMappingURL=cli.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cli.d.ts","sourceRoot":"","sources":["../../../src/cli.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,OAAO,MAAM,qBAAqB,CAAC;AAC/C,OAAO,KAAK,MAAM,MAAM,eAAe,CAAC;AACxC,OAAO,KAAK,KAAK,MAAM,cAAc,CAAC;AAKtC,OAAO,EAAc,MAAM,EAAE,aAAa,EAAE,MAAM,QAAQ,CAAC;AAW3D,KAAK,WAAW,GAAG,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,EAAE,GAAG,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC;AAExG,MAAM,MAAM,mBAAmB,GAAG;IAChC,WAAW,EAAE,OAAO,CAAC,OAAO,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC;IACjD,WAAW,CAAC,EAAE,WAAW,CAAC;IAC1B,aAAa,CAAC,EAAE,aAAa,CAAC,aAAa,CAAC;IAC5C,YAAY,CAAC,EAAE,aAAa,CAAC,cAAc,CAAC,cAAc,CAAC,CAAC;IAC5D,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,CAAC;IAC1B,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;IACnB,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB,CAAC;AAEF;;;;;;;;;;;;;;;GAeG;AACH,eAAO,MAAM,YAAY;;;;;gBAuDvB,CAAC"}
@@ -0,0 +1,66 @@
1
+ import { ActivationEvent as ActivationEvent$ } from '../core';
2
+ export declare namespace ActivationEvent {
3
+ /**
4
+ * Fired when the app is started.
5
+ */
6
+ const Startup: ActivationEvent$.ActivationEvent;
7
+ /**
8
+ * Fired to load any newly available surfaces.
9
+ */
10
+ const SetupReactSurface: ActivationEvent$.ActivationEvent;
11
+ /**
12
+ * Fired to load any newly available metadata.
13
+ */
14
+ const SetupMetadata: ActivationEvent$.ActivationEvent;
15
+ /**
16
+ * Fired before the operation invoker is activated.
17
+ */
18
+ const SetupOperationResolver: ActivationEvent$.ActivationEvent;
19
+ /**
20
+ * Fired before the managed runtime is created.
21
+ * Plugins should contribute their Layer capabilities before this event.
22
+ */
23
+ const SetupLayer: ActivationEvent$.ActivationEvent;
24
+ /**
25
+ * Fired before the settings store is activated.
26
+ */
27
+ const SetupSettings: ActivationEvent$.ActivationEvent;
28
+ /**
29
+ * Fired before the graph is created.
30
+ */
31
+ const SetupAppGraph: ActivationEvent$.ActivationEvent;
32
+ /**
33
+ * Fired before the translations provider is created.
34
+ */
35
+ const SetupTranslations: ActivationEvent$.ActivationEvent;
36
+ /**
37
+ * Fired before the schema is created.
38
+ */
39
+ const SetupSchema: ActivationEvent$.ActivationEvent;
40
+ /**
41
+ * Fired to load any newly available artifacts definitions.
42
+ */
43
+ const SetupArtifactDefinition: ActivationEvent$.ActivationEvent;
44
+ /**
45
+ * Fired after the operation invoker is ready.
46
+ */
47
+ const OperationInvokerReady: ActivationEvent$.ActivationEvent;
48
+ /**
49
+ * Fired after the managed runtime is ready.
50
+ */
51
+ const ManagedRuntimeReady: ActivationEvent$.ActivationEvent;
52
+ /**
53
+ * Fired when the graph is ready.
54
+ */
55
+ const AppGraphReady: ActivationEvent$.ActivationEvent;
56
+ /**
57
+ * Fired when plugin state is ready.
58
+ */
59
+ const createStateEvent: (specifier: string) => ActivationEvent$.ActivationEvent;
60
+ const LayoutReady: ActivationEvent$.ActivationEvent;
61
+ /**
62
+ * Fired when a specific settings capability is ready.
63
+ */
64
+ const createSettingsEvent: (specifier: string) => ActivationEvent$.ActivationEvent;
65
+ }
66
+ //# sourceMappingURL=activation-event.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"activation-event.d.ts","sourceRoot":"","sources":["../../../../src/common/activation-event.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,eAAe,IAAI,gBAAgB,EAAE,MAAM,SAAS,CAAC;AAI9D,yBAAiB,eAAe,CAAC;IAC/B;;OAEG;IACI,MAAM,OAAO,kCAAgE,CAAC;IAMrF;;OAEG;IACI,MAAM,iBAAiB,kCAA4E,CAAC;IAE3G;;OAEG;IACI,MAAM,aAAa,kCAAuE,CAAC;IAElG;;OAEG;IACI,MAAM,sBAAsB,kCAAiF,CAAC;IAErH;;;OAGG;IACI,MAAM,UAAU,kCAAoE,CAAC;IAE5F;;OAEG;IACI,MAAM,aAAa,kCAAuE,CAAC;IAElG;;OAEG;IACI,MAAM,aAAa,kCAAoE,CAAC;IAE/F;;OAEG;IACI,MAAM,iBAAiB,kCAA2E,CAAC;IAE1G;;OAEG;IACI,MAAM,WAAW,kCAAqE,CAAC;IAE9F;;OAEG;IAEI,MAAM,uBAAuB,kCAEnC,CAAC;IAMF;;OAEG;IACI,MAAM,qBAAqB,kCAAgF,CAAC;IAEnH;;OAEG;IACI,MAAM,mBAAmB,kCAA8E,CAAC;IAE/G;;OAEG;IACI,MAAM,aAAa,kCAAoE,CAAC;IAE/F;;OAEG;IACI,MAAM,gBAAgB,GAAI,WAAW,MAAM,qCACsB,CAAC;IAClE,MAAM,WAAW,kCAAiD,CAAC;IAE1E;;OAEG;IACI,MAAM,mBAAmB,GAAI,WAAW,MAAM,qCACsB,CAAC;CAC7E"}
@@ -0,0 +1,265 @@
1
+ import type * as Command$ from '@effect/cli/Command';
2
+ import { Atom, type Registry } from '@effect-atom/atom-react';
3
+ import * as Effect from 'effect/Effect';
4
+ import type * as Layer$ from 'effect/Layer';
5
+ import type * as ManagedRuntime$ from 'effect/ManagedRuntime';
6
+ import type * as Schema$ from 'effect/Schema';
7
+ import type { FC, PropsWithChildren } from 'react';
8
+ import type { AiModelResolver as AiModelResolver$, AiService as AiService$ } from '@dxos/ai';
9
+ import type { BuilderExtensions, GraphBuilder } from '@dxos/app-graph';
10
+ import type { GenericToolkit } from '@dxos/assistant';
11
+ import type { Blueprint } from '@dxos/blueprints';
12
+ import type { Database, Type } from '@dxos/echo';
13
+ import type { FunctionDefinition } from '@dxos/functions';
14
+ import type { OperationInvoker as OperationInvoker$, OperationResolver as OperationResolver$ } from '@dxos/operation';
15
+ import type { AnchoredTo } from '@dxos/types';
16
+ import { Capability as Capability$, type PluginManager as PluginManager$ } from '../core';
17
+ import type { HistoryTracker as HistoryTracker$, UndoMapping as UndoMapping$, UndoRegistry as UndoRegistry$ } from '../plugin-operation';
18
+ import type { FileInfo } from './file';
19
+ import type { NodeSerializer } from './graph';
20
+ import type { SurfaceDefinition } from './surface';
21
+ export declare namespace Capability {
22
+ /**
23
+ * @category Capability
24
+ */
25
+ const Null: Capability$.InterfaceDef<null>;
26
+ /**
27
+ * @category Capability
28
+ */
29
+ const PluginManager: Capability$.InterfaceDef<PluginManager$.PluginManager>;
30
+ /**
31
+ * @category Capability
32
+ */
33
+ const AtomRegistry: Capability$.InterfaceDef<Registry.Registry>;
34
+ type ReactContext = Readonly<{
35
+ id: string;
36
+ dependsOn?: string[];
37
+ context: FC<PropsWithChildren>;
38
+ }>;
39
+ /**
40
+ * @category Capability
41
+ */
42
+ const ReactContext: Capability$.InterfaceDef<Readonly<{
43
+ id: string;
44
+ dependsOn?: string[];
45
+ context: FC<PropsWithChildren>;
46
+ }>>;
47
+ type ReactRoot = Readonly<{
48
+ id: string;
49
+ root: FC<PropsWithChildren>;
50
+ }>;
51
+ /**
52
+ * @category Capability
53
+ */
54
+ const ReactRoot: Capability$.InterfaceDef<Readonly<{
55
+ id: string;
56
+ root: FC<PropsWithChildren>;
57
+ }>>;
58
+ /**
59
+ * Surface definitions that can be either React components or Web Components.
60
+ */
61
+ type ReactSurface = SurfaceDefinition | readonly SurfaceDefinition[];
62
+ /**
63
+ * @category Capability
64
+ */
65
+ const ReactSurface: Capability$.InterfaceDef<ReactSurface>;
66
+ type Layout = Readonly<{
67
+ mode: string;
68
+ dialogOpen: boolean;
69
+ sidebarOpen: boolean;
70
+ complementarySidebarOpen: boolean;
71
+ /**
72
+ * The id of the active workspace, where a workspace is a set of active items.
73
+ */
74
+ workspace: string;
75
+ /**
76
+ * Identifiers of items which are currently active in the application.
77
+ */
78
+ active: string[];
79
+ /**
80
+ * Identifiers of items which were previously active in the application.
81
+ */
82
+ inactive: string[];
83
+ /**
84
+ * Identifier of the item which should be scrolled into view.
85
+ */
86
+ scrollIntoView: string | undefined;
87
+ }>;
88
+ /**
89
+ * Layout capability - provides reactive access to the current layout state.
90
+ * Use `useAtomValue(layoutAtom)` in React or `registry.get(layoutAtom)` in Effects.
91
+ * @category Capability
92
+ */
93
+ const Layout: Capability$.InterfaceDef<Atom.Atom<Readonly<{
94
+ mode: string;
95
+ dialogOpen: boolean;
96
+ sidebarOpen: boolean;
97
+ complementarySidebarOpen: boolean;
98
+ /**
99
+ * The id of the active workspace, where a workspace is a set of active items.
100
+ */
101
+ workspace: string;
102
+ /**
103
+ * Identifiers of items which are currently active in the application.
104
+ */
105
+ active: string[];
106
+ /**
107
+ * Identifiers of items which were previously active in the application.
108
+ */
109
+ inactive: string[];
110
+ /**
111
+ * Identifier of the item which should be scrolled into view.
112
+ */
113
+ scrollIntoView: string | undefined;
114
+ }>>>;
115
+ /**
116
+ * @category Capability
117
+ */
118
+ const Translations: Capability$.InterfaceDef<readonly {
119
+ readonly [x: string]: {
120
+ readonly [x: string]: string | {
121
+ readonly [x: string]: any;
122
+ };
123
+ };
124
+ }[]>;
125
+ type AppGraph = Readonly<{
126
+ graph: GraphBuilder.GraphBuilder['graph'];
127
+ explore: typeof GraphBuilder.explore;
128
+ }>;
129
+ /**
130
+ * @category Capability
131
+ */
132
+ const AppGraph: Capability$.InterfaceDef<Readonly<{
133
+ graph: GraphBuilder.GraphBuilder["graph"];
134
+ explore: typeof GraphBuilder.explore;
135
+ }>>;
136
+ /**
137
+ * @category Capability
138
+ */
139
+ const AppGraphBuilder: Capability$.InterfaceDef<BuilderExtensions>;
140
+ /**
141
+ * @category Capability
142
+ */
143
+ const AppGraphSerializer: Capability$.InterfaceDef<NodeSerializer[]>;
144
+ type Settings = {
145
+ prefix: string;
146
+ schema: Schema$.Schema.All;
147
+ atom: Atom.Writable<any>;
148
+ };
149
+ /**
150
+ * Type guard to check if a value is a Settings object.
151
+ */
152
+ const isSettings: (value: unknown) => value is Settings;
153
+ /**
154
+ * @category Capability
155
+ */
156
+ const Settings: Capability$.InterfaceDef<Settings>;
157
+ type Metadata = Readonly<{
158
+ id: string;
159
+ metadata: Record<string, any>;
160
+ }>;
161
+ /**
162
+ * @category Capability
163
+ */
164
+ const Metadata: Capability$.InterfaceDef<Readonly<{
165
+ id: string;
166
+ metadata: Record<string, any>;
167
+ }>>;
168
+ type Schema = ReadonlyArray<Type.Entity.Any>;
169
+ /**
170
+ * @category Capability
171
+ */
172
+ const Schema: Capability$.InterfaceDef<Schema>;
173
+ type Toolkit = GenericToolkit.GenericToolkit;
174
+ /**
175
+ * @category Capability
176
+ */
177
+ const Toolkit: Capability$.InterfaceDef<Toolkit>;
178
+ /**
179
+ * @category Capability
180
+ */
181
+ const BlueprintDefinition: Capability$.InterfaceDef<Blueprint.Blueprint>;
182
+ type AiServiceLayer = Layer$.Layer<AiService$.AiService>;
183
+ const AiServiceLayer: Capability$.InterfaceDef<AiServiceLayer>;
184
+ /**
185
+ * Plugins can contribute them to provide model resolvers.
186
+ */
187
+ const AiModelResolver: Capability$.InterfaceDef<Layer$.Layer<AiModelResolver$.AiModelResolver, never, never>>;
188
+ /**
189
+ * @category Capability
190
+ */
191
+ const Functions: Capability$.InterfaceDef<FunctionDefinition.Any[]>;
192
+ type FileUploader = (db: Database.Database, file: File) => Promise<FileInfo | undefined>;
193
+ /**
194
+ * @category Capability
195
+ */
196
+ const FileUploader: Capability$.InterfaceDef<FileUploader>;
197
+ type AnchorSort = {
198
+ key: string;
199
+ sort: (anchorA: AnchoredTo.AnchoredTo, anchorB: AnchoredTo.AnchoredTo) => number;
200
+ };
201
+ /**
202
+ * @category Capability
203
+ */
204
+ const AnchorSort: Capability$.InterfaceDef<AnchorSort>;
205
+ type AnyCommand = Command$.Command<any, any, any, any>;
206
+ /**
207
+ * @category Capability
208
+ */
209
+ const Command: Capability$.InterfaceDef<AnyCommand>;
210
+ /**
211
+ * @category Capability
212
+ */
213
+ const Layer: Capability$.InterfaceDef<Layer$.Layer<any, any, any>>;
214
+ type ManagedRuntime = ManagedRuntime$.ManagedRuntime<any, any>;
215
+ /**
216
+ * @category Capability
217
+ */
218
+ const ManagedRuntime: Capability$.InterfaceDef<ManagedRuntime>;
219
+ type OperationResolver = OperationResolver$.OperationResolver<any, any, any, any>;
220
+ /**
221
+ * Handler registration for operations - contributed by plugins.
222
+ * @category Capability
223
+ */
224
+ const OperationResolver: Capability$.InterfaceDef<OperationResolver[]>;
225
+ type UndoMapping = UndoMapping$.UndoMapping;
226
+ /**
227
+ * Undo mapping registration - contributed by plugins.
228
+ * @category Capability
229
+ */
230
+ const UndoMapping: Capability$.InterfaceDef<UndoMapping[]>;
231
+ type OperationInvoker = OperationInvoker$.OperationInvoker;
232
+ /**
233
+ * Operation invoker - provided by OperationPlugin.
234
+ * @category Capability
235
+ */
236
+ const OperationInvoker: Capability$.InterfaceDef<OperationInvoker$.OperationInvoker>;
237
+ type UndoRegistry = UndoRegistry$.UndoRegistry;
238
+ /**
239
+ * Undo registry - provided by OperationPlugin.
240
+ * @category Capability
241
+ */
242
+ const UndoRegistry: Capability$.InterfaceDef<UndoRegistry$.UndoRegistry>;
243
+ type HistoryTracker = HistoryTracker$.HistoryTracker;
244
+ /**
245
+ * History tracker - provided by OperationPlugin.
246
+ * @category Capability
247
+ */
248
+ const HistoryTracker: Capability$.InterfaceDef<HistoryTracker$.HistoryTracker>;
249
+ /**
250
+ * Get the current value of an atom capability.
251
+ * @example const settings = yield* Common.Capability.getAtomValue(ThreadCapabilities.Settings);
252
+ */
253
+ const getAtomValue: <T>(atomCapability: Capability$.InterfaceDef<Atom.Atom<T>>) => Effect.Effect<T, Error, Capability$.Service>;
254
+ /**
255
+ * Update an atom capability value (requires writable atom).
256
+ * @example yield* Common.Capability.updateAtomValue(ThreadCapabilities.Settings, (s) => ({ ...s, foo: true }));
257
+ */
258
+ const updateAtomValue: <T>(atomCapability: Capability$.InterfaceDef<Atom.Writable<T>>, fn: (current: T) => T) => Effect.Effect<void, Error, Capability$.Service>;
259
+ /**
260
+ * Subscribe to an atom capability.
261
+ * @example const unsubscribe = yield* Common.Capability.subscribeAtom(ThreadCapabilities.Settings, (value) => ...);
262
+ */
263
+ const subscribeAtom: <T>(atomCapability: Capability$.InterfaceDef<Atom.Atom<T>>, callback: (value: T) => void) => Effect.Effect<() => void, Error, Capability$.Service>;
264
+ }
265
+ //# sourceMappingURL=capability.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"capability.d.ts","sourceRoot":"","sources":["../../../../src/common/capability.ts"],"names":[],"mappings":"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"}