@dxos/app-framework 0.8.4-main.ead640a → 0.8.4-main.ef1bc66f44

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 (477) hide show
  1. package/.storybook/main.mts +1 -1
  2. package/.storybook/preview.mts +2 -2
  3. package/dist/lib/browser/capability-7LE5X2NH.mjs +37 -0
  4. package/dist/lib/browser/capability-7LE5X2NH.mjs.map +7 -0
  5. package/dist/lib/browser/capability-DU35RXMD.mjs +34 -0
  6. package/dist/lib/browser/capability-DU35RXMD.mjs.map +7 -0
  7. package/dist/lib/browser/chunk-4DQMLMGU.mjs +44 -0
  8. package/dist/lib/browser/chunk-4DQMLMGU.mjs.map +7 -0
  9. package/dist/lib/browser/chunk-EIFGKQSA.mjs +170 -0
  10. package/dist/lib/browser/chunk-EIFGKQSA.mjs.map +7 -0
  11. package/dist/lib/browser/chunk-FHQTHCX7.mjs +8 -0
  12. package/dist/lib/browser/chunk-FHQTHCX7.mjs.map +7 -0
  13. package/dist/lib/browser/chunk-IGRQWMWW.mjs +80 -0
  14. package/dist/lib/browser/chunk-IGRQWMWW.mjs.map +7 -0
  15. package/dist/lib/browser/chunk-J5LGTIGS.mjs +10 -0
  16. package/dist/lib/browser/chunk-KWP6PKIU.mjs +145 -0
  17. package/dist/lib/browser/chunk-KWP6PKIU.mjs.map +7 -0
  18. package/dist/lib/browser/chunk-NPUEVX42.mjs +34 -0
  19. package/dist/lib/browser/chunk-NPUEVX42.mjs.map +7 -0
  20. package/dist/lib/browser/chunk-PKQT6C53.mjs +47 -0
  21. package/dist/lib/browser/chunk-PKQT6C53.mjs.map +7 -0
  22. package/dist/lib/browser/chunk-WGWEEBUV.mjs +807 -0
  23. package/dist/lib/browser/chunk-WGWEEBUV.mjs.map +7 -0
  24. package/dist/lib/browser/chunk-YAFEA4GV.mjs +1 -0
  25. package/dist/lib/browser/chunk-YZQ6NFG4.mjs +781 -0
  26. package/dist/lib/browser/chunk-YZQ6NFG4.mjs.map +7 -0
  27. package/dist/lib/browser/chunk-ZQO3UZ4R.mjs +77 -0
  28. package/dist/lib/browser/chunk-ZQO3UZ4R.mjs.map +7 -0
  29. package/dist/lib/browser/cli/index.mjs +89 -0
  30. package/dist/lib/browser/cli/index.mjs.map +7 -0
  31. package/dist/lib/browser/common/activation-events.mjs +23 -0
  32. package/dist/lib/browser/common/capabilities.mjs +45 -0
  33. package/dist/lib/browser/core/activation-event.mjs +20 -0
  34. package/dist/lib/browser/core/activation-event.mjs.map +7 -0
  35. package/dist/lib/browser/core/capability.mjs +28 -0
  36. package/dist/lib/browser/core/capability.mjs.map +7 -0
  37. package/dist/lib/browser/core/plugin-manager.mjs +15 -0
  38. package/dist/lib/browser/core/plugin-manager.mjs.map +7 -0
  39. package/dist/lib/browser/core/plugin.mjs +27 -0
  40. package/dist/lib/browser/core/plugin.mjs.map +7 -0
  41. package/dist/lib/browser/index.mjs +87 -148
  42. package/dist/lib/browser/index.mjs.map +4 -4
  43. package/dist/lib/browser/invoker-capability-7QW56NOM.mjs +36 -0
  44. package/dist/lib/browser/invoker-capability-7QW56NOM.mjs.map +7 -0
  45. package/dist/lib/browser/meta.json +1 -1
  46. package/dist/lib/browser/testing/index.mjs +75 -24
  47. package/dist/lib/browser/testing/index.mjs.map +4 -4
  48. package/dist/lib/browser/ui/index.mjs +49 -0
  49. package/dist/lib/browser/ui/index.mjs.map +7 -0
  50. package/dist/lib/node-esm/capability-OSVYGK4X.mjs +38 -0
  51. package/dist/lib/node-esm/capability-OSVYGK4X.mjs.map +7 -0
  52. package/dist/lib/node-esm/capability-SR2EIZFP.mjs +35 -0
  53. package/dist/lib/node-esm/capability-SR2EIZFP.mjs.map +7 -0
  54. package/dist/lib/node-esm/chunk-64IMLAS2.mjs +78 -0
  55. package/dist/lib/node-esm/chunk-64IMLAS2.mjs.map +7 -0
  56. package/dist/lib/node-esm/chunk-7OWSHPYK.mjs +48 -0
  57. package/dist/lib/node-esm/chunk-7OWSHPYK.mjs.map +7 -0
  58. package/dist/lib/node-esm/chunk-DHSHRYIB.mjs +171 -0
  59. package/dist/lib/node-esm/chunk-DHSHRYIB.mjs.map +7 -0
  60. package/dist/lib/node-esm/chunk-DZ2XLAGI.mjs +146 -0
  61. package/dist/lib/node-esm/chunk-DZ2XLAGI.mjs.map +7 -0
  62. package/dist/lib/node-esm/chunk-HSLMI22Q.mjs +11 -0
  63. package/dist/lib/node-esm/chunk-HSLMI22Q.mjs.map +7 -0
  64. package/dist/lib/node-esm/chunk-J2PHTRHC.mjs +45 -0
  65. package/dist/lib/node-esm/chunk-J2PHTRHC.mjs.map +7 -0
  66. package/dist/lib/node-esm/chunk-JAZVHID3.mjs +35 -0
  67. package/dist/lib/node-esm/chunk-JAZVHID3.mjs.map +7 -0
  68. package/dist/lib/node-esm/chunk-OQYHRZYF.mjs +81 -0
  69. package/dist/lib/node-esm/chunk-OQYHRZYF.mjs.map +7 -0
  70. package/dist/lib/node-esm/chunk-UEWJDI2L.mjs +10 -0
  71. package/dist/lib/node-esm/chunk-UEWJDI2L.mjs.map +7 -0
  72. package/dist/lib/node-esm/chunk-VV4YHPQQ.mjs +782 -0
  73. package/dist/lib/node-esm/chunk-VV4YHPQQ.mjs.map +7 -0
  74. package/dist/lib/node-esm/chunk-XHAKT6UD.mjs +808 -0
  75. package/dist/lib/node-esm/chunk-XHAKT6UD.mjs.map +7 -0
  76. package/dist/lib/node-esm/chunk-Z4TJPSMP.mjs +2 -0
  77. package/dist/lib/node-esm/chunk-Z4TJPSMP.mjs.map +7 -0
  78. package/dist/lib/node-esm/cli/index.mjs +90 -0
  79. package/dist/lib/node-esm/cli/index.mjs.map +7 -0
  80. package/dist/lib/node-esm/common/activation-events.mjs +24 -0
  81. package/dist/lib/node-esm/common/activation-events.mjs.map +7 -0
  82. package/dist/lib/node-esm/common/capabilities.mjs +46 -0
  83. package/dist/lib/node-esm/common/capabilities.mjs.map +7 -0
  84. package/dist/lib/node-esm/core/activation-event.mjs +21 -0
  85. package/dist/lib/node-esm/core/activation-event.mjs.map +7 -0
  86. package/dist/lib/node-esm/core/capability.mjs +29 -0
  87. package/dist/lib/node-esm/core/capability.mjs.map +7 -0
  88. package/dist/lib/node-esm/core/plugin-manager.mjs +16 -0
  89. package/dist/lib/node-esm/core/plugin-manager.mjs.map +7 -0
  90. package/dist/lib/node-esm/core/plugin.mjs +28 -0
  91. package/dist/lib/node-esm/core/plugin.mjs.map +7 -0
  92. package/dist/lib/node-esm/index.mjs +87 -148
  93. package/dist/lib/node-esm/index.mjs.map +4 -4
  94. package/dist/lib/node-esm/invoker-capability-CK4AMF2R.mjs +37 -0
  95. package/dist/lib/node-esm/invoker-capability-CK4AMF2R.mjs.map +7 -0
  96. package/dist/lib/node-esm/meta.json +1 -1
  97. package/dist/lib/node-esm/testing/index.mjs +75 -24
  98. package/dist/lib/node-esm/testing/index.mjs.map +4 -4
  99. package/dist/lib/node-esm/ui/index.mjs +50 -0
  100. package/dist/lib/node-esm/ui/index.mjs.map +7 -0
  101. package/dist/types/src/cli/cli.d.ts +39 -0
  102. package/dist/types/src/cli/cli.d.ts.map +1 -0
  103. package/dist/types/src/cli/index.d.ts +2 -0
  104. package/dist/types/src/cli/index.d.ts.map +1 -0
  105. package/dist/types/src/common/activation-events.d.ts +27 -0
  106. package/dist/types/src/common/activation-events.d.ts.map +1 -0
  107. package/dist/types/src/common/capabilities.d.ts +114 -200
  108. package/dist/types/src/common/capabilities.d.ts.map +1 -1
  109. package/dist/types/src/common/index.d.ts +4 -8
  110. package/dist/types/src/common/index.d.ts.map +1 -1
  111. package/dist/types/src/common/operations.d.ts +33 -0
  112. package/dist/types/src/common/operations.d.ts.map +1 -0
  113. package/dist/types/src/common/translations.d.ts +7 -7
  114. package/dist/types/src/common/translations.d.ts.map +1 -1
  115. package/dist/types/src/context.d.ts +5 -0
  116. package/dist/types/src/context.d.ts.map +1 -0
  117. package/dist/types/src/core/{events.d.ts → activation-event.d.ts} +6 -6
  118. package/dist/types/src/core/activation-event.d.ts.map +1 -0
  119. package/dist/types/src/core/capability-manager.d.ts +43 -0
  120. package/dist/types/src/core/capability-manager.d.ts.map +1 -0
  121. package/dist/types/src/core/capability-manager.test.d.ts +2 -0
  122. package/dist/types/src/core/capability-manager.test.d.ts.map +1 -0
  123. package/dist/types/src/core/capability.d.ts +150 -0
  124. package/dist/types/src/core/capability.d.ts.map +1 -0
  125. package/dist/types/src/core/index.d.ts +5 -4
  126. package/dist/types/src/core/index.d.ts.map +1 -1
  127. package/dist/types/src/core/plugin-manager.d.ts +66 -0
  128. package/dist/types/src/core/plugin-manager.d.ts.map +1 -0
  129. package/dist/types/src/core/plugin-manager.test.d.ts +2 -0
  130. package/dist/types/src/core/plugin-manager.test.d.ts.map +1 -0
  131. package/dist/types/src/core/plugin.d.ts +96 -34
  132. package/dist/types/src/core/plugin.d.ts.map +1 -1
  133. package/dist/types/src/index.d.ts +3 -4
  134. package/dist/types/src/index.d.ts.map +1 -1
  135. package/dist/types/src/plugin-operation/OperationPlugin.d.ts +3 -0
  136. package/dist/types/src/plugin-operation/OperationPlugin.d.ts.map +1 -0
  137. package/dist/types/src/plugin-operation/history/capability.d.ts +7 -0
  138. package/dist/types/src/plugin-operation/history/capability.d.ts.map +1 -0
  139. package/dist/types/src/plugin-operation/history/errors.d.ts +5 -0
  140. package/dist/types/src/plugin-operation/history/errors.d.ts.map +1 -0
  141. package/dist/types/src/plugin-operation/history/history-tracker.d.ts +18 -0
  142. package/dist/types/src/plugin-operation/history/history-tracker.d.ts.map +1 -0
  143. package/dist/types/src/plugin-operation/history/history-tracker.test.d.ts +2 -0
  144. package/dist/types/src/plugin-operation/history/history-tracker.test.d.ts.map +1 -0
  145. package/dist/types/src/plugin-operation/history/index.d.ts +6 -0
  146. package/dist/types/src/plugin-operation/history/index.d.ts.map +1 -0
  147. package/dist/types/src/plugin-operation/history/types.d.ts +13 -0
  148. package/dist/types/src/plugin-operation/history/types.d.ts.map +1 -0
  149. package/dist/types/src/plugin-operation/history/undo-mapping.d.ts +101 -0
  150. package/dist/types/src/plugin-operation/history/undo-mapping.d.ts.map +1 -0
  151. package/dist/types/src/plugin-operation/history/undo-registry.d.ts +23 -0
  152. package/dist/types/src/plugin-operation/history/undo-registry.d.ts.map +1 -0
  153. package/dist/types/src/plugin-operation/history/undo-registry.test.d.ts +2 -0
  154. package/dist/types/src/plugin-operation/history/undo-registry.test.d.ts.map +1 -0
  155. package/dist/types/src/plugin-operation/index.d.ts +3 -0
  156. package/dist/types/src/plugin-operation/index.d.ts.map +1 -0
  157. package/dist/types/src/plugin-operation/invoker-capability.d.ts +6 -0
  158. package/dist/types/src/plugin-operation/invoker-capability.d.ts.map +1 -0
  159. package/dist/types/src/plugin-operation/meta.d.ts +3 -0
  160. package/dist/types/src/plugin-operation/meta.d.ts.map +1 -0
  161. package/dist/types/src/plugin-operation/testing.d.ts +109 -0
  162. package/dist/types/src/plugin-operation/testing.d.ts.map +1 -0
  163. package/dist/types/src/plugin-runtime/RuntimePlugin.d.ts +3 -0
  164. package/dist/types/src/plugin-runtime/RuntimePlugin.d.ts.map +1 -0
  165. package/dist/types/src/plugin-runtime/capability.d.ts +6 -0
  166. package/dist/types/src/plugin-runtime/capability.d.ts.map +1 -0
  167. package/dist/types/src/plugin-runtime/index.d.ts +2 -0
  168. package/dist/types/src/plugin-runtime/index.d.ts.map +1 -0
  169. package/dist/types/src/plugin-runtime/meta.d.ts +3 -0
  170. package/dist/types/src/plugin-runtime/meta.d.ts.map +1 -0
  171. package/dist/types/src/testing/index.d.ts +1 -0
  172. package/dist/types/src/testing/index.d.ts.map +1 -1
  173. package/dist/types/src/testing/service.d.ts +8 -0
  174. package/dist/types/src/testing/service.d.ts.map +1 -0
  175. package/dist/types/src/testing/withPluginManager.d.ts +7 -6
  176. package/dist/types/src/testing/withPluginManager.d.ts.map +1 -1
  177. package/dist/types/src/ui/components/App.d.ts +8 -0
  178. package/dist/types/src/ui/components/App.d.ts.map +1 -0
  179. package/dist/types/src/ui/components/App.stories.d.ts.map +1 -0
  180. package/dist/types/src/ui/components/DefaultFallback.d.ts.map +1 -0
  181. package/dist/types/src/ui/components/ErrorBoundary.d.ts.map +1 -0
  182. package/dist/types/src/ui/components/PluginManagerContext.stories.d.ts +13 -0
  183. package/dist/types/src/ui/components/PluginManagerContext.stories.d.ts.map +1 -0
  184. package/dist/types/src/ui/components/PluginManagerProvider.d.ts +10 -0
  185. package/dist/types/src/ui/components/PluginManagerProvider.d.ts.map +1 -0
  186. package/dist/types/src/ui/components/index.d.ts +5 -0
  187. package/dist/types/src/ui/components/index.d.ts.map +1 -0
  188. package/dist/types/src/ui/components/surface/SurfaceComponent.d.ts +12 -0
  189. package/dist/types/src/ui/components/surface/SurfaceComponent.d.ts.map +1 -0
  190. package/dist/types/src/{playground/playground.stories.d.ts → ui/components/surface/SurfaceComponent.stories.d.ts} +5 -2
  191. package/dist/types/src/ui/components/surface/SurfaceComponent.stories.d.ts.map +1 -0
  192. package/dist/types/src/ui/components/surface/SurfaceInfo.d.ts +11 -0
  193. package/dist/types/src/ui/components/surface/SurfaceInfo.d.ts.map +1 -0
  194. package/dist/types/src/ui/components/surface/context.d.ts +5 -0
  195. package/dist/types/src/ui/components/surface/context.d.ts.map +1 -0
  196. package/dist/types/src/ui/components/surface/index.d.ts +5 -0
  197. package/dist/types/src/ui/components/surface/index.d.ts.map +1 -0
  198. package/dist/types/src/ui/components/surface/types.d.ts +94 -0
  199. package/dist/types/src/ui/components/surface/types.d.ts.map +1 -0
  200. package/dist/types/src/ui/hooks/index.d.ts +7 -0
  201. package/dist/types/src/ui/hooks/index.d.ts.map +1 -0
  202. package/dist/types/src/{components → ui/hooks}/useApp.d.ts +12 -6
  203. package/dist/types/src/ui/hooks/useApp.d.ts.map +1 -0
  204. package/dist/types/src/ui/hooks/useCapabilities.d.ts +31 -0
  205. package/dist/types/src/ui/hooks/useCapabilities.d.ts.map +1 -0
  206. package/dist/types/src/{components → ui/hooks}/useLoading.d.ts +1 -2
  207. package/dist/types/src/ui/hooks/useLoading.d.ts.map +1 -0
  208. package/dist/types/src/ui/hooks/useOperationResolver.d.ts +19 -0
  209. package/dist/types/src/ui/hooks/useOperationResolver.d.ts.map +1 -0
  210. package/dist/types/src/ui/hooks/useSettingsState.d.ts +10 -0
  211. package/dist/types/src/ui/hooks/useSettingsState.d.ts.map +1 -0
  212. package/dist/types/src/ui/hooks/useSurface.d.ts +3 -0
  213. package/dist/types/src/ui/hooks/useSurface.d.ts.map +1 -0
  214. package/dist/types/src/ui/index.d.ts +4 -0
  215. package/dist/types/src/ui/index.d.ts.map +1 -0
  216. package/dist/types/tsconfig.tsbuildinfo +1 -1
  217. package/moon.yml +10 -3
  218. package/package.json +112 -49
  219. package/src/cli/cli.ts +107 -0
  220. package/src/{components → cli}/index.ts +1 -1
  221. package/src/common/activation-events.ts +44 -0
  222. package/src/common/capabilities.ts +174 -213
  223. package/src/common/index.ts +4 -8
  224. package/src/common/operations.ts +38 -0
  225. package/src/common/translations.ts +17 -9
  226. package/src/context.ts +9 -0
  227. package/src/core/{events.ts → activation-event.ts} +5 -5
  228. package/src/core/capability-manager.test.ts +151 -0
  229. package/src/core/capability-manager.ts +171 -0
  230. package/src/core/capability.ts +236 -0
  231. package/src/core/index.ts +5 -4
  232. package/src/core/plugin-manager.test.ts +845 -0
  233. package/src/core/plugin-manager.ts +696 -0
  234. package/src/core/plugin.ts +226 -39
  235. package/src/index.ts +3 -4
  236. package/src/plugin-operation/OperationPlugin.ts +25 -0
  237. package/src/plugin-operation/history/capability.ts +37 -0
  238. package/src/plugin-operation/history/errors.ts +11 -0
  239. package/src/plugin-operation/history/history-tracker.test.ts +380 -0
  240. package/src/plugin-operation/history/history-tracker.ts +129 -0
  241. package/src/plugin-operation/history/index.ts +9 -0
  242. package/src/plugin-operation/history/types.ts +17 -0
  243. package/src/plugin-operation/history/undo-mapping.ts +135 -0
  244. package/src/plugin-operation/history/undo-registry.test.ts +73 -0
  245. package/src/plugin-operation/history/undo-registry.ts +54 -0
  246. package/src/plugin-operation/index.ts +6 -0
  247. package/src/plugin-operation/invoker-capability.ts +40 -0
  248. package/src/plugin-operation/meta.ts +11 -0
  249. package/src/plugin-operation/testing.ts +174 -0
  250. package/src/plugin-runtime/RuntimePlugin.ts +20 -0
  251. package/src/plugin-runtime/capability.ts +53 -0
  252. package/src/{playground/debug → plugin-runtime}/index.ts +1 -1
  253. package/src/plugin-runtime/meta.ts +11 -0
  254. package/src/testing/index.ts +1 -0
  255. package/src/testing/service.ts +52 -0
  256. package/src/testing/withPluginManager.stories.tsx +7 -7
  257. package/src/testing/withPluginManager.tsx +29 -26
  258. package/src/ui/components/App.stories.tsx +62 -0
  259. package/src/{components → ui/components}/App.tsx +9 -11
  260. package/src/{components → ui/components}/DefaultFallback.tsx +1 -1
  261. package/src/ui/components/PluginManagerContext.stories.tsx +183 -0
  262. package/src/{react → ui/components}/PluginManagerProvider.ts +3 -3
  263. package/src/ui/components/index.ts +8 -0
  264. package/src/ui/components/surface/SurfaceComponent.stories.tsx +142 -0
  265. package/src/ui/components/surface/SurfaceComponent.tsx +262 -0
  266. package/src/ui/components/surface/SurfaceInfo.tsx +107 -0
  267. package/src/ui/components/surface/context.ts +12 -0
  268. package/src/ui/components/surface/index.ts +8 -0
  269. package/src/ui/components/surface/types.ts +119 -0
  270. package/src/ui/hooks/index.ts +10 -0
  271. package/src/ui/hooks/useApp.tsx +215 -0
  272. package/src/ui/hooks/useCapabilities.ts +67 -0
  273. package/src/{components → ui/hooks}/useLoading.tsx +4 -6
  274. package/src/ui/hooks/useOperationResolver.ts +40 -0
  275. package/src/ui/hooks/useSettingsState.ts +26 -0
  276. package/src/ui/hooks/useSurface.ts +13 -0
  277. package/src/ui/index.ts +7 -0
  278. package/tsconfig.json +11 -23
  279. package/.swc/plugins/linux_x86_64_19.0.0/fce1bdb8e20a094e4af08bad09cc81497ed0e2e7c51223b07d371063cca18429.wasmer-v7 +0 -0
  280. package/dist/lib/browser/app-graph-builder-LG4RG2LM.mjs +0 -138
  281. package/dist/lib/browser/app-graph-builder-LG4RG2LM.mjs.map +0 -7
  282. package/dist/lib/browser/chunk-2GRQ4QXA.mjs +0 -1646
  283. package/dist/lib/browser/chunk-2GRQ4QXA.mjs.map +0 -7
  284. package/dist/lib/browser/chunk-FRUTKCPG.mjs +0 -467
  285. package/dist/lib/browser/chunk-FRUTKCPG.mjs.map +0 -7
  286. package/dist/lib/browser/chunk-SCPE4ZO2.mjs +0 -35
  287. package/dist/lib/browser/chunk-SCPE4ZO2.mjs.map +0 -7
  288. package/dist/lib/browser/intent-dispatcher-6SHA5B3N.mjs +0 -11
  289. package/dist/lib/browser/intent-resolver-UZZ4OANZ.mjs +0 -39
  290. package/dist/lib/browser/intent-resolver-UZZ4OANZ.mjs.map +0 -7
  291. package/dist/lib/browser/store-ACBEYK4B.mjs +0 -30
  292. package/dist/lib/browser/store-ACBEYK4B.mjs.map +0 -7
  293. package/dist/lib/browser/worker.mjs +0 -77
  294. package/dist/lib/node-esm/app-graph-builder-FMHVHPWA.mjs +0 -139
  295. package/dist/lib/node-esm/app-graph-builder-FMHVHPWA.mjs.map +0 -7
  296. package/dist/lib/node-esm/chunk-CXT6CYPE.mjs +0 -468
  297. package/dist/lib/node-esm/chunk-CXT6CYPE.mjs.map +0 -7
  298. package/dist/lib/node-esm/chunk-KSPOOYT3.mjs +0 -1648
  299. package/dist/lib/node-esm/chunk-KSPOOYT3.mjs.map +0 -7
  300. package/dist/lib/node-esm/chunk-ZX63QUGE.mjs +0 -37
  301. package/dist/lib/node-esm/chunk-ZX63QUGE.mjs.map +0 -7
  302. package/dist/lib/node-esm/intent-dispatcher-SIYQ5ZIU.mjs +0 -12
  303. package/dist/lib/node-esm/intent-resolver-7FYJMXAG.mjs +0 -40
  304. package/dist/lib/node-esm/intent-resolver-7FYJMXAG.mjs.map +0 -7
  305. package/dist/lib/node-esm/store-6OBLTVXC.mjs +0 -31
  306. package/dist/lib/node-esm/store-6OBLTVXC.mjs.map +0 -7
  307. package/dist/lib/node-esm/worker.mjs +0 -78
  308. package/dist/types/src/common/collaboration.d.ts +0 -20
  309. package/dist/types/src/common/collaboration.d.ts.map +0 -1
  310. package/dist/types/src/common/events.d.ts +0 -52
  311. package/dist/types/src/common/events.d.ts.map +0 -1
  312. package/dist/types/src/common/file.d.ts +0 -14
  313. package/dist/types/src/common/file.d.ts.map +0 -1
  314. package/dist/types/src/common/graph.d.ts +0 -21
  315. package/dist/types/src/common/graph.d.ts.map +0 -1
  316. package/dist/types/src/common/layout.d.ts +0 -279
  317. package/dist/types/src/common/layout.d.ts.map +0 -1
  318. package/dist/types/src/common/surface.d.ts +0 -59
  319. package/dist/types/src/common/surface.d.ts.map +0 -1
  320. package/dist/types/src/components/App.d.ts +0 -10
  321. package/dist/types/src/components/App.d.ts.map +0 -1
  322. package/dist/types/src/components/App.stories.d.ts.map +0 -1
  323. package/dist/types/src/components/DefaultFallback.d.ts.map +0 -1
  324. package/dist/types/src/components/index.d.ts +0 -2
  325. package/dist/types/src/components/index.d.ts.map +0 -1
  326. package/dist/types/src/components/useApp.d.ts.map +0 -1
  327. package/dist/types/src/components/useLoading.d.ts.map +0 -1
  328. package/dist/types/src/core/capabilities.d.ts +0 -117
  329. package/dist/types/src/core/capabilities.d.ts.map +0 -1
  330. package/dist/types/src/core/capabilities.test.d.ts +0 -2
  331. package/dist/types/src/core/capabilities.test.d.ts.map +0 -1
  332. package/dist/types/src/core/events.d.ts.map +0 -1
  333. package/dist/types/src/core/manager.d.ts +0 -126
  334. package/dist/types/src/core/manager.d.ts.map +0 -1
  335. package/dist/types/src/core/manager.test.d.ts +0 -2
  336. package/dist/types/src/core/manager.test.d.ts.map +0 -1
  337. package/dist/types/src/playground/debug/Debug.d.ts +0 -6
  338. package/dist/types/src/playground/debug/Debug.d.ts.map +0 -1
  339. package/dist/types/src/playground/debug/index.d.ts +0 -2
  340. package/dist/types/src/playground/debug/index.d.ts.map +0 -1
  341. package/dist/types/src/playground/debug/plugin.d.ts +0 -2
  342. package/dist/types/src/playground/debug/plugin.d.ts.map +0 -1
  343. package/dist/types/src/playground/generator/Main.d.ts +0 -6
  344. package/dist/types/src/playground/generator/Main.d.ts.map +0 -1
  345. package/dist/types/src/playground/generator/Toolbar.d.ts +0 -6
  346. package/dist/types/src/playground/generator/Toolbar.d.ts.map +0 -1
  347. package/dist/types/src/playground/generator/generator.d.ts +0 -7
  348. package/dist/types/src/playground/generator/generator.d.ts.map +0 -1
  349. package/dist/types/src/playground/generator/index.d.ts +0 -3
  350. package/dist/types/src/playground/generator/index.d.ts.map +0 -1
  351. package/dist/types/src/playground/generator/plugin.d.ts +0 -2
  352. package/dist/types/src/playground/generator/plugin.d.ts.map +0 -1
  353. package/dist/types/src/playground/layout/Layout.d.ts +0 -8
  354. package/dist/types/src/playground/layout/Layout.d.ts.map +0 -1
  355. package/dist/types/src/playground/layout/index.d.ts +0 -2
  356. package/dist/types/src/playground/layout/index.d.ts.map +0 -1
  357. package/dist/types/src/playground/layout/plugin.d.ts +0 -2
  358. package/dist/types/src/playground/layout/plugin.d.ts.map +0 -1
  359. package/dist/types/src/playground/logger/Toolbar.d.ts +0 -6
  360. package/dist/types/src/playground/logger/Toolbar.d.ts.map +0 -1
  361. package/dist/types/src/playground/logger/index.d.ts +0 -2
  362. package/dist/types/src/playground/logger/index.d.ts.map +0 -1
  363. package/dist/types/src/playground/logger/plugin.d.ts +0 -2
  364. package/dist/types/src/playground/logger/plugin.d.ts.map +0 -1
  365. package/dist/types/src/playground/logger/schema.d.ts +0 -13
  366. package/dist/types/src/playground/logger/schema.d.ts.map +0 -1
  367. package/dist/types/src/playground/playground.stories.d.ts.map +0 -1
  368. package/dist/types/src/plugin-intent/IntentPlugin.d.ts +0 -2
  369. package/dist/types/src/plugin-intent/IntentPlugin.d.ts.map +0 -1
  370. package/dist/types/src/plugin-intent/actions.d.ts +0 -36
  371. package/dist/types/src/plugin-intent/actions.d.ts.map +0 -1
  372. package/dist/types/src/plugin-intent/errors.d.ts +0 -16
  373. package/dist/types/src/plugin-intent/errors.d.ts.map +0 -1
  374. package/dist/types/src/plugin-intent/index.d.ts +0 -6
  375. package/dist/types/src/plugin-intent/index.d.ts.map +0 -1
  376. package/dist/types/src/plugin-intent/intent-dispatcher.d.ts +0 -139
  377. package/dist/types/src/plugin-intent/intent-dispatcher.d.ts.map +0 -1
  378. package/dist/types/src/plugin-intent/intent-dispatcher.test.d.ts +0 -2
  379. package/dist/types/src/plugin-intent/intent-dispatcher.test.d.ts.map +0 -1
  380. package/dist/types/src/plugin-intent/intent.d.ts +0 -63
  381. package/dist/types/src/plugin-intent/intent.d.ts.map +0 -1
  382. package/dist/types/src/plugin-intent/meta.d.ts +0 -3
  383. package/dist/types/src/plugin-intent/meta.d.ts.map +0 -1
  384. package/dist/types/src/plugin-settings/SettingsPlugin.d.ts +0 -2
  385. package/dist/types/src/plugin-settings/SettingsPlugin.d.ts.map +0 -1
  386. package/dist/types/src/plugin-settings/actions.d.ts +0 -25
  387. package/dist/types/src/plugin-settings/actions.d.ts.map +0 -1
  388. package/dist/types/src/plugin-settings/app-graph-builder.d.ts +0 -4
  389. package/dist/types/src/plugin-settings/app-graph-builder.d.ts.map +0 -1
  390. package/dist/types/src/plugin-settings/index.d.ts +0 -3
  391. package/dist/types/src/plugin-settings/index.d.ts.map +0 -1
  392. package/dist/types/src/plugin-settings/intent-resolver.d.ts +0 -4
  393. package/dist/types/src/plugin-settings/intent-resolver.d.ts.map +0 -1
  394. package/dist/types/src/plugin-settings/meta.d.ts +0 -3
  395. package/dist/types/src/plugin-settings/meta.d.ts.map +0 -1
  396. package/dist/types/src/plugin-settings/store.d.ts +0 -5
  397. package/dist/types/src/plugin-settings/store.d.ts.map +0 -1
  398. package/dist/types/src/plugin-settings/translations.d.ts +0 -11
  399. package/dist/types/src/plugin-settings/translations.d.ts.map +0 -1
  400. package/dist/types/src/react/ErrorBoundary.d.ts.map +0 -1
  401. package/dist/types/src/react/IntentContext.d.ts +0 -8
  402. package/dist/types/src/react/IntentContext.d.ts.map +0 -1
  403. package/dist/types/src/react/PluginManagerProvider.d.ts +0 -10
  404. package/dist/types/src/react/PluginManagerProvider.d.ts.map +0 -1
  405. package/dist/types/src/react/Surface.d.ts +0 -12
  406. package/dist/types/src/react/Surface.d.ts.map +0 -1
  407. package/dist/types/src/react/Surface.stories.d.ts +0 -17
  408. package/dist/types/src/react/Surface.stories.d.ts.map +0 -1
  409. package/dist/types/src/react/common.d.ts +0 -13
  410. package/dist/types/src/react/common.d.ts.map +0 -1
  411. package/dist/types/src/react/index.d.ts +0 -7
  412. package/dist/types/src/react/index.d.ts.map +0 -1
  413. package/dist/types/src/react/useCapabilities.d.ts +0 -13
  414. package/dist/types/src/react/useCapabilities.d.ts.map +0 -1
  415. package/dist/types/src/react/useIntentResolver.d.ts +0 -3
  416. package/dist/types/src/react/useIntentResolver.d.ts.map +0 -1
  417. package/dist/types/src/worker.d.ts +0 -4
  418. package/dist/types/src/worker.d.ts.map +0 -1
  419. package/src/common/collaboration.ts +0 -18
  420. package/src/common/events.ts +0 -79
  421. package/src/common/file.ts +0 -22
  422. package/src/common/graph.ts +0 -30
  423. package/src/common/layout.ts +0 -277
  424. package/src/common/surface.ts +0 -83
  425. package/src/components/App.stories.tsx +0 -33
  426. package/src/components/useApp.tsx +0 -164
  427. package/src/core/capabilities.test.ts +0 -136
  428. package/src/core/capabilities.ts +0 -259
  429. package/src/core/manager.test.ts +0 -516
  430. package/src/core/manager.ts +0 -604
  431. package/src/playground/debug/Debug.tsx +0 -39
  432. package/src/playground/debug/plugin.ts +0 -16
  433. package/src/playground/generator/Main.tsx +0 -71
  434. package/src/playground/generator/Toolbar.tsx +0 -47
  435. package/src/playground/generator/generator.ts +0 -48
  436. package/src/playground/generator/index.ts +0 -6
  437. package/src/playground/generator/plugin.ts +0 -22
  438. package/src/playground/layout/Layout.tsx +0 -33
  439. package/src/playground/layout/index.ts +0 -5
  440. package/src/playground/layout/plugin.ts +0 -18
  441. package/src/playground/logger/Toolbar.tsx +0 -30
  442. package/src/playground/logger/index.ts +0 -5
  443. package/src/playground/logger/plugin.ts +0 -41
  444. package/src/playground/logger/schema.ts +0 -12
  445. package/src/playground/playground.stories.tsx +0 -46
  446. package/src/plugin-intent/IntentPlugin.ts +0 -20
  447. package/src/plugin-intent/actions.ts +0 -31
  448. package/src/plugin-intent/errors.ts +0 -40
  449. package/src/plugin-intent/index.ts +0 -9
  450. package/src/plugin-intent/intent-dispatcher.test.ts +0 -286
  451. package/src/plugin-intent/intent-dispatcher.ts +0 -337
  452. package/src/plugin-intent/intent.ts +0 -154
  453. package/src/plugin-intent/meta.ts +0 -10
  454. package/src/plugin-settings/SettingsPlugin.ts +0 -34
  455. package/src/plugin-settings/actions.ts +0 -25
  456. package/src/plugin-settings/app-graph-builder.ts +0 -160
  457. package/src/plugin-settings/index.ts +0 -6
  458. package/src/plugin-settings/intent-resolver.ts +0 -35
  459. package/src/plugin-settings/meta.ts +0 -10
  460. package/src/plugin-settings/store.ts +0 -33
  461. package/src/plugin-settings/translations.ts +0 -19
  462. package/src/react/IntentContext.tsx +0 -35
  463. package/src/react/Surface.stories.tsx +0 -101
  464. package/src/react/Surface.tsx +0 -86
  465. package/src/react/common.ts +0 -13
  466. package/src/react/index.ts +0 -10
  467. package/src/react/useCapabilities.ts +0 -31
  468. package/src/react/useIntentResolver.ts +0 -22
  469. package/src/worker.ts +0 -11
  470. /package/dist/lib/browser/{intent-dispatcher-6SHA5B3N.mjs.map → chunk-J5LGTIGS.mjs.map} +0 -0
  471. /package/dist/lib/browser/{worker.mjs.map → chunk-YAFEA4GV.mjs.map} +0 -0
  472. /package/dist/lib/{node-esm/intent-dispatcher-SIYQ5ZIU.mjs.map → browser/common/activation-events.mjs.map} +0 -0
  473. /package/dist/lib/{node-esm/worker.mjs.map → browser/common/capabilities.mjs.map} +0 -0
  474. /package/dist/types/src/{components → ui/components}/App.stories.d.ts +0 -0
  475. /package/dist/types/src/{components → ui/components}/DefaultFallback.d.ts +0 -0
  476. /package/dist/types/src/{react → ui/components}/ErrorBoundary.d.ts +0 -0
  477. /package/src/{react → ui/components}/ErrorBoundary.tsx +0 -0
