@dxos/app-framework 0.8.3 → 0.8.4-main.1068cf700f

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 (663) hide show
  1. package/.storybook/main.mts +11 -0
  2. package/.storybook/preview.mts +8 -0
  3. package/.swc/plugins/linux_x86_64_19.0.0/727453fb3a62f7f1d952a41e051ca8a6f88cadc45cee43c6a4d1aa45f9b75665.wasmer-v7 +0 -0
  4. package/README.md +0 -8
  5. package/dist/lib/browser/capability-7LE5X2NH.mjs +37 -0
  6. package/dist/lib/browser/capability-7LE5X2NH.mjs.map +7 -0
  7. package/dist/lib/browser/capability-DU35RXMD.mjs +34 -0
  8. package/dist/lib/browser/capability-DU35RXMD.mjs.map +7 -0
  9. package/dist/lib/browser/chunk-4DQMLMGU.mjs +44 -0
  10. package/dist/lib/browser/chunk-4DQMLMGU.mjs.map +7 -0
  11. package/dist/lib/browser/chunk-EIFGKQSA.mjs +170 -0
  12. package/dist/lib/browser/chunk-EIFGKQSA.mjs.map +7 -0
  13. package/dist/lib/browser/chunk-FHQTHCX7.mjs +8 -0
  14. package/dist/lib/browser/chunk-FHQTHCX7.mjs.map +7 -0
  15. package/dist/lib/browser/chunk-IGRQWMWW.mjs +80 -0
  16. package/dist/lib/browser/chunk-IGRQWMWW.mjs.map +7 -0
  17. package/dist/lib/browser/chunk-J5LGTIGS.mjs +10 -0
  18. package/dist/lib/browser/chunk-KWP6PKIU.mjs +145 -0
  19. package/dist/lib/browser/chunk-KWP6PKIU.mjs.map +7 -0
  20. package/dist/lib/browser/chunk-NPUEVX42.mjs +34 -0
  21. package/dist/lib/browser/chunk-NPUEVX42.mjs.map +7 -0
  22. package/dist/lib/browser/chunk-PKQT6C53.mjs +47 -0
  23. package/dist/lib/browser/chunk-PKQT6C53.mjs.map +7 -0
  24. package/dist/lib/browser/chunk-WGWEEBUV.mjs +807 -0
  25. package/dist/lib/browser/chunk-WGWEEBUV.mjs.map +7 -0
  26. package/dist/lib/browser/chunk-YAFEA4GV.mjs +1 -0
  27. package/dist/lib/browser/chunk-YZQ6NFG4.mjs +781 -0
  28. package/dist/lib/browser/chunk-YZQ6NFG4.mjs.map +7 -0
  29. package/dist/lib/browser/chunk-ZQO3UZ4R.mjs +77 -0
  30. package/dist/lib/browser/chunk-ZQO3UZ4R.mjs.map +7 -0
  31. package/dist/lib/browser/cli/index.mjs +89 -0
  32. package/dist/lib/browser/cli/index.mjs.map +7 -0
  33. package/dist/lib/browser/common/activation-events.mjs +23 -0
  34. package/dist/lib/browser/common/capabilities.mjs +45 -0
  35. package/dist/lib/browser/core/activation-event.mjs +20 -0
  36. package/dist/lib/browser/core/activation-event.mjs.map +7 -0
  37. package/dist/lib/browser/core/capability.mjs +28 -0
  38. package/dist/lib/browser/core/capability.mjs.map +7 -0
  39. package/dist/lib/browser/core/plugin-manager.mjs +15 -0
  40. package/dist/lib/browser/core/plugin-manager.mjs.map +7 -0
  41. package/dist/lib/browser/core/plugin.mjs +27 -0
  42. package/dist/lib/browser/core/plugin.mjs.map +7 -0
  43. package/dist/lib/browser/index.mjs +87 -156
  44. package/dist/lib/browser/index.mjs.map +4 -4
  45. package/dist/lib/browser/invoker-capability-7QW56NOM.mjs +36 -0
  46. package/dist/lib/browser/invoker-capability-7QW56NOM.mjs.map +7 -0
  47. package/dist/lib/browser/meta.json +1 -1
  48. package/dist/lib/browser/testing/index.mjs +84 -38
  49. package/dist/lib/browser/testing/index.mjs.map +4 -4
  50. package/dist/lib/browser/ui/index.mjs +49 -0
  51. package/dist/lib/browser/ui/index.mjs.map +7 -0
  52. package/dist/lib/node-esm/capability-OSVYGK4X.mjs +38 -0
  53. package/dist/lib/node-esm/capability-OSVYGK4X.mjs.map +7 -0
  54. package/dist/lib/node-esm/capability-SR2EIZFP.mjs +35 -0
  55. package/dist/lib/node-esm/capability-SR2EIZFP.mjs.map +7 -0
  56. package/dist/lib/node-esm/chunk-64IMLAS2.mjs +78 -0
  57. package/dist/lib/node-esm/chunk-64IMLAS2.mjs.map +7 -0
  58. package/dist/lib/node-esm/chunk-7OWSHPYK.mjs +48 -0
  59. package/dist/lib/node-esm/chunk-7OWSHPYK.mjs.map +7 -0
  60. package/dist/lib/node-esm/chunk-DHSHRYIB.mjs +171 -0
  61. package/dist/lib/node-esm/chunk-DHSHRYIB.mjs.map +7 -0
  62. package/dist/lib/node-esm/chunk-DZ2XLAGI.mjs +146 -0
  63. package/dist/lib/node-esm/chunk-DZ2XLAGI.mjs.map +7 -0
  64. package/dist/lib/node-esm/chunk-HSLMI22Q.mjs +11 -0
  65. package/dist/lib/node-esm/chunk-HSLMI22Q.mjs.map +7 -0
  66. package/dist/lib/node-esm/chunk-J2PHTRHC.mjs +45 -0
  67. package/dist/lib/node-esm/chunk-J2PHTRHC.mjs.map +7 -0
  68. package/dist/lib/node-esm/chunk-JAZVHID3.mjs +35 -0
  69. package/dist/lib/node-esm/chunk-JAZVHID3.mjs.map +7 -0
  70. package/dist/lib/node-esm/chunk-OQYHRZYF.mjs +81 -0
  71. package/dist/lib/node-esm/chunk-OQYHRZYF.mjs.map +7 -0
  72. package/dist/lib/node-esm/chunk-UEWJDI2L.mjs +10 -0
  73. package/dist/lib/node-esm/chunk-UEWJDI2L.mjs.map +7 -0
  74. package/dist/lib/node-esm/chunk-VV4YHPQQ.mjs +782 -0
  75. package/dist/lib/node-esm/chunk-VV4YHPQQ.mjs.map +7 -0
  76. package/dist/lib/node-esm/chunk-XHAKT6UD.mjs +808 -0
  77. package/dist/lib/node-esm/chunk-XHAKT6UD.mjs.map +7 -0
  78. package/dist/lib/node-esm/chunk-Z4TJPSMP.mjs +2 -0
  79. package/dist/lib/node-esm/chunk-Z4TJPSMP.mjs.map +7 -0
  80. package/dist/lib/node-esm/cli/index.mjs +90 -0
  81. package/dist/lib/node-esm/cli/index.mjs.map +7 -0
  82. package/dist/lib/node-esm/common/activation-events.mjs +24 -0
  83. package/dist/lib/node-esm/common/activation-events.mjs.map +7 -0
  84. package/dist/lib/node-esm/common/capabilities.mjs +46 -0
  85. package/dist/lib/node-esm/common/capabilities.mjs.map +7 -0
  86. package/dist/lib/node-esm/core/activation-event.mjs +21 -0
  87. package/dist/lib/node-esm/core/activation-event.mjs.map +7 -0
  88. package/dist/lib/node-esm/core/capability.mjs +29 -0
  89. package/dist/lib/node-esm/core/capability.mjs.map +7 -0
  90. package/dist/lib/node-esm/core/plugin-manager.mjs +16 -0
  91. package/dist/lib/node-esm/core/plugin-manager.mjs.map +7 -0
  92. package/dist/lib/node-esm/core/plugin.mjs +28 -0
  93. package/dist/lib/node-esm/core/plugin.mjs.map +7 -0
  94. package/dist/lib/node-esm/index.mjs +87 -156
  95. package/dist/lib/node-esm/index.mjs.map +4 -4
  96. package/dist/lib/node-esm/invoker-capability-CK4AMF2R.mjs +37 -0
  97. package/dist/lib/node-esm/invoker-capability-CK4AMF2R.mjs.map +7 -0
  98. package/dist/lib/node-esm/meta.json +1 -1
  99. package/dist/lib/node-esm/testing/index.mjs +84 -38
  100. package/dist/lib/node-esm/testing/index.mjs.map +4 -4
  101. package/dist/lib/node-esm/ui/index.mjs +50 -0
  102. package/dist/lib/node-esm/ui/index.mjs.map +7 -0
  103. package/dist/types/src/cli/cli.d.ts +39 -0
  104. package/dist/types/src/cli/cli.d.ts.map +1 -0
  105. package/dist/types/src/cli/index.d.ts +2 -0
  106. package/dist/types/src/cli/index.d.ts.map +1 -0
  107. package/dist/types/src/common/activation-events.d.ts +27 -0
  108. package/dist/types/src/common/activation-events.d.ts.map +1 -0
  109. package/dist/types/src/common/capabilities.d.ts +114 -121
  110. package/dist/types/src/common/capabilities.d.ts.map +1 -1
  111. package/dist/types/src/common/index.d.ts +4 -8
  112. package/dist/types/src/common/index.d.ts.map +1 -1
  113. package/dist/types/src/common/operations.d.ts +33 -0
  114. package/dist/types/src/common/operations.d.ts.map +1 -0
  115. package/dist/types/src/common/translations.d.ts +8 -8
  116. package/dist/types/src/common/translations.d.ts.map +1 -1
  117. package/dist/types/src/context.d.ts +5 -0
  118. package/dist/types/src/context.d.ts.map +1 -0
  119. package/dist/types/src/core/{events.d.ts → activation-event.d.ts} +6 -6
  120. package/dist/types/src/core/activation-event.d.ts.map +1 -0
  121. package/dist/types/src/core/capability-manager.d.ts +43 -0
  122. package/dist/types/src/core/capability-manager.d.ts.map +1 -0
  123. package/dist/types/src/core/capability-manager.test.d.ts +2 -0
  124. package/dist/types/src/core/capability-manager.test.d.ts.map +1 -0
  125. package/dist/types/src/core/capability.d.ts +150 -0
  126. package/dist/types/src/core/capability.d.ts.map +1 -0
  127. package/dist/types/src/core/index.d.ts +5 -4
  128. package/dist/types/src/core/index.d.ts.map +1 -1
  129. package/dist/types/src/core/plugin-manager.d.ts +66 -0
  130. package/dist/types/src/core/plugin-manager.d.ts.map +1 -0
  131. package/dist/types/src/core/plugin-manager.test.d.ts +2 -0
  132. package/dist/types/src/core/plugin-manager.test.d.ts.map +1 -0
  133. package/dist/types/src/core/plugin.d.ts +97 -32
  134. package/dist/types/src/core/plugin.d.ts.map +1 -1
  135. package/dist/types/src/index.d.ts +3 -4
  136. package/dist/types/src/index.d.ts.map +1 -1
  137. package/dist/types/src/plugin-operation/OperationPlugin.d.ts +3 -0
  138. package/dist/types/src/plugin-operation/OperationPlugin.d.ts.map +1 -0
  139. package/dist/types/src/plugin-operation/history/capability.d.ts +7 -0
  140. package/dist/types/src/plugin-operation/history/capability.d.ts.map +1 -0
  141. package/dist/types/src/plugin-operation/history/errors.d.ts +5 -0
  142. package/dist/types/src/plugin-operation/history/errors.d.ts.map +1 -0
  143. package/dist/types/src/plugin-operation/history/history-tracker.d.ts +18 -0
  144. package/dist/types/src/plugin-operation/history/history-tracker.d.ts.map +1 -0
  145. package/dist/types/src/plugin-operation/history/history-tracker.test.d.ts +2 -0
  146. package/dist/types/src/plugin-operation/history/history-tracker.test.d.ts.map +1 -0
  147. package/dist/types/src/plugin-operation/history/index.d.ts +6 -0
  148. package/dist/types/src/plugin-operation/history/index.d.ts.map +1 -0
  149. package/dist/types/src/plugin-operation/history/types.d.ts +13 -0
  150. package/dist/types/src/plugin-operation/history/types.d.ts.map +1 -0
  151. package/dist/types/src/plugin-operation/history/undo-mapping.d.ts +101 -0
  152. package/dist/types/src/plugin-operation/history/undo-mapping.d.ts.map +1 -0
  153. package/dist/types/src/plugin-operation/history/undo-registry.d.ts +23 -0
  154. package/dist/types/src/plugin-operation/history/undo-registry.d.ts.map +1 -0
  155. package/dist/types/src/plugin-operation/history/undo-registry.test.d.ts +2 -0
  156. package/dist/types/src/plugin-operation/history/undo-registry.test.d.ts.map +1 -0
  157. package/dist/types/src/plugin-operation/index.d.ts +3 -0
  158. package/dist/types/src/plugin-operation/index.d.ts.map +1 -0
  159. package/dist/types/src/plugin-operation/invoker-capability.d.ts +6 -0
  160. package/dist/types/src/plugin-operation/invoker-capability.d.ts.map +1 -0
  161. package/dist/types/src/plugin-operation/meta.d.ts +3 -0
  162. package/dist/types/src/plugin-operation/meta.d.ts.map +1 -0
  163. package/dist/types/src/plugin-operation/testing.d.ts +109 -0
  164. package/dist/types/src/plugin-operation/testing.d.ts.map +1 -0
  165. package/dist/types/src/plugin-runtime/RuntimePlugin.d.ts +3 -0
  166. package/dist/types/src/plugin-runtime/RuntimePlugin.d.ts.map +1 -0
  167. package/dist/types/src/plugin-runtime/capability.d.ts +6 -0
  168. package/dist/types/src/plugin-runtime/capability.d.ts.map +1 -0
  169. package/dist/types/src/plugin-runtime/index.d.ts +2 -0
  170. package/dist/types/src/plugin-runtime/index.d.ts.map +1 -0
  171. package/dist/types/src/plugin-runtime/meta.d.ts +3 -0
  172. package/dist/types/src/plugin-runtime/meta.d.ts.map +1 -0
  173. package/dist/types/src/testing/index.d.ts +1 -0
  174. package/dist/types/src/testing/index.d.ts.map +1 -1
  175. package/dist/types/src/testing/service.d.ts +8 -0
  176. package/dist/types/src/testing/service.d.ts.map +1 -0
  177. package/dist/types/src/testing/withPluginManager.d.ts +11 -10
  178. package/dist/types/src/testing/withPluginManager.d.ts.map +1 -1
  179. package/dist/types/src/testing/withPluginManager.stories.d.ts +9 -3
  180. package/dist/types/src/testing/withPluginManager.stories.d.ts.map +1 -1
  181. package/dist/types/src/ui/components/App.d.ts +8 -0
  182. package/dist/types/src/ui/components/App.d.ts.map +1 -0
  183. package/dist/types/src/ui/components/App.stories.d.ts +14 -0
  184. package/dist/types/src/ui/components/App.stories.d.ts.map +1 -0
  185. package/dist/types/src/ui/components/DefaultFallback.d.ts +8 -0
  186. package/dist/types/src/ui/components/DefaultFallback.d.ts.map +1 -0
  187. package/dist/types/src/ui/components/ErrorBoundary.d.ts +30 -0
  188. package/dist/types/src/ui/components/ErrorBoundary.d.ts.map +1 -0
  189. package/dist/types/src/ui/components/PluginManagerContext.stories.d.ts +13 -0
  190. package/dist/types/src/ui/components/PluginManagerContext.stories.d.ts.map +1 -0
  191. package/dist/types/src/ui/components/PluginManagerProvider.d.ts +10 -0
  192. package/dist/types/src/ui/components/PluginManagerProvider.d.ts.map +1 -0
  193. package/dist/types/src/ui/components/index.d.ts +5 -0
  194. package/dist/types/src/ui/components/index.d.ts.map +1 -0
  195. package/dist/types/src/ui/components/surface/SurfaceComponent.d.ts +12 -0
  196. package/dist/types/src/ui/components/surface/SurfaceComponent.d.ts.map +1 -0
  197. package/dist/types/src/ui/components/surface/SurfaceComponent.stories.d.ts +14 -0
  198. package/dist/types/src/ui/components/surface/SurfaceComponent.stories.d.ts.map +1 -0
  199. package/dist/types/src/ui/components/surface/SurfaceInfo.d.ts +11 -0
  200. package/dist/types/src/ui/components/surface/SurfaceInfo.d.ts.map +1 -0
  201. package/dist/types/src/ui/components/surface/context.d.ts +5 -0
  202. package/dist/types/src/ui/components/surface/context.d.ts.map +1 -0
  203. package/dist/types/src/ui/components/surface/index.d.ts +5 -0
  204. package/dist/types/src/ui/components/surface/index.d.ts.map +1 -0
  205. package/dist/types/src/ui/components/surface/types.d.ts +94 -0
  206. package/dist/types/src/ui/components/surface/types.d.ts.map +1 -0
  207. package/dist/types/src/ui/hooks/index.d.ts +7 -0
  208. package/dist/types/src/ui/hooks/index.d.ts.map +1 -0
  209. package/dist/types/src/{App.d.ts → ui/hooks/useApp.d.ts} +16 -9
  210. package/dist/types/src/ui/hooks/useApp.d.ts.map +1 -0
  211. package/dist/types/src/ui/hooks/useCapabilities.d.ts +31 -0
  212. package/dist/types/src/ui/hooks/useCapabilities.d.ts.map +1 -0
  213. package/dist/types/src/ui/hooks/useLoading.d.ts +18 -0
  214. package/dist/types/src/ui/hooks/useLoading.d.ts.map +1 -0
  215. package/dist/types/src/ui/hooks/useOperationResolver.d.ts +19 -0
  216. package/dist/types/src/ui/hooks/useOperationResolver.d.ts.map +1 -0
  217. package/dist/types/src/ui/hooks/useSettingsState.d.ts +10 -0
  218. package/dist/types/src/ui/hooks/useSettingsState.d.ts.map +1 -0
  219. package/dist/types/src/ui/hooks/useSurface.d.ts +3 -0
  220. package/dist/types/src/ui/hooks/useSurface.d.ts.map +1 -0
  221. package/dist/types/src/ui/index.d.ts +4 -0
  222. package/dist/types/src/ui/index.d.ts.map +1 -0
  223. package/dist/types/tsconfig.tsbuildinfo +1 -1
  224. package/moon.yml +25 -0
  225. package/package.json +113 -45
  226. package/src/cli/cli.ts +107 -0
  227. package/src/{playground/layout → cli}/index.ts +1 -1
  228. package/src/common/activation-events.ts +44 -0
  229. package/src/common/capabilities.ts +174 -108
  230. package/src/common/index.ts +4 -8
  231. package/src/common/operations.ts +38 -0
  232. package/src/common/translations.ts +18 -10
  233. package/src/context.ts +9 -0
  234. package/src/core/{events.ts → activation-event.ts} +5 -5
  235. package/src/core/capability-manager.test.ts +151 -0
  236. package/src/core/capability-manager.ts +171 -0
  237. package/src/core/capability.ts +236 -0
  238. package/src/core/index.ts +5 -4
  239. package/src/core/plugin-manager.test.ts +845 -0
  240. package/src/core/plugin-manager.ts +696 -0
  241. package/src/core/plugin.ts +229 -36
  242. package/src/helpers.test.ts +1 -1
  243. package/src/index.ts +3 -4
  244. package/src/plugin-operation/OperationPlugin.ts +25 -0
  245. package/src/plugin-operation/history/capability.ts +37 -0
  246. package/src/plugin-operation/history/errors.ts +11 -0
  247. package/src/plugin-operation/history/history-tracker.test.ts +380 -0
  248. package/src/plugin-operation/history/history-tracker.ts +129 -0
  249. package/src/plugin-operation/history/index.ts +9 -0
  250. package/src/plugin-operation/history/types.ts +17 -0
  251. package/src/plugin-operation/history/undo-mapping.ts +135 -0
  252. package/src/plugin-operation/history/undo-registry.test.ts +73 -0
  253. package/src/plugin-operation/history/undo-registry.ts +54 -0
  254. package/src/plugin-operation/index.ts +6 -0
  255. package/src/plugin-operation/invoker-capability.ts +40 -0
  256. package/src/plugin-operation/meta.ts +11 -0
  257. package/src/plugin-operation/testing.ts +174 -0
  258. package/src/plugin-runtime/RuntimePlugin.ts +20 -0
  259. package/src/plugin-runtime/capability.ts +53 -0
  260. package/src/{playground/logger → plugin-runtime}/index.ts +1 -1
  261. package/src/plugin-runtime/meta.ts +11 -0
  262. package/src/testing/index.ts +1 -0
  263. package/src/testing/service.ts +52 -0
  264. package/src/testing/withPluginManager.stories.tsx +15 -11
  265. package/src/testing/withPluginManager.tsx +43 -44
  266. package/src/ui/components/App.stories.tsx +62 -0
  267. package/src/ui/components/App.tsx +57 -0
  268. package/src/ui/components/DefaultFallback.tsx +26 -0
  269. package/src/ui/components/ErrorBoundary.tsx +56 -0
  270. package/src/ui/components/PluginManagerContext.stories.tsx +183 -0
  271. package/src/{react → ui/components}/PluginManagerProvider.ts +3 -3
  272. package/src/ui/components/index.ts +8 -0
  273. package/src/ui/components/surface/SurfaceComponent.stories.tsx +142 -0
  274. package/src/ui/components/surface/SurfaceComponent.tsx +262 -0
  275. package/src/ui/components/surface/SurfaceInfo.tsx +107 -0
  276. package/src/ui/components/surface/context.ts +12 -0
  277. package/src/ui/components/surface/index.ts +8 -0
  278. package/src/ui/components/surface/types.ts +119 -0
  279. package/src/ui/hooks/index.ts +10 -0
  280. package/src/ui/hooks/useApp.tsx +215 -0
  281. package/src/ui/hooks/useCapabilities.ts +67 -0
  282. package/src/ui/hooks/useLoading.tsx +68 -0
  283. package/src/ui/hooks/useOperationResolver.ts +40 -0
  284. package/src/ui/hooks/useSettingsState.ts +26 -0
  285. package/src/ui/hooks/useSurface.ts +13 -0
  286. package/src/ui/index.ts +7 -0
  287. package/tsconfig.json +13 -29
  288. package/vitest.config.ts +8 -3
  289. package/.eslintrc.cjs +0 -9
  290. package/README.yml +0 -5
  291. package/dist/lib/browser/app-graph-builder-BI4VVKSW.mjs +0 -137
  292. package/dist/lib/browser/app-graph-builder-BI4VVKSW.mjs.map +0 -7
  293. package/dist/lib/browser/chunk-DIBVO47Z.mjs +0 -406
  294. package/dist/lib/browser/chunk-DIBVO47Z.mjs.map +0 -7
  295. package/dist/lib/browser/chunk-EHM4UI3V.mjs +0 -1518
  296. package/dist/lib/browser/chunk-EHM4UI3V.mjs.map +0 -7
  297. package/dist/lib/browser/chunk-WWEJRWFX.mjs +0 -32
  298. package/dist/lib/browser/chunk-WWEJRWFX.mjs.map +0 -7
  299. package/dist/lib/browser/intent-dispatcher-XVBOMF2Y.mjs +0 -11
  300. package/dist/lib/browser/intent-resolver-3QMBXLIY.mjs +0 -39
  301. package/dist/lib/browser/intent-resolver-3QMBXLIY.mjs.map +0 -7
  302. package/dist/lib/browser/store-5H7XPJGA.mjs +0 -30
  303. package/dist/lib/browser/store-5H7XPJGA.mjs.map +0 -7
  304. package/dist/lib/browser/worker.mjs +0 -79
  305. package/dist/lib/node/app-graph-builder-H7QVE4MJ.cjs +0 -146
  306. package/dist/lib/node/app-graph-builder-H7QVE4MJ.cjs.map +0 -7
  307. package/dist/lib/node/chunk-G774ASXO.cjs +0 -58
  308. package/dist/lib/node/chunk-G774ASXO.cjs.map +0 -7
  309. package/dist/lib/node/chunk-VSOSVDQ3.cjs +0 -1551
  310. package/dist/lib/node/chunk-VSOSVDQ3.cjs.map +0 -7
  311. package/dist/lib/node/chunk-YGAY3H34.cjs +0 -429
  312. package/dist/lib/node/chunk-YGAY3H34.cjs.map +0 -7
  313. package/dist/lib/node/index.cjs +0 -193
  314. package/dist/lib/node/index.cjs.map +0 -7
  315. package/dist/lib/node/intent-dispatcher-C3SVKJ62.cjs +0 -32
  316. package/dist/lib/node/intent-dispatcher-C3SVKJ62.cjs.map +0 -7
  317. package/dist/lib/node/intent-resolver-IOJDYO34.cjs +0 -46
  318. package/dist/lib/node/intent-resolver-IOJDYO34.cjs.map +0 -7
  319. package/dist/lib/node/meta.json +0 -1
  320. package/dist/lib/node/store-ESF5VR57.cjs +0 -45
  321. package/dist/lib/node/store-ESF5VR57.cjs.map +0 -7
  322. package/dist/lib/node/testing/index.cjs +0 -119
  323. package/dist/lib/node/testing/index.cjs.map +0 -7
  324. package/dist/lib/node/worker.cjs +0 -101
  325. package/dist/lib/node/worker.cjs.map +0 -7
  326. package/dist/lib/node-esm/app-graph-builder-NROP6RPQ.mjs +0 -138
  327. package/dist/lib/node-esm/app-graph-builder-NROP6RPQ.mjs.map +0 -7
  328. package/dist/lib/node-esm/chunk-2J6FVECI.mjs +0 -1520
  329. package/dist/lib/node-esm/chunk-2J6FVECI.mjs.map +0 -7
  330. package/dist/lib/node-esm/chunk-FHNZZWP4.mjs +0 -407
  331. package/dist/lib/node-esm/chunk-FHNZZWP4.mjs.map +0 -7
  332. package/dist/lib/node-esm/chunk-I6BVZMAH.mjs +0 -34
  333. package/dist/lib/node-esm/chunk-I6BVZMAH.mjs.map +0 -7
  334. package/dist/lib/node-esm/intent-dispatcher-7JPGLCQ5.mjs +0 -12
  335. package/dist/lib/node-esm/intent-resolver-VY4X5UHN.mjs +0 -40
  336. package/dist/lib/node-esm/intent-resolver-VY4X5UHN.mjs.map +0 -7
  337. package/dist/lib/node-esm/store-UKD2R2KA.mjs +0 -31
  338. package/dist/lib/node-esm/store-UKD2R2KA.mjs.map +0 -7
  339. package/dist/lib/node-esm/worker.mjs +0 -80
  340. package/dist/types/src/App.d.ts.map +0 -1
  341. package/dist/types/src/common/collaboration.d.ts +0 -19
  342. package/dist/types/src/common/collaboration.d.ts.map +0 -1
  343. package/dist/types/src/common/events.d.ts +0 -52
  344. package/dist/types/src/common/events.d.ts.map +0 -1
  345. package/dist/types/src/common/file.d.ts +0 -14
  346. package/dist/types/src/common/file.d.ts.map +0 -1
  347. package/dist/types/src/common/graph.d.ts +0 -21
  348. package/dist/types/src/common/graph.d.ts.map +0 -1
  349. package/dist/types/src/common/layout.d.ts +0 -281
  350. package/dist/types/src/common/layout.d.ts.map +0 -1
  351. package/dist/types/src/common/surface.d.ts +0 -65
  352. package/dist/types/src/common/surface.d.ts.map +0 -1
  353. package/dist/types/src/core/capabilities.d.ts +0 -114
  354. package/dist/types/src/core/capabilities.d.ts.map +0 -1
  355. package/dist/types/src/core/capabilities.test.d.ts +0 -2
  356. package/dist/types/src/core/capabilities.test.d.ts.map +0 -1
  357. package/dist/types/src/core/events.d.ts.map +0 -1
  358. package/dist/types/src/core/manager.d.ts +0 -122
  359. package/dist/types/src/core/manager.d.ts.map +0 -1
  360. package/dist/types/src/core/manager.test.d.ts +0 -2
  361. package/dist/types/src/core/manager.test.d.ts.map +0 -1
  362. package/dist/types/src/playground/debug/Debug.d.ts +0 -6
  363. package/dist/types/src/playground/debug/Debug.d.ts.map +0 -1
  364. package/dist/types/src/playground/debug/index.d.ts +0 -2
  365. package/dist/types/src/playground/debug/index.d.ts.map +0 -1
  366. package/dist/types/src/playground/debug/plugin.d.ts +0 -2
  367. package/dist/types/src/playground/debug/plugin.d.ts.map +0 -1
  368. package/dist/types/src/playground/generator/Main.d.ts +0 -6
  369. package/dist/types/src/playground/generator/Main.d.ts.map +0 -1
  370. package/dist/types/src/playground/generator/Toolbar.d.ts +0 -6
  371. package/dist/types/src/playground/generator/Toolbar.d.ts.map +0 -1
  372. package/dist/types/src/playground/generator/generator.d.ts +0 -7
  373. package/dist/types/src/playground/generator/generator.d.ts.map +0 -1
  374. package/dist/types/src/playground/generator/index.d.ts +0 -3
  375. package/dist/types/src/playground/generator/index.d.ts.map +0 -1
  376. package/dist/types/src/playground/generator/plugin.d.ts +0 -2
  377. package/dist/types/src/playground/generator/plugin.d.ts.map +0 -1
  378. package/dist/types/src/playground/layout/Layout.d.ts +0 -8
  379. package/dist/types/src/playground/layout/Layout.d.ts.map +0 -1
  380. package/dist/types/src/playground/layout/index.d.ts +0 -2
  381. package/dist/types/src/playground/layout/index.d.ts.map +0 -1
  382. package/dist/types/src/playground/layout/plugin.d.ts +0 -2
  383. package/dist/types/src/playground/layout/plugin.d.ts.map +0 -1
  384. package/dist/types/src/playground/logger/Toolbar.d.ts +0 -6
  385. package/dist/types/src/playground/logger/Toolbar.d.ts.map +0 -1
  386. package/dist/types/src/playground/logger/index.d.ts +0 -2
  387. package/dist/types/src/playground/logger/index.d.ts.map +0 -1
  388. package/dist/types/src/playground/logger/plugin.d.ts +0 -2
  389. package/dist/types/src/playground/logger/plugin.d.ts.map +0 -1
  390. package/dist/types/src/playground/logger/schema.d.ts +0 -13
  391. package/dist/types/src/playground/logger/schema.d.ts.map +0 -1
  392. package/dist/types/src/playground/playground.stories.d.ts +0 -10
  393. package/dist/types/src/playground/playground.stories.d.ts.map +0 -1
  394. package/dist/types/src/plugin-intent/IntentPlugin.d.ts +0 -2
  395. package/dist/types/src/plugin-intent/IntentPlugin.d.ts.map +0 -1
  396. package/dist/types/src/plugin-intent/actions.d.ts +0 -38
  397. package/dist/types/src/plugin-intent/actions.d.ts.map +0 -1
  398. package/dist/types/src/plugin-intent/errors.d.ts +0 -16
  399. package/dist/types/src/plugin-intent/errors.d.ts.map +0 -1
  400. package/dist/types/src/plugin-intent/index.d.ts +0 -5
  401. package/dist/types/src/plugin-intent/index.d.ts.map +0 -1
  402. package/dist/types/src/plugin-intent/intent-dispatcher.d.ts +0 -139
  403. package/dist/types/src/plugin-intent/intent-dispatcher.d.ts.map +0 -1
  404. package/dist/types/src/plugin-intent/intent-dispatcher.test.d.ts +0 -2
  405. package/dist/types/src/plugin-intent/intent-dispatcher.test.d.ts.map +0 -1
  406. package/dist/types/src/plugin-intent/intent.d.ts +0 -63
  407. package/dist/types/src/plugin-intent/intent.d.ts.map +0 -1
  408. package/dist/types/src/plugin-settings/SettingsPlugin.d.ts +0 -2
  409. package/dist/types/src/plugin-settings/SettingsPlugin.d.ts.map +0 -1
  410. package/dist/types/src/plugin-settings/actions.d.ts +0 -27
  411. package/dist/types/src/plugin-settings/actions.d.ts.map +0 -1
  412. package/dist/types/src/plugin-settings/app-graph-builder.d.ts +0 -4
  413. package/dist/types/src/plugin-settings/app-graph-builder.d.ts.map +0 -1
  414. package/dist/types/src/plugin-settings/index.d.ts +0 -3
  415. package/dist/types/src/plugin-settings/index.d.ts.map +0 -1
  416. package/dist/types/src/plugin-settings/intent-resolver.d.ts +0 -4
  417. package/dist/types/src/plugin-settings/intent-resolver.d.ts.map +0 -1
  418. package/dist/types/src/plugin-settings/store.d.ts +0 -5
  419. package/dist/types/src/plugin-settings/store.d.ts.map +0 -1
  420. package/dist/types/src/plugin-settings/translations.d.ts +0 -11
  421. package/dist/types/src/plugin-settings/translations.d.ts.map +0 -1
  422. package/dist/types/src/react/ErrorBoundary.d.ts +0 -31
  423. package/dist/types/src/react/ErrorBoundary.d.ts.map +0 -1
  424. package/dist/types/src/react/IntentContext.d.ts +0 -8
  425. package/dist/types/src/react/IntentContext.d.ts.map +0 -1
  426. package/dist/types/src/react/PluginManagerProvider.d.ts +0 -10
  427. package/dist/types/src/react/PluginManagerProvider.d.ts.map +0 -1
  428. package/dist/types/src/react/Surface.d.ts +0 -12
  429. package/dist/types/src/react/Surface.d.ts.map +0 -1
  430. package/dist/types/src/react/Surface.stories.d.ts +0 -16
  431. package/dist/types/src/react/Surface.stories.d.ts.map +0 -1
  432. package/dist/types/src/react/common.d.ts +0 -13
  433. package/dist/types/src/react/common.d.ts.map +0 -1
  434. package/dist/types/src/react/index.d.ts +0 -7
  435. package/dist/types/src/react/index.d.ts.map +0 -1
  436. package/dist/types/src/react/useCapabilities.d.ts +0 -13
  437. package/dist/types/src/react/useCapabilities.d.ts.map +0 -1
  438. package/dist/types/src/react/useIntentResolver.d.ts +0 -3
  439. package/dist/types/src/react/useIntentResolver.d.ts.map +0 -1
  440. package/dist/types/src/worker.d.ts +0 -4
  441. package/dist/types/src/worker.d.ts.map +0 -1
  442. package/project.json +0 -29
  443. package/src/App.tsx +0 -276
  444. package/src/common/collaboration.ts +0 -21
  445. package/src/common/events.ts +0 -77
  446. package/src/common/file.ts +0 -22
  447. package/src/common/graph.ts +0 -30
  448. package/src/common/layout.ts +0 -278
  449. package/src/common/surface.ts +0 -86
  450. package/src/core/capabilities.test.ts +0 -136
  451. package/src/core/capabilities.ts +0 -254
  452. package/src/core/manager.test.ts +0 -516
  453. package/src/core/manager.ts +0 -519
  454. package/src/playground/debug/Debug.tsx +0 -39
  455. package/src/playground/debug/index.ts +0 -5
  456. package/src/playground/debug/plugin.ts +0 -17
  457. package/src/playground/generator/Main.tsx +0 -71
  458. package/src/playground/generator/Toolbar.tsx +0 -46
  459. package/src/playground/generator/generator.ts +0 -48
  460. package/src/playground/generator/index.ts +0 -6
  461. package/src/playground/generator/plugin.ts +0 -23
  462. package/src/playground/layout/Layout.tsx +0 -33
  463. package/src/playground/layout/plugin.ts +0 -17
  464. package/src/playground/logger/Toolbar.tsx +0 -29
  465. package/src/playground/logger/plugin.ts +0 -36
  466. package/src/playground/logger/schema.ts +0 -12
  467. package/src/playground/playground.stories.tsx +0 -42
  468. package/src/plugin-intent/IntentPlugin.ts +0 -20
  469. package/src/plugin-intent/actions.ts +0 -33
  470. package/src/plugin-intent/errors.ts +0 -39
  471. package/src/plugin-intent/index.ts +0 -8
  472. package/src/plugin-intent/intent-dispatcher.test.ts +0 -279
  473. package/src/plugin-intent/intent-dispatcher.ts +0 -333
  474. package/src/plugin-intent/intent.ts +0 -154
  475. package/src/plugin-settings/SettingsPlugin.ts +0 -35
  476. package/src/plugin-settings/actions.ts +0 -29
  477. package/src/plugin-settings/app-graph-builder.ts +0 -157
  478. package/src/plugin-settings/index.ts +0 -6
  479. package/src/plugin-settings/intent-resolver.ts +0 -34
  480. package/src/plugin-settings/store.ts +0 -33
  481. package/src/plugin-settings/translations.ts +0 -17
  482. package/src/react/ErrorBoundary.tsx +0 -45
  483. package/src/react/IntentContext.tsx +0 -34
  484. package/src/react/Surface.stories.tsx +0 -96
  485. package/src/react/Surface.tsx +0 -77
  486. package/src/react/common.ts +0 -12
  487. package/src/react/index.ts +0 -10
  488. package/src/react/useCapabilities.ts +0 -30
  489. package/src/react/useIntentResolver.ts +0 -22
  490. package/src/worker.ts +0 -11
  491. package/typedoc/.nojekyll +0 -1
  492. package/typedoc/assets/hierarchy.js +0 -1
  493. package/typedoc/assets/highlight.css +0 -106
  494. package/typedoc/assets/icons.js +0 -18
  495. package/typedoc/assets/icons.svg +0 -1
  496. package/typedoc/assets/main.js +0 -60
  497. package/typedoc/assets/navigation.js +0 -1
  498. package/typedoc/assets/search.js +0 -1
  499. package/typedoc/assets/style.css +0 -1640
  500. package/typedoc/classes/CollaborationActions.InsertContent.html +0 -421
  501. package/typedoc/classes/ErrorBoundary.html +0 -125
  502. package/typedoc/classes/IntentAction.ShowUndo.html +0 -227
  503. package/typedoc/classes/IntentAction.Track.html +0 -266
  504. package/typedoc/classes/LayoutAction.AddToast.html +0 -265
  505. package/typedoc/classes/LayoutAction.Close.html +0 -382
  506. package/typedoc/classes/LayoutAction.Expose.html +0 -265
  507. package/typedoc/classes/LayoutAction.Open.html +0 -1123
  508. package/typedoc/classes/LayoutAction.RevertWorkspace.html +0 -343
  509. package/typedoc/classes/LayoutAction.ScrollIntoView.html +0 -460
  510. package/typedoc/classes/LayoutAction.Set.html +0 -460
  511. package/typedoc/classes/LayoutAction.SetLayoutMode.html +0 -499
  512. package/typedoc/classes/LayoutAction.SwitchWorkspace.html +0 -265
  513. package/typedoc/classes/LayoutAction.UpdateComplementary.html +0 -616
  514. package/typedoc/classes/LayoutAction.UpdateDialog.html +0 -1123
  515. package/typedoc/classes/LayoutAction.UpdateLayout.html +0 -461
  516. package/typedoc/classes/LayoutAction.UpdatePopover.html +0 -1435
  517. package/typedoc/classes/LayoutAction.UpdateSidebar.html +0 -616
  518. package/typedoc/classes/Plugin.html +0 -6
  519. package/typedoc/classes/PluginContext.html +0 -38
  520. package/typedoc/classes/PluginManager.html +0 -43
  521. package/typedoc/classes/PluginModule.html +0 -18
  522. package/typedoc/classes/SettingsAction.Open.html +0 -226
  523. package/typedoc/classes/SettingsAction.OpenPluginRegistry.html +0 -265
  524. package/typedoc/functions/Events.createStateEvent.html +0 -2
  525. package/typedoc/functions/IntentPlugin.html +0 -1
  526. package/typedoc/functions/SettingsPlugin.html +0 -1
  527. package/typedoc/functions/allOf.html +0 -2
  528. package/typedoc/functions/chain.html +0 -3
  529. package/typedoc/functions/contributes.html +0 -2
  530. package/typedoc/functions/createDispatcher.html +0 -3
  531. package/typedoc/functions/createIntent.html +0 -6
  532. package/typedoc/functions/createResolver.html +0 -2
  533. package/typedoc/functions/createSurface.html +0 -2
  534. package/typedoc/functions/defineCapability.html +0 -2
  535. package/typedoc/functions/defineEvent.html +0 -2
  536. package/typedoc/functions/defineModule.html +0 -2
  537. package/typedoc/functions/definePlugin.html +0 -2
  538. package/typedoc/functions/eventKey.html +0 -2
  539. package/typedoc/functions/getEvents.html +0 -2
  540. package/typedoc/functions/isAllOf.html +0 -2
  541. package/typedoc/functions/isOneOf.html +0 -2
  542. package/typedoc/functions/isSurfaceAvailable.html +0 -2
  543. package/typedoc/functions/lazy.html +0 -2
  544. package/typedoc/functions/oneOf.html +0 -2
  545. package/typedoc/functions/useApp.html +0 -6
  546. package/typedoc/functions/useAppGraph.html +0 -1
  547. package/typedoc/functions/useCapabilities.html +0 -3
  548. package/typedoc/functions/useCapability.html +0 -4
  549. package/typedoc/functions/useIntentDispatcher.html +0 -1
  550. package/typedoc/functions/useIntentResolver.html +0 -1
  551. package/typedoc/functions/useLayout.html +0 -1
  552. package/typedoc/functions/usePluginManager.html +0 -2
  553. package/typedoc/hierarchy.html +0 -1
  554. package/typedoc/index.html +0 -16
  555. package/typedoc/interfaces/LayoutAction.Toast.html +0 -10
  556. package/typedoc/media/LICENSE +0 -8
  557. package/typedoc/modules/Capabilities.html +0 -1
  558. package/typedoc/modules/CollaborationActions.html +0 -1
  559. package/typedoc/modules/Events.html +0 -1
  560. package/typedoc/modules/IntentAction.html +0 -1
  561. package/typedoc/modules/LayoutAction.html +0 -2
  562. package/typedoc/modules/SettingsAction.html +0 -1
  563. package/typedoc/modules.html +0 -1
  564. package/typedoc/types/ActivationEvent.html +0 -8
  565. package/typedoc/types/ActivationEvents.html +0 -2
  566. package/typedoc/types/AnyCapability.html +0 -1
  567. package/typedoc/types/AnyIntent.html +0 -1
  568. package/typedoc/types/AnyIntentChain.html +0 -1
  569. package/typedoc/types/AnyIntentEffectResult.html +0 -1
  570. package/typedoc/types/AnyIntentResolver.html +0 -1
  571. package/typedoc/types/AnyIntentResult.html +0 -1
  572. package/typedoc/types/Capabilities.FileUploader.html +0 -1
  573. package/typedoc/types/Capabilities.IntentResolver.html +0 -1
  574. package/typedoc/types/Capabilities.Layout.html +0 -1
  575. package/typedoc/types/Capabilities.Metadata.html +0 -1
  576. package/typedoc/types/Capabilities.ReactContext.html +0 -1
  577. package/typedoc/types/Capabilities.ReactRoot.html +0 -1
  578. package/typedoc/types/Capabilities.ReactSurface.html +0 -1
  579. package/typedoc/types/Capabilities.Settings.html +0 -4
  580. package/typedoc/types/Capability.html +0 -9
  581. package/typedoc/types/CreateAppOptions.html +0 -10
  582. package/typedoc/types/FileInfo.html +0 -1
  583. package/typedoc/types/Intent.html +0 -10
  584. package/typedoc/types/IntentChain.html +0 -6
  585. package/typedoc/types/IntentContext.html +0 -5
  586. package/typedoc/types/IntentData.html +0 -1
  587. package/typedoc/types/IntentDispatcher.html +0 -2
  588. package/typedoc/types/IntentDispatcherResult.html +0 -2
  589. package/typedoc/types/IntentEffectDefinition.html +0 -2
  590. package/typedoc/types/IntentEffectResult.html +0 -15
  591. package/typedoc/types/IntentParams.html +0 -3
  592. package/typedoc/types/IntentResolver.html +0 -2
  593. package/typedoc/types/IntentResultData.html +0 -1
  594. package/typedoc/types/IntentSchema.html +0 -1
  595. package/typedoc/types/IntentUndo.html +0 -2
  596. package/typedoc/types/InterfaceDef.html +0 -4
  597. package/typedoc/types/Label.html +0 -1
  598. package/typedoc/types/NodeSerializer.html +0 -8
  599. package/typedoc/types/PluginManagerOptions.html +0 -6
  600. package/typedoc/types/PluginMeta.html +0 -21
  601. package/typedoc/types/PromiseIntentDispatcher.html +0 -2
  602. package/typedoc/types/PromiseIntentUndo.html +0 -2
  603. package/typedoc/types/Resource.html +0 -1
  604. package/typedoc/types/ResourceKey.html +0 -1
  605. package/typedoc/types/ResourceLanguage.html +0 -1
  606. package/typedoc/types/SerializedNode.html +0 -4
  607. package/typedoc/types/SurfaceComponent.html +0 -2
  608. package/typedoc/types/SurfaceDefinition.html +0 -2
  609. package/typedoc/types/SurfaceProps.html +0 -4
  610. package/typedoc/variables/Capabilities.AnchorSort.html +0 -1
  611. package/typedoc/variables/Capabilities.AppGraph.html +0 -1
  612. package/typedoc/variables/Capabilities.AppGraphBuilder.html +0 -1
  613. package/typedoc/variables/Capabilities.AppGraphSerializer.html +0 -1
  614. package/typedoc/variables/Capabilities.ArtifactDefinition.html +0 -1
  615. package/typedoc/variables/Capabilities.FileUploader.html +0 -1
  616. package/typedoc/variables/Capabilities.IntentDispatcher.html +0 -1
  617. package/typedoc/variables/Capabilities.IntentResolver.html +0 -1
  618. package/typedoc/variables/Capabilities.Layout.html +0 -1
  619. package/typedoc/variables/Capabilities.Metadata.html +0 -1
  620. package/typedoc/variables/Capabilities.Null.html +0 -1
  621. package/typedoc/variables/Capabilities.PluginManager.html +0 -1
  622. package/typedoc/variables/Capabilities.ReactContext.html +0 -1
  623. package/typedoc/variables/Capabilities.ReactRoot.html +0 -1
  624. package/typedoc/variables/Capabilities.ReactSurface.html +0 -1
  625. package/typedoc/variables/Capabilities.RxRegistry.html +0 -1
  626. package/typedoc/variables/Capabilities.Settings.html +0 -1
  627. package/typedoc/variables/Capabilities.SettingsStore.html +0 -1
  628. package/typedoc/variables/Capabilities.Tools.html +0 -1
  629. package/typedoc/variables/Capabilities.Translations.html +0 -1
  630. package/typedoc/variables/Events.AppGraphReady.html +0 -2
  631. package/typedoc/variables/Events.DispatcherReady.html +0 -2
  632. package/typedoc/variables/Events.LayoutReady.html +0 -1
  633. package/typedoc/variables/Events.SettingsReady.html +0 -2
  634. package/typedoc/variables/Events.SetupAppGraph.html +0 -2
  635. package/typedoc/variables/Events.SetupArtifactDefinition.html +0 -2
  636. package/typedoc/variables/Events.SetupIntentResolver.html +0 -2
  637. package/typedoc/variables/Events.SetupMetadata.html +0 -2
  638. package/typedoc/variables/Events.SetupReactSurface.html +0 -2
  639. package/typedoc/variables/Events.SetupSettings.html +0 -2
  640. package/typedoc/variables/Events.SetupTranslations.html +0 -2
  641. package/typedoc/variables/Events.Startup.html +0 -2
  642. package/typedoc/variables/FileInfoSchema.html +0 -1
  643. package/typedoc/variables/INTENT_ACTION.html +0 -1
  644. package/typedoc/variables/INTENT_PLUGIN.html +0 -1
  645. package/typedoc/variables/LAYOUT_ACTION.html +0 -1
  646. package/typedoc/variables/LAYOUT_PLUGIN.html +0 -1
  647. package/typedoc/variables/Label.html +0 -1
  648. package/typedoc/variables/LayoutAction.Toast.html +0 -1
  649. package/typedoc/variables/LayoutAction.UPDATE_LAYOUT.html +0 -1
  650. package/typedoc/variables/PluginManagerProvider.html +0 -2
  651. package/typedoc/variables/Resource.html +0 -2
  652. package/typedoc/variables/ResourceKey.html +0 -1
  653. package/typedoc/variables/ResourceLanguage.html +0 -1
  654. package/typedoc/variables/SETTINGS_ACTION.html +0 -1
  655. package/typedoc/variables/SETTINGS_ID.html +0 -1
  656. package/typedoc/variables/SETTINGS_KEY.html +0 -1
  657. package/typedoc/variables/SETTINGS_PLUGIN.html +0 -1
  658. package/typedoc/variables/Surface.html +0 -2
  659. package/typedoc/variables/defaultFileTypes.html +0 -1
  660. /package/dist/lib/browser/{intent-dispatcher-XVBOMF2Y.mjs.map → chunk-J5LGTIGS.mjs.map} +0 -0
  661. /package/dist/lib/browser/{worker.mjs.map → chunk-YAFEA4GV.mjs.map} +0 -0
  662. /package/dist/lib/{node-esm/intent-dispatcher-7JPGLCQ5.mjs.map → browser/common/activation-events.mjs.map} +0 -0
  663. /package/dist/lib/{node-esm/worker.mjs.map → browser/common/capabilities.mjs.map} +0 -0
