@dxos/app-framework 0.8.4-main.8360d9e660 → 0.8.4-main.8baae0fced

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 (380) hide show
  1. package/LICENSE +102 -5
  2. package/README.md +1 -1
  3. package/dist/lib/browser/{capability-5OFLR7J4.mjs → capability-K5XIVCQU.mjs} +12 -11
  4. package/dist/lib/browser/capability-K5XIVCQU.mjs.map +7 -0
  5. package/dist/lib/browser/{chunk-WEBSGU5L.mjs → chunk-5AHASNDW.mjs} +20 -5
  6. package/dist/lib/browser/chunk-5AHASNDW.mjs.map +7 -0
  7. package/dist/lib/browser/chunk-5GY3YOEL.mjs +28 -0
  8. package/dist/lib/browser/chunk-5GY3YOEL.mjs.map +7 -0
  9. package/dist/lib/browser/{chunk-272IPLHQ.mjs → chunk-66IXTIVK.mjs} +3 -2
  10. package/dist/lib/browser/chunk-66IXTIVK.mjs.map +7 -0
  11. package/dist/lib/browser/{chunk-JGWCBVKJ.mjs → chunk-BRK6GYNB.mjs} +14 -42
  12. package/dist/lib/browser/chunk-BRK6GYNB.mjs.map +7 -0
  13. package/dist/lib/browser/{chunk-TGX63LTL.mjs → chunk-FJ4765WW.mjs} +1 -1
  14. package/dist/lib/browser/{chunk-TGX63LTL.mjs.map → chunk-FJ4765WW.mjs.map} +2 -2
  15. package/dist/lib/browser/chunk-FO3IYSLV.mjs +68 -0
  16. package/dist/lib/browser/chunk-FO3IYSLV.mjs.map +7 -0
  17. package/dist/lib/browser/{chunk-YNFPIQGB.mjs → chunk-IW44C7UL.mjs} +9 -2
  18. package/dist/lib/browser/chunk-IW44C7UL.mjs.map +7 -0
  19. package/dist/lib/browser/{chunk-TIEBZMTF.mjs → chunk-KFDF7KR3.mjs} +9 -11
  20. package/dist/lib/browser/{chunk-TIEBZMTF.mjs.map → chunk-KFDF7KR3.mjs.map} +3 -3
  21. package/dist/lib/browser/chunk-KLHQNYJ2.mjs +422 -0
  22. package/dist/lib/browser/chunk-KLHQNYJ2.mjs.map +7 -0
  23. package/dist/lib/browser/chunk-QLML5QFJ.mjs +581 -0
  24. package/dist/lib/browser/chunk-QLML5QFJ.mjs.map +7 -0
  25. package/dist/lib/browser/{chunk-GH3M2LIW.mjs → chunk-SLX73WRZ.mjs} +85 -15
  26. package/dist/lib/browser/chunk-SLX73WRZ.mjs.map +7 -0
  27. package/dist/lib/browser/chunk-UVTGHZQF.mjs +513 -0
  28. package/dist/lib/browser/chunk-UVTGHZQF.mjs.map +7 -0
  29. package/dist/lib/browser/chunk-VJ5PFAWC.mjs +1446 -0
  30. package/dist/lib/browser/chunk-VJ5PFAWC.mjs.map +7 -0
  31. package/dist/lib/browser/cli/index.mjs +15 -30
  32. package/dist/lib/browser/cli/index.mjs.map +3 -3
  33. package/dist/lib/browser/common/activation-events.mjs +11 -14
  34. package/dist/lib/browser/common/capabilities.mjs +19 -8
  35. package/dist/lib/browser/core/activation-event.mjs +1 -1
  36. package/dist/lib/browser/core/capability.mjs +5 -1
  37. package/dist/lib/browser/core/plugin-manager.mjs +8 -4
  38. package/dist/lib/browser/core/plugin.mjs +12 -2
  39. package/dist/lib/browser/core/url-loader.mjs +24 -0
  40. package/dist/lib/browser/index.mjs +47 -49
  41. package/dist/lib/browser/index.mjs.map +4 -4
  42. package/dist/lib/browser/meta.json +1 -1
  43. package/dist/lib/browser/process-manager-capability-JIWLN7SU.mjs +89 -0
  44. package/dist/lib/browser/process-manager-capability-JIWLN7SU.mjs.map +7 -0
  45. package/dist/lib/browser/testing/index.mjs +164 -34
  46. package/dist/lib/browser/testing/index.mjs.map +4 -4
  47. package/dist/lib/browser/testing/react.mjs +78 -0
  48. package/dist/lib/browser/testing/react.mjs.map +7 -0
  49. package/dist/lib/browser/ui/index.mjs +24 -15
  50. package/dist/lib/node-esm/{capability-CRHZKL6T.mjs → capability-RLKFFLTB.mjs} +12 -11
  51. package/dist/lib/node-esm/capability-RLKFFLTB.mjs.map +7 -0
  52. package/dist/lib/node-esm/{chunk-FKE4Z3D6.mjs → chunk-37Z53PXZ.mjs} +1 -1
  53. package/dist/lib/node-esm/{chunk-FKE4Z3D6.mjs.map → chunk-37Z53PXZ.mjs.map} +2 -2
  54. package/dist/lib/node-esm/chunk-42UNAKYO.mjs +423 -0
  55. package/dist/lib/node-esm/chunk-42UNAKYO.mjs.map +7 -0
  56. package/dist/lib/node-esm/{chunk-LHCJGNXK.mjs → chunk-6S45OMUP.mjs} +85 -15
  57. package/dist/lib/node-esm/chunk-6S45OMUP.mjs.map +7 -0
  58. package/dist/lib/node-esm/{chunk-3D66SZHP.mjs → chunk-BYHYYJZH.mjs} +14 -42
  59. package/dist/lib/node-esm/chunk-BYHYYJZH.mjs.map +7 -0
  60. package/dist/lib/node-esm/{chunk-SB5ODNPX.mjs → chunk-CTKEZHKF.mjs} +9 -2
  61. package/dist/lib/node-esm/chunk-CTKEZHKF.mjs.map +7 -0
  62. package/dist/lib/node-esm/chunk-JNT72ZCN.mjs +514 -0
  63. package/dist/lib/node-esm/chunk-JNT72ZCN.mjs.map +7 -0
  64. package/dist/lib/node-esm/chunk-KFZEB6BV.mjs +29 -0
  65. package/dist/lib/node-esm/chunk-KFZEB6BV.mjs.map +7 -0
  66. package/dist/lib/node-esm/chunk-LJNUFNDO.mjs +582 -0
  67. package/dist/lib/node-esm/chunk-LJNUFNDO.mjs.map +7 -0
  68. package/dist/lib/node-esm/{chunk-SCDGIGGU.mjs → chunk-OUEMWPIW.mjs} +9 -11
  69. package/dist/lib/node-esm/{chunk-SCDGIGGU.mjs.map → chunk-OUEMWPIW.mjs.map} +3 -3
  70. package/dist/lib/node-esm/{chunk-SQICGJBW.mjs → chunk-PW2VYGOS.mjs} +20 -5
  71. package/dist/lib/node-esm/chunk-PW2VYGOS.mjs.map +7 -0
  72. package/dist/lib/node-esm/chunk-SFYCO3PT.mjs +1447 -0
  73. package/dist/lib/node-esm/chunk-SFYCO3PT.mjs.map +7 -0
  74. package/dist/lib/node-esm/chunk-WK7OIQKI.mjs +70 -0
  75. package/dist/lib/node-esm/chunk-WK7OIQKI.mjs.map +7 -0
  76. package/dist/lib/node-esm/{chunk-6REV5DE7.mjs → chunk-XOCUANHO.mjs} +3 -2
  77. package/dist/lib/node-esm/chunk-XOCUANHO.mjs.map +7 -0
  78. package/dist/lib/node-esm/cli/index.mjs +15 -30
  79. package/dist/lib/node-esm/cli/index.mjs.map +3 -3
  80. package/dist/lib/node-esm/common/activation-events.mjs +11 -14
  81. package/dist/lib/node-esm/common/capabilities.mjs +19 -8
  82. package/dist/lib/node-esm/core/activation-event.mjs +1 -1
  83. package/dist/lib/node-esm/core/capability.mjs +5 -1
  84. package/dist/lib/node-esm/core/plugin-manager.mjs +8 -4
  85. package/dist/lib/node-esm/core/plugin.mjs +12 -2
  86. package/dist/lib/node-esm/core/url-loader.mjs +25 -0
  87. package/dist/lib/node-esm/index.mjs +47 -49
  88. package/dist/lib/node-esm/index.mjs.map +4 -4
  89. package/dist/lib/node-esm/meta.json +1 -1
  90. package/dist/lib/node-esm/process-manager-capability-PHKLO2BL.mjs +90 -0
  91. package/dist/lib/node-esm/process-manager-capability-PHKLO2BL.mjs.map +7 -0
  92. package/dist/lib/node-esm/testing/index.mjs +164 -34
  93. package/dist/lib/node-esm/testing/index.mjs.map +4 -4
  94. package/dist/lib/node-esm/testing/react.mjs +79 -0
  95. package/dist/lib/node-esm/testing/react.mjs.map +7 -0
  96. package/dist/lib/node-esm/ui/index.mjs +24 -15
  97. package/dist/plugin/node-esm/index.mjs +893 -0
  98. package/dist/plugin/node-esm/index.mjs.map +7 -0
  99. package/dist/plugin/node-esm/meta.json +1 -0
  100. package/dist/types/src/cli/cli.d.ts +1 -3
  101. package/dist/types/src/cli/cli.d.ts.map +1 -1
  102. package/dist/types/src/common/activation-events.d.ts +10 -13
  103. package/dist/types/src/common/activation-events.d.ts.map +1 -1
  104. package/dist/types/src/common/annotations.d.ts +1 -0
  105. package/dist/types/src/common/annotations.d.ts.map +1 -0
  106. package/dist/types/src/common/capabilities.d.ts +113 -12
  107. package/dist/types/src/common/capabilities.d.ts.map +1 -1
  108. package/dist/types/src/common/operations.d.ts +8 -22
  109. package/dist/types/src/common/operations.d.ts.map +1 -1
  110. package/dist/types/src/core/activation-event.d.ts +4 -4
  111. package/dist/types/src/core/activation-event.d.ts.map +1 -1
  112. package/dist/types/src/core/capability-manager.d.ts +5 -0
  113. package/dist/types/src/core/capability-manager.d.ts.map +1 -1
  114. package/dist/types/src/core/capability.d.ts +13 -2
  115. package/dist/types/src/core/capability.d.ts.map +1 -1
  116. package/dist/types/src/core/edge-registry-plugin-provider.d.ts +30 -0
  117. package/dist/types/src/core/edge-registry-plugin-provider.d.ts.map +1 -0
  118. package/dist/types/src/core/index.d.ts +6 -0
  119. package/dist/types/src/core/index.d.ts.map +1 -1
  120. package/dist/types/src/core/plugin-asset-cache.d.ts +71 -0
  121. package/dist/types/src/core/plugin-asset-cache.d.ts.map +1 -0
  122. package/dist/types/src/core/plugin-manager.d.ts +232 -7
  123. package/dist/types/src/core/plugin-manager.d.ts.map +1 -1
  124. package/dist/types/src/core/plugin-manifest.d.ts +101 -0
  125. package/dist/types/src/core/plugin-manifest.d.ts.map +1 -0
  126. package/dist/types/src/core/plugin-manifest.test.d.ts +2 -0
  127. package/dist/types/src/core/plugin-manifest.test.d.ts.map +1 -0
  128. package/dist/types/src/core/plugin.d.ts +176 -6
  129. package/dist/types/src/core/plugin.d.ts.map +1 -1
  130. package/dist/types/src/core/registry.d.ts +107 -0
  131. package/dist/types/src/core/registry.d.ts.map +1 -0
  132. package/dist/types/src/core/url-loader.d.ts +127 -0
  133. package/dist/types/src/core/url-loader.d.ts.map +1 -0
  134. package/dist/types/src/core/url-loader.test.d.ts +2 -0
  135. package/dist/types/src/core/url-loader.test.d.ts.map +1 -0
  136. package/dist/types/src/helpers.d.ts.map +1 -1
  137. package/dist/types/src/index.d.ts +1 -2
  138. package/dist/types/src/index.d.ts.map +1 -1
  139. package/dist/types/src/plugin-process-manager/ProcessManagerPlugin.d.ts +3 -0
  140. package/dist/types/src/plugin-process-manager/ProcessManagerPlugin.d.ts.map +1 -0
  141. package/dist/types/src/plugin-process-manager/history/capability.d.ts.map +1 -0
  142. package/dist/types/src/plugin-process-manager/history/errors.d.ts +32 -0
  143. package/dist/types/src/plugin-process-manager/history/errors.d.ts.map +1 -0
  144. package/dist/types/src/{plugin-operation → plugin-process-manager}/history/history-tracker.d.ts +1 -1
  145. package/dist/types/src/plugin-process-manager/history/history-tracker.d.ts.map +1 -0
  146. package/dist/types/src/plugin-process-manager/history/history-tracker.test.d.ts.map +1 -0
  147. package/dist/types/src/plugin-process-manager/history/index.d.ts.map +1 -0
  148. package/dist/types/src/{plugin-operation → plugin-process-manager}/history/types.d.ts +1 -1
  149. package/dist/types/src/plugin-process-manager/history/types.d.ts.map +1 -0
  150. package/dist/types/src/{plugin-operation → plugin-process-manager}/history/undo-mapping.d.ts +1 -1
  151. package/dist/types/src/plugin-process-manager/history/undo-mapping.d.ts.map +1 -0
  152. package/dist/types/src/{plugin-operation → plugin-process-manager}/history/undo-registry.d.ts +1 -1
  153. package/dist/types/src/plugin-process-manager/history/undo-registry.d.ts.map +1 -0
  154. package/dist/types/src/plugin-process-manager/history/undo-registry.test.d.ts.map +1 -0
  155. package/dist/types/src/plugin-process-manager/index.d.ts +3 -0
  156. package/dist/types/src/plugin-process-manager/index.d.ts.map +1 -0
  157. package/dist/types/src/plugin-process-manager/meta.d.ts.map +1 -0
  158. package/dist/types/src/plugin-process-manager/process-manager-capability.d.ts +8 -0
  159. package/dist/types/src/plugin-process-manager/process-manager-capability.d.ts.map +1 -0
  160. package/dist/types/src/plugin-process-manager/testing.d.ts +59 -0
  161. package/dist/types/src/plugin-process-manager/testing.d.ts.map +1 -0
  162. package/dist/types/src/testing/harness.d.ts +79 -0
  163. package/dist/types/src/testing/harness.d.ts.map +1 -0
  164. package/dist/types/src/testing/index.d.ts +1 -0
  165. package/dist/types/src/testing/index.d.ts.map +1 -1
  166. package/dist/types/src/testing/react.d.ts +27 -0
  167. package/dist/types/src/testing/react.d.ts.map +1 -0
  168. package/dist/types/src/testing/react.test.d.ts +2 -0
  169. package/dist/types/src/testing/react.test.d.ts.map +1 -0
  170. package/dist/types/src/testing/service.d.ts.map +1 -1
  171. package/dist/types/src/testing/withPluginManager.d.ts.map +1 -1
  172. package/dist/types/src/testing/withPluginManager.stories.d.ts.map +1 -1
  173. package/dist/types/src/ui/components/App/App.d.ts +3 -2
  174. package/dist/types/src/ui/components/App/App.d.ts.map +1 -1
  175. package/dist/types/src/ui/components/App/App.stories.d.ts +2 -2
  176. package/dist/types/src/ui/components/App/App.stories.d.ts.map +1 -1
  177. package/dist/types/src/ui/components/Placeholder/Placeholder.d.ts +64 -0
  178. package/dist/types/src/ui/components/Placeholder/Placeholder.d.ts.map +1 -0
  179. package/dist/types/src/ui/components/Placeholder/Placeholder.stories.d.ts +19 -0
  180. package/dist/types/src/ui/components/Placeholder/Placeholder.stories.d.ts.map +1 -0
  181. package/dist/types/src/ui/components/Placeholder/index.d.ts +2 -0
  182. package/dist/types/src/ui/components/Placeholder/index.d.ts.map +1 -0
  183. package/dist/types/src/ui/components/PluginManager/PluginManagerContext.stories.d.ts.map +1 -1
  184. package/dist/types/src/ui/components/Surface/SurfaceComponent.d.ts +16 -4
  185. package/dist/types/src/ui/components/Surface/SurfaceComponent.d.ts.map +1 -1
  186. package/dist/types/src/ui/components/Surface/SurfaceComponent.stories.d.ts.map +1 -1
  187. package/dist/types/src/ui/components/Surface/SurfaceInfo.d.ts.map +1 -1
  188. package/dist/types/src/ui/components/Surface/SurfaceProfilerContext.d.ts +48 -0
  189. package/dist/types/src/ui/components/Surface/SurfaceProfilerContext.d.ts.map +1 -0
  190. package/dist/types/src/ui/components/Surface/index.d.ts +22 -6
  191. package/dist/types/src/ui/components/Surface/index.d.ts.map +1 -1
  192. package/dist/types/src/ui/components/Surface/types.d.ts +110 -9
  193. package/dist/types/src/ui/components/Surface/types.d.ts.map +1 -1
  194. package/dist/types/src/ui/components/Surface/types.test.d.ts +2 -0
  195. package/dist/types/src/ui/components/Surface/types.test.d.ts.map +1 -0
  196. package/dist/types/src/ui/components/index.d.ts +1 -0
  197. package/dist/types/src/ui/components/index.d.ts.map +1 -1
  198. package/dist/types/src/ui/hooks/index.d.ts +1 -1
  199. package/dist/types/src/ui/hooks/index.d.ts.map +1 -1
  200. package/dist/types/src/ui/hooks/useApp.d.ts +47 -11
  201. package/dist/types/src/ui/hooks/useApp.d.ts.map +1 -1
  202. package/dist/types/src/ui/hooks/useCapabilities.d.ts.map +1 -1
  203. package/dist/types/src/ui/hooks/useLoading.d.ts.map +1 -1
  204. package/dist/types/src/ui/hooks/useProcessManagerRuntime.d.ts +24 -0
  205. package/dist/types/src/ui/hooks/useProcessManagerRuntime.d.ts.map +1 -0
  206. package/dist/types/src/ui/hooks/useSettingsState.d.ts.map +1 -1
  207. package/dist/types/src/vite-plugin/boot-loader/BootLoader.stories.d.ts +34 -0
  208. package/dist/types/src/vite-plugin/boot-loader/BootLoader.stories.d.ts.map +1 -0
  209. package/dist/types/src/vite-plugin/boot-loader/index.d.ts +2 -0
  210. package/dist/types/src/vite-plugin/boot-loader/index.d.ts.map +1 -0
  211. package/dist/types/src/vite-plugin/boot-loader/loader.d.ts +51 -0
  212. package/dist/types/src/vite-plugin/boot-loader/loader.d.ts.map +1 -0
  213. package/dist/types/src/vite-plugin/composer/index.d.ts +34 -0
  214. package/dist/types/src/vite-plugin/composer/index.d.ts.map +1 -0
  215. package/dist/types/src/vite-plugin/import-map/index.d.ts +28 -0
  216. package/dist/types/src/vite-plugin/import-map/index.d.ts.map +1 -0
  217. package/dist/types/src/vite-plugin/index.d.ts +5 -0
  218. package/dist/types/src/vite-plugin/index.d.ts.map +1 -0
  219. package/dist/types/src/vite-plugin/manifest.d.ts +41 -0
  220. package/dist/types/src/vite-plugin/manifest.d.ts.map +1 -0
  221. package/dist/types/src/vite-plugin/manifest.test.d.ts +2 -0
  222. package/dist/types/src/vite-plugin/manifest.test.d.ts.map +1 -0
  223. package/dist/types/src/vite-plugin/packages.d.ts +13 -0
  224. package/dist/types/src/vite-plugin/packages.d.ts.map +1 -0
  225. package/dist/types/tsconfig.tsbuildinfo +1 -1
  226. package/moon.yml +15 -0
  227. package/package.json +53 -54
  228. package/src/cli/cli.ts +2 -7
  229. package/src/common/activation-events.ts +10 -15
  230. package/src/common/annotations.ts +3 -0
  231. package/src/common/capabilities.ts +147 -16
  232. package/src/common/operations.ts +5 -8
  233. package/src/core/activation-event.ts +4 -1
  234. package/src/core/capability-manager.test.ts +1 -1
  235. package/src/core/capability-manager.ts +22 -1
  236. package/src/core/capability.ts +20 -2
  237. package/src/core/edge-registry-plugin-provider.ts +92 -0
  238. package/src/core/index.ts +6 -0
  239. package/src/core/plugin-asset-cache.ts +60 -0
  240. package/src/core/plugin-manager.test.ts +816 -10
  241. package/src/core/plugin-manager.ts +865 -46
  242. package/src/core/plugin-manifest.test.ts +75 -0
  243. package/src/core/plugin-manifest.ts +134 -0
  244. package/src/core/plugin.ts +185 -10
  245. package/src/core/registry.ts +163 -0
  246. package/src/core/url-loader.test.ts +221 -0
  247. package/src/core/url-loader.ts +388 -0
  248. package/src/index.ts +1 -2
  249. package/src/plugin-process-manager/ProcessManagerPlugin.ts +24 -0
  250. package/src/{plugin-operation → plugin-process-manager}/history/capability.ts +1 -2
  251. package/src/plugin-process-manager/history/errors.ts +7 -0
  252. package/src/{plugin-operation → plugin-process-manager}/history/history-tracker.test.ts +37 -43
  253. package/src/{plugin-operation → plugin-process-manager}/history/history-tracker.ts +1 -2
  254. package/src/{plugin-operation → plugin-process-manager}/history/types.ts +1 -1
  255. package/src/{plugin-operation → plugin-process-manager}/history/undo-mapping.ts +1 -1
  256. package/src/{plugin-operation → plugin-process-manager}/history/undo-registry.test.ts +3 -4
  257. package/src/{plugin-operation → plugin-process-manager}/history/undo-registry.ts +1 -1
  258. package/src/{plugin-operation → plugin-process-manager}/index.ts +1 -1
  259. package/src/plugin-process-manager/meta.ts +14 -0
  260. package/src/plugin-process-manager/process-manager-capability.ts +178 -0
  261. package/src/{plugin-operation → plugin-process-manager}/testing.ts +26 -45
  262. package/src/testing/harness.ts +247 -0
  263. package/src/testing/index.ts +1 -0
  264. package/src/testing/react.test.tsx +48 -0
  265. package/src/testing/react.tsx +113 -0
  266. package/src/testing/service.ts +2 -2
  267. package/src/testing/withPluginManager.stories.tsx +1 -2
  268. package/src/testing/withPluginManager.tsx +5 -4
  269. package/src/ui/components/App/App.stories.tsx +5 -11
  270. package/src/ui/components/App/App.tsx +29 -5
  271. package/src/ui/components/Placeholder/Placeholder.stories.tsx +77 -0
  272. package/src/ui/components/Placeholder/Placeholder.tsx +155 -0
  273. package/src/{plugin-runtime → ui/components/Placeholder}/index.ts +1 -1
  274. package/src/ui/components/PluginManager/PluginManagerContext.stories.tsx +5 -4
  275. package/src/ui/components/Surface/SurfaceComponent.stories.tsx +16 -15
  276. package/src/ui/components/Surface/SurfaceComponent.tsx +111 -55
  277. package/src/ui/components/Surface/SurfaceInfo.tsx +0 -1
  278. package/src/ui/components/Surface/SurfaceProfilerContext.tsx +207 -0
  279. package/src/ui/components/Surface/index.ts +35 -1
  280. package/src/ui/components/Surface/types.test.ts +126 -0
  281. package/src/ui/components/Surface/types.ts +164 -12
  282. package/src/ui/components/index.ts +1 -0
  283. package/src/ui/hooks/index.ts +1 -1
  284. package/src/ui/hooks/useApp.test.tsx +2 -2
  285. package/src/ui/hooks/useApp.tsx +216 -17
  286. package/src/ui/hooks/useLoading.tsx +14 -6
  287. package/src/ui/hooks/useProcessManagerRuntime.ts +68 -0
  288. package/src/vite-plugin/boot-loader/BootLoader.stories.tsx +270 -0
  289. package/src/vite-plugin/boot-loader/boot-loader.css +320 -0
  290. package/src/vite-plugin/boot-loader/boot-loader.js +325 -0
  291. package/src/vite-plugin/boot-loader/index.ts +5 -0
  292. package/src/vite-plugin/boot-loader/loader.ts +123 -0
  293. package/src/vite-plugin/composer/index.ts +306 -0
  294. package/src/vite-plugin/import-map/index.ts +527 -0
  295. package/src/vite-plugin/index.ts +10 -0
  296. package/src/vite-plugin/manifest.test.ts +46 -0
  297. package/src/vite-plugin/manifest.ts +57 -0
  298. package/src/vite-plugin/packages.ts +187 -0
  299. package/tsconfig.json +25 -1
  300. package/tsconfig.node.json +1 -1
  301. package/.swc/plugins/linux_x86_64_19.0.0/727453fb3a62f7f1d952a41e051ca8a6f88cadc45cee43c6a4d1aa45f9b75665.wasmer-v7 +0 -0
  302. package/dist/lib/browser/capability-5OFLR7J4.mjs.map +0 -7
  303. package/dist/lib/browser/capability-ZHQDZRP5.mjs +0 -37
  304. package/dist/lib/browser/capability-ZHQDZRP5.mjs.map +0 -7
  305. package/dist/lib/browser/chunk-272IPLHQ.mjs.map +0 -7
  306. package/dist/lib/browser/chunk-3VXJONTI.mjs +0 -933
  307. package/dist/lib/browser/chunk-3VXJONTI.mjs.map +0 -7
  308. package/dist/lib/browser/chunk-7AL6SKIV.mjs +0 -728
  309. package/dist/lib/browser/chunk-7AL6SKIV.mjs.map +0 -7
  310. package/dist/lib/browser/chunk-GH3M2LIW.mjs.map +0 -7
  311. package/dist/lib/browser/chunk-JGWCBVKJ.mjs.map +0 -7
  312. package/dist/lib/browser/chunk-M5IC326L.mjs +0 -34
  313. package/dist/lib/browser/chunk-M5IC326L.mjs.map +0 -7
  314. package/dist/lib/browser/chunk-WEBSGU5L.mjs.map +0 -7
  315. package/dist/lib/browser/chunk-YAFEA4GV.mjs +0 -1
  316. package/dist/lib/browser/chunk-YNFPIQGB.mjs.map +0 -7
  317. package/dist/lib/browser/invoker-capability-YTTQ2OBB.mjs +0 -36
  318. package/dist/lib/browser/invoker-capability-YTTQ2OBB.mjs.map +0 -7
  319. package/dist/lib/node-esm/capability-CRHZKL6T.mjs.map +0 -7
  320. package/dist/lib/node-esm/capability-W5C5464H.mjs +0 -38
  321. package/dist/lib/node-esm/capability-W5C5464H.mjs.map +0 -7
  322. package/dist/lib/node-esm/chunk-3D66SZHP.mjs.map +0 -7
  323. package/dist/lib/node-esm/chunk-6REV5DE7.mjs.map +0 -7
  324. package/dist/lib/node-esm/chunk-CMDON4NG.mjs +0 -934
  325. package/dist/lib/node-esm/chunk-CMDON4NG.mjs.map +0 -7
  326. package/dist/lib/node-esm/chunk-I7FZT4A7.mjs +0 -729
  327. package/dist/lib/node-esm/chunk-I7FZT4A7.mjs.map +0 -7
  328. package/dist/lib/node-esm/chunk-LHCJGNXK.mjs.map +0 -7
  329. package/dist/lib/node-esm/chunk-NHXBSAQR.mjs +0 -35
  330. package/dist/lib/node-esm/chunk-NHXBSAQR.mjs.map +0 -7
  331. package/dist/lib/node-esm/chunk-SB5ODNPX.mjs.map +0 -7
  332. package/dist/lib/node-esm/chunk-SQICGJBW.mjs.map +0 -7
  333. package/dist/lib/node-esm/chunk-Z4TJPSMP.mjs +0 -2
  334. package/dist/lib/node-esm/invoker-capability-BU26474T.mjs +0 -37
  335. package/dist/lib/node-esm/invoker-capability-BU26474T.mjs.map +0 -7
  336. package/dist/types/src/plugin-operation/OperationPlugin.d.ts +0 -3
  337. package/dist/types/src/plugin-operation/OperationPlugin.d.ts.map +0 -1
  338. package/dist/types/src/plugin-operation/history/capability.d.ts.map +0 -1
  339. package/dist/types/src/plugin-operation/history/errors.d.ts +0 -5
  340. package/dist/types/src/plugin-operation/history/errors.d.ts.map +0 -1
  341. package/dist/types/src/plugin-operation/history/history-tracker.d.ts.map +0 -1
  342. package/dist/types/src/plugin-operation/history/history-tracker.test.d.ts.map +0 -1
  343. package/dist/types/src/plugin-operation/history/index.d.ts.map +0 -1
  344. package/dist/types/src/plugin-operation/history/types.d.ts.map +0 -1
  345. package/dist/types/src/plugin-operation/history/undo-mapping.d.ts.map +0 -1
  346. package/dist/types/src/plugin-operation/history/undo-registry.d.ts.map +0 -1
  347. package/dist/types/src/plugin-operation/history/undo-registry.test.d.ts.map +0 -1
  348. package/dist/types/src/plugin-operation/index.d.ts +0 -3
  349. package/dist/types/src/plugin-operation/index.d.ts.map +0 -1
  350. package/dist/types/src/plugin-operation/invoker-capability.d.ts +0 -6
  351. package/dist/types/src/plugin-operation/invoker-capability.d.ts.map +0 -1
  352. package/dist/types/src/plugin-operation/meta.d.ts.map +0 -1
  353. package/dist/types/src/plugin-operation/testing.d.ts +0 -109
  354. package/dist/types/src/plugin-operation/testing.d.ts.map +0 -1
  355. package/dist/types/src/plugin-runtime/RuntimePlugin.d.ts +0 -3
  356. package/dist/types/src/plugin-runtime/RuntimePlugin.d.ts.map +0 -1
  357. package/dist/types/src/plugin-runtime/capability.d.ts +0 -6
  358. package/dist/types/src/plugin-runtime/capability.d.ts.map +0 -1
  359. package/dist/types/src/plugin-runtime/index.d.ts +0 -2
  360. package/dist/types/src/plugin-runtime/index.d.ts.map +0 -1
  361. package/dist/types/src/plugin-runtime/meta.d.ts +0 -3
  362. package/dist/types/src/plugin-runtime/meta.d.ts.map +0 -1
  363. package/dist/types/src/ui/hooks/useOperationResolver.d.ts +0 -19
  364. package/dist/types/src/ui/hooks/useOperationResolver.d.ts.map +0 -1
  365. package/src/plugin-operation/OperationPlugin.ts +0 -25
  366. package/src/plugin-operation/history/errors.ts +0 -11
  367. package/src/plugin-operation/invoker-capability.ts +0 -40
  368. package/src/plugin-operation/meta.ts +0 -11
  369. package/src/plugin-runtime/RuntimePlugin.ts +0 -20
  370. package/src/plugin-runtime/capability.ts +0 -53
  371. package/src/plugin-runtime/meta.ts +0 -11
  372. package/src/ui/hooks/useOperationResolver.ts +0 -40
  373. /package/dist/lib/browser/{chunk-YAFEA4GV.mjs.map → core/url-loader.mjs.map} +0 -0
  374. /package/dist/lib/node-esm/{chunk-Z4TJPSMP.mjs.map → core/url-loader.mjs.map} +0 -0
  375. /package/dist/types/src/{plugin-operation → plugin-process-manager}/history/capability.d.ts +0 -0
  376. /package/dist/types/src/{plugin-operation → plugin-process-manager}/history/history-tracker.test.d.ts +0 -0
  377. /package/dist/types/src/{plugin-operation → plugin-process-manager}/history/index.d.ts +0 -0
  378. /package/dist/types/src/{plugin-operation → plugin-process-manager}/history/undo-registry.test.d.ts +0 -0
  379. /package/dist/types/src/{plugin-operation → plugin-process-manager}/meta.d.ts +0 -0
  380. /package/src/{plugin-operation → plugin-process-manager}/history/index.ts +0 -0
