@dxos/app-framework 0.8.4-main.f9ba587 → 0.8.4-main.fcfe5033a5

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 (701) hide show
  1. package/.storybook/main.mts +9 -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/capability-EYY7KYU5.mjs +35 -0
  5. package/dist/lib/browser/capability-EYY7KYU5.mjs.map +7 -0
  6. package/dist/lib/browser/capability-W7NPZR6A.mjs +38 -0
  7. package/dist/lib/browser/capability-W7NPZR6A.mjs.map +7 -0
  8. package/dist/lib/browser/chunk-2CKCJ6PN.mjs +79 -0
  9. package/dist/lib/browser/chunk-2CKCJ6PN.mjs.map +7 -0
  10. package/dist/lib/browser/chunk-4D6YAWLP.mjs +393 -0
  11. package/dist/lib/browser/chunk-4D6YAWLP.mjs.map +7 -0
  12. package/dist/lib/browser/chunk-56CEL32L.mjs +963 -0
  13. package/dist/lib/browser/chunk-56CEL32L.mjs.map +7 -0
  14. package/dist/lib/browser/chunk-F7FW2RK2.mjs +167 -0
  15. package/dist/lib/browser/chunk-F7FW2RK2.mjs.map +7 -0
  16. package/dist/lib/browser/chunk-I34GF4NG.mjs +34 -0
  17. package/dist/lib/browser/chunk-I34GF4NG.mjs.map +7 -0
  18. package/dist/lib/browser/chunk-J5LGTIGS.mjs +10 -0
  19. package/dist/lib/browser/chunk-JKWMHZP6.mjs +80 -0
  20. package/dist/lib/browser/chunk-JKWMHZP6.mjs.map +7 -0
  21. package/dist/lib/browser/chunk-QRTB4Q3U.mjs +594 -0
  22. package/dist/lib/browser/chunk-QRTB4Q3U.mjs.map +7 -0
  23. package/dist/lib/browser/chunk-QSXYHXCE.mjs +48 -0
  24. package/dist/lib/browser/chunk-QSXYHXCE.mjs.map +7 -0
  25. package/dist/lib/browser/chunk-RFSO3JRG.mjs +1 -0
  26. package/dist/lib/browser/chunk-RHQGPRWN.mjs +174 -0
  27. package/dist/lib/browser/chunk-RHQGPRWN.mjs.map +7 -0
  28. package/dist/lib/browser/chunk-T3Y4AEKX.mjs +42 -0
  29. package/dist/lib/browser/chunk-T3Y4AEKX.mjs.map +7 -0
  30. package/dist/lib/browser/chunk-TGX63LTL.mjs +8 -0
  31. package/dist/lib/browser/chunk-TGX63LTL.mjs.map +7 -0
  32. package/dist/lib/browser/chunk-ZBA6IH6L.mjs +148 -0
  33. package/dist/lib/browser/chunk-ZBA6IH6L.mjs.map +7 -0
  34. package/dist/lib/browser/cli/index.mjs +90 -0
  35. package/dist/lib/browser/cli/index.mjs.map +7 -0
  36. package/dist/lib/browser/common/activation-events.mjs +24 -0
  37. package/dist/lib/browser/common/capabilities.mjs +46 -0
  38. package/dist/lib/browser/core/activation-event.mjs +20 -0
  39. package/dist/lib/browser/core/activation-event.mjs.map +7 -0
  40. package/dist/lib/browser/core/capability.mjs +30 -0
  41. package/dist/lib/browser/core/capability.mjs.map +7 -0
  42. package/dist/lib/browser/core/plugin-manager.mjs +15 -0
  43. package/dist/lib/browser/core/plugin-manager.mjs.map +7 -0
  44. package/dist/lib/browser/core/plugin.mjs +29 -0
  45. package/dist/lib/browser/core/plugin.mjs.map +7 -0
  46. package/dist/lib/browser/core/url-loader.mjs +16 -0
  47. package/dist/lib/browser/core/url-loader.mjs.map +7 -0
  48. package/dist/lib/browser/index.mjs +91 -156
  49. package/dist/lib/browser/index.mjs.map +4 -4
  50. package/dist/lib/browser/invoker-capability-35BJSGXJ.mjs +43 -0
  51. package/dist/lib/browser/invoker-capability-35BJSGXJ.mjs.map +7 -0
  52. package/dist/lib/browser/meta.json +1 -1
  53. package/dist/lib/browser/testing/index.mjs +248 -51
  54. package/dist/lib/browser/testing/index.mjs.map +4 -4
  55. package/dist/lib/browser/testing/react.mjs +78 -0
  56. package/dist/lib/browser/testing/react.mjs.map +7 -0
  57. package/dist/lib/browser/ui/index.mjs +46 -0
  58. package/dist/lib/browser/ui/index.mjs.map +7 -0
  59. package/dist/lib/node-esm/capability-IY3YIHIO.mjs +39 -0
  60. package/dist/lib/node-esm/capability-IY3YIHIO.mjs.map +7 -0
  61. package/dist/lib/node-esm/capability-RDCTCARS.mjs +36 -0
  62. package/dist/lib/node-esm/capability-RDCTCARS.mjs.map +7 -0
  63. package/dist/lib/node-esm/chunk-42KBWDE4.mjs +80 -0
  64. package/dist/lib/node-esm/chunk-42KBWDE4.mjs.map +7 -0
  65. package/dist/lib/node-esm/chunk-DAYWQOOQ.mjs +149 -0
  66. package/dist/lib/node-esm/chunk-DAYWQOOQ.mjs.map +7 -0
  67. package/dist/lib/node-esm/chunk-DER2JDBT.mjs +175 -0
  68. package/dist/lib/node-esm/chunk-DER2JDBT.mjs.map +7 -0
  69. package/dist/lib/node-esm/chunk-EL3R25OQ.mjs +2 -0
  70. package/dist/lib/node-esm/chunk-EL3R25OQ.mjs.map +7 -0
  71. package/dist/lib/node-esm/chunk-FKE4Z3D6.mjs +10 -0
  72. package/dist/lib/node-esm/chunk-FKE4Z3D6.mjs.map +7 -0
  73. package/dist/lib/node-esm/chunk-G3RTFSNG.mjs +81 -0
  74. package/dist/lib/node-esm/chunk-G3RTFSNG.mjs.map +7 -0
  75. package/dist/lib/node-esm/chunk-HSLMI22Q.mjs +11 -0
  76. package/dist/lib/node-esm/chunk-HSLMI22Q.mjs.map +7 -0
  77. package/dist/lib/node-esm/chunk-JPWVIQ5I.mjs +595 -0
  78. package/dist/lib/node-esm/chunk-JPWVIQ5I.mjs.map +7 -0
  79. package/dist/lib/node-esm/chunk-LX6YJOSO.mjs +394 -0
  80. package/dist/lib/node-esm/chunk-LX6YJOSO.mjs.map +7 -0
  81. package/dist/lib/node-esm/chunk-URWHJQT2.mjs +168 -0
  82. package/dist/lib/node-esm/chunk-URWHJQT2.mjs.map +7 -0
  83. package/dist/lib/node-esm/chunk-VKHGNEDB.mjs +43 -0
  84. package/dist/lib/node-esm/chunk-VKHGNEDB.mjs.map +7 -0
  85. package/dist/lib/node-esm/chunk-W4K4RU4S.mjs +964 -0
  86. package/dist/lib/node-esm/chunk-W4K4RU4S.mjs.map +7 -0
  87. package/dist/lib/node-esm/chunk-WZCSOX5Q.mjs +35 -0
  88. package/dist/lib/node-esm/chunk-WZCSOX5Q.mjs.map +7 -0
  89. package/dist/lib/node-esm/chunk-ZZ7CKK6W.mjs +49 -0
  90. package/dist/lib/node-esm/chunk-ZZ7CKK6W.mjs.map +7 -0
  91. package/dist/lib/node-esm/cli/index.mjs +91 -0
  92. package/dist/lib/node-esm/cli/index.mjs.map +7 -0
  93. package/dist/lib/node-esm/common/activation-events.mjs +25 -0
  94. package/dist/lib/node-esm/common/activation-events.mjs.map +7 -0
  95. package/dist/lib/node-esm/common/capabilities.mjs +47 -0
  96. package/dist/lib/node-esm/common/capabilities.mjs.map +7 -0
  97. package/dist/lib/node-esm/core/activation-event.mjs +21 -0
  98. package/dist/lib/node-esm/core/activation-event.mjs.map +7 -0
  99. package/dist/lib/node-esm/core/capability.mjs +31 -0
  100. package/dist/lib/node-esm/core/capability.mjs.map +7 -0
  101. package/dist/lib/node-esm/core/plugin-manager.mjs +16 -0
  102. package/dist/lib/node-esm/core/plugin-manager.mjs.map +7 -0
  103. package/dist/lib/node-esm/core/plugin.mjs +30 -0
  104. package/dist/lib/node-esm/core/plugin.mjs.map +7 -0
  105. package/dist/lib/node-esm/core/url-loader.mjs +17 -0
  106. package/dist/lib/node-esm/core/url-loader.mjs.map +7 -0
  107. package/dist/lib/node-esm/index.mjs +91 -156
  108. package/dist/lib/node-esm/index.mjs.map +4 -4
  109. package/dist/lib/node-esm/invoker-capability-3QWBSM5Q.mjs +44 -0
  110. package/dist/lib/node-esm/invoker-capability-3QWBSM5Q.mjs.map +7 -0
  111. package/dist/lib/node-esm/meta.json +1 -1
  112. package/dist/lib/node-esm/testing/index.mjs +248 -51
  113. package/dist/lib/node-esm/testing/index.mjs.map +4 -4
  114. package/dist/lib/node-esm/testing/react.mjs +79 -0
  115. package/dist/lib/node-esm/testing/react.mjs.map +7 -0
  116. package/dist/lib/node-esm/ui/index.mjs +47 -0
  117. package/dist/lib/node-esm/ui/index.mjs.map +7 -0
  118. package/dist/plugin/node-esm/index.mjs +730 -0
  119. package/dist/plugin/node-esm/index.mjs.map +7 -0
  120. package/dist/plugin/node-esm/meta.json +1 -0
  121. package/dist/types/src/cli/cli.d.ts +39 -0
  122. package/dist/types/src/cli/cli.d.ts.map +1 -0
  123. package/dist/types/src/cli/index.d.ts +2 -0
  124. package/dist/types/src/cli/index.d.ts.map +1 -0
  125. package/dist/types/src/common/activation-events.d.ts +27 -0
  126. package/dist/types/src/common/activation-events.d.ts.map +1 -0
  127. package/dist/types/src/common/capabilities.d.ts +109 -121
  128. package/dist/types/src/common/capabilities.d.ts.map +1 -1
  129. package/dist/types/src/common/index.d.ts +4 -8
  130. package/dist/types/src/common/index.d.ts.map +1 -1
  131. package/dist/types/src/common/operations.d.ts +19 -0
  132. package/dist/types/src/common/operations.d.ts.map +1 -0
  133. package/dist/types/src/common/translations.d.ts +8 -8
  134. package/dist/types/src/common/translations.d.ts.map +1 -1
  135. package/dist/types/src/context.d.ts +5 -0
  136. package/dist/types/src/context.d.ts.map +1 -0
  137. package/dist/types/src/core/{events.d.ts → activation-event.d.ts} +7 -7
  138. package/dist/types/src/core/activation-event.d.ts.map +1 -0
  139. package/dist/types/src/core/capability-manager.d.ts +48 -0
  140. package/dist/types/src/core/capability-manager.d.ts.map +1 -0
  141. package/dist/types/src/core/capability-manager.test.d.ts +2 -0
  142. package/dist/types/src/core/capability-manager.test.d.ts.map +1 -0
  143. package/dist/types/src/core/capability.d.ts +156 -0
  144. package/dist/types/src/core/capability.d.ts.map +1 -0
  145. package/dist/types/src/core/index.d.ts +6 -4
  146. package/dist/types/src/core/index.d.ts.map +1 -1
  147. package/dist/types/src/core/plugin-manager.d.ts +73 -0
  148. package/dist/types/src/core/plugin-manager.d.ts.map +1 -0
  149. package/dist/types/src/core/plugin-manager.test.d.ts +2 -0
  150. package/dist/types/src/core/plugin-manager.test.d.ts.map +1 -0
  151. package/dist/types/src/core/plugin.d.ts +124 -37
  152. package/dist/types/src/core/plugin.d.ts.map +1 -1
  153. package/dist/types/src/core/url-loader.d.ts +42 -0
  154. package/dist/types/src/core/url-loader.d.ts.map +1 -0
  155. package/dist/types/src/core/url-loader.test.d.ts +2 -0
  156. package/dist/types/src/core/url-loader.test.d.ts.map +1 -0
  157. package/dist/types/src/index.d.ts +3 -4
  158. package/dist/types/src/index.d.ts.map +1 -1
  159. package/dist/types/src/plugin-operation/OperationPlugin.d.ts +3 -0
  160. package/dist/types/src/plugin-operation/OperationPlugin.d.ts.map +1 -0
  161. package/dist/types/src/plugin-operation/history/capability.d.ts +7 -0
  162. package/dist/types/src/plugin-operation/history/capability.d.ts.map +1 -0
  163. package/dist/types/src/plugin-operation/history/errors.d.ts +32 -0
  164. package/dist/types/src/plugin-operation/history/errors.d.ts.map +1 -0
  165. package/dist/types/src/plugin-operation/history/history-tracker.d.ts +18 -0
  166. package/dist/types/src/plugin-operation/history/history-tracker.d.ts.map +1 -0
  167. package/dist/types/src/plugin-operation/history/history-tracker.test.d.ts +2 -0
  168. package/dist/types/src/plugin-operation/history/history-tracker.test.d.ts.map +1 -0
  169. package/dist/types/src/plugin-operation/history/index.d.ts +6 -0
  170. package/dist/types/src/plugin-operation/history/index.d.ts.map +1 -0
  171. package/dist/types/src/plugin-operation/history/types.d.ts +13 -0
  172. package/dist/types/src/plugin-operation/history/types.d.ts.map +1 -0
  173. package/dist/types/src/plugin-operation/history/undo-mapping.d.ts +101 -0
  174. package/dist/types/src/plugin-operation/history/undo-mapping.d.ts.map +1 -0
  175. package/dist/types/src/plugin-operation/history/undo-registry.d.ts +23 -0
  176. package/dist/types/src/plugin-operation/history/undo-registry.d.ts.map +1 -0
  177. package/dist/types/src/plugin-operation/history/undo-registry.test.d.ts +2 -0
  178. package/dist/types/src/plugin-operation/history/undo-registry.test.d.ts.map +1 -0
  179. package/dist/types/src/plugin-operation/index.d.ts +3 -0
  180. package/dist/types/src/plugin-operation/index.d.ts.map +1 -0
  181. package/dist/types/src/plugin-operation/invoker-capability.d.ts +6 -0
  182. package/dist/types/src/plugin-operation/invoker-capability.d.ts.map +1 -0
  183. package/dist/types/src/plugin-operation/meta.d.ts +3 -0
  184. package/dist/types/src/plugin-operation/meta.d.ts.map +1 -0
  185. package/dist/types/src/plugin-operation/testing.d.ts +58 -0
  186. package/dist/types/src/plugin-operation/testing.d.ts.map +1 -0
  187. package/dist/types/src/plugin-runtime/RuntimePlugin.d.ts +3 -0
  188. package/dist/types/src/plugin-runtime/RuntimePlugin.d.ts.map +1 -0
  189. package/dist/types/src/plugin-runtime/capability.d.ts +6 -0
  190. package/dist/types/src/plugin-runtime/capability.d.ts.map +1 -0
  191. package/dist/types/src/plugin-runtime/index.d.ts +2 -0
  192. package/dist/types/src/plugin-runtime/index.d.ts.map +1 -0
  193. package/dist/types/src/plugin-runtime/meta.d.ts +3 -0
  194. package/dist/types/src/plugin-runtime/meta.d.ts.map +1 -0
  195. package/dist/types/src/testing/harness.d.ts +67 -0
  196. package/dist/types/src/testing/harness.d.ts.map +1 -0
  197. package/dist/types/src/testing/index.d.ts +2 -0
  198. package/dist/types/src/testing/index.d.ts.map +1 -1
  199. package/dist/types/src/testing/react.d.ts +27 -0
  200. package/dist/types/src/testing/react.d.ts.map +1 -0
  201. package/dist/types/src/testing/react.test.d.ts +2 -0
  202. package/dist/types/src/testing/react.test.d.ts.map +1 -0
  203. package/dist/types/src/testing/service.d.ts +8 -0
  204. package/dist/types/src/testing/service.d.ts.map +1 -0
  205. package/dist/types/src/testing/withPluginManager.d.ts +11 -10
  206. package/dist/types/src/testing/withPluginManager.d.ts.map +1 -1
  207. package/dist/types/src/testing/withPluginManager.stories.d.ts +9 -3
  208. package/dist/types/src/testing/withPluginManager.stories.d.ts.map +1 -1
  209. package/dist/types/src/ui/components/App/App.d.ts +9 -0
  210. package/dist/types/src/ui/components/App/App.d.ts.map +1 -0
  211. package/dist/types/src/ui/components/App/App.stories.d.ts +19 -0
  212. package/dist/types/src/ui/components/App/App.stories.d.ts.map +1 -0
  213. package/dist/types/src/ui/components/App/index.d.ts +2 -0
  214. package/dist/types/src/ui/components/App/index.d.ts.map +1 -0
  215. package/dist/types/src/ui/components/PluginManager/PluginManagerContext.stories.d.ts +13 -0
  216. package/dist/types/src/ui/components/PluginManager/PluginManagerContext.stories.d.ts.map +1 -0
  217. package/dist/types/src/ui/components/PluginManager/PluginManagerProvider.d.ts +10 -0
  218. package/dist/types/src/ui/components/PluginManager/PluginManagerProvider.d.ts.map +1 -0
  219. package/dist/types/src/ui/components/PluginManager/index.d.ts +2 -0
  220. package/dist/types/src/ui/components/PluginManager/index.d.ts.map +1 -0
  221. package/dist/types/src/ui/components/Surface/SurfaceComponent.d.ts +24 -0
  222. package/dist/types/src/ui/components/Surface/SurfaceComponent.d.ts.map +1 -0
  223. package/dist/types/src/ui/components/Surface/SurfaceComponent.stories.d.ts +14 -0
  224. package/dist/types/src/ui/components/Surface/SurfaceComponent.stories.d.ts.map +1 -0
  225. package/dist/types/src/ui/components/Surface/SurfaceInfo.d.ts +11 -0
  226. package/dist/types/src/ui/components/Surface/SurfaceInfo.d.ts.map +1 -0
  227. package/dist/types/src/ui/components/Surface/SurfaceProfilerContext.d.ts +48 -0
  228. package/dist/types/src/ui/components/Surface/SurfaceProfilerContext.d.ts.map +1 -0
  229. package/dist/types/src/ui/components/Surface/context.d.ts +5 -0
  230. package/dist/types/src/ui/components/Surface/context.d.ts.map +1 -0
  231. package/dist/types/src/ui/components/Surface/index.d.ts +36 -0
  232. package/dist/types/src/ui/components/Surface/index.d.ts.map +1 -0
  233. package/dist/types/src/ui/components/Surface/types.d.ts +197 -0
  234. package/dist/types/src/ui/components/Surface/types.d.ts.map +1 -0
  235. package/dist/types/src/ui/components/Surface/types.test.d.ts +2 -0
  236. package/dist/types/src/ui/components/Surface/types.test.d.ts.map +1 -0
  237. package/dist/types/src/ui/components/index.d.ts +4 -0
  238. package/dist/types/src/ui/components/index.d.ts.map +1 -0
  239. package/dist/types/src/ui/hooks/index.d.ts +6 -0
  240. package/dist/types/src/ui/hooks/index.d.ts.map +1 -0
  241. package/dist/types/src/ui/hooks/useApp.d.ts +62 -0
  242. package/dist/types/src/ui/hooks/useApp.d.ts.map +1 -0
  243. package/dist/types/src/ui/hooks/useApp.test.d.ts +2 -0
  244. package/dist/types/src/ui/hooks/useApp.test.d.ts.map +1 -0
  245. package/dist/types/src/ui/hooks/useCapabilities.d.ts +31 -0
  246. package/dist/types/src/ui/hooks/useCapabilities.d.ts.map +1 -0
  247. package/dist/types/src/ui/hooks/useLoading.d.ts +18 -0
  248. package/dist/types/src/ui/hooks/useLoading.d.ts.map +1 -0
  249. package/dist/types/src/ui/hooks/useSettingsState.d.ts +10 -0
  250. package/dist/types/src/ui/hooks/useSettingsState.d.ts.map +1 -0
  251. package/dist/types/src/ui/hooks/useSurface.d.ts +3 -0
  252. package/dist/types/src/ui/hooks/useSurface.d.ts.map +1 -0
  253. package/dist/types/src/ui/index.d.ts +3 -0
  254. package/dist/types/src/ui/index.d.ts.map +1 -0
  255. package/dist/types/src/vite-plugin/composer-plugin.d.ts +34 -0
  256. package/dist/types/src/vite-plugin/composer-plugin.d.ts.map +1 -0
  257. package/dist/types/src/vite-plugin/import-map-plugin.d.ts +16 -0
  258. package/dist/types/src/vite-plugin/import-map-plugin.d.ts.map +1 -0
  259. package/dist/types/src/vite-plugin/index.d.ts +4 -0
  260. package/dist/types/src/vite-plugin/index.d.ts.map +1 -0
  261. package/dist/types/src/vite-plugin/manifest.d.ts +16 -0
  262. package/dist/types/src/vite-plugin/manifest.d.ts.map +1 -0
  263. package/dist/types/src/vite-plugin/manifest.test.d.ts +2 -0
  264. package/dist/types/src/vite-plugin/manifest.test.d.ts.map +1 -0
  265. package/dist/types/src/vite-plugin/packages.d.ts +13 -0
  266. package/dist/types/src/vite-plugin/packages.d.ts.map +1 -0
  267. package/dist/types/tsconfig.tsbuildinfo +1 -1
  268. package/moon.yml +26 -3
  269. package/package.json +144 -44
  270. package/src/cli/cli.ts +107 -0
  271. package/src/{playground/layout → cli}/index.ts +1 -1
  272. package/src/common/activation-events.ts +44 -0
  273. package/src/common/capabilities.ts +168 -109
  274. package/src/common/index.ts +4 -8
  275. package/src/common/operations.ts +35 -0
  276. package/src/common/translations.ts +18 -10
  277. package/src/context.ts +9 -0
  278. package/src/core/{events.ts → activation-event.ts} +10 -7
  279. package/src/core/capability-manager.test.ts +151 -0
  280. package/src/core/capability-manager.ts +192 -0
  281. package/src/core/capability.ts +247 -0
  282. package/src/core/index.ts +6 -4
  283. package/src/core/plugin-manager.test.ts +1113 -0
  284. package/src/core/plugin-manager.ts +883 -0
  285. package/src/core/plugin.ts +261 -43
  286. package/src/core/url-loader.test.ts +112 -0
  287. package/src/core/url-loader.ts +178 -0
  288. package/src/helpers.test.ts +1 -1
  289. package/src/index.ts +3 -4
  290. package/src/plugin-operation/OperationPlugin.ts +24 -0
  291. package/src/plugin-operation/history/capability.ts +36 -0
  292. package/src/plugin-operation/history/errors.ts +7 -0
  293. package/src/plugin-operation/history/history-tracker.test.ts +373 -0
  294. package/src/plugin-operation/history/history-tracker.ts +128 -0
  295. package/src/plugin-operation/history/index.ts +9 -0
  296. package/src/plugin-operation/history/types.ts +17 -0
  297. package/src/plugin-operation/history/undo-mapping.ts +135 -0
  298. package/src/plugin-operation/history/undo-registry.test.ts +72 -0
  299. package/src/plugin-operation/history/undo-registry.ts +54 -0
  300. package/src/plugin-operation/index.ts +6 -0
  301. package/src/plugin-operation/invoker-capability.ts +54 -0
  302. package/src/plugin-operation/meta.ts +11 -0
  303. package/src/plugin-operation/testing.ts +154 -0
  304. package/src/plugin-runtime/RuntimePlugin.ts +19 -0
  305. package/src/plugin-runtime/capability.ts +53 -0
  306. package/src/{playground/debug → plugin-runtime}/index.ts +1 -1
  307. package/src/plugin-runtime/meta.ts +11 -0
  308. package/src/testing/harness.ts +229 -0
  309. package/src/testing/index.ts +2 -0
  310. package/src/testing/react.test.tsx +48 -0
  311. package/src/testing/react.tsx +113 -0
  312. package/src/testing/service.ts +52 -0
  313. package/src/testing/withPluginManager.stories.tsx +14 -11
  314. package/src/testing/withPluginManager.tsx +78 -54
  315. package/src/ui/components/App/App.stories.tsx +92 -0
  316. package/src/ui/components/App/App.tsx +58 -0
  317. package/src/{playground/logger → ui/components/App}/index.ts +1 -1
  318. package/src/ui/components/PluginManager/PluginManagerContext.stories.tsx +183 -0
  319. package/src/{react → ui/components/PluginManager}/PluginManagerProvider.ts +3 -3
  320. package/src/ui/components/PluginManager/index.ts +5 -0
  321. package/src/ui/components/Surface/SurfaceComponent.stories.tsx +144 -0
  322. package/src/ui/components/Surface/SurfaceComponent.tsx +303 -0
  323. package/src/ui/components/Surface/SurfaceInfo.tsx +107 -0
  324. package/src/ui/components/Surface/SurfaceProfilerContext.tsx +207 -0
  325. package/src/ui/components/Surface/context.ts +12 -0
  326. package/src/ui/components/Surface/index.ts +54 -0
  327. package/src/ui/components/Surface/types.test.ts +126 -0
  328. package/src/ui/components/Surface/types.ts +269 -0
  329. package/src/ui/components/index.ts +7 -0
  330. package/src/ui/hooks/index.ts +9 -0
  331. package/src/ui/hooks/useApp.test.tsx +159 -0
  332. package/src/ui/hooks/useApp.tsx +289 -0
  333. package/src/ui/hooks/useCapabilities.ts +67 -0
  334. package/src/ui/hooks/useLoading.tsx +68 -0
  335. package/src/ui/hooks/useSettingsState.ts +26 -0
  336. package/src/ui/hooks/useSurface.ts +13 -0
  337. package/src/ui/index.ts +6 -0
  338. package/src/vite-plugin/composer-plugin.ts +284 -0
  339. package/src/vite-plugin/import-map-plugin.ts +490 -0
  340. package/src/vite-plugin/index.ts +7 -0
  341. package/src/vite-plugin/manifest.test.ts +23 -0
  342. package/src/vite-plugin/manifest.ts +20 -0
  343. package/src/vite-plugin/packages.ts +181 -0
  344. package/tsconfig.json +15 -25
  345. package/tsconfig.node.json +2 -4
  346. package/typedoc.json +2 -4
  347. package/vitest.config.ts +8 -6
  348. package/.eslintrc.cjs +0 -9
  349. package/.swc/plugins/v7_linux_x86_64_13.0.0/f45bdff002284d9e8f9ef3f0be909de12da36c049cbcf261ac78fc00abb09a2d +0 -0
  350. package/.swc/plugins/v7_linux_x86_64_13.0.0/fce1bdb8e20a094e4af08bad09cc81497ed0e2e7c51223b07d371063cca18429 +0 -0
  351. package/dist/lib/browser/app-graph-builder-BGGXLD6T.mjs +0 -137
  352. package/dist/lib/browser/app-graph-builder-BGGXLD6T.mjs.map +0 -7
  353. package/dist/lib/browser/chunk-2636QSIK.mjs +0 -1518
  354. package/dist/lib/browser/chunk-2636QSIK.mjs.map +0 -7
  355. package/dist/lib/browser/chunk-DHZB7HG7.mjs +0 -413
  356. package/dist/lib/browser/chunk-DHZB7HG7.mjs.map +0 -7
  357. package/dist/lib/browser/chunk-ORWHM7CO.mjs +0 -32
  358. package/dist/lib/browser/chunk-ORWHM7CO.mjs.map +0 -7
  359. package/dist/lib/browser/intent-dispatcher-TWKB22NI.mjs +0 -11
  360. package/dist/lib/browser/intent-resolver-O67UANYP.mjs +0 -39
  361. package/dist/lib/browser/intent-resolver-O67UANYP.mjs.map +0 -7
  362. package/dist/lib/browser/store-LFKDWHUQ.mjs +0 -30
  363. package/dist/lib/browser/store-LFKDWHUQ.mjs.map +0 -7
  364. package/dist/lib/browser/worker.mjs +0 -79
  365. package/dist/lib/node-esm/app-graph-builder-QHIJUYYW.mjs +0 -138
  366. package/dist/lib/node-esm/app-graph-builder-QHIJUYYW.mjs.map +0 -7
  367. package/dist/lib/node-esm/chunk-NJAFK626.mjs +0 -414
  368. package/dist/lib/node-esm/chunk-NJAFK626.mjs.map +0 -7
  369. package/dist/lib/node-esm/chunk-UMZQERLE.mjs +0 -34
  370. package/dist/lib/node-esm/chunk-UMZQERLE.mjs.map +0 -7
  371. package/dist/lib/node-esm/chunk-VSKRV3NW.mjs +0 -1520
  372. package/dist/lib/node-esm/chunk-VSKRV3NW.mjs.map +0 -7
  373. package/dist/lib/node-esm/intent-dispatcher-5PRM3KGH.mjs +0 -12
  374. package/dist/lib/node-esm/intent-resolver-K3D4BXQQ.mjs +0 -40
  375. package/dist/lib/node-esm/intent-resolver-K3D4BXQQ.mjs.map +0 -7
  376. package/dist/lib/node-esm/store-53XDUBMD.mjs +0 -31
  377. package/dist/lib/node-esm/store-53XDUBMD.mjs.map +0 -7
  378. package/dist/lib/node-esm/worker.mjs +0 -80
  379. package/dist/types/src/App.d.ts +0 -43
  380. package/dist/types/src/App.d.ts.map +0 -1
  381. package/dist/types/src/common/collaboration.d.ts +0 -19
  382. package/dist/types/src/common/collaboration.d.ts.map +0 -1
  383. package/dist/types/src/common/events.d.ts +0 -52
  384. package/dist/types/src/common/events.d.ts.map +0 -1
  385. package/dist/types/src/common/file.d.ts +0 -14
  386. package/dist/types/src/common/file.d.ts.map +0 -1
  387. package/dist/types/src/common/graph.d.ts +0 -21
  388. package/dist/types/src/common/graph.d.ts.map +0 -1
  389. package/dist/types/src/common/layout.d.ts +0 -281
  390. package/dist/types/src/common/layout.d.ts.map +0 -1
  391. package/dist/types/src/common/surface.d.ts +0 -65
  392. package/dist/types/src/common/surface.d.ts.map +0 -1
  393. package/dist/types/src/core/capabilities.d.ts +0 -114
  394. package/dist/types/src/core/capabilities.d.ts.map +0 -1
  395. package/dist/types/src/core/capabilities.test.d.ts +0 -2
  396. package/dist/types/src/core/capabilities.test.d.ts.map +0 -1
  397. package/dist/types/src/core/events.d.ts.map +0 -1
  398. package/dist/types/src/core/manager.d.ts +0 -122
  399. package/dist/types/src/core/manager.d.ts.map +0 -1
  400. package/dist/types/src/core/manager.test.d.ts +0 -2
  401. package/dist/types/src/core/manager.test.d.ts.map +0 -1
  402. package/dist/types/src/playground/debug/Debug.d.ts +0 -6
  403. package/dist/types/src/playground/debug/Debug.d.ts.map +0 -1
  404. package/dist/types/src/playground/debug/index.d.ts +0 -2
  405. package/dist/types/src/playground/debug/index.d.ts.map +0 -1
  406. package/dist/types/src/playground/debug/plugin.d.ts +0 -2
  407. package/dist/types/src/playground/debug/plugin.d.ts.map +0 -1
  408. package/dist/types/src/playground/generator/Main.d.ts +0 -6
  409. package/dist/types/src/playground/generator/Main.d.ts.map +0 -1
  410. package/dist/types/src/playground/generator/Toolbar.d.ts +0 -6
  411. package/dist/types/src/playground/generator/Toolbar.d.ts.map +0 -1
  412. package/dist/types/src/playground/generator/generator.d.ts +0 -7
  413. package/dist/types/src/playground/generator/generator.d.ts.map +0 -1
  414. package/dist/types/src/playground/generator/index.d.ts +0 -3
  415. package/dist/types/src/playground/generator/index.d.ts.map +0 -1
  416. package/dist/types/src/playground/generator/plugin.d.ts +0 -2
  417. package/dist/types/src/playground/generator/plugin.d.ts.map +0 -1
  418. package/dist/types/src/playground/layout/Layout.d.ts +0 -8
  419. package/dist/types/src/playground/layout/Layout.d.ts.map +0 -1
  420. package/dist/types/src/playground/layout/index.d.ts +0 -2
  421. package/dist/types/src/playground/layout/index.d.ts.map +0 -1
  422. package/dist/types/src/playground/layout/plugin.d.ts +0 -2
  423. package/dist/types/src/playground/layout/plugin.d.ts.map +0 -1
  424. package/dist/types/src/playground/logger/Toolbar.d.ts +0 -6
  425. package/dist/types/src/playground/logger/Toolbar.d.ts.map +0 -1
  426. package/dist/types/src/playground/logger/index.d.ts +0 -2
  427. package/dist/types/src/playground/logger/index.d.ts.map +0 -1
  428. package/dist/types/src/playground/logger/plugin.d.ts +0 -2
  429. package/dist/types/src/playground/logger/plugin.d.ts.map +0 -1
  430. package/dist/types/src/playground/logger/schema.d.ts +0 -13
  431. package/dist/types/src/playground/logger/schema.d.ts.map +0 -1
  432. package/dist/types/src/playground/playground.stories.d.ts +0 -10
  433. package/dist/types/src/playground/playground.stories.d.ts.map +0 -1
  434. package/dist/types/src/plugin-intent/IntentPlugin.d.ts +0 -2
  435. package/dist/types/src/plugin-intent/IntentPlugin.d.ts.map +0 -1
  436. package/dist/types/src/plugin-intent/actions.d.ts +0 -38
  437. package/dist/types/src/plugin-intent/actions.d.ts.map +0 -1
  438. package/dist/types/src/plugin-intent/errors.d.ts +0 -16
  439. package/dist/types/src/plugin-intent/errors.d.ts.map +0 -1
  440. package/dist/types/src/plugin-intent/index.d.ts +0 -5
  441. package/dist/types/src/plugin-intent/index.d.ts.map +0 -1
  442. package/dist/types/src/plugin-intent/intent-dispatcher.d.ts +0 -139
  443. package/dist/types/src/plugin-intent/intent-dispatcher.d.ts.map +0 -1
  444. package/dist/types/src/plugin-intent/intent-dispatcher.test.d.ts +0 -2
  445. package/dist/types/src/plugin-intent/intent-dispatcher.test.d.ts.map +0 -1
  446. package/dist/types/src/plugin-intent/intent.d.ts +0 -63
  447. package/dist/types/src/plugin-intent/intent.d.ts.map +0 -1
  448. package/dist/types/src/plugin-settings/SettingsPlugin.d.ts +0 -2
  449. package/dist/types/src/plugin-settings/SettingsPlugin.d.ts.map +0 -1
  450. package/dist/types/src/plugin-settings/actions.d.ts +0 -27
  451. package/dist/types/src/plugin-settings/actions.d.ts.map +0 -1
  452. package/dist/types/src/plugin-settings/app-graph-builder.d.ts +0 -4
  453. package/dist/types/src/plugin-settings/app-graph-builder.d.ts.map +0 -1
  454. package/dist/types/src/plugin-settings/index.d.ts +0 -3
  455. package/dist/types/src/plugin-settings/index.d.ts.map +0 -1
  456. package/dist/types/src/plugin-settings/intent-resolver.d.ts +0 -4
  457. package/dist/types/src/plugin-settings/intent-resolver.d.ts.map +0 -1
  458. package/dist/types/src/plugin-settings/store.d.ts +0 -5
  459. package/dist/types/src/plugin-settings/store.d.ts.map +0 -1
  460. package/dist/types/src/plugin-settings/translations.d.ts +0 -10
  461. package/dist/types/src/plugin-settings/translations.d.ts.map +0 -1
  462. package/dist/types/src/react/ErrorBoundary.d.ts +0 -31
  463. package/dist/types/src/react/ErrorBoundary.d.ts.map +0 -1
  464. package/dist/types/src/react/IntentContext.d.ts +0 -8
  465. package/dist/types/src/react/IntentContext.d.ts.map +0 -1
  466. package/dist/types/src/react/PluginManagerProvider.d.ts +0 -10
  467. package/dist/types/src/react/PluginManagerProvider.d.ts.map +0 -1
  468. package/dist/types/src/react/Surface.d.ts +0 -12
  469. package/dist/types/src/react/Surface.d.ts.map +0 -1
  470. package/dist/types/src/react/Surface.stories.d.ts +0 -16
  471. package/dist/types/src/react/Surface.stories.d.ts.map +0 -1
  472. package/dist/types/src/react/common.d.ts +0 -13
  473. package/dist/types/src/react/common.d.ts.map +0 -1
  474. package/dist/types/src/react/index.d.ts +0 -7
  475. package/dist/types/src/react/index.d.ts.map +0 -1
  476. package/dist/types/src/react/useCapabilities.d.ts +0 -13
  477. package/dist/types/src/react/useCapabilities.d.ts.map +0 -1
  478. package/dist/types/src/react/useIntentResolver.d.ts +0 -3
  479. package/dist/types/src/react/useIntentResolver.d.ts.map +0 -1
  480. package/dist/types/src/worker.d.ts +0 -4
  481. package/dist/types/src/worker.d.ts.map +0 -1
  482. package/src/App.tsx +0 -276
  483. package/src/common/collaboration.ts +0 -21
  484. package/src/common/events.ts +0 -77
  485. package/src/common/file.ts +0 -22
  486. package/src/common/graph.ts +0 -30
  487. package/src/common/layout.ts +0 -278
  488. package/src/common/surface.ts +0 -86
  489. package/src/core/capabilities.test.ts +0 -136
  490. package/src/core/capabilities.ts +0 -254
  491. package/src/core/manager.test.ts +0 -515
  492. package/src/core/manager.ts +0 -519
  493. package/src/playground/debug/Debug.tsx +0 -39
  494. package/src/playground/debug/plugin.ts +0 -17
  495. package/src/playground/generator/Main.tsx +0 -71
  496. package/src/playground/generator/Toolbar.tsx +0 -46
  497. package/src/playground/generator/generator.ts +0 -48
  498. package/src/playground/generator/index.ts +0 -6
  499. package/src/playground/generator/plugin.ts +0 -23
  500. package/src/playground/layout/Layout.tsx +0 -33
  501. package/src/playground/layout/plugin.ts +0 -17
  502. package/src/playground/logger/Toolbar.tsx +0 -29
  503. package/src/playground/logger/plugin.ts +0 -36
  504. package/src/playground/logger/schema.ts +0 -12
  505. package/src/playground/playground.stories.tsx +0 -42
  506. package/src/plugin-intent/IntentPlugin.ts +0 -20
  507. package/src/plugin-intent/actions.ts +0 -33
  508. package/src/plugin-intent/errors.ts +0 -39
  509. package/src/plugin-intent/index.ts +0 -8
  510. package/src/plugin-intent/intent-dispatcher.test.ts +0 -279
  511. package/src/plugin-intent/intent-dispatcher.ts +0 -333
  512. package/src/plugin-intent/intent.ts +0 -154
  513. package/src/plugin-settings/SettingsPlugin.ts +0 -35
  514. package/src/plugin-settings/actions.ts +0 -29
  515. package/src/plugin-settings/app-graph-builder.ts +0 -157
  516. package/src/plugin-settings/index.ts +0 -6
  517. package/src/plugin-settings/intent-resolver.ts +0 -34
  518. package/src/plugin-settings/store.ts +0 -33
  519. package/src/plugin-settings/translations.ts +0 -19
  520. package/src/react/ErrorBoundary.tsx +0 -45
  521. package/src/react/IntentContext.tsx +0 -34
  522. package/src/react/Surface.stories.tsx +0 -96
  523. package/src/react/Surface.tsx +0 -77
  524. package/src/react/common.ts +0 -12
  525. package/src/react/index.ts +0 -10
  526. package/src/react/useCapabilities.ts +0 -30
  527. package/src/react/useIntentResolver.ts +0 -22
  528. package/src/worker.ts +0 -11
  529. package/typedoc/.nojekyll +0 -1
  530. package/typedoc/assets/hierarchy.js +0 -1
  531. package/typedoc/assets/highlight.css +0 -106
  532. package/typedoc/assets/icons.js +0 -18
  533. package/typedoc/assets/icons.svg +0 -1
  534. package/typedoc/assets/main.js +0 -60
  535. package/typedoc/assets/navigation.js +0 -1
  536. package/typedoc/assets/search.js +0 -1
  537. package/typedoc/assets/style.css +0 -1640
  538. package/typedoc/classes/CollaborationActions.InsertContent.html +0 -421
  539. package/typedoc/classes/ErrorBoundary.html +0 -125
  540. package/typedoc/classes/IntentAction.ShowUndo.html +0 -227
  541. package/typedoc/classes/IntentAction.Track.html +0 -266
  542. package/typedoc/classes/LayoutAction.AddToast.html +0 -265
  543. package/typedoc/classes/LayoutAction.Close.html +0 -382
  544. package/typedoc/classes/LayoutAction.Expose.html +0 -265
  545. package/typedoc/classes/LayoutAction.Open.html +0 -1123
  546. package/typedoc/classes/LayoutAction.RevertWorkspace.html +0 -343
  547. package/typedoc/classes/LayoutAction.ScrollIntoView.html +0 -460
  548. package/typedoc/classes/LayoutAction.Set.html +0 -460
  549. package/typedoc/classes/LayoutAction.SetLayoutMode.html +0 -499
  550. package/typedoc/classes/LayoutAction.SwitchWorkspace.html +0 -265
  551. package/typedoc/classes/LayoutAction.UpdateComplementary.html +0 -616
  552. package/typedoc/classes/LayoutAction.UpdateDialog.html +0 -1123
  553. package/typedoc/classes/LayoutAction.UpdateLayout.html +0 -461
  554. package/typedoc/classes/LayoutAction.UpdatePopover.html +0 -1435
  555. package/typedoc/classes/LayoutAction.UpdateSidebar.html +0 -616
  556. package/typedoc/classes/Plugin.html +0 -6
  557. package/typedoc/classes/PluginContext.html +0 -38
  558. package/typedoc/classes/PluginManager.html +0 -43
  559. package/typedoc/classes/PluginModule.html +0 -18
  560. package/typedoc/classes/SettingsAction.Open.html +0 -226
  561. package/typedoc/classes/SettingsAction.OpenPluginRegistry.html +0 -265
  562. package/typedoc/functions/Events.createStateEvent.html +0 -2
  563. package/typedoc/functions/IntentPlugin.html +0 -1
  564. package/typedoc/functions/SettingsPlugin.html +0 -1
  565. package/typedoc/functions/allOf.html +0 -2
  566. package/typedoc/functions/chain.html +0 -3
  567. package/typedoc/functions/contributes.html +0 -2
  568. package/typedoc/functions/createDispatcher.html +0 -3
  569. package/typedoc/functions/createIntent.html +0 -6
  570. package/typedoc/functions/createResolver.html +0 -2
  571. package/typedoc/functions/createSurface.html +0 -2
  572. package/typedoc/functions/defineCapability.html +0 -2
  573. package/typedoc/functions/defineEvent.html +0 -2
  574. package/typedoc/functions/defineModule.html +0 -2
  575. package/typedoc/functions/definePlugin.html +0 -2
  576. package/typedoc/functions/eventKey.html +0 -2
  577. package/typedoc/functions/getEvents.html +0 -2
  578. package/typedoc/functions/isAllOf.html +0 -2
  579. package/typedoc/functions/isOneOf.html +0 -2
  580. package/typedoc/functions/isSurfaceAvailable.html +0 -2
  581. package/typedoc/functions/lazy.html +0 -2
  582. package/typedoc/functions/oneOf.html +0 -2
  583. package/typedoc/functions/useApp.html +0 -6
  584. package/typedoc/functions/useAppGraph.html +0 -1
  585. package/typedoc/functions/useCapabilities.html +0 -3
  586. package/typedoc/functions/useCapability.html +0 -4
  587. package/typedoc/functions/useIntentDispatcher.html +0 -1
  588. package/typedoc/functions/useIntentResolver.html +0 -1
  589. package/typedoc/functions/useLayout.html +0 -1
  590. package/typedoc/functions/usePluginManager.html +0 -2
  591. package/typedoc/hierarchy.html +0 -1
  592. package/typedoc/index.html +0 -12
  593. package/typedoc/interfaces/LayoutAction.Toast.html +0 -10
  594. package/typedoc/media/LICENSE +0 -8
  595. package/typedoc/modules/Capabilities.html +0 -1
  596. package/typedoc/modules/CollaborationActions.html +0 -1
  597. package/typedoc/modules/Events.html +0 -1
  598. package/typedoc/modules/IntentAction.html +0 -1
  599. package/typedoc/modules/LayoutAction.html +0 -2
  600. package/typedoc/modules/SettingsAction.html +0 -1
  601. package/typedoc/modules.html +0 -1
  602. package/typedoc/types/ActivationEvent.html +0 -8
  603. package/typedoc/types/ActivationEvents.html +0 -2
  604. package/typedoc/types/AnyCapability.html +0 -1
  605. package/typedoc/types/AnyIntent.html +0 -1
  606. package/typedoc/types/AnyIntentChain.html +0 -1
  607. package/typedoc/types/AnyIntentEffectResult.html +0 -1
  608. package/typedoc/types/AnyIntentResolver.html +0 -1
  609. package/typedoc/types/AnyIntentResult.html +0 -1
  610. package/typedoc/types/Capabilities.FileUploader.html +0 -1
  611. package/typedoc/types/Capabilities.IntentResolver.html +0 -1
  612. package/typedoc/types/Capabilities.Layout.html +0 -1
  613. package/typedoc/types/Capabilities.Metadata.html +0 -1
  614. package/typedoc/types/Capabilities.ReactContext.html +0 -1
  615. package/typedoc/types/Capabilities.ReactRoot.html +0 -1
  616. package/typedoc/types/Capabilities.ReactSurface.html +0 -1
  617. package/typedoc/types/Capabilities.Settings.html +0 -4
  618. package/typedoc/types/Capability.html +0 -9
  619. package/typedoc/types/CreateAppOptions.html +0 -10
  620. package/typedoc/types/FileInfo.html +0 -1
  621. package/typedoc/types/Intent.html +0 -10
  622. package/typedoc/types/IntentChain.html +0 -6
  623. package/typedoc/types/IntentContext.html +0 -5
  624. package/typedoc/types/IntentData.html +0 -1
  625. package/typedoc/types/IntentDispatcher.html +0 -2
  626. package/typedoc/types/IntentDispatcherResult.html +0 -2
  627. package/typedoc/types/IntentEffectDefinition.html +0 -2
  628. package/typedoc/types/IntentEffectResult.html +0 -15
  629. package/typedoc/types/IntentParams.html +0 -3
  630. package/typedoc/types/IntentResolver.html +0 -2
  631. package/typedoc/types/IntentResultData.html +0 -1
  632. package/typedoc/types/IntentSchema.html +0 -1
  633. package/typedoc/types/IntentUndo.html +0 -2
  634. package/typedoc/types/InterfaceDef.html +0 -4
  635. package/typedoc/types/Label.html +0 -1
  636. package/typedoc/types/NodeSerializer.html +0 -8
  637. package/typedoc/types/PluginManagerOptions.html +0 -6
  638. package/typedoc/types/PluginMeta.html +0 -21
  639. package/typedoc/types/PromiseIntentDispatcher.html +0 -2
  640. package/typedoc/types/PromiseIntentUndo.html +0 -2
  641. package/typedoc/types/Resource.html +0 -1
  642. package/typedoc/types/ResourceKey.html +0 -1
  643. package/typedoc/types/ResourceLanguage.html +0 -1
  644. package/typedoc/types/SerializedNode.html +0 -4
  645. package/typedoc/types/SurfaceComponent.html +0 -2
  646. package/typedoc/types/SurfaceDefinition.html +0 -2
  647. package/typedoc/types/SurfaceProps.html +0 -4
  648. package/typedoc/variables/Capabilities.AnchorSort.html +0 -1
  649. package/typedoc/variables/Capabilities.AppGraph.html +0 -1
  650. package/typedoc/variables/Capabilities.AppGraphBuilder.html +0 -1
  651. package/typedoc/variables/Capabilities.AppGraphSerializer.html +0 -1
  652. package/typedoc/variables/Capabilities.ArtifactDefinition.html +0 -1
  653. package/typedoc/variables/Capabilities.FileUploader.html +0 -1
  654. package/typedoc/variables/Capabilities.IntentDispatcher.html +0 -1
  655. package/typedoc/variables/Capabilities.IntentResolver.html +0 -1
  656. package/typedoc/variables/Capabilities.Layout.html +0 -1
  657. package/typedoc/variables/Capabilities.Metadata.html +0 -1
  658. package/typedoc/variables/Capabilities.Null.html +0 -1
  659. package/typedoc/variables/Capabilities.PluginManager.html +0 -1
  660. package/typedoc/variables/Capabilities.ReactContext.html +0 -1
  661. package/typedoc/variables/Capabilities.ReactRoot.html +0 -1
  662. package/typedoc/variables/Capabilities.ReactSurface.html +0 -1
  663. package/typedoc/variables/Capabilities.RxRegistry.html +0 -1
  664. package/typedoc/variables/Capabilities.Settings.html +0 -1
  665. package/typedoc/variables/Capabilities.SettingsStore.html +0 -1
  666. package/typedoc/variables/Capabilities.Tools.html +0 -1
  667. package/typedoc/variables/Capabilities.Translations.html +0 -1
  668. package/typedoc/variables/Events.AppGraphReady.html +0 -2
  669. package/typedoc/variables/Events.DispatcherReady.html +0 -2
  670. package/typedoc/variables/Events.LayoutReady.html +0 -1
  671. package/typedoc/variables/Events.SettingsReady.html +0 -2
  672. package/typedoc/variables/Events.SetupAppGraph.html +0 -2
  673. package/typedoc/variables/Events.SetupArtifactDefinition.html +0 -2
  674. package/typedoc/variables/Events.SetupIntentResolver.html +0 -2
  675. package/typedoc/variables/Events.SetupMetadata.html +0 -2
  676. package/typedoc/variables/Events.SetupReactSurface.html +0 -2
  677. package/typedoc/variables/Events.SetupSettings.html +0 -2
  678. package/typedoc/variables/Events.SetupTranslations.html +0 -2
  679. package/typedoc/variables/Events.Startup.html +0 -2
  680. package/typedoc/variables/FileInfoSchema.html +0 -1
  681. package/typedoc/variables/INTENT_ACTION.html +0 -1
  682. package/typedoc/variables/INTENT_PLUGIN.html +0 -1
  683. package/typedoc/variables/LAYOUT_ACTION.html +0 -1
  684. package/typedoc/variables/LAYOUT_PLUGIN.html +0 -1
  685. package/typedoc/variables/Label.html +0 -1
  686. package/typedoc/variables/LayoutAction.Toast.html +0 -1
  687. package/typedoc/variables/LayoutAction.UPDATE_LAYOUT.html +0 -1
  688. package/typedoc/variables/PluginManagerProvider.html +0 -2
  689. package/typedoc/variables/Resource.html +0 -2
  690. package/typedoc/variables/ResourceKey.html +0 -1
  691. package/typedoc/variables/ResourceLanguage.html +0 -1
  692. package/typedoc/variables/SETTINGS_ACTION.html +0 -1
  693. package/typedoc/variables/SETTINGS_ID.html +0 -1
  694. package/typedoc/variables/SETTINGS_KEY.html +0 -1
  695. package/typedoc/variables/SETTINGS_PLUGIN.html +0 -1
  696. package/typedoc/variables/Surface.html +0 -2
  697. package/typedoc/variables/defaultFileTypes.html +0 -1
  698. /package/dist/lib/browser/{intent-dispatcher-TWKB22NI.mjs.map → chunk-J5LGTIGS.mjs.map} +0 -0
  699. /package/dist/lib/browser/{worker.mjs.map → chunk-RFSO3JRG.mjs.map} +0 -0
  700. /package/dist/lib/{node-esm/intent-dispatcher-5PRM3KGH.mjs.map → browser/common/activation-events.mjs.map} +0 -0
  701. /package/dist/lib/{node-esm/worker.mjs.map → browser/common/capabilities.mjs.map} +0 -0