@@ -2,111 +2,177 @@
2
2
  // Copyright 2025 DXOS.org
3
3
  //
4
4
 
5
- import { type Registry } from '@effect-rx/rx-react';
6
- import { type Schema } from 'effect';
7
- import { type FC, type PropsWithChildren } from 'react';
8
-
9
- import { type ExecutableTool } from '@dxos/ai';
10
- import { type GraphBuilder, type BuilderExtensions } from '@dxos/app-graph';
11
- import { type ArtifactDefinition } from '@dxos/artifact';
12
- import { type Space } from '@dxos/client-protocol';
13
- import { type RootSettingsStore } from '@dxos/local-storage';
14
- import { type AnchoredTo } from '@dxos/schema';
15
-
16
- import { type FileInfo } from './file';
17
- import { type NodeSerializer } from './graph';
18
- import { type SurfaceDefinition } from './surface';
19
- import { type Resource } from './translations';
20
- import { type PluginManager, defineCapability } from '../core';
21
- import { type AnyIntentResolver, type IntentContext } from '../plugin-intent';
22
-
23
- export namespace Capabilities {
24
- export const PluginManager = defineCapability<PluginManager>('dxos.org/app-framework/capability/plugin-manager');
25
-
26
- export const Null = defineCapability<null>('dxos.org/app-framework/capability/null');
27
-
28
- export const RxRegistry = defineCapability<Registry.Registry>('dxos.org/app-framework/capability/rx-registry');
29
-
30
- export type ReactContext = Readonly<{ id: string; dependsOn?: string[]; context: FC<PropsWithChildren> }>;
31
- export const ReactContext = defineCapability<ReactContext>('dxos.org/app-framework/capability/react-context');
32
-
33
- export type ReactRoot = Readonly<{ id: string; root: FC<PropsWithChildren> }>;
34
- export const ReactRoot = defineCapability<ReactRoot>('dxos.org/app-framework/capability/react-root');
35
-
36
- export type ReactSurface = SurfaceDefinition | readonly SurfaceDefinition[];
37
- export const ReactSurface = defineCapability<ReactSurface>('dxos.org/app-framework/common/react-surface');
38
-
39
- export type IntentResolver = AnyIntentResolver | readonly AnyIntentResolver[];
40
- export const IntentResolver = defineCapability<IntentResolver>('dxos.org/app-framework/capability/intent-resolver');
41
-
42
- export const IntentDispatcher = defineCapability<IntentContext>(
43
- 'dxos.org/app-framework/capability/intent-dispatcher',
44
- );
45
-
46
- export type Layout = Readonly<{
47
- mode: string;
48
- dialogOpen: boolean;
49
- sidebarOpen: boolean;
50
- complementarySidebarOpen: boolean;
51
- /**
52
- * The id of the active workspace, where a workspace is a set of active items.
53
- */
54
- workspace: string;
55
- /**
56
- * Identifiers of items which are currently active in the application.
57
- */
58
- active: string[];
59
- /**
60
- * Identifiers of items which were previously active in the application.
61
- */
62
- inactive: string[];
63
- /**
64
- * Identifier of the item which should be scrolled into view.
65
- */
66
- scrollIntoView: string | undefined;
67
- }>;
68
- export const Layout = defineCapability<Layout>('dxos.org/app-framework/capability/layout');
69
-
70
- export const Translations = defineCapability<Readonly<Resource[]>>('dxos.org/app-framework/capability/translations');
71
-
72
- export const AppGraph = defineCapability<Readonly<Pick<GraphBuilder, 'graph' | 'explore'>>>(
73
- 'dxos.org/app-framework/capability/app-graph',
74
- );
75
-
76
- export const AppGraphBuilder = defineCapability<BuilderExtensions>(
77
- 'dxos.org/app-framework/capability/app-graph-builder',
78
- );
79
-
80
- export const AppGraphSerializer = defineCapability<NodeSerializer[]>(
81
- 'dxos.org/app-framework/capability/app-graph-serializer',
82
- );
83
-
84
- export const SettingsStore = defineCapability<RootSettingsStore>('dxos.org/app-framework/capability/settings-store');
85
-
86
- // TODO(wittjosiah): The generics caused type inference issues for schemas when contributing settings.
87
- // export type Settings = Parameters<RootSettingsStore['createStore']>[0];
88
- // export type Settings<T extends SettingsValue = SettingsValue> = SettingsProps<T>;
89
- export type Settings = {
90
- prefix: string;
91
- schema: Schema.Schema.All;
92
- value?: Record<string, any>;
93
- };
94
- export const Settings = defineCapability<Settings>('dxos.org/app-framework/capability/settings');
95
-
96
- export type Metadata = Readonly<{ id: string; metadata: Record<string, any> }>;
97
- export const Metadata = defineCapability<Metadata>('dxos.org/app-framework/capability/metadata');
98
-
99
- export const Tools = defineCapability<ExecutableTool[]>('dxos.org/app-framework/capability/tools');
100
- export const ArtifactDefinition = defineCapability<ArtifactDefinition>(
101
- 'dxos.org/app-framework/capability/artifact-definition',
102
- );
103
-
104
- export type FileUploader = (file: File, space: Space) => Promise<FileInfo | undefined>;
105
- export const FileUploader = defineCapability<FileUploader>('dxos.org/app-framework/capability/file-uploader');
106
-
107
- type AnchorSort = {
108
- key: string;
109
- sort: (anchorA: AnchoredTo, anchorB: AnchoredTo) => number;
110
- };
111
- export const AnchorSort = defineCapability<AnchorSort>('dxos.org/app-framework/capability/anchor-sort');
112
- }
5
+ import type * as Command$ from '@effect/cli/Command';
6
+ import { type Atom, type Registry } from '@effect-atom/atom-react';
7
+ import * as Effect from 'effect/Effect';
8
+ import type * as Layer$ from 'effect/Layer';
9
+ import type * as ManagedRuntime$ from 'effect/ManagedRuntime';
10
+ import type { FC, PropsWithChildren } from 'react';
11
+
12
+ import type { OperationInvoker as OperationInvoker$, OperationResolver as OperationResolver$ } from '@dxos/operation';
13
+
14
+ import { Capability as Capability$, type PluginManager as PluginManager$ } from '../core';
15
+ import type {
16
+ HistoryTracker as HistoryTracker$,
17
+ UndoMapping as UndoMapping$,
18
+ UndoRegistry as UndoRegistry$,
19
+ } from '../plugin-operation';
20
+ import type { Surface } from '../ui';
21
+
22
+ /**
23
+ * Null capability.
24
+ * @category Capability
25
+ */
26
+ export const Null = Capability$.make<null>('dxos.org/app-framework/capability/null');
27
+
28
+ /**
29
+ * @category Capability
30
+ */
31
+ export const PluginManager = Capability$.make<PluginManager$.PluginManager>(
32
+ 'dxos.org/app-framework/capability/plugin-manager',
33
+ );
34
+
35
+ /**
36
+ * @category Capability
37
+ */
38
+ export const AtomRegistry = Capability$.make<Registry.Registry>('dxos.org/app-framework/capability/atom-registry');
39
+
40
+ export type ReactContext = Readonly<{
41
+ id: string;
42
+ dependsOn?: string[];
43
+ context: FC<PropsWithChildren>;
44
+ }>;
45
+
46
+ /**
47
+ * @category Capability
48
+ */
49
+ export const ReactContext = Capability$.make<ReactContext>('dxos.org/app-framework/capability/react-context');
50
+
51
+ export type ReactRoot = Readonly<{ id: string; root: FC<PropsWithChildren> }>;
52
+
53
+ /**
54
+ * @category Capability
55
+ */
56
+ export const ReactRoot = Capability$.make<ReactRoot>('dxos.org/app-framework/capability/react-root');
57
+
58
+ /**
59
+ * Surface definitions that can be either React components or Web Components.
60
+ */
61
+ export type ReactSurface = Surface.Definition | readonly Surface.Definition[];
62
+
63
+ /**
64
+ * @category Capability
65
+ */
66
+ export const ReactSurface = Capability$.make<ReactSurface>('dxos.org/app-framework/common/react-surface');
67
+
68
+ export type AnyCommand = Command$.Command<any, any, any, any>;
69
+
70
+ /**
71
+ * @category Capability
72
+ */
73
+ export const Command = Capability$.make<AnyCommand>('dxos.org/app-framework/capability/command');
74
+
75
+ /**
76
+ * @category Capability
77
+ */
78
+ export const Layer = Capability$.make<Layer$.Layer<any, any, any>>('dxos.org/app-framework/capability/layer');
79
+
80
+ export type ManagedRuntime = ManagedRuntime$.ManagedRuntime<any, any>;
81
+
82
+ /**
83
+ * @category Capability
84
+ */
85
+ export const ManagedRuntime = Capability$.make<ManagedRuntime>('dxos.org/app-framework/capability/managed-runtime');
86
+
87
+ //
88
+ // Operation System Capabilities
89
+ //
90
+
91
+ export type OperationResolver = OperationResolver$.OperationResolver<any, any, any, any>;
92
+
93
+ /**
94
+ * Handler registration for operations - contributed by plugins.
95
+ * @category Capability
96
+ */
97
+ export const OperationResolver = Capability$.make<OperationResolver[]>(
98
+ 'dxos.org/app-framework/capability/operation-resolver',
99
+ );
100
+
101
+ export type UndoMapping = UndoMapping$.UndoMapping;
102
+
103
+ /**
104
+ * Undo mapping registration - contributed by plugins.
105
+ * @category Capability
106
+ */
107
+ export const UndoMapping = Capability$.make<UndoMapping[]>('dxos.org/app-framework/capability/undo-mapping');
108
+
109
+ export type OperationInvoker = OperationInvoker$.OperationInvoker;
110
+
111
+ /**
112
+ * Operation invoker - provided by OperationPlugin.
113
+ * @category Capability
114
+ */
115
+ export const OperationInvoker = Capability$.make<OperationInvoker>(
116
+ 'dxos.org/app-framework/capability/operation-invoker',
117
+ );
118
+
119
+ export type UndoRegistry = UndoRegistry$.UndoRegistry;
120
+
121
+ /**
122
+ * Undo registry - provided by OperationPlugin.
123
+ * @category Capability
124
+ */
125
+ export const UndoRegistry = Capability$.make<UndoRegistry>('dxos.org/app-framework/capability/undo-registry');
126
+
127
+ export type HistoryTracker = HistoryTracker$.HistoryTracker;
128
+
129
+ /**
130
+ * History tracker - provided by OperationPlugin.
131
+ * @category Capability
132
+ */
133
+ export const HistoryTracker = Capability$.make<HistoryTracker>('dxos.org/app-framework/capability/history-tracker');
134
+
135
+ //
136
+ // Atom Capability Helpers
137
+ //
138
+
139
+ /**
140
+ * Get the current value of an atom capability.
141
+ * @example const settings = yield* Capabilities.getAtomValue(ThreadCapabilities.Settings);
142
+ */
143
+ export const getAtomValue = <T>(
144
+ atomCapability: Capability$.InterfaceDef<Atom.Atom<T>>,
145
+ ): Effect.Effect<T, Error, Capability$.Service> =>
146
+ Effect.gen(function* () {
147
+ const registry = yield* Capability$.get(AtomRegistry);
148
+ const atom = yield* Capability$.get(atomCapability);
149
+ return registry.get(atom);
150
+ });
151
+
152
+ /**
153
+ * Update an atom capability value (requires writable atom).
154
+ * @example yield* Capabilities.updateAtomValue(ThreadCapabilities.Settings, (s) => ({ ...s, foo: true }));
155
+ */
156
+ export const updateAtomValue = <T>(
157
+ atomCapability: Capability$.InterfaceDef<Atom.Writable<T>>,
158
+ fn: (current: T) => T,
159
+ ): Effect.Effect<void, Error, Capability$.Service> =>
160
+ Effect.gen(function* () {
161
+ const registry = yield* Capability$.get(AtomRegistry);
162
+ const atom = yield* Capability$.get(atomCapability);
163
+ registry.set(atom, fn(registry.get(atom)));
164
+ });
165
+
166
+ /**
167
+ * Subscribe to an atom capability.
168
+ * @example const unsubscribe = yield* Capabilities.subscribeAtom(ThreadCapabilities.Settings, (value) => ...);
169
+ */
170
+ export const subscribeAtom = <T>(
171
+ atomCapability: Capability$.InterfaceDef<Atom.Atom<T>>,
172
+ callback: (value: T) => void,
173
+ ): Effect.Effect<() => void, Error, Capability$.Service> =>
174
+ Effect.gen(function* () {
175
+ const registry = yield* Capability$.get(AtomRegistry);
176
+ const atom = yield* Capability$.get(atomCapability);
177
+ return registry.subscribe(atom, () => callback(registry.get(atom)));
178
+ });
@@ -2,11 +2,7 @@
2
2
  // Copyright 2023 DXOS.org