@@ -30,28 +30,28 @@ export declare const eventKey: (event: ActivationEvent) => string;
30
30
  * Helper to create an activation event that triggers when any of the given events are activated.
31
31
  */
32
32
  export declare const oneOf: (...events: ActivationEvent[]) => {
33
- type: "one-of";
33
+ type: 'one-of';
34
34
  events: ActivationEvent[];
35
35
  };
36
36
  /**
37
37
  * Helper to create an activation event that triggers when all of the given events are activated.
38
38
  */
39
39
  export declare const allOf: (...events: ActivationEvent[]) => {
40
- type: "all-of";
40
+ type: 'all-of';
41
41
  events: ActivationEvent[];
42
42
  };
43
43
  /**
44
44
  * Helper to check if an activation event is a one-of event.
45
45
  */
46
46
  export declare const isOneOf: (events: Events) => events is {
47
- type: "one-of";
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
53
  export declare const isAllOf: (events: Events) => events is {
54
- type: "all-of";
54
+ type: 'all-of';
55
55
  events: ActivationEvent[];
56
56
  };
57
57
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"activation-event.d.ts","sourceRoot":"","sources":["../../../../src/core/activation-event.ts"],"names":[],"mappings":"AAIA;;;;;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,WAAoE,CAAC;AAEpH;;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"}
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,OAAQ,MAAM,cAAc,MAAM,KACrB,eAC7B,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,QAAQ,UAAW,eAAe,WACuB,CAAC;AAEvE;;GAEG;AACH,eAAO,MAAM,KAAK,cAAe,eAAe,EAAE;UAAc,QAAQ;;CAAoB,CAAC;AAE7F;;GAEG;AACH,eAAO,MAAM,KAAK,cAAe,eAAe,EAAE;UAAc,QAAQ;;CAAoB,CAAC;AAE7F;;GAEG;AACH,eAAO,MAAM,OAAO,WAAY,MAAM,KAAG,MAAM,IAAI;IAAE,IAAI,EAAE,QAAQ,CAAC;IAAC,MAAM,EAAE,eAAe,EAAE,CAAA;CAChD,CAAC;AAE/C;;GAEG;AACH,eAAO,MAAM,OAAO,WAAY,MAAM,KAAG,MAAM,IAAI;IAAE,IAAI,EAAE,QAAQ,CAAC;IAAC,MAAM,EAAE,eAAe,EAAE,CAAA;CAChD,CAAC;AAE/C;;GAEG;AACH,eAAO,MAAM,SAAS,WAAY,MAAM,sBAAkD,CAAC"}
@@ -35,6 +35,11 @@ export interface CapabilityManager {
35
35
  * @returns The capability.
36
36
  */
37
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[]>>;
38
43
  }