@@ -2,216 +2,177 @@
2
2
  // Copyright 2025 DXOS.org
3
3
  //
4
4
 
5
- import type * as Tool from '@effect/ai/Tool';
6
- import type * as Toolkit from '@effect/ai/Toolkit';
7
- import { type Registry } from '@effect-rx/rx-react';
8
- import type * as Layer from 'effect/Layer';
9
- import type * as Schema from 'effect/Schema';
10
- import { type FC, type PropsWithChildren } from 'react';
11
-
12
- import { type AiService } from '@dxos/ai';
13
- import type * as AiServiceRouter from '@dxos/ai/AiServiceRouter';
14
- import { type BuilderExtensions, type GraphBuilder } from '@dxos/app-graph';
15
- import { type Blueprint } from '@dxos/blueprints';
16
- import { type Space } from '@dxos/client-protocol';
17
- import { type FunctionDefinition } from '@dxos/functions';
18
- import { type RootSettingsStore } from '@dxos/local-storage';
19
- import { type AnchoredTo } from '@dxos/schema';
20
-
21
- import { type PluginManager, defineCapability } from '../core';
22
- import { type AnyIntentResolver, type IntentContext } from '../plugin-intent';
23
-
24
- import { type FileInfo } from './file';
25
- import { type NodeSerializer } from './graph';
26
- import { type SurfaceDefinition } from './surface';
27
- import { type Resource } from './translations';
28
-
29
- // TODO(burdon): Sort.
30
- export namespace Capabilities {
31
- /**
32
- * @category Capability
33
- */
34
- export const Null = defineCapability<null>('dxos.org/app-framework/capability/null');
35
-
36
- /**
37
- * @category Capability
38
- */
39
- export const PluginManager = defineCapability<PluginManager>('dxos.org/app-framework/capability/plugin-manager');
40
-
41
- /**
42
- * @category Capability
43
- */
44
- export const RxRegistry = defineCapability<Registry.Registry>('dxos.org/app-framework/capability/rx-registry');
45
-
46
- export type ReactContext = Readonly<{ id: string; dependsOn?: string[]; context: FC<PropsWithChildren> }>;
47
-
48
- /**
49
- * @category Capability
50
- */
51
- export const ReactContext = defineCapability<ReactContext>('dxos.org/app-framework/capability/react-context');
52
-
53
- export type ReactRoot = Readonly<{ id: string; root: FC<PropsWithChildren> }>;
54
-
55
- /**
56
- * @category Capability
57
- */
58
- export const ReactRoot = defineCapability<ReactRoot>('dxos.org/app-framework/capability/react-root');
59
-
60
- export type ReactSurface = SurfaceDefinition | readonly SurfaceDefinition[];
61
-
62
- /**
63
- * @category Capability
64
- */
65
- export const ReactSurface = defineCapability<ReactSurface>('dxos.org/app-framework/common/react-surface');
66
-
67
- export type IntentResolver = AnyIntentResolver | readonly AnyIntentResolver[];
68
-
69
- /**
70
- * @category Capability
71
- */
72
- export const IntentResolver = defineCapability<IntentResolver>('dxos.org/app-framework/capability/intent-resolver');
73
-
74
- /**
75
- * @category Capability
76
- */
77
- export const IntentDispatcher = defineCapability<IntentContext>(
78
- 'dxos.org/app-framework/capability/intent-dispatcher',
79
- );
80
-
81
- export type Layout = Readonly<{
82
- mode: string;
83
- dialogOpen: boolean;
84
- sidebarOpen: boolean;
85
- complementarySidebarOpen: boolean;
86
- /**
87
- * The id of the active workspace, where a workspace is a set of active items.
88
- */
89
- workspace: string;
90
- /**
91
- * Identifiers of items which are currently active in the application.
92
- */
93
- active: string[];
94
- /**
95
- * Identifiers of items which were previously active in the application.
96
- */
97
- inactive: string[];
98
- /**
99
- * Identifier of the item which should be scrolled into view.
100
- */
101
- scrollIntoView: string | undefined;
102
- }>;
103
-
104
- /**
105
- * @category Capability
106
- */
107
- export const Layout = defineCapability<Layout>('dxos.org/app-framework/capability/layout');
108
-
109
- /**
110
- * @category Capability
111
- */
112
- export const Translations = defineCapability<Readonly<Resource[]>>('dxos.org/app-framework/capability/translations');
113
-
114
- /**
115
- * @category Capability
116
- */
117
- export const AppGraph = defineCapability<Readonly<Pick<GraphBuilder, 'graph' | 'explore'>>>(
118
- 'dxos.org/app-framework/capability/app-graph',
119
- );
120
-
121
- /**
122
- * @category Capability
123
- */
124
- export const AppGraphBuilder = defineCapability<BuilderExtensions>(
125
- 'dxos.org/app-framework/capability/app-graph-builder',
126
- );
127
-
128
- /**
129
- * @category Capability
130
- */
131
- export const AppGraphSerializer = defineCapability<NodeSerializer[]>(
132
- 'dxos.org/app-framework/capability/app-graph-serializer',
133
- );
134
-
135
- /**
136
- * @category Capability
137
- */
138
- export const SettingsStore = defineCapability<RootSettingsStore>('dxos.org/app-framework/capability/settings-store');
139
-
140
- // TODO(wittjosiah): The generics caused type inference issues for schemas when contributing settings.
141
- // export type Settings = Parameters<RootSettingsStore['createStore']>[0];
142
- // export type Settings<T extends SettingsValue = SettingsValue> = SettingsProps<T>;
143
- export type Settings = {
144
- prefix: string;
145
- schema: Schema.Schema.All;
146
- value?: Record<string, any>;
147
- };
148
-
149
- /**
150
- * @category Capability
151
- */
152
- export const Settings = defineCapability<Settings>('dxos.org/app-framework/capability/settings');
153
-
154
- export type Metadata = Readonly<{ id: string; metadata: Record<string, any> }>;
155
-
156
- /**
157
- * @category Capability
158
- */
159
- export const Metadata = defineCapability<Metadata>('dxos.org/app-framework/capability/metadata');
160
-
161
- // TODO(dmaretskyi): Consider combining Toolkit and ToolkitHandler for type-safe context.
162
-
163
- /**
164
- * @category Capability
165
- */
166
- export const Toolkit = defineCapability<Toolkit.Any>('dxos.org/app-framework/capability/ai-toolkit');
167
-
168
- /**
169
- * @category Capability
170
- */
171
- export const ToolkitHandler = defineCapability<Layer.Layer<Tool.Handler<any>, never, never>>(
172
- 'dxos.org/app-framework/capability/ai-toolkit-handler',
173
- );
174
-
175
- /**
176
- * @category Capability
177
- */
178
- export const BlueprintDefinition = defineCapability<Blueprint.Blueprint>(
179
- 'dxos.org/app-framework/capability/blueprint-definition',
180
- );
181
-
182
- export type AiServiceLayer = Layer.Layer<AiService.AiService>;
183
- export const AiServiceLayer = defineCapability<AiServiceLayer>(
184
- 'dxos.org/app-framework/capability/ai-service-factory',
185
- );
186
-
187
- /**
188
- * Plugins can contribute them to provide model resolvers.
189
- */
190
- export const AiModelResolver = defineCapability<Layer.Layer<AiServiceRouter.AiModelResolver>>(
191
- 'dxos.org/app-framework/capability/ai-model-resolver',
192
- );
193
-
194
- /**
195
- * @category Capability
196
- */
197
- export const Functions = defineCapability<FunctionDefinition<any, any>[]>(
198
- 'dxos.org/app-framework/capability/functions',
199
- );
200
-
201
- export type FileUploader = (file: File, space: Space) => Promise<FileInfo | undefined>;
202
-
203
- /**
204
- * @category Capability
205
- */
206
- export const FileUploader = defineCapability<FileUploader>('dxos.org/app-framework/capability/file-uploader');
207
-
208
- type AnchorSort = {
209
- key: string;
210
- sort: (anchorA: AnchoredTo, anchorB: AnchoredTo) => number;
211
- };
212
-
213
- /**
214
- * @category Capability
215
- */
216
- export const AnchorSort = defineCapability<AnchorSort>('dxos.org/app-framework/capability/anchor-sort');
217
- }
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
+ }
@@ -4,14 +4,22 @@
4
4
 
5
5
  import * as Schema from 'effect/Schema';
6
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>;
12
-
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]);