3
3
  //
4
4
 
5
- export * from './capabilities';
6
- export * from './collaboration';
7
- export * from './events';
8
- export * from './file';
9
- export * from './graph';
10
- export * from './layout';
11
- export * from './surface';
12
- export * from './translations';
5
+ export * as Capabilities from './capabilities';
6
+ export * as ActivationEvents from './activation-events';
7
+ export { UndoOperation } from './operations';
8
+ export { Label } from './translations';
@@ -0,0 +1,38 @@
1
+ //
2
+ // Copyright 2025 DXOS.org
3
+ //
4
+
5
+ import * as Schema from 'effect/Schema';
6
+
7
+ import { Operation } from '@dxos/operation';
8
+
9
+ import { Capability } from '../core';
10
+
11
+ import { Label } from './translations';
12
+
13
+ const UNDO_NAMESPACE = 'dxos.org/app-framework/undo';
14
+
15
+ /**
16
+ * Operations related to undo/history functionality.
17
+ */
18
+ export namespace UndoOperation {
19
+ /**
20
+ * Show an undo toast notification.
21
+ * Fired by HistoryTracker when an undoable operation is tracked.
22
+ */
23
+ export const ShowUndo = Operation.make({
24
+ meta: {
25
+ key: `${UNDO_NAMESPACE}/operation/show-undo`,
26
+ name: 'Show Undo',
27
+ description: 'Show an undo toast notification.',
28
+ },
29
+ executionMode: 'sync',
30
+ services: [Capability.Service],
31
+ schema: {
32
+ input: Schema.Struct({
33
+ message: Schema.optional(Label.annotations({ description: 'The message to display in the undo toast.' })),
34
+ }),
35
+ output: Schema.Void,
36
+ },
37
+ });
38
+ }
@@ -2,16 +2,24 @@
2
2
  // Copyright 2023 DXOS.org