39
44
  /**
40
45
  * Creates a new Capability Manager instance.
@@ -1 +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;CAC/E;AA0GD;;GAEG;AACH,eAAO,MAAM,IAAI,GAAI,SAAS,wBAAwB,KAAG,iBAAuD,CAAC"}
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,YAAa,wBAAwB,KAAG,iBAAuD,CAAC"}
@@ -1,6 +1,7 @@
1
1
  import { type Atom } from '@effect-atom/atom-react';
2
2
  import * as Context from 'effect/Context';
3
3
  import * as Effect from 'effect/Effect';
4
+ import * as Layer from 'effect/Layer';
4
5
  import type * as CapabilityManager from './capability-manager';
5
6
  import type * as Plugin from './plugin';
6
7
  declare const Service_base: Context.TagClass<Service, "@dxos/app-framework/CapabilityManager", CapabilityManager.CapabilityManager>;
@@ -35,6 +36,16 @@ export declare const waitFor: <T>(interfaceDef: InterfaceDef<T>) => Effect.Effec
35
36
  * @returns An Atom containing the array of capability implementations.
36
37
  */
37
38
  export declare const atom: <T>(interfaceDef: InterfaceDef<T>) => Effect.Effect<Atom.Atom<T[]>, never, Service>;
39
+ /**
40
+ * Get capabilities grouped by the module that contributed them.
41
+ * @param interfaceDef The interface definition of the capability.
42
+ * @returns An Atom containing a record from module ID to capability implementations.
43
+ */
44
+ export declare const atomByModule: <T>(interfaceDef: InterfaceDef<T>) => Effect.Effect<Atom.Atom<Record<string, T[]>>, never, Service>;
45
+ /**
46
+ * Constructs a layer that will request its interface implementation from the capability manager.
47
+ */
48
+ export declare const asLayer: <T, I>(interfaceDef: InterfaceDef<T>, tag: Context.Tag<I, T>) => Layer.Layer<I, never, Service>;
38
49
  declare const InterfaceDefTypeId: unique symbol;