@@ -2,7 +2,7 @@
2
2
  * A unique string identifier representing an event.
3
3
  * This is expected to be a URI, where initial parts are often the id of the plugin whose package defines the event.
4
4
  *
5
- * @example dxos.org/plugin/example/event/ready
5
+ * @example org.dxos.plugin.example.event.ready
6
6
  */
7
7
  export type ActivationEvent = {
8
8
  id: string;
@@ -11,7 +11,7 @@ export type ActivationEvent = {
11
11
  /**
12
12
  * An activation event that can be a single event, or a combination of events.
13
13
  */
14
- export type ActivationEvents = ActivationEvent | {
14
+ export type Events = ActivationEvent | {
15
15
  type: 'one-of';
16
16
  events: ActivationEvent[];
17
17
  } | {
@@ -21,7 +21,7 @@ export type ActivationEvents = ActivationEvent | {
21
21
  /**
22
22
  * Helper to define an activation event.
23
23
  */
24
- export declare const defineEvent: (id: string, specifier?: string) => ActivationEvent;
24
+ export declare const make: (id: string, specifier?: string) => ActivationEvent;
25
25
  /**
26
26
  * Helper to create an activation event key.
27
27
  */
@@ -43,19 +43,19 @@ export declare const allOf: (...events: ActivationEvent[]) => {
43
43
  /**
44
44
  * Helper to check if an activation event is a one-of event.
45
45
  */
46
- export declare const isOneOf: (events: ActivationEvents) => events is {
46
+ export declare const isOneOf: (events: Events) => events is {
47
47
  type: "one-of";
48
48
  events: ActivationEvent[];
49
49
  };
50
50
  /**
51
51
  * Helper to check if an activation event is an all-of event.
52
52
  */
53
- export declare const isAllOf: (events: ActivationEvents) => events is {
53
+ export declare const isAllOf: (events: Events) => events is {
54
54
  type: "all-of";
55
55
  events: ActivationEvent[];
56
56
  };
57
57
  /**
58
58
  * Helper to get the events from an activation event.
59
59
  */
60
- export declare const getEvents: (events: ActivationEvents) => ActivationEvent[];
61
- //# sourceMappingURL=events.d.ts.map
60
+ export declare const getEvents: (events: Events) => ActivationEvent[];
61
+ //# sourceMappingURL=activation-event.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"activation-event.d.ts","sourceRoot":"","sources":["../../../../src/core/activation-event.ts"],"names":[],"mappings":"AAMA;;;;;GAKG;AACH,MAAM,MAAM,eAAe,GAAG;IAC5B,EAAE,EAAE,MAAM,CAAC;IACX,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB,CAAC;AAEF;;GAEG;AACH,MAAM,MAAM,MAAM,GACd,eAAe,GACf;IAAE,IAAI,EAAE,QAAQ,CAAC;IAAC,MAAM,EAAE,eAAe,EAAE,CAAA;CAAE,GAC7C;IAAE,IAAI,EAAE,QAAQ,CAAC;IAAC,MAAM,EAAE,eAAe,EAAE,CAAA;CAAE,CAAC;AAElD;;GAEG;AACH,eAAO,MAAM,IAAI,GAAI,IAAI,MAAM,EAAE,YAAY,MAAM,KACrB,eAC7B,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,QAAQ,GAAI,OAAO,eAAe,WACuB,CAAC;AAEvE;;GAEG;AACH,eAAO,MAAM,KAAK,GAAI,GAAG,QAAQ,eAAe,EAAE;;;CAA0C,CAAC;AAE7F;;GAEG;AACH,eAAO,MAAM,KAAK,GAAI,GAAG,QAAQ,eAAe,EAAE;;;CAA0C,CAAC;AAE7F;;GAEG;AACH,eAAO,MAAM,OAAO,GAAI,QAAQ,MAAM,KAAG,MAAM,IAAI;IAAE,IAAI,EAAE,QAAQ,CAAC;IAAC,MAAM,EAAE,eAAe,EAAE,CAAA;CAChD,CAAC;AAE/C;;GAEG;AACH,eAAO,MAAM,OAAO,GAAI,QAAQ,MAAM,KAAG,MAAM,IAAI;IAAE,IAAI,EAAE,QAAQ,CAAC;IAAC,MAAM,EAAE,eAAe,EAAE,CAAA;CAChD,CAAC;AAE/C;;GAEG;AACH,eAAO,MAAM,SAAS,GAAI,QAAQ,MAAM,sBAAkD,CAAC"}
@@ -0,0 +1,48 @@
1
+ import { Atom } from '@effect-atom/atom-react';
2
+ import * as Effect from 'effect/Effect';
3
+ import type * as Capability from './capability';
4
+ /**
5
+ * Interface for the Capability Manager.
6
+ * Provides methods for contributing, removing, and accessing capabilities.
7
+ */
8
+ export interface CapabilityManager {
9
+ contribute<T>(args: {
10
+ module: string;
11
+ interface: Capability.InterfaceDef<T>;
12
+ implementation: T;
13
+ }): void;
14
+ remove<T>(interfaceDef: Capability.InterfaceDef<T>, implementation: T): void;
15
+ /**
16
+ * Get the Atom reference to the available capabilities for a given interface.
17
+ * Primarily useful for deriving other Atom values based on the capabilities or
18
+ * for subscribing to changes in the capabilities.
19
+ * @returns An atom reference to the available capabilities.
20
+ */
21
+ atom<T>(interfaceDef: Capability.InterfaceDef<T>): Atom.Atom<T[]>;
22
+ /**
23
+ * Get capabilities from the capability manager.
24
+ * @returns An array of capabilities.
25
+ */
26
+ getAll<T>(interfaceDef: Capability.InterfaceDef<T>): T[];
27
+ /**
28
+ * Requests a single capability from the capability manager.
29
+ * @returns The capability.
30
+ * @throws If no capability is found.
31
+ */
32
+ get<T>(interfaceDef: Capability.InterfaceDef<T>): T;
33
+ /**
34
+ * Waits for a capability to be available.
35
+ * @returns The capability.
36
+ */
37
+ waitFor<T>(interfaceDef: Capability.InterfaceDef<T>): Effect.Effect<T, Error>;
38
+ /**
39
+ * Get capabilities grouped by the module that contributed them.
40
+ * @returns An atom containing a record from module ID to capability implementations.
41
+ */
42
+ atomByModule<T>(interfaceDef: Capability.InterfaceDef<T>): Atom.Atom<Record<string, T[]>>;
43
+ }
44
+ /**
45
+ * Creates a new Capability Manager instance.
46
+ */
47
+ export declare const make: (options: CapabilityManagerOptions) => CapabilityManager;
48
+ //# sourceMappingURL=capability-manager.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"capability-manager.d.ts","sourceRoot":"","sources":["../../../../src/core/capability-manager.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,IAAI,EAAiB,MAAM,yBAAyB,CAAC;AAE9D,OAAO,KAAK,MAAM,MAAM,eAAe,CAAC;AAKxC,OAAO,KAAK,KAAK,UAAU,MAAM,cAAc,CAAC;AAehD;;;GAGG;AACH,MAAM,WAAW,iBAAiB;IAChC,UAAU,CAAC,CAAC,EAAE,IAAI,EAAE;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,UAAU,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;QAAC,cAAc,EAAE,CAAC,CAAA;KAAE,GAAG,IAAI,CAAC;IAExG,MAAM,CAAC,CAAC,EAAE,YAAY,EAAE,UAAU,CAAC,YAAY,CAAC,CAAC,CAAC,EAAE,cAAc,EAAE,CAAC,GAAG,IAAI,CAAC;IAE7E;;;;;OAKG;IACH,IAAI,CAAC,CAAC,EAAE,YAAY,EAAE,UAAU,CAAC,YAAY,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC;IAElE;;;OAGG;IACH,MAAM,CAAC,CAAC,EAAE,YAAY,EAAE,UAAU,CAAC,YAAY,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC;IAEzD;;;;OAIG;IACH,GAAG,CAAC,CAAC,EAAE,YAAY,EAAE,UAAU,CAAC,YAAY,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;IAEpD;;;OAGG;IACH,OAAO,CAAC,CAAC,EAAE,YAAY,EAAE,UAAU,CAAC,YAAY,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;IAE9E;;;OAGG;IACH,YAAY,CAAC,CAAC,EAAE,YAAY,EAAE,UAAU,CAAC,YAAY,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;CAC3F;AAyHD;;GAEG;AACH,eAAO,MAAM,IAAI,GAAI,SAAS,wBAAwB,KAAG,iBAAuD,CAAC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=capability-manager.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"capability-manager.test.d.ts","sourceRoot":"","sources":["../../../../src/core/capability-manager.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,156 @@
1
+ import { type Atom } from '@effect-atom/atom-react';
2
+ import * as Context from 'effect/Context';
3
+ import * as Effect from 'effect/Effect';
4
+ import type * as CapabilityManager from './capability-manager';
5
+ import type * as Plugin from './plugin';
6
+ declare const Service_base: Context.TagClass<Service, "@dxos/app-framework/CapabilityManager", CapabilityManager.CapabilityManager>;
7
+ /**
8
+ * Effect Context.Tag for accessing CapabilityManager via the Effect layer system.
9
+ * This allows capability modules to access the capability manager without having it passed as an argument.
10
+ */
11
+ export declare class Service extends Service_base {
12
+ }
13
+ /**
14
+ * Get a single capability from the capability manager.
15
+ * @param interfaceDef The interface definition of the capability.
16
+ * @returns The capability implementation.
17
+ * @throws If no capability is found.
18
+ */
19
+ export declare const get: <T>(interfaceDef: InterfaceDef<T>) => Effect.Effect<T, Error, Service>;
20
+ /**
21
+ * Get all capabilities from the capability manager for a given interface.
22
+ * @param interfaceDef The interface definition of the capability.
23
+ * @returns An array of capability implementations.
24
+ */
25
+ export declare const getAll: <T>(interfaceDef: InterfaceDef<T>) => Effect.Effect<T[], never, Service>;
26
+ /**
27
+ * Wait for a capability to be available.
28
+ * @param interfaceDef The interface definition of the capability.
29
+ * @returns The capability implementation once available.
30
+ */
31
+ export declare const waitFor: <T>(interfaceDef: InterfaceDef<T>) => Effect.Effect<T, Error, Service>;
32
+ /**
33
+ * Get the Atom reference to capabilities for reactive access.
34
+ * @param interfaceDef The interface definition of the capability.
35
+ * @returns An Atom containing the array of capability implementations.
36
+ */
37
+ export declare const atom: <T>(interfaceDef: InterfaceDef<T>) => Effect.Effect<Atom.Atom<T[]>, never, Service>;
38
+ /**
39
+ * Get capabilities grouped by the module that contributed them.
40
+ * @param interfaceDef The interface definition of the capability.
41
+ * @returns An Atom containing a record from module ID to capability implementations.
42
+ */
43
+ export declare const atomByModule: <T>(interfaceDef: InterfaceDef<T>) => Effect.Effect<Atom.Atom<Record<string, T[]>>, never, Service>;
44
+ declare const InterfaceDefTypeId: unique symbol;
45
+ /**
46
+ * Symbol used to tag lazy capability functions with their module ID.
47
+ */
48
+ export declare const ModuleTag: unique symbol;
49
+ /**
50
+ * The interface definition of a capability.
51
+ */
52
+ export type InterfaceDef<T> = {
53
+ [InterfaceDefTypeId]: T;
54
+ identifier: string;
55
+ };
56
+ export declare namespace InterfaceDef {
57
+ type Implementation<I extends InterfaceDef<any>> = I extends InterfaceDef<infer T> ? T : never;
58
+ }
59
+ /**
60
+ * Helper to define the interface of a capability.
61
+ */
62
+ export declare const make: <T>(identifier: string) => InterfaceDef<T>;
63
+ /**
64
+ * A unique string identifier with a Typescript type associated with it.
65
+ * When a capability is contributed to the application an implementation of the interface is provided.
66
+ */
67
+ export type Capability<T> = {
68
+ /**
69
+ * The interface definition of the capability.
70
+ */
71
+ readonly interface: InterfaceDef<T>;
72
+ /**
73
+ * The implementation of the capability.
74
+ */
75
+ readonly implementation: T;
76
+ /**
77
+ * Called when the capability is deactivated.
78
+ */
79
+ readonly deactivate?: () => Effect.Effect<void, Error>;
80
+ };
81
+ export type Any = Capability<any>;
82
+ /**
83
+ * Union type representing all valid return types for a capability module.
84
+ * Supports single capabilities, arrays, and tuples of different capability types.
85
+ */
86
+ export type ModuleReturn = void | Any | Any[] | readonly Any[] | [Any, ...Any[]] | readonly [Any, ...Any[]];
87
+ /**
88
+ * Helper to define the implementation of a capability.
89
+ */
90
+ export declare const contributes: <I extends InterfaceDef<any>>(interfaceDef: I, implementation: Capability<InterfaceDef.Implementation<I>>["implementation"], deactivate?: Capability<InterfaceDef.Implementation<I>>["deactivate"]) => Capability<I>;
91
+ type LoadCapability<Props, Capabilities extends ModuleReturn = ModuleReturn> = () => Promise<{
92
+ default: (props: Props) => Effect.Effect<Capabilities, Error, Service | Plugin.Service | never>;
93
+ }>;
94
+ type LoadCapabilities<Props, Capabilities extends ModuleReturn = ModuleReturn> = () => Promise<{
95
+ default: (props: Props) => Effect.Effect<Capabilities, Error, Service | Plugin.Service | never>;
96
+ }>;
97
+ type NormalizeReturn<R> = R extends readonly (infer A)[] ? A[] : R extends (infer A)[] ? A[] : R extends Any ? [R] : Any[];
98
+ export type LazyCapability<Props = void, Capabilities extends ModuleReturn = ModuleReturn, E extends Error = Error> = (props: Props) => Effect.Effect<NormalizeReturn<Capabilities>, E, Service | Plugin.Service | never>;
99
+ /**
100
+ * Helper to define a lazily loaded implementation of a capability.
101
+ * Supports single capabilities, arrays, and tuples of different capability types.
102
+ * @param name The export name (e.g., 'AppGraphBuilder') - used to auto-compute module IDs.
103
+ * @param loader The lazy loader function.
104
+ * @returns A lazy capability function with ModuleTag symbol attached.
105
+ */
106
+ export declare const lazy: <T = void, R extends ModuleReturn = ModuleReturn>(name: string, c: LoadCapability<T, R> | LoadCapabilities<T, R>) => LazyCapability<T, R>;
107
+ /**
108
+ * Gets the module tag (export name) from a lazy capability function.
109
+ * @param capability The lazy capability function.
110
+ * @returns The module tag if present, undefined otherwise.
111
+ */
112
+ export declare const getModuleTag: (capability: unknown) => string | undefined;
113
+ /**
114
+ * Helper to define a capability module with explicit typing.
115
+ * Wraps the default export function to provide better type inference and make the pattern explicit.
116
+ *
117
+ * This helper provides explicit typing for the module activation function,
118
+ * making it clear that the function should:
119
+ * - Access CapabilityManager via the Effect layer system (Capability.get, Capability.getAll, etc.)
120
+ * - Return a capability, array of capabilities, or tuple of different capability types (sync or async)
121
+ *
122
+ * Supports returning multiple capabilities of different types as a tuple, which will be normalized
123
+ * to an array at runtime for compatibility with the plugin system.
124
+ *
125
+ * @example
126
+ * ```ts
127
+ * // Module without options - single capability
128
+ * export default Capability.makeModule(
129
+ * Effect.fnUntraced(function* () {
130
+ * const client = yield* Capability.get(ClientCapabilities.Client);
131
+ * return contributes(Capabilities.SettingsStore, store);
132
+ * })
133
+ * );
134
+ *
135
+ * // Module with multiple capabilities
136
+ * export default Capability.makeModule(
137
+ * Effect.fnUntraced(function* () {
138
+ * return [
139
+ * contributes(Capabilities.SettingsStore, store),
140
+ * contributes(Capabilities.Translations, translations),
141
+ * ];
142
+ * })
143
+ * );
144
+ *
145
+ * // Module with required options (context accessed via layer)
146
+ * export default Capability.makeModule(
147
+ * Effect.fnUntraced(function* (props: { observability: boolean }) {
148
+ * const invoker = yield* Capability.get(Capabilities.OperationInvoker);
149
+ * return contributes(Capabilities.IntentResolver, ...);
150
+ * })
151
+ * );
152
+ * ```
153
+ */
154
+ export declare const makeModule: <TProps = void, TReturn extends ModuleReturn = ModuleReturn, E extends Error = Error, R extends Service | Plugin.Service | never = Service>(fn: (props: TProps) => Effect.Effect<TReturn, E, R>) => ((props: TProps) => Effect.Effect<TReturn, E, R>);
155
+ export {};
156
+ //# sourceMappingURL=capability.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"capability.d.ts","sourceRoot":"","sources":["../../../../src/core/capability.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,7 @@
1
- export * from './capabilities';
2
- export * from './events';
3
- export * from './manager';
4
- export * from './plugin';
1
+ export * as ActivationEvent from './activation-event';
2
+ export * as Capability from './capability';
3
+ export * as CapabilityManager from './capability-manager';
4
+ export * as Plugin from './plugin';
5
+ export * as PluginManager from './plugin-manager';
6
+ export * as UrlLoader from './url-loader';
5
7
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/core/index.ts"],"names":[],"mappings":"AAIA,cAAc,gBAAgB,CAAC;AAC/B,cAAc,UAAU,CAAC;AACzB,cAAc,WAAW,CAAC;AAC1B,cAAc,UAAU,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/core/index.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,eAAe,MAAM,oBAAoB,CAAC;AACtD,OAAO,KAAK,UAAU,MAAM,cAAc,CAAC;AAC3C,OAAO,KAAK,iBAAiB,MAAM,sBAAsB,CAAC;AAC1D,OAAO,KAAK,MAAM,MAAM,UAAU,CAAC;AACnC,OAAO,KAAK,aAAa,MAAM,kBAAkB,CAAC;AAClD,OAAO,KAAK,SAAS,MAAM,cAAc,CAAC"}
@@ -0,0 +1,73 @@
1
+ import { Atom, Registry } from '@effect-atom/atom-react';
2
+ import * as Effect from 'effect/Effect';
3
+ import * as PubSub from 'effect/PubSub';
4
+ import * as ActivationEvent from './activation-event';
5
+ import * as CapabilityManager from './capability-manager';
6
+ import * as Plugin from './plugin';
7
+ /**
8
+ * Identifier denoting a Manager.
9
+ */
10
+ export declare const ManagerTypeId: unique symbol;
11
+ export type ManagerTypeId = typeof ManagerTypeId;
12
+ export type ManagerOptions = {
13
+ pluginLoader: (id: string) => Effect.Effect<Plugin.Plugin, Error>;
14
+ plugins?: Plugin.Plugin[];
15
+ core?: string[];
16
+ enabled?: string[];
17
+ registry?: Registry.Registry;
18
+ };
19
+ export type ActivationMessage = {
20
+ event: string;
21
+ state: 'activating' | 'activated' | 'error';
22
+ /** Module ID when the message pertains to a specific module activation. */
23
+ module?: string;
24
+ error?: Error;
25
+ };
26
+ /**
27
+ * Interface for the Plugin Manager.
28
+ */
29
+ export interface PluginManager {
30
+ readonly [ManagerTypeId]: ManagerTypeId;
31
+ readonly activation: PubSub.PubSub<ActivationMessage>;
32
+ readonly capabilities: CapabilityManager.CapabilityManager;
33
+ readonly registry: Registry.Registry;
34
+ readonly plugins: Atom.Atom<readonly Plugin.Plugin[]>;
35
+ readonly core: Atom.Atom<readonly string[]>;
36
+ readonly enabled: Atom.Atom<readonly string[]>;
37
+ readonly modules: Atom.Atom<readonly Plugin.PluginModule[]>;
38
+ readonly active: Atom.Atom<readonly string[]>;
39
+ readonly eventsFired: Atom.Atom<readonly string[]>;
40
+ readonly pendingReset: Atom.Atom<readonly string[]>;
41
+ getPlugins(): readonly Plugin.Plugin[];
42
+ getCore(): readonly string[];
43
+ getEnabled(): readonly string[];
44
+ getModules(): readonly Plugin.PluginModule[];
45
+ getActive(): readonly string[];
46
+ getEventsFired(): readonly string[];
47
+ getPendingReset(): readonly string[];
48
+ add(id: string): Effect.Effect<boolean, Error>;
49
+ enable(id: string): Effect.Effect<boolean, Error>;
50
+ remove(id: string): boolean;
51
+ disable(id: string): Effect.Effect<boolean, Error>;
52
+ activate(event: ActivationEvent.ActivationEvent | string, params?: {
53
+ before?: string;
54
+ after?: string;
55
+ }): Effect.Effect<boolean, Error>;
56
+ deactivate(id: string): Effect.Effect<boolean, Error>;
57
+ reset(event: ActivationEvent.ActivationEvent | string): Effect.Effect<boolean, Error>;
58
+ /**
59
+ * Shuts down the manager by deactivating all active modules in reverse activation order,
60
+ * clearing all capabilities, and resetting lifecycle bookkeeping.
61
+ * Plugins, core, enabled, and modules remain intact so the manager can be reused.
62
+ */
63
+ shutdown(): Effect.Effect<boolean, Error>;
64
+ }
65
+ /**
66
+ * Type guard to check if a value is a PluginManager.
67
+ */
68
+ export declare const isManager: (value: unknown) => value is PluginManager;
69
+ /**
70
+ * Creates a new Plugin Manager instance.
71
+ */
72
+ export declare const make: (options: ManagerOptions) => PluginManager;
73
+ //# sourceMappingURL=plugin-manager.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"plugin-manager.d.ts","sourceRoot":"","sources":["../../../../src/core/plugin-manager.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=plugin-manager.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"plugin-manager.test.d.ts","sourceRoot":"","sources":["../../../../src/core/plugin-manager.test.ts"],"names":[],"mappings":""}
@@ -1,7 +1,50 @@
1
- import { type MaybePromise } from '@dxos/util';
2
- import { type AnyCapability, type PluginContext } from './capabilities';
3
- import { type ActivationEvent, type ActivationEvents } from './events';
4
- interface PluginModuleInterface {
1
+ import * as Context from 'effect/Context';
2
+ import * as Effect from 'effect/Effect';
3
+ import * as Pipeable from 'effect/Pipeable';
4
+ import type * as ActivationEvent from './activation-event';
5
+ import * as Capability from './capability';
6
+ import type * as PluginManager from './plugin-manager';
7
+ declare const Service_base: Context.TagClass<Service, "@dxos/app-framework/PluginManager", PluginManager.PluginManager>;
8
+ /**
9
+ * Effect Context.Tag for accessing PluginManager via the Effect layer system.
10
+ * This allows lifecycle operations to access the plugin manager without having it passed as an argument.
11
+ */
12
+ export declare class Service extends Service_base {
13
+ }
14
+ /**
15
+ * Activates plugins based on the activation event.
16
+ * Accesses the PluginManager via the Effect layer system.
17
+ * @param event The activation event.
18
+ * @returns Whether the activation was successful.
19
+ */
20
+ export declare const activate: (event: ActivationEvent.ActivationEvent) => Effect.Effect<boolean, Error, Service>;
21
+ /**
22
+ * Re-activates the modules that were activated by the event.
23
+ * Accesses the PluginManager via the Effect layer system.
24
+ * @param event The activation event.
25
+ * @returns Whether the reset was successful.
26
+ */
27
+ export declare const reset: (event: ActivationEvent.ActivationEvent) => Effect.Effect<boolean, Error, Service>;
28
+ /**
29
+ * Shuts down the plugin manager, deactivating all active modules and clearing lifecycle state.
30
+ * Accesses the PluginManager via the Effect layer system.
31
+ */
32
+ export declare const shutdown: () => Effect.Effect<boolean, Error, Service>;
33
+ /**
34
+ * Identifier denoting a PluginModule.
35
+ */
36
+ export declare const PluginModuleTypeId: unique symbol;
37
+ export type PluginModuleTypeId = typeof PluginModuleTypeId;
38
+ /**
39
+ * Type guard to check if a value is a PluginModule.
40
+ */
41
+ export declare const isPluginModule: (value: unknown) => value is PluginModule;
42
+ /**
43
+ * A unit of containment of modular functionality that can be provided to an application.
44
+ * Activation of a module is async allowing for code to split and loaded lazily.
45
+ */
46
+ export interface PluginModule {
47
+ readonly [PluginModuleTypeId]: PluginModuleTypeId;
5
48
  /**
6
49
  * Unique id of the module.
7
50
  */
@@ -9,47 +52,53 @@ interface PluginModuleInterface {
9
52
  /**
10
53
  * Events for which the module will be activated.
11
54
  */
12
- activatesOn: ActivationEvents;
55
+ activatesOn: ActivationEvent.Events;
13
56
  /**
14
- * Events which the plugin depends on being activated.
15
- * Plugin is marked as needing reset a plugin activated by a dependent event is removed.
16
- * Events are automatically activated before activation of the plugin.
57
+ * Events that this module fires *before* its own activation runs.
58
+ *
59
+ * When this module is asked to activate (via {@link activatesOn}), the
60
+ * plugin manager first activates every event listed here, ensuring any
61
+ * other modules that contribute to those events have completed before
62
+ * this module's {@link activate} body executes. These events are fired
63
+ * by the framework on this module's behalf — the module does not need
64
+ * to wait for some other code to fire them.
65
+ *
66
+ * The module is marked as needing reset if a module activated by one
67
+ * of these events is later removed.
68
+ *
69
+ * Read as: "this module fires these events before [its] activation".
17
70
  */
18
- activatesBefore?: ActivationEvent[];
71
+ firesBeforeActivation?: ActivationEvent.ActivationEvent[];
19
72
  /**
20
- * Events which this plugin triggers upon activation.
73
+ * Events that this module fires *after* its own activation completes.
74
+ *
75
+ * Once this module's {@link activate} body has finished executing, the
76
+ * plugin manager activates every event listed here, causing any modules
77
+ * listening on those events to run. These events are fired by the
78
+ * framework on this module's behalf as part of this module's lifecycle.
79
+ *
80
+ * Read as: "this module fires these events after [its] activation".
21
81
  */
22
- activatesAfter?: ActivationEvent[];
82
+ firesAfterActivation?: ActivationEvent.ActivationEvent[];
23
83
  /**
24
84
  * Called when the module is activated.
25
- * @param context The plugin context.
85
+ * CapabilityManager is accessed via the Effect layer system (Capability.Service).
86
+ * PluginManager is accessed via Plugin.Service.
87
+ * @param props Optional props passed to the module.
26
88
  * @returns The capabilities of the module.
27
89
  */
28
- activate: (context: PluginContext) => MaybePromise<AnyCapability | AnyCapability[]> | Promise<() => Promise<AnyCapability | AnyCapability[]>>;
90
+ activate: (props?: any) => Effect.Effect<Capability.ModuleReturn, Error, Capability.Service | Service | never>;
29
91
  }
30
- /**
31
- * A unit of containment of modular functionality that can be provided to an application.
32
- * Activation of a module is async allowing for code to split and loaded lazily.
33
- */
34
- export declare class PluginModule implements PluginModuleInterface {
35
- readonly id: PluginModuleInterface['id'];
36
- readonly activatesOn: PluginModuleInterface['activatesOn'];
37
- readonly activatesBefore?: PluginModuleInterface['activatesBefore'];
38
- readonly activatesAfter?: PluginModuleInterface['activatesAfter'];
39
- readonly activate: PluginModuleInterface['activate'];
40
- constructor(options: PluginModuleInterface);
41
- }
42
- /**
43
- * Helper to define a module.
44
- */
45
- export declare const defineModule: (options: PluginModuleInterface) => PluginModule;
46
- export type PluginMeta = {
92
+ export type PluginModuleOptions = Omit<PluginModule, 'id' | typeof PluginModuleTypeId> & {
93
+ id?: string;
94
+ };
95
+ export type Meta = {
47
96
  /**
48
97
  * Globally unique ID.
49
98
  *
50
99
  * Expected to be in the form of a valid URL.
51
100
  *
52
- * @example dxos.org/plugin/example
101
+ * @example org.dxos.plugin.example
53
102
  */
54
103
  id: string;
55
104
  /**
@@ -80,19 +129,57 @@ export type PluginMeta = {
80
129
  * A grep-able symbol string which can be resolved to an icon asset by @ch-ui/icons, via @ch-ui/vite-plugin-icons.
81
130
  */
82
131
  icon?: string;
132
+ /**
133
+ * Icon hue (ChromaticPalette).
134
+ */
135
+ iconHue?: string;
83
136
  };
137
+ /**
138
+ * Identifier denoting a Plugin.
139
+ */
140
+ export declare const PluginTypeId: unique symbol;
141
+ export type PluginTypeId = typeof PluginTypeId;
142
+ /**
143
+ * Type guard to check if a value is a Plugin.
144
+ */
145
+ export declare const isPlugin: (value: unknown) => value is Plugin;
84
146
  /**
85
147
  * A collection of modules that are be enabled/disabled as a unit.
86
148
  * Plugins provide things such as components, state, actions, etc. to the application.
87
149
  */
88
- export declare class Plugin {
89
- readonly meta: PluginMeta;
90
- readonly modules: PluginModule[];
91
- constructor(meta: PluginMeta, modules: PluginModule[]);
150
+ export interface Plugin {
151
+ readonly [PluginTypeId]: PluginTypeId;
152
+ readonly meta: Readonly<Meta>;
153
+ readonly modules: ReadonlyArray<PluginModule>;
154
+ }
155
+ /**
156
+ * Builder interface for creating plugins incrementally.
157
+ */
158
+ export interface PluginBuilder<T = void> extends Pipeable.Pipeable {
159
+ readonly meta: Meta;
160
+ readonly modules: ReadonlyArray<PluginModuleOptions | ((options: T) => PluginModuleOptions)>;
161
+ addModule(moduleOptions: PluginModuleOptions | ((options: T) => PluginModuleOptions)): PluginBuilder<T>;
92
162
  }
93
163
  /**
94
- * Helper to define a plugin.
164
+ * Creates a new PluginBuilder to start building a plugin.
165
+ */
166
+ export declare const define: <T = void>(meta: Meta) => PluginBuilder<T>;
167
+ /**
168
+ * Adds a module to a plugin builder.
169
+ * Supports both pipeline and direct call styles.
170
+ * Modules can be either PluginModuleOptions or functions that receive options.
171
+ */
172
+ export declare function addModule<T>(moduleOptions: PluginModuleOptions | ((options: T) => PluginModuleOptions)): (builder: PluginBuilder<T>) => PluginBuilder<T>;
173
+ export declare function addModule<T>(builder: PluginBuilder<T>, moduleOptions: PluginModuleOptions | ((options: T) => PluginModuleOptions)): PluginBuilder<T>;
174
+ export type PluginFactory<T = void> = ((options: T) => Plugin) & {
175
+ meta: Meta;
176
+ };
177
+ /**
178
+ * Creates a Plugin from a builder.
179
+ * Supports both pipeline and direct call styles.
180
+ * Always returns a factory function (options: T) => Plugin.
181
+ * When T is void, the function takes no arguments: () => Plugin.
95
182
  */
96
- export declare const definePlugin: (meta: PluginMeta, modules: PluginModule[]) => Plugin;
183
+ export declare function make<T>(builder: PluginBuilder<T>): PluginFactory<T>;
97
184
  export {};
98
185
  //# sourceMappingURL=plugin.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"plugin.d.ts","sourceRoot":"","sources":["../../../../src/core/plugin.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,KAAK,YAAY,EAAE,MAAM,YAAY,CAAC;AAE/C,OAAO,EAAE,KAAK,aAAa,EAAE,KAAK,aAAa,EAAE,MAAM,gBAAgB,CAAC;AACxE,OAAO,EAAE,KAAK,eAAe,EAAE,KAAK,gBAAgB,EAAE,MAAM,UAAU,CAAC;AAEvE,UAAU,qBAAqB;IAC7B;;OAEG;IACH,EAAE,EAAE,MAAM,CAAC;IAEX;;OAEG;IACH,WAAW,EAAE,gBAAgB,CAAC;IAE9B;;;;OAIG;IACH,eAAe,CAAC,EAAE,eAAe,EAAE,CAAC;IAEpC;;OAEG;IACH,cAAc,CAAC,EAAE,eAAe,EAAE,CAAC;IAEnC;;;;OAIG;IACH,QAAQ,EAAE,CACR,OAAO,EAAE,aAAa,KACnB,YAAY,CAAC,aAAa,GAAG,aAAa,EAAE,CAAC,GAAG,OAAO,CAAC,MAAM,OAAO,CAAC,aAAa,GAAG,aAAa,EAAE,CAAC,CAAC,CAAC;CAC9G;AAED;;;GAGG;AAEH,qBAAa,YAAa,YAAW,qBAAqB;IACxD,QAAQ,CAAC,EAAE,EAAE,qBAAqB,CAAC,IAAI,CAAC,CAAC;IACzC,QAAQ,CAAC,WAAW,EAAE,qBAAqB,CAAC,aAAa,CAAC,CAAC;IAC3D,QAAQ,CAAC,eAAe,CAAC,EAAE,qBAAqB,CAAC,iBAAiB,CAAC,CAAC;IACpE,QAAQ,CAAC,cAAc,CAAC,EAAE,qBAAqB,CAAC,gBAAgB,CAAC,CAAC;IAClE,QAAQ,CAAC,QAAQ,EAAE,qBAAqB,CAAC,UAAU,CAAC,CAAC;gBAEzC,OAAO,EAAE,qBAAqB;CAO3C;AAED;;GAEG;AACH,eAAO,MAAM,YAAY,GAAI,SAAS,qBAAqB,iBAA8B,CAAC;AAE1F,MAAM,MAAM,UAAU,GAAG;IACvB;;;;;;OAMG;IACH,EAAE,EAAE,MAAM,CAAC;IAEX;;OAEG;IACH,IAAI,EAAE,MAAM,CAAC;IAEb;;OAEG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;IAErB;;OAEG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC;IAElB;;OAEG;IACH,MAAM,CAAC,EAAE,MAAM,CAAC;IAEhB;;OAEG;IACH,WAAW,CAAC,EAAE,MAAM,EAAE,CAAC;IAEvB;;OAEG;IACH,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;IAEhB;;OAEG;IACH,IAAI,CAAC,EAAE,MAAM,CAAC;CACf,CAAC;AAEF;;;GAGG;AAEH,qBAAa,MAAM;IAEf,QAAQ,CAAC,IAAI,EAAE,UAAU;IACzB,QAAQ,CAAC,OAAO,EAAE,YAAY,EAAE;gBADvB,IAAI,EAAE,UAAU,EAChB,OAAO,EAAE,YAAY,EAAE;CAEnC;AAED;;GAEG;AACH,eAAO,MAAM,YAAY,GAAI,MAAM,UAAU,EAAE,SAAS,YAAY,EAAE,WAErE,CAAC"}
1
+ {"version":3,"file":"plugin.d.ts","sourceRoot":"","sources":["../../../../src/core/plugin.ts"],"names":[],"mappings":"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"}