3
3
  //
4
4
 
5
- import { Schema } from 'effect';
6
-
7
- export const ResourceKey = Schema.Union(Schema.String, Schema.Record({ key: Schema.String, value: Schema.Any }));
8
- export type ResourceKey = Schema.Schema.Type<typeof ResourceKey>;
9
-
10
- export const ResourceLanguage = Schema.Record({ key: Schema.String, value: ResourceKey });
11
- export type ResourceLanguage = Schema.Schema.Type<typeof ResourceLanguage>;
5
+ import * as Schema from 'effect/Schema';
12
6
 
13
7
  /**
14
- * A resource is a collection of translations for a language.
8
+ * A Label represents translatable text - either a simple string or a tuple of [key, options].
15
9
  */
16
- export const Resource = Schema.Record({ key: Schema.String, value: ResourceLanguage });
17
- export type Resource = Schema.Schema.Type<typeof Resource>;
10
+ export const Label = Schema.Union(
11
+ Schema.String,
12
+ Schema.mutable(
13
+ Schema.Tuple(
14
+ Schema.String,
15
+ Schema.mutable(
16
+ Schema.Struct({
17
+ ns: Schema.String,
18
+ count: Schema.optional(Schema.Number),
19
+ defaultValue: Schema.optional(Schema.String),
20
+ }),
21
+ ),
22
+ ),
23
+ ),
24
+ );
25
+ export type Label = Schema.Schema.Type<typeof Label>;
package/src/context.ts ADDED
@@ -0,0 +1,9 @@
1
+ //
2
+ // Copyright 2025 DXOS.org
3
+ //
4
+
5
+ import { createContext } from '@dxos/web-context';
6
+
7
+ import { type PluginManager } from './core';
8
+
9
+ export const PluginManagerContext = createContext<PluginManager.PluginManager>('dxos.org/app-framework/plugin-manager');
@@ -16,7 +16,7 @@ export type ActivationEvent = {
16
16
  /**
17
17
  * An activation event that can be a single event, or a combination of events.
18
18
  */
19
- export type ActivationEvents =
19
+ export type Events =
20
20
  | ActivationEvent
21
21
  | { type: 'one-of'; events: ActivationEvent[] }
22
22
  | { type: 'all-of'; events: ActivationEvent[] };
@@ -24,7 +24,7 @@ export type ActivationEvents =
24
24
  /**
25
25
  * Helper to define an activation event.
26
26
  */
27
- export const defineEvent = (id: string, specifier?: string) => {
27
+ export const make = (id: string, specifier?: string) => {
28
28
  return { id, specifier } as ActivationEvent;
29
29
  };
30
30
 
@@ -46,16 +46,16 @@ export const allOf = (...events: ActivationEvent[]) => ({ type: 'all-of' as cons
46
46
  /**
47
47
  * Helper to check if an activation event is a one-of event.
48
48
  */
49
- export const isOneOf = (events: ActivationEvents): events is { type: 'one-of'; events: ActivationEvent[] } =>
49
+ export const isOneOf = (events: Events): events is { type: 'one-of'; events: ActivationEvent[] } =>
50
50
  'type' in events && events.type === 'one-of';
51
51
 
52
52
  /**
53
53
  * Helper to check if an activation event is an all-of event.
54
54
  */
55
- export const isAllOf = (events: ActivationEvents): events is { type: 'all-of'; events: ActivationEvent[] } =>
55
+ export const isAllOf = (events: Events): events is { type: 'all-of'; events: ActivationEvent[] } =>
56
56
  'type' in events && events.type === 'all-of';
57
57
 
58
58
  /**
59
59
  * Helper to get the events from an activation event.
60
60
  */
61
- export const getEvents = (events: ActivationEvents) => ('type' in events ? events.events : [events]);
61
+ export const getEvents = (events: Events) => ('type' in events ? events.events : [events]);
@@ -0,0 +1,151 @@
1
+ //
2
+ // Copyright 2025 DXOS.org
3
+ //
4
+
5
+ import { describe, expect, it, onTestFinished } from '@effect/vitest';
6
+ import { Registry } from '@effect-atom/atom-react';
7
+ import * as Effect from 'effect/Effect';
8
+
9
+ import * as Capability from './capability';
10
+ import * as CapabilityManager from './capability-manager';
11
+
12
+ describe('CapabilityManager', () => {
13
+ it('should return empty array if no capabilities are contributed', () => {
14
+ const registry = Registry.make();
15
+ const capabilityManager = CapabilityManager.make({ registry });
16
+ const interfaceDef = Capability.make<{ example: string }>('@dxos/app-framework/test/example');
17
+ expect(capabilityManager.getAll(interfaceDef)).toEqual([]);
18
+ });
19
+
20
+ it('should throw when getCapability is called and no capability exists', () => {
21
+ const registry = Registry.make();
22
+ const capabilityManager = CapabilityManager.make({ registry });
23
+ const interfaceDef = Capability.make<{ example: string }>('@dxos/app-framework/test/example');
24
+ expect(() => capabilityManager.get(interfaceDef)).toThrow('No capability found');
25
+ });
26
+
27
+ it.effect('Capability.get should fail when no capability exists', () =>
28
+ Effect.gen(function* () {
29
+ const registry = Registry.make();
30
+ const capabilityManager = CapabilityManager.make({ registry });
31
+ const interfaceDef = Capability.make<{ example: string }>('@dxos/app-framework/test/example');
32
+
33
+ const result = yield* Capability.get(interfaceDef).pipe(
34
+ Effect.provideService(Capability.Service, capabilityManager),
35
+ Effect.either,
36
+ );
37
+
38
+ expect(result._tag).toEqual('Left');
39
+ }),
40
+ );
41
+
42
+ it('should be able to contribute and request capabilities', () => {
43
+ const registry = Registry.make();
44
+ const capabilityManager = CapabilityManager.make({ registry });
45
+ const interfaceDef = Capability.make<{ example: string }>('@dxos/app-framework/test/example');
46
+ const implementation = { example: 'identifier' };
47
+ capabilityManager.contribute({ interface: interfaceDef, implementation, module: 'test' });
48
+ expect(capabilityManager.getAll(interfaceDef)).toEqual([implementation]);
49
+ });
50
+
51
+ it('should be able to remove capabilities', () => {
52
+ const registry = Registry.make();
53
+ const capabilityManager = CapabilityManager.make({ registry });
54
+ const interfaceDef = Capability.make<{ example: string }>('@dxos/app-framework/test/example');
55
+ const implementation = { example: 'identifier' };
56
+ capabilityManager.contribute({ interface: interfaceDef, implementation, module: 'test' });
57
+ expect(capabilityManager.getAll(interfaceDef)).toEqual([implementation]);
58
+ capabilityManager.remove(interfaceDef, implementation);
59
+ expect(capabilityManager.getAll(interfaceDef)).toEqual([]);
60
+ });
61
+
62
+ it('should be able to contribute and request multiple implementations', () => {
63
+ const registry = Registry.make();
64
+ const capabilityManager = CapabilityManager.make({ registry });
65
+ const interfaceDef = Capability.make<{ example: string }>('@dxos/app-framework/test/example');
66
+ const implementation1 = { example: 'first' };
67
+ const implementation2 = { example: 'second' };
68
+ capabilityManager.contribute({ interface: interfaceDef, implementation: implementation1, module: 'test' });
69
+ capabilityManager.contribute({ interface: interfaceDef, implementation: implementation2, module: 'test' });
70
+ expect(capabilityManager.getAll(interfaceDef)).toEqual([implementation1, implementation2]);
71
+ });
72
+
73
+ it('should be able to request multiple capabilities', () => {
74
+ const registry = Registry.make();
75
+ const capabilityManager = CapabilityManager.make({ registry });
76
+ const interfaceDef1 = Capability.make<{ one: number }>('@dxos/app-framework/test/one');
77
+ const interfaceDef2 = Capability.make<{ two: number }>('@dxos/app-framework/test/two');
78
+ const implementation1 = { one: 1 };
79
+ const implementation2 = { two: 2 };
80
+ capabilityManager.contribute({ interface: interfaceDef1, implementation: implementation1, module: 'test' });
81
+ capabilityManager.contribute({ interface: interfaceDef2, implementation: implementation2, module: 'test' });
82
+ expect(capabilityManager.getAll(interfaceDef1)).toEqual([implementation1]);
83
+ expect(capabilityManager.getAll(interfaceDef2)).toEqual([implementation2]);
84
+ });
85
+
86
+ it('should be reactive', () => {
87
+ const registry = Registry.make();
88
+ const capabilityManager = CapabilityManager.make({ registry });
89
+ const interfaceDef = Capability.make<{ example: string }>('@dxos/app-framework/test/example');
90
+
91
+ let count = 0;
92
+ const cancel = registry.subscribe(capabilityManager.atom(interfaceDef), () => {
93
+ count++;
94
+ });
95
+ onTestFinished(() => cancel());
96
+ expect(count).toEqual(0);
97
+
98
+ registry.get(capabilityManager.atom(interfaceDef));
99
+ expect(count).toEqual(1);
100
+
101
+ const implementation = { example: 'identifier' };
102
+ capabilityManager.contribute({ interface: interfaceDef, implementation, module: 'test' });
103
+ expect(count).toEqual(2);
104
+
105
+ capabilityManager.remove(interfaceDef, implementation);
106
+ expect(count).toEqual(3);
107
+ });
108
+
109
+ it('should not be reactive to changes within the implementation', () => {
110
+ const registry = Registry.make();
111
+ const capabilityManager = CapabilityManager.make({ registry });
112
+ const interfaceDef = Capability.make<{ example: string }>('@dxos/app-framework/test/example');
113
+
114
+ let count = 0;
115
+ const cancel = registry.subscribe(capabilityManager.atom(interfaceDef), () => {
116
+ count++;
117
+ });
118
+ onTestFinished(() => cancel());
119
+ expect(count).toEqual(0);
120
+
121
+ registry.get(capabilityManager.atom(interfaceDef));
122
+ expect(count).toEqual(1);
123
+
124
+ const implementation = { example: 'identifier' };
125
+ capabilityManager.contribute({ interface: interfaceDef, implementation, module: 'test' });
126
+ expect(count).toEqual(2);
127
+
128
+ implementation.example = 'updated';
129
+ expect(count).toEqual(2);
130
+
131
+ const capabilities = capabilityManager.getAll(interfaceDef);
132
+ expect(capabilities).toEqual([implementation]);
133
+ expect(capabilities[0].example).toEqual('updated');
134
+ expect(count).toEqual(2);
135
+ });
136
+
137
+ it.effect('should be able to wait for a capability', () =>
138
+ Effect.gen(function* () {
139
+ const registry = Registry.make();
140
+ const capabilityManager = CapabilityManager.make({ registry });
141
+ const interfaceDef = Capability.make<{ example: string }>('@dxos/app-framework/test/example');
142
+
143
+ expect(capabilityManager.getAll(interfaceDef)).toHaveLength(0);
144
+ const capability = capabilityManager.waitFor(interfaceDef);
145
+
146
+ const implementation = { example: 'identifier' };
147
+ capabilityManager.contribute({ interface: interfaceDef, implementation, module: 'test' });
148
+ expect(yield* capability).toEqual(implementation);
149
+ }),
150
+ );
151
+ });