39
50
  /**
40
51
  * Symbol used to tag lazy capability functions with their module ID.
@@ -81,7 +92,7 @@ export type ModuleReturn = void | Any | Any[] | readonly Any[] | [Any, ...Any[]]
81
92
  /**
82
93
  * Helper to define the implementation of a capability.
83
94
  */
84
- export declare const contributes: <I extends InterfaceDef<any>>(interfaceDef: I, implementation: Capability<InterfaceDef.Implementation<I>>["implementation"], deactivate?: Capability<InterfaceDef.Implementation<I>>["deactivate"]) => Capability<I>;
95
+ export declare const contributes: <I extends InterfaceDef<any>>(interfaceDef: I, implementation: Capability<InterfaceDef.Implementation<I>>['implementation'], deactivate?: Capability<InterfaceDef.Implementation<I>>['deactivate']) => Capability<I>;
85
96
  type LoadCapability<Props, Capabilities extends ModuleReturn = ModuleReturn> = () => Promise<{
86
97
  default: (props: Props) => Effect.Effect<Capabilities, Error, Service | Plugin.Service | never>;
87
98
  }>;
@@ -140,7 +151,7 @@ export declare const getModuleTag: (capability: unknown) => string | undefined;
140
151
  * export default Capability.makeModule(
141
152
  * Effect.fnUntraced(function* (props: { observability: boolean }) {
142
153
  * const invoker = yield* Capability.get(Capabilities.OperationInvoker);
143
- * return contributes(Capabilities.IntentResolver, ...);
154
+ * return contributes(Capabilities.OperationHandler, ...);
144
155
  * })
145
156
  * );
146
157
  * ```
@@ -1 +1 @@
1
- {"version":3,"file":"capability.d.ts","sourceRoot":"","sources":["../../../../src/core/capability.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"capability.d.ts","sourceRoot":"","sources":["../../../../src/core/capability.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,30 @@
1
+ import * as Effect from 'effect/Effect';
2
+ import { type EdgeHttpClient } from '@dxos/edge-client';
3
+ import * as Registry from './registry';
4
+ /**
5
+ * Implements `Registry.PluginProvider` against the Edge `/registry` HTTP endpoints.
6
+ *
7
+ * Lives in app-framework (rather than the more obvious home of `@dxos/edge-client`)
8
+ * because edge-client doesn't depend on app-framework; siting the implementation
9
+ * here keeps the dependency arrow `app-framework → edge-client` and avoids a
10
+ * cycle. The class needs only the public `EdgeHttpClient` type, so a one-way
11
+ * type-import is enough.
12
+ *
13
+ * `listVersions` is currently a stub: it returns the single latest version derived
14
+ * from the cached plugin list, so the host's version picker has something to render.
15
+ * The wire contract for the real endpoint already exists — see
16
+ * `GetPluginVersionsResponseBodySchema` in `@dxos/protocols/edge/registry` and
17
+ * {@link EdgeHttpClient.getRegistryPluginVersions} — so once Edge ships
18
+ * `GET /registry/plugins/:repo/versions`, swap this stub for a call to
19
+ * `this._client.getRegistryPluginVersions(...)` and map each entry through a
20
+ * `toRegistryPluginVersion` helper (mirror of {@link toRegistryPlugin}).
21
+ */
22
+ export declare class EdgeRegistryPluginProvider implements Registry.PluginProvider {
23
+ #private;
24
+ private readonly _client;
25
+ constructor(_client: EdgeHttpClient);
26
+ listPlugins(): Effect.Effect<readonly Registry.Plugin[], Error>;
27
+ listVersions(repo: string): Effect.Effect<readonly Registry.PluginVersion[], Error>;
28
+ getPlugin(repo: string, version?: string): Effect.Effect<Registry.Plugin, Error>;
29
+ }
30
+ //# sourceMappingURL=edge-registry-plugin-provider.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"edge-registry-plugin-provider.d.ts","sourceRoot":"","sources":["../../../../src/core/edge-registry-plugin-provider.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,MAAM,MAAM,eAAe,CAAC;AAGxC,OAAO,EAAE,KAAK,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAGxD,OAAO,KAAK,QAAQ,MAAM,YAAY,CAAC;AAwBvC;;;;;;;;;;;;;;;;;GAiBG;AACH,qBAAa,0BAA2B,YAAW,QAAQ,CAAC,cAAc;;IAI5D,OAAO,CAAC,QAAQ,CAAC,OAAO;IAApC,YAA6B,OAAO,EAAE,cAAc,EAAI;IAExD,WAAW,IAAI,MAAM,CAAC,MAAM,CAAC,SAAS,QAAQ,CAAC,MAAM,EAAE,EAAE,KAAK,CAAC,CAW9D;IAED,YAAY,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,SAAS,QAAQ,CAAC,aAAa,EAAE,EAAE,KAAK,CAAC,CAQlF;IAED,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,EAAE,KAAK,CAAC,CAS/E;CACF"}
@@ -2,5 +2,11 @@ export * as ActivationEvent from './activation-event';
2
2
  export * as Capability from './capability';
3
3
  export * as CapabilityManager from './capability-manager';
4
4
  export * as Plugin from './plugin';
5
+ export * as PluginAssetCache from './plugin-asset-cache';
5
6
  export * as PluginManager from './plugin-manager';
7
+ export * as PluginManifest from './plugin-manifest';
8
+ export { PLUGIN_DEV_SERVER_PORT } from './plugin-manifest';
9
+ export * as Registry from './registry';
10
+ export { EdgeRegistryPluginProvider } from './edge-registry-plugin-provider';
11
+ export * as UrlLoader from './url-loader';
6
12
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
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"}
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,gBAAgB,MAAM,sBAAsB,CAAC;AACzD,OAAO,KAAK,aAAa,MAAM,kBAAkB,CAAC;AAClD,OAAO,KAAK,cAAc,MAAM,mBAAmB,CAAC;AACpD,OAAO,EAAE,sBAAsB,EAAE,MAAM,mBAAmB,CAAC;AAC3D,OAAO,KAAK,QAAQ,MAAM,YAAY,CAAC;AACvC,OAAO,EAAE,0BAA0B,EAAE,MAAM,iCAAiC,CAAC;AAC7E,OAAO,KAAK,SAAS,MAAM,cAAc,CAAC"}
@@ -0,0 +1,71 @@
1
+ import * as Effect from 'effect/Effect';
2
+ import { BaseError } from '@dxos/errors';
3
+ declare const PluginAssetCacheError_base: {
4
+ new (options?: import("@dxos/errors").BaseErrorOptions): {
5
+ cause?: unknown;
6
+ stack?: string;
7
+ name: "PluginAssetCacheError";
8
+ context: Record<string, unknown>;
9
+ readonly message: string;
10
+ readonly _tag: "PluginAssetCacheError";
11
+ };
12
+ isError(error: unknown): error is Error;
13
+ name: "PluginAssetCacheError";
14
+ is(error: unknown): error is BaseError;
15
+ wrap(options?: Omit<import("@dxos/errors").BaseErrorOptions, 'cause'> & {
16
+ ifTypeDiffers?: boolean;
17
+ }): (error: unknown) => {
18
+ cause?: unknown;
19
+ stack?: string;
20
+ name: "PluginAssetCacheError";
21
+ context: Record<string, unknown>;
22
+ readonly message: string;
23
+ readonly _tag: "PluginAssetCacheError";
24
+ };
25
+ extend<Name extends string = string>(name: Name, message?: string): any;
26
+ captureStackTrace(targetObject: object, constructorOpt?: Function): void;
27
+ prepareStackTrace?: ((err: Error, stackTraces: NodeJS.CallSite[]) => any) | undefined;
28
+ stackTraceLimit: number;
29
+ };
30
+ /**
31
+ * Tagged error for cache operations. Construction sites supply `context.operation`
32
+ * (one of `'cache' | 'evict' | 'resolve' | 'list'`) and `context.pluginId` so
33
+ * downstream handlers can route on the failed call without scanning the message.
34
+ */
35
+ export declare class PluginAssetCacheError extends PluginAssetCacheError_base {
36
+ }
37
+ /**
38
+ * Per-platform offline cache for third-party plugin assets.
39
+ *
40
+ * Implementations live alongside their platform glue (composer-app's
41
+ * `asset-cache/{tauri,service-worker}.ts`); the no-op default is for tests
42
+ * and unsupported environments.
43
+ */
44
+ export interface Cache {
45
+ /**
46
+ * Persist all listed URLs under the namespace of `pluginId`. Idempotent.
47
+ * The order of `urls` is significant — the first entry is treated as the entry module.
48
+ */
49
+ cache(pluginId: string, urls: readonly string[]): Effect.Effect<void, PluginAssetCacheError>;
50
+ /**
51
+ * Drop all assets for a plugin (uninstall).
52
+ */
53
+ evict(pluginId: string): Effect.Effect<void, PluginAssetCacheError>;
54
+ /**
55
+ * Resolves a plugin asset URL to a platform-specific cached URL when one is available.
56
+ * Returns the original URL when no cached copy exists or the platform serves cached
57
+ * responses transparently (e.g. service worker fetch interception on web).
58
+ */
59
+ resolve(pluginId: string, url: string): Effect.Effect<string, PluginAssetCacheError>;
60
+ /**
61
+ * List currently cached plugin ids (diagnostic).
62
+ */
63
+ list(): Effect.Effect<readonly string[], PluginAssetCacheError>;
64
+ }
65
+ /**
66
+ * No-op implementation. Used when no platform cache is registered (tests, unsupported environments).
67
+ * Plugins still load — they just have no offline guarantee.
68
+ */
69
+ export declare const noop: () => Cache;
70
+ export {};
71
+ //# sourceMappingURL=plugin-asset-cache.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"plugin-asset-cache.d.ts","sourceRoot":"","sources":["../../../../src/core/plugin-asset-cache.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,MAAM,MAAM,eAAe,CAAC;AAExC,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAEzC;;;;GAIG;AACH,qBAAa,qBAAsB,SAAQ,0BAG1C;CAAG;AAEJ;;;;;;GAMG;AACH,MAAM,WAAW,KAAK;IACpB;;;OAGG;IACH,KAAK,CAAC,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,SAAS,MAAM,EAAE,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,qBAAqB,CAAC,CAAC;IAE7F;;OAEG;IACH,KAAK,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,qBAAqB,CAAC,CAAC;IAEpE;;;;OAIG;IACH,OAAO,CAAC,QAAQ,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,qBAAqB,CAAC,CAAC;IAErF;;OAEG;IACH,IAAI,IAAI,MAAM,CAAC,MAAM,CAAC,SAAS,MAAM,EAAE,EAAE,qBAAqB,CAAC,CAAC;CACjE;AAED;;;GAGG;AACH,eAAO,MAAM,IAAI,QAAO,KAKtB,CAAC"}
@@ -1,24 +1,158 @@
1
1
  import { Atom, Registry } from '@effect-atom/atom-react';
2
+ import * as Duration from 'effect/Duration';
2
3
  import * as Effect from 'effect/Effect';
3
4
  import * as PubSub from 'effect/PubSub';
5
+ import { BaseError } from '@dxos/errors';
4
6
  import * as ActivationEvent from './activation-event';
5
7
  import * as CapabilityManager from './capability-manager';
6
8
  import * as Plugin from './plugin';
9
+ import * as PluginRegistry from './registry';
10
+ declare const PluginInitializationError_base: {
11
+ new (options?: import("@dxos/errors").BaseErrorOptions): {
12
+ cause?: unknown;
13
+ stack?: string;
14
+ name: "PluginInitializationError";
15
+ context: Record<string, unknown>;
16
+ readonly message: string;
17
+ readonly _tag: "PluginInitializationError";
18
+ };
19
+ isError(error: unknown): error is Error;
20
+ name: "PluginInitializationError";
21
+ is(error: unknown): error is BaseError;
22
+ wrap(options?: Omit<import("@dxos/errors").BaseErrorOptions, 'cause'> & {
23
+ ifTypeDiffers?: boolean;
24
+ }): (error: unknown) => {
25
+ cause?: unknown;
26
+ stack?: string;
27
+ name: "PluginInitializationError";
28
+ context: Record<string, unknown>;
29
+ readonly message: string;
30
+ readonly _tag: "PluginInitializationError";
31
+ };
32
+ extend<Name extends string = string>(name: Name, message?: string): any;
33
+ captureStackTrace(targetObject: object, constructorOpt?: Function): void;
34
+ prepareStackTrace?: ((err: Error, stackTraces: NodeJS.CallSite[]) => any) | undefined;
35
+ stackTraceLimit: number;
36
+ };
37
+ /**
38
+ * Tagged error for failures during the constructor-launched core/enabled
39
+ * `enable()` chain. Surfaces via {@link PluginManager.activate}'s wait on
40
+ * `_initialization` so a caller blocked on initialization gets a typed
41
+ * failure (with the original error preserved as `cause`) instead of an
42
+ * untyped `Error`.
43
+ */
44
+ export declare class PluginInitializationError extends PluginInitializationError_base {
45
+ }
46
+ declare const PluginTimeoutError_base: {
47
+ new (options?: import("@dxos/errors").BaseErrorOptions): {
48
+ cause?: unknown;
49
+ stack?: string;
50
+ name: "PluginTimeoutError";
51
+ context: Record<string, unknown>;
52
+ readonly message: string;
53
+ readonly _tag: "PluginTimeoutError";
54
+ };
55
+ isError(error: unknown): error is Error;
56
+ name: "PluginTimeoutError";
57
+ is(error: unknown): error is BaseError;
58
+ wrap(options?: Omit<import("@dxos/errors").BaseErrorOptions, 'cause'> & {
59
+ ifTypeDiffers?: boolean;
60
+ }): (error: unknown) => {
61
+ cause?: unknown;
62
+ stack?: string;
63
+ name: "PluginTimeoutError";
64
+ context: Record<string, unknown>;
65
+ readonly message: string;
66
+ readonly _tag: "PluginTimeoutError";
67
+ };
68
+ extend<Name extends string = string>(name: Name, message?: string): any;
69
+ captureStackTrace(targetObject: object, constructorOpt?: Function): void;
70
+ prepareStackTrace?: ((err: Error, stackTraces: NodeJS.CallSite[]) => any) | undefined;
71
+ stackTraceLimit: number;
72
+ };
73
+ /**
74
+ * Tagged error raised when a plugin exceeds its configured load or activation
75
+ * timeout. The plugin manager records the failure on the `failed` atom and
76
+ * auto-disables the plugin so that one stuck remote does not stall app boot.
77
+ * `context.id` is the plugin id, `context.phase` is `'load'` or `'activation'`.
78
+ */
79
+ export declare class PluginTimeoutError extends PluginTimeoutError_base {
80
+ }
81
+ /** Phase of the plugin lifecycle in which the failure was observed. */
82
+ export type PluginFailurePhase = 'load' | 'activation';
83
+ /** Why the plugin entered a failed state. */
84
+ export type PluginFailureReason = 'timeout' | 'error';
85
+ /**
86
+ * Record of a plugin that failed to load or activate. Surfaced via the
87
+ * {@link PluginManager.failed} atom so registry / UI consumers can flag
88
+ * unhealthy plugins (e.g. a remote host that has gone offline) rather than
89
+ * leaving the app in a half-broken state.
90
+ */
91
+ export type PluginFailure = {
92
+ readonly id: string;
93
+ readonly phase: PluginFailurePhase;
94
+ readonly reason: PluginFailureReason;
95
+ readonly error: Error;
96
+ /** `Date.now()` when the failure was recorded. */
97
+ readonly timestamp: number;
98
+ };
7
99
  /**
8
100
  * Identifier denoting a Manager.
9
101
  */
10
102
  export declare const ManagerTypeId: unique symbol;
11
103
  export type ManagerTypeId = typeof ManagerTypeId;
104
+ /**
105
+ * Loader result that carries optional metadata about how the plugin was sourced.
106
+ *
107
+ * `dev: true` marks a plugin as session-only and triggers shadow-on-id-collision
108
+ * inside the manager: if a plugin with the same id is already registered (a
109
+ * builtin, or a previously-installed plugin from the registry), the dev plugin
110
+ * temporarily takes over that id slot. The original is restored when the dev
111
+ * plugin is removed (or on page reload, since dev plugins aren't persisted).
112
+ */
113
+ export type LoadedPlugin = {
114
+ plugin: Plugin.Plugin;
115
+ /** True when the plugin came from a dev source. See type doc for semantics. */
116
+ dev?: boolean;
117
+ };
12
118
  export type ManagerOptions = {
13
- pluginLoader: (id: string) => Effect.Effect<Plugin.Plugin, Error>;
119
+ pluginLoader: (id: string) => Effect.Effect<LoadedPlugin, Error>;
14
120
  plugins?: Plugin.Plugin[];
15
- core?: string[];
16
121
  enabled?: string[];
17
122
  registry?: Registry.Registry;
123
+ /**
124
+ * Backend for the plugin registry catalog. When omitted the manager exposes a
125
+ * no-op `pluginRegistry` (empty list, no versions endpoint). Implementations
126
+ * live in app-framework alongside the interface (e.g.
127
+ * `EdgeRegistryPluginProvider`); the host app instantiates one and passes it in.
128
+ */
129
+ pluginRegistryProvider?: PluginRegistry.PluginProvider;
130
+ /**
131
+ * Hook called when a plugin is removed via {@link PluginManager.remove}. Used by the
132
+ * host app to clean up persisted state (e.g. evict offline-cached plugin assets).
133
+ * Failures are logged and swallowed; removal still succeeds even if the hook fails.
134
+ */
135
+ onRemove?: (id: string) => Effect.Effect<void, unknown>;
136
+ /**
137
+ * Maximum time allowed for a lazy plugin's dynamic `import()` to resolve.
138
+ * Plugins that exceed this are flagged on the {@link PluginManager.failed}
139
+ * atom and auto-disabled so a stuck remote host can't stall app boot.
140
+ * Defaults to 30 seconds; pass `Duration.infinity` to disable.
141
+ */
142
+ loadTimeout?: Duration.DurationInput;
143
+ /**
144
+ * Maximum time allowed for a single module's `activate()` Effect to settle.
145
+ * Modules that exceed this fail with {@link PluginTimeoutError}; the owning
146
+ * plugin is recorded on `failed` and auto-disabled. Defaults to 30 seconds;
147
+ * pass `Duration.infinity` to disable.
148
+ */
149
+ activationTimeout?: Duration.DurationInput;
18
150
  };
19
- type ActivationMessage = {
151
+ export type ActivationMessage = {
20
152
  event: string;
21
153
  state: 'activating' | 'activated' | 'error';
154
+ /** Module ID when the message pertains to a specific module activation. */
155
+ module?: string;
22
156
  error?: Error;
23
157
  };
24
158
  /**
@@ -29,6 +163,13 @@ export interface PluginManager {
29
163
  readonly activation: PubSub.PubSub<ActivationMessage>;
30
164
  readonly capabilities: CapabilityManager.CapabilityManager;
31
165
  readonly registry: Registry.Registry;
166
+ /**
167
+ * Cached registry catalog state plus pass-throughs for `listVersions` /
168
+ * `getPlugin`. Always present — the host supplies a `pluginRegistryProvider`
169
+ * via {@link ManagerOptions} for real backends, or it falls back to a no-op
170
+ * implementation that yields an empty catalog.
171
+ */
172
+ readonly pluginRegistry: PluginRegistry.Manager;
32
173
  readonly plugins: Atom.Atom<readonly Plugin.Plugin[]>;
33
174
  readonly core: Atom.Atom<readonly string[]>;
34
175
  readonly enabled: Atom.Atom<readonly string[]>;
@@ -36,6 +177,19 @@ export interface PluginManager {
36
177
  readonly active: Atom.Atom<readonly string[]>;
37
178
  readonly eventsFired: Atom.Atom<readonly string[]>;
38
179
  readonly pendingReset: Atom.Atom<readonly string[]>;
180
+ /**
181
+ * Plugins that failed to load or activate. Subscribers (e.g. the registry
182
+ * UI) can use this to flag unhealthy entries; a plugin id appears here at
183
+ * most once with its most recent failure.
184
+ */
185
+ readonly failed: Atom.Atom<readonly PluginFailure[]>;
186
+ /**
187
+ * Ids of currently-registered plugins that came from a dev source (loaded
188
+ * via {@link LoadedPlugin} with `dev: true`). Subscribers can use this to
189
+ * badge dev-overridden plugins or to derive the id of the active dev plugin
190
+ * for an "uninstall dev plugin" affordance.
191
+ */
192
+ readonly devPluginIds: Atom.Atom<readonly string[]>;
39
193
  getPlugins(): readonly Plugin.Plugin[];
40
194
  getCore(): readonly string[];
41
195
  getEnabled(): readonly string[];
@@ -43,10 +197,81 @@ export interface PluginManager {
43
197
  getActive(): readonly string[];
44
198
  getEventsFired(): readonly string[];
45
199
  getPendingReset(): readonly string[];
46
- add(id: string): Effect.Effect<boolean, Error>;
47
- enable(id: string): Effect.Effect<boolean, Error>;
48
- remove(id: string): boolean;
49
- disable(id: string): Effect.Effect<boolean, Error>;
200
+ getFailed(): readonly PluginFailure[];
201
+ getDevPluginIds(): readonly string[];
202
+ /**
203
+ * Clears the failure record for a plugin so it can be retried. Returns
204
+ * whether a failure record existed and was removed.
205
+ */
206
+ clearFailure(id: string): boolean;
207
+ /**
208
+ * Loads a plugin via the plugin loader and registers it without enabling it.
209
+ * Returns the loaded plugin so callers can enable it by its canonical id
210
+ * (which may differ from the locator used to load it, e.g. URL loaders).
211
+ */
212
+ add(id: string): Effect.Effect<Plugin.Plugin, Error>;
213
+ /**
214
+ * Enables a plugin.
215
+ *
216
+ * Default behavior auto-resolves the plugin's declared `dependsOn` closure:
217
+ * missing entries that exist in the plugin registry catalog are installed via
218
+ * {@link add}, then enabled in dependency-first order. Set `resolveDependencies`
219
+ * to `false` to enable only the named plugin and skip the closure walk
220
+ * entirely — useful when substituting an alternative plugin that satisfies
221
+ * the dependent's capability needs in its own way.
222
+ */
223
+ enable(id: string, opts?: {
224
+ resolveDependencies?: boolean;
225
+ }): Effect.Effect<boolean, Error>;
226
+ /**
227
+ * Removes a plugin from the manager (disables then unregisters).
228
+ *
229
+ * Honors the same cascade option as {@link disable}.
230
+ */
231
+ remove(id: string, opts?: {
232
+ cascade?: boolean;
233
+ }): Effect.Effect<boolean, Error>;
234
+ /**
235
+ * Disables a plugin.
236
+ *
237
+ * By default, cascades to currently-enabled dependents (transitively, leaves
238
+ * first) so disabling a depended-upon plugin never leaves its dependents
239
+ * stranded. Pass `cascade: false` to disable only the named plugin and leave
240
+ * its dependents enabled-but-broken — VS Code-style disable parity for
241
+ * callers that want the escape hatch (e.g. when swapping in an alternative
242
+ * implementation that satisfies the dependents' needs in its own way).
243
+ *
244
+ * Fails with {@link Plugin.PluginDependencyError} (`reason: 'core-dependent'`)
245
+ * when cascading would require disabling a core plugin; UI flows should
246
+ * surface their own confirmation before calling `disable` with the default.
247
+ */
248
+ disable(id: string, opts?: {
249
+ cascade?: boolean;
250
+ }): Effect.Effect<boolean, Error>;
251
+ /**
252
+ * Returns the plugin ids that the given plugin declares as dependencies.
253
+ *
254
+ * Walks `meta.dependsOn` from both registered plugins and the plugin registry
255
+ * catalog so callers can preview the closure for a plugin that isn't yet
256
+ * installed. With `transitive: true` (default), returns the full dependency
257
+ * closure in dependency-first order (deps before dependents). Without it,
258
+ * returns the direct declarations only.
259
+ */
260
+ getDependencies(id: string, opts?: {
261
+ transitive?: boolean;
262
+ }): readonly string[];
263
+ /**
264
+ * Returns the plugin ids that declare the given plugin as a dependency.
265
+ *
266
+ * Walks `meta.dependsOn` over registered plugins. With `transitive: true`
267
+ * (default), returns the full reverse closure. With `enabledOnly: true`,
268
+ * filters to currently-enabled dependents — used by UI flows to preview what
269
+ * a cascading disable would touch.
270
+ */
271
+ getDependents(id: string, opts?: {
272
+ transitive?: boolean;
273
+ enabledOnly?: boolean;
274
+ }): readonly string[];
50
275
  activate(event: ActivationEvent.ActivationEvent | string, params?: {
51
276
  before?: string;
52
277
  after?: string;
@@ -1 +1 @@
1
- {"version":3,"file":"plugin-manager.d.ts","sourceRoot":"","sources":["../../../../src/core/plugin-manager.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"plugin-manager.d.ts","sourceRoot":"","sources":["../../../../src/core/plugin-manager.ts"],"names":[],"mappings":"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"}