@dxos/plugin-space 0.8.4-main.c1de068 → 0.8.4-main.c4373fc

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 (272) hide show
  1. package/dist/lib/browser/{CollectionMain-D2B75XBS.mjs → CollectionMain-AX7KKXWP.mjs} +4 -4
  2. package/dist/lib/browser/CollectionMain-AX7KKXWP.mjs.map +7 -0
  3. package/dist/lib/browser/{ObjectDetailsPanel-YPTDQKMG.mjs → ObjectDetailsPanel-SJ4XUXXX.mjs} +11 -9
  4. package/dist/lib/browser/ObjectDetailsPanel-SJ4XUXXX.mjs.map +7 -0
  5. package/dist/lib/browser/RecordMain-FHPCS6GM.mjs +68 -0
  6. package/dist/lib/browser/RecordMain-FHPCS6GM.mjs.map +7 -0
  7. package/dist/lib/browser/{app-graph-builder-7CZZJS3S.mjs → app-graph-builder-Y2LBZX2G.mjs} +102 -61
  8. package/dist/lib/browser/app-graph-builder-Y2LBZX2G.mjs.map +7 -0
  9. package/dist/lib/browser/{app-graph-serializer-H6AW7KGS.mjs → app-graph-serializer-425OVRTW.mjs} +14 -14
  10. package/dist/lib/browser/app-graph-serializer-425OVRTW.mjs.map +7 -0
  11. package/dist/lib/browser/{chunk-V7MJSSBQ.mjs → chunk-6KVKMOGQ.mjs} +148 -157
  12. package/dist/lib/browser/chunk-6KVKMOGQ.mjs.map +7 -0
  13. package/dist/lib/browser/{chunk-VLBRSGJ2.mjs → chunk-CVZAZRW4.mjs} +4 -4
  14. package/dist/lib/browser/chunk-CVZAZRW4.mjs.map +7 -0
  15. package/dist/lib/browser/chunk-EIXZABXD.mjs +19 -0
  16. package/dist/lib/browser/chunk-EIXZABXD.mjs.map +7 -0
  17. package/dist/lib/browser/chunk-IRKDREHY.mjs +11 -0
  18. package/dist/lib/browser/chunk-IRKDREHY.mjs.map +7 -0
  19. package/dist/lib/browser/{chunk-SGTQ52SU.mjs → chunk-OYHC63NL.mjs} +16 -10
  20. package/dist/lib/browser/chunk-OYHC63NL.mjs.map +7 -0
  21. package/dist/lib/browser/chunk-PUF3B7XO.mjs +20 -0
  22. package/dist/lib/browser/chunk-PUF3B7XO.mjs.map +7 -0
  23. package/dist/lib/browser/{chunk-XUYKJUU7.mjs → chunk-X6COEDOD.mjs} +99 -44
  24. package/dist/lib/browser/chunk-X6COEDOD.mjs.map +7 -0
  25. package/dist/lib/browser/{chunk-QACNNDOT.mjs → chunk-YZJWWMNB.mjs} +11 -10
  26. package/dist/lib/browser/chunk-YZJWWMNB.mjs.map +7 -0
  27. package/dist/lib/browser/{identity-created-23XJJV2N.mjs → identity-created-PW2BA46S.mjs} +4 -4
  28. package/dist/lib/browser/{identity-created-23XJJV2N.mjs.map → identity-created-PW2BA46S.mjs.map} +3 -3
  29. package/dist/lib/browser/index.mjs +20 -40
  30. package/dist/lib/browser/index.mjs.map +3 -3
  31. package/dist/lib/browser/{intent-resolver-TIXVDYN7.mjs → intent-resolver-2TBYHOBA.mjs} +47 -42
  32. package/dist/lib/browser/intent-resolver-2TBYHOBA.mjs.map +7 -0
  33. package/dist/lib/browser/meta.json +1 -1
  34. package/dist/lib/browser/{react-root-N2J7TDRX.mjs → react-root-KMJXJ5VX.mjs} +11 -11
  35. package/dist/lib/browser/react-root-KMJXJ5VX.mjs.map +7 -0
  36. package/dist/lib/browser/{react-surface-TPNLWJJH.mjs → react-surface-YAJUAMER.mjs} +53 -42
  37. package/dist/lib/browser/react-surface-YAJUAMER.mjs.map +7 -0
  38. package/dist/lib/browser/{schema-defs-Z6FC4AHC.mjs → schema-defs-2OCPV7JF.mjs} +5 -5
  39. package/dist/lib/browser/schema-defs-2OCPV7JF.mjs.map +7 -0
  40. package/dist/lib/browser/{settings-4IMP5RYT.mjs → settings-UYYJ225A.mjs} +5 -5
  41. package/dist/lib/browser/{settings-4IMP5RYT.mjs.map → settings-UYYJ225A.mjs.map} +1 -1
  42. package/dist/lib/browser/{spaces-ready-TOPG6IV4.mjs → spaces-ready-YNZPWXA3.mjs} +18 -16
  43. package/dist/lib/browser/spaces-ready-YNZPWXA3.mjs.map +7 -0
  44. package/dist/lib/browser/{state-QYZAB45H.mjs → state-BPU73TYO.mjs} +7 -7
  45. package/dist/lib/browser/state-BPU73TYO.mjs.map +7 -0
  46. package/dist/lib/browser/types/index.mjs +2 -2
  47. package/dist/lib/node-esm/{CollectionMain-ZJIFCWKZ.mjs → CollectionMain-EU57SRYK.mjs} +4 -4
  48. package/dist/lib/node-esm/CollectionMain-EU57SRYK.mjs.map +7 -0
  49. package/dist/lib/node-esm/{ObjectDetailsPanel-QKZEDSZK.mjs → ObjectDetailsPanel-P7D727OV.mjs} +11 -9
  50. package/dist/lib/node-esm/ObjectDetailsPanel-P7D727OV.mjs.map +7 -0
  51. package/dist/lib/node-esm/RecordMain-V73AEB6N.mjs +70 -0
  52. package/dist/lib/node-esm/RecordMain-V73AEB6N.mjs.map +7 -0
  53. package/dist/lib/node-esm/{app-graph-builder-KGIGWC72.mjs → app-graph-builder-DMNLDT7E.mjs} +102 -61
  54. package/dist/lib/node-esm/app-graph-builder-DMNLDT7E.mjs.map +7 -0
  55. package/dist/lib/node-esm/{app-graph-serializer-2ICUGQQT.mjs → app-graph-serializer-ZEDSY77N.mjs} +14 -14
  56. package/dist/lib/node-esm/app-graph-serializer-ZEDSY77N.mjs.map +7 -0
  57. package/dist/lib/node-esm/chunk-36TAYXV7.mjs +21 -0
  58. package/dist/lib/node-esm/chunk-36TAYXV7.mjs.map +7 -0
  59. package/dist/lib/node-esm/{chunk-P442DOQ3.mjs → chunk-7UIEPBQJ.mjs} +11 -10
  60. package/dist/lib/node-esm/chunk-7UIEPBQJ.mjs.map +7 -0
  61. package/dist/lib/node-esm/{chunk-JH6F4C3I.mjs → chunk-ADEZJQE3.mjs} +16 -10
  62. package/dist/lib/node-esm/chunk-ADEZJQE3.mjs.map +7 -0
  63. package/dist/lib/node-esm/{chunk-SSLBYZEY.mjs → chunk-FLRC6XWU.mjs} +4 -4
  64. package/dist/lib/node-esm/chunk-FLRC6XWU.mjs.map +7 -0
  65. package/dist/lib/node-esm/{chunk-6X5DLJM5.mjs → chunk-L26ZIGHA.mjs} +148 -157
  66. package/dist/lib/node-esm/chunk-L26ZIGHA.mjs.map +7 -0
  67. package/dist/lib/node-esm/{chunk-HWNG4MEU.mjs → chunk-MWNATOXL.mjs} +2 -4
  68. package/dist/lib/node-esm/chunk-MWNATOXL.mjs.map +7 -0
  69. package/dist/lib/node-esm/chunk-SVFKU7EW.mjs +20 -0
  70. package/dist/lib/node-esm/chunk-SVFKU7EW.mjs.map +7 -0
  71. package/dist/lib/node-esm/{chunk-4AOMYKDE.mjs → chunk-ZFCCFELA.mjs} +99 -44
  72. package/dist/lib/node-esm/chunk-ZFCCFELA.mjs.map +7 -0
  73. package/dist/lib/node-esm/{identity-created-IJQO6GCR.mjs → identity-created-MWTLGQRU.mjs} +4 -4
  74. package/dist/lib/node-esm/{identity-created-IJQO6GCR.mjs.map → identity-created-MWTLGQRU.mjs.map} +3 -3
  75. package/dist/lib/node-esm/index.mjs +20 -40
  76. package/dist/lib/node-esm/index.mjs.map +3 -3
  77. package/dist/lib/node-esm/{intent-resolver-MHGHRGDT.mjs → intent-resolver-YOG27WOG.mjs} +47 -42
  78. package/dist/lib/node-esm/intent-resolver-YOG27WOG.mjs.map +7 -0
  79. package/dist/lib/node-esm/meta.json +1 -1
  80. package/dist/lib/node-esm/{react-root-KW3TGJGY.mjs → react-root-27QMJZD2.mjs} +11 -11
  81. package/dist/lib/node-esm/react-root-27QMJZD2.mjs.map +7 -0
  82. package/dist/lib/node-esm/{react-surface-UUIUUD6P.mjs → react-surface-RC73GAN5.mjs} +53 -42
  83. package/dist/lib/node-esm/react-surface-RC73GAN5.mjs.map +7 -0
  84. package/dist/lib/node-esm/{schema-defs-WHJM7UZE.mjs → schema-defs-X2Z7F2EV.mjs} +5 -5
  85. package/dist/lib/node-esm/schema-defs-X2Z7F2EV.mjs.map +7 -0
  86. package/dist/lib/node-esm/{settings-SAOBPND3.mjs → settings-Q736OQRP.mjs} +5 -5
  87. package/dist/lib/node-esm/{settings-SAOBPND3.mjs.map → settings-Q736OQRP.mjs.map} +1 -1
  88. package/dist/lib/node-esm/{spaces-ready-HIUKNDZK.mjs → spaces-ready-XZQD7Q65.mjs} +18 -16
  89. package/dist/lib/node-esm/spaces-ready-XZQD7Q65.mjs.map +7 -0
  90. package/dist/lib/node-esm/{state-ZVEHQ4BJ.mjs → state-BY75TM32.mjs} +7 -7
  91. package/dist/lib/node-esm/state-BY75TM32.mjs.map +7 -0
  92. package/dist/lib/node-esm/types/index.mjs +2 -2
  93. package/dist/types/src/SpacePlugin.d.ts +1 -1
  94. package/dist/types/src/SpacePlugin.d.ts.map +1 -1
  95. package/dist/types/src/capabilities/app-graph-builder.d.ts +1 -1
  96. package/dist/types/src/capabilities/app-graph-builder.d.ts.map +1 -1
  97. package/dist/types/src/capabilities/app-graph-serializer.d.ts +1 -1
  98. package/dist/types/src/capabilities/capabilities.d.ts +4 -4
  99. package/dist/types/src/capabilities/capabilities.d.ts.map +1 -1
  100. package/dist/types/src/capabilities/identity-created.d.ts +1 -1
  101. package/dist/types/src/capabilities/identity-created.d.ts.map +1 -1
  102. package/dist/types/src/capabilities/index.d.ts +11 -12
  103. package/dist/types/src/capabilities/index.d.ts.map +1 -1
  104. package/dist/types/src/capabilities/intent-resolver.d.ts +1 -1
  105. package/dist/types/src/capabilities/intent-resolver.d.ts.map +1 -1
  106. package/dist/types/src/capabilities/react-root.d.ts +2 -2
  107. package/dist/types/src/capabilities/react-root.d.ts.map +1 -1
  108. package/dist/types/src/capabilities/react-surface.d.ts +1 -1
  109. package/dist/types/src/capabilities/react-surface.d.ts.map +1 -1
  110. package/dist/types/src/capabilities/schema-defs.d.ts +1 -1
  111. package/dist/types/src/capabilities/schema-defs.d.ts.map +1 -1
  112. package/dist/types/src/capabilities/settings.d.ts +1 -1
  113. package/dist/types/src/capabilities/spaces-ready.d.ts +1 -1
  114. package/dist/types/src/capabilities/spaces-ready.d.ts.map +1 -1
  115. package/dist/types/src/capabilities/state.d.ts +1 -1
  116. package/dist/types/src/capabilities/state.d.ts.map +1 -1
  117. package/dist/types/src/components/CreateDialog/CreateObjectDialog.d.ts +3 -3
  118. package/dist/types/src/components/CreateDialog/CreateObjectDialog.d.ts.map +1 -1
  119. package/dist/types/src/components/CreateDialog/CreateObjectDialog.stories.d.ts +1584 -4
  120. package/dist/types/src/components/CreateDialog/CreateObjectDialog.stories.d.ts.map +1 -1
  121. package/dist/types/src/components/CreateDialog/CreateObjectPanel.d.ts +5 -3
  122. package/dist/types/src/components/CreateDialog/CreateObjectPanel.d.ts.map +1 -1
  123. package/dist/types/src/components/CreateDialog/CreateSpaceDialog.d.ts +1 -1
  124. package/dist/types/src/components/CreateDialog/CreateSpaceDialog.d.ts.map +1 -1
  125. package/dist/types/src/components/JoinDialog.d.ts +1 -1
  126. package/dist/types/src/components/JoinDialog.d.ts.map +1 -1
  127. package/dist/types/src/components/MembersContainer.d.ts +3 -2
  128. package/dist/types/src/components/MembersContainer.d.ts.map +1 -1
  129. package/dist/types/src/components/MembersContainer.stories.d.ts +1584 -5
  130. package/dist/types/src/components/MembersContainer.stories.d.ts.map +1 -1
  131. package/dist/types/src/components/ObjectDetailsPanel.d.ts.map +1 -1
  132. package/dist/types/src/components/ObjectSettings/AdvancedObjectSettings.d.ts.map +1 -1
  133. package/dist/types/src/components/ObjectSettings/ForeignKeys.d.ts +1 -1
  134. package/dist/types/src/components/ObjectSettings/ForeignKeys.d.ts.map +1 -1
  135. package/dist/types/src/components/ObjectSettings/ObjectSettingsContainer.d.ts.map +1 -1
  136. package/dist/types/src/components/PopoverRenameObject.d.ts +2 -2
  137. package/dist/types/src/components/PopoverRenameObject.d.ts.map +1 -1
  138. package/dist/types/src/components/PopoverRenameSpace.d.ts +1 -1
  139. package/dist/types/src/components/PopoverRenameSpace.d.ts.map +1 -1
  140. package/dist/types/src/components/RecordMain.d.ts +7 -0
  141. package/dist/types/src/components/RecordMain.d.ts.map +1 -0
  142. package/dist/types/src/components/SpacePluginSettings.d.ts.map +1 -1
  143. package/dist/types/src/components/SpacePresence.d.ts.map +1 -1
  144. package/dist/types/src/components/SpacePresence.stories.d.ts +1412 -4
  145. package/dist/types/src/components/SpacePresence.stories.d.ts.map +1 -1
  146. package/dist/types/src/components/SpaceSettings/SpaceSettingsContainer.d.ts.map +1 -1
  147. package/dist/types/src/components/SpaceSettings/SpaceSettingsContainer.stories.d.ts +1417 -4
  148. package/dist/types/src/components/SpaceSettings/SpaceSettingsContainer.stories.d.ts.map +1 -1
  149. package/dist/types/src/components/SyncStatus/SyncStatus.d.ts.map +1 -1
  150. package/dist/types/src/components/SyncStatus/SyncStatus.stories.d.ts +1418 -5
  151. package/dist/types/src/components/SyncStatus/SyncStatus.stories.d.ts.map +1 -1
  152. package/dist/types/src/components/ViewEditor.d.ts +1 -1
  153. package/dist/types/src/components/ViewEditor.d.ts.map +1 -1
  154. package/dist/types/src/components/index.d.ts +8 -2
  155. package/dist/types/src/components/index.d.ts.map +1 -1
  156. package/dist/types/src/events.d.ts.map +1 -1
  157. package/dist/types/src/hooks/useActiveSpace.d.ts.map +1 -1
  158. package/dist/types/src/hooks/useInputSurfaceLookup.d.ts +1 -1
  159. package/dist/types/src/hooks/useInputSurfaceLookup.d.ts.map +1 -1
  160. package/dist/types/src/hooks/usePath.d.ts +1 -1
  161. package/dist/types/src/hooks/usePath.d.ts.map +1 -1
  162. package/dist/types/src/meta.d.ts +0 -1
  163. package/dist/types/src/meta.d.ts.map +1 -1
  164. package/dist/types/src/translations.d.ts +1216 -26
  165. package/dist/types/src/translations.d.ts.map +1 -1
  166. package/dist/types/src/types/types.d.ts +76 -96
  167. package/dist/types/src/types/types.d.ts.map +1 -1
  168. package/dist/types/src/util.d.ts +10 -7
  169. package/dist/types/src/util.d.ts.map +1 -1
  170. package/dist/types/tsconfig.tsbuildinfo +1 -1
  171. package/package.json +60 -58
  172. package/src/SpacePlugin.ts +204 -219
  173. package/src/capabilities/app-graph-builder.ts +127 -69
  174. package/src/capabilities/app-graph-serializer.ts +7 -7
  175. package/src/capabilities/capabilities.ts +12 -11
  176. package/src/capabilities/identity-created.ts +1 -1
  177. package/src/capabilities/index.ts +0 -1
  178. package/src/capabilities/intent-resolver.ts +37 -25
  179. package/src/capabilities/react-root.tsx +4 -3
  180. package/src/capabilities/react-surface.tsx +52 -38
  181. package/src/capabilities/schema-defs.ts +3 -2
  182. package/src/capabilities/spaces-ready.ts +11 -8
  183. package/src/capabilities/state.ts +5 -4
  184. package/src/components/AwaitingObject.tsx +3 -3
  185. package/src/components/CollectionMain.tsx +2 -2
  186. package/src/components/CollectionSection.tsx +2 -2
  187. package/src/components/CreateDialog/CreateObjectDialog.stories.tsx +11 -10
  188. package/src/components/CreateDialog/CreateObjectDialog.tsx +24 -13
  189. package/src/components/CreateDialog/CreateObjectPanel.tsx +22 -11
  190. package/src/components/CreateDialog/CreateSpaceDialog.tsx +6 -5
  191. package/src/components/JoinDialog.tsx +7 -7
  192. package/src/components/MembersContainer.stories.tsx +36 -10
  193. package/src/components/MembersContainer.tsx +13 -14
  194. package/src/components/MenuFooter.tsx +2 -2
  195. package/src/components/ObjectDetailsPanel.tsx +7 -5
  196. package/src/components/ObjectSettings/AdvancedObjectSettings.tsx +4 -3
  197. package/src/components/ObjectSettings/ForeignKeys.tsx +3 -3
  198. package/src/components/ObjectSettings/ObjectSettingsContainer.tsx +3 -2
  199. package/src/components/PersistenceStatus.tsx +2 -2
  200. package/src/components/PopoverRenameObject.tsx +9 -15
  201. package/src/components/PopoverRenameSpace.tsx +4 -4
  202. package/src/components/RecordMain.tsx +43 -0
  203. package/src/components/SchemaContainer.tsx +5 -5
  204. package/src/components/SpacePluginSettings.tsx +8 -9
  205. package/src/components/SpacePresence.stories.tsx +23 -22
  206. package/src/components/SpacePresence.tsx +10 -10
  207. package/src/components/SpaceSettings/SpaceSettingsContainer.stories.tsx +17 -9
  208. package/src/components/SpaceSettings/SpaceSettingsContainer.tsx +19 -18
  209. package/src/components/SyncStatus/InlineSyncStatus.tsx +3 -3
  210. package/src/components/SyncStatus/SyncStatus.stories.tsx +6 -7
  211. package/src/components/SyncStatus/SyncStatus.tsx +4 -3
  212. package/src/components/ViewEditor.tsx +13 -18
  213. package/src/components/index.ts +1 -0
  214. package/src/events.ts +7 -7
  215. package/src/hooks/useActiveSpace.ts +2 -2
  216. package/src/hooks/useInputSurfaceLookup.tsx +2 -2
  217. package/src/hooks/usePath.ts +1 -1
  218. package/src/meta.ts +1 -3
  219. package/src/translations.ts +9 -8
  220. package/src/types/types.ts +17 -13
  221. package/src/util.tsx +97 -40
  222. package/dist/lib/browser/CollectionMain-D2B75XBS.mjs.map +0 -7
  223. package/dist/lib/browser/ObjectDetailsPanel-YPTDQKMG.mjs.map +0 -7
  224. package/dist/lib/browser/app-graph-builder-7CZZJS3S.mjs.map +0 -7
  225. package/dist/lib/browser/app-graph-serializer-H6AW7KGS.mjs.map +0 -7
  226. package/dist/lib/browser/chunk-CEFHNVU7.mjs +0 -20
  227. package/dist/lib/browser/chunk-CEFHNVU7.mjs.map +0 -7
  228. package/dist/lib/browser/chunk-FBCGT5YY.mjs +0 -13
  229. package/dist/lib/browser/chunk-FBCGT5YY.mjs.map +0 -7
  230. package/dist/lib/browser/chunk-JS3MMC42.mjs +0 -19
  231. package/dist/lib/browser/chunk-JS3MMC42.mjs.map +0 -7
  232. package/dist/lib/browser/chunk-QACNNDOT.mjs.map +0 -7
  233. package/dist/lib/browser/chunk-SGTQ52SU.mjs.map +0 -7
  234. package/dist/lib/browser/chunk-V7MJSSBQ.mjs.map +0 -7
  235. package/dist/lib/browser/chunk-VLBRSGJ2.mjs.map +0 -7
  236. package/dist/lib/browser/chunk-XUYKJUU7.mjs.map +0 -7
  237. package/dist/lib/browser/intent-resolver-TIXVDYN7.mjs.map +0 -7
  238. package/dist/lib/browser/react-root-N2J7TDRX.mjs.map +0 -7
  239. package/dist/lib/browser/react-surface-TPNLWJJH.mjs.map +0 -7
  240. package/dist/lib/browser/schema-defs-Z6FC4AHC.mjs.map +0 -7
  241. package/dist/lib/browser/schema-tools-BNP4JTD7.mjs +0 -124
  242. package/dist/lib/browser/schema-tools-BNP4JTD7.mjs.map +0 -7
  243. package/dist/lib/browser/spaces-ready-TOPG6IV4.mjs.map +0 -7
  244. package/dist/lib/browser/state-QYZAB45H.mjs.map +0 -7
  245. package/dist/lib/node-esm/CollectionMain-ZJIFCWKZ.mjs.map +0 -7
  246. package/dist/lib/node-esm/ObjectDetailsPanel-QKZEDSZK.mjs.map +0 -7
  247. package/dist/lib/node-esm/app-graph-builder-KGIGWC72.mjs.map +0 -7
  248. package/dist/lib/node-esm/app-graph-serializer-2ICUGQQT.mjs.map +0 -7
  249. package/dist/lib/node-esm/chunk-4AOMYKDE.mjs.map +0 -7
  250. package/dist/lib/node-esm/chunk-5HHYE264.mjs +0 -20
  251. package/dist/lib/node-esm/chunk-5HHYE264.mjs.map +0 -7
  252. package/dist/lib/node-esm/chunk-5T3ZH23B.mjs +0 -21
  253. package/dist/lib/node-esm/chunk-5T3ZH23B.mjs.map +0 -7
  254. package/dist/lib/node-esm/chunk-6X5DLJM5.mjs.map +0 -7
  255. package/dist/lib/node-esm/chunk-HWNG4MEU.mjs.map +0 -7
  256. package/dist/lib/node-esm/chunk-JH6F4C3I.mjs.map +0 -7
  257. package/dist/lib/node-esm/chunk-P442DOQ3.mjs.map +0 -7
  258. package/dist/lib/node-esm/chunk-SSLBYZEY.mjs.map +0 -7
  259. package/dist/lib/node-esm/intent-resolver-MHGHRGDT.mjs.map +0 -7
  260. package/dist/lib/node-esm/react-root-KW3TGJGY.mjs.map +0 -7
  261. package/dist/lib/node-esm/react-surface-UUIUUD6P.mjs.map +0 -7
  262. package/dist/lib/node-esm/schema-defs-WHJM7UZE.mjs.map +0 -7
  263. package/dist/lib/node-esm/schema-tools-KWW5PTML.mjs +0 -126
  264. package/dist/lib/node-esm/schema-tools-KWW5PTML.mjs.map +0 -7
  265. package/dist/lib/node-esm/spaces-ready-HIUKNDZK.mjs.map +0 -7
  266. package/dist/lib/node-esm/state-ZVEHQ4BJ.mjs.map +0 -7
  267. package/dist/types/src/capabilities/schema-tool.test.d.ts +0 -2
  268. package/dist/types/src/capabilities/schema-tool.test.d.ts.map +0 -1
  269. package/dist/types/src/capabilities/schema-tools.d.ts +0 -13
  270. package/dist/types/src/capabilities/schema-tools.d.ts.map +0 -1
  271. package/src/capabilities/schema-tool.test.ts +0 -44
  272. package/src/capabilities/schema-tools.ts +0 -125
@@ -3,23 +3,27 @@
3
3
  //
4
4
 
5
5
  import { Rx } from '@effect-rx/rx-react';
6
- import { Array, Option, pipe, Schema } from 'effect';
6
+ import * as Array from 'effect/Array';
7
+ import * as Function from 'effect/Function';
8
+ import * as Option from 'effect/Option';
9
+ import * as Schema from 'effect/Schema';
7
10
 
8
- import { Capabilities, contributes, createIntent, type PluginContext } from '@dxos/app-framework';
9
- import { getSpace, SpaceState, type Space, isSpace, type QueryResult } from '@dxos/client/echo';
11
+ import { Capabilities, type PluginContext, contributes, createIntent } from '@dxos/app-framework';
12
+ import { type QueryResult, type Space, SpaceState, getSpace, isSpace, parseId } from '@dxos/client/echo';
10
13
  import { Filter, Obj, Query, Type } from '@dxos/echo';
11
14
  import { log } from '@dxos/log';
12
15
  import { ClientCapabilities } from '@dxos/plugin-client';
13
- import { PLANK_COMPANION_TYPE, ATTENDABLE_PATH_SEPARATOR } from '@dxos/plugin-deck/types';
14
- import { createExtension, rxFromObservable, ROOT_ID, rxFromSignal } from '@dxos/plugin-graph';
15
- import { DataType } from '@dxos/schema';
16
+ import { ATTENDABLE_PATH_SEPARATOR, PLANK_COMPANION_TYPE } from '@dxos/plugin-deck/types';
17
+ import { ROOT_ID, createExtension, rxFromObservable, rxFromSignal } from '@dxos/plugin-graph';
18
+ import { DataType, getTypenameFromQuery } from '@dxos/schema';
16
19
  import { isNonNullable } from '@dxos/util';
17
20
 
18
- import { SpaceCapabilities } from './capabilities';
19
21
  import { getActiveSpace } from '../hooks';
20
- import { SPACE_PLUGIN } from '../meta';
22
+ import { meta } from '../meta';
21
23
  import { SPACE_TYPE, SpaceAction, type SpaceSettingsProps } from '../types';
22
24
  import {
25
+ SHARED,
26
+ SPACES,
23
27
  constructObjectActions,
24
28
  constructSpaceActions,
25
29
  constructSpaceNode,
@@ -27,10 +31,10 @@ import {
27
31
  createStaticSchemaActions,
28
32
  createStaticSchemaNode,
29
33
  rxFromQuery,
30
- SHARED,
31
- SPACES,
32
34
  } from '../util';
33
35
 
36
+ import { SpaceCapabilities } from './capabilities';
37
+
34
38
  export default (context: PluginContext) => {
35
39
  // TODO(wittjosiah): Make reactive.
36
40
  const resolve = (typename: string) =>
@@ -41,7 +45,7 @@ export default (context: PluginContext) => {
41
45
  type: SPACES,
42
46
  cacheable: ['label', 'role'],
43
47
  properties: {
44
- label: ['spaces label', { ns: SPACE_PLUGIN }],
48
+ label: ['spaces label', { ns: meta.id }],
45
49
  icon: 'ph--planet--regular',
46
50
  testId: 'spacePlugin.spaces',
47
51
  role: 'branch',
@@ -76,11 +80,11 @@ export default (context: PluginContext) => {
76
80
  return contributes(Capabilities.AppGraphBuilder, [
77
81
  // Primary actions.
78
82
  createExtension({
79
- id: `${SPACE_PLUGIN}/primary-actions`,
83
+ id: `${meta.id}/primary-actions`,
80
84
  position: 'hoist',
81
85
  actions: (node) =>
82
86
  Rx.make((get) =>
83
- pipe(
87
+ Function.pipe(
84
88
  get(node),
85
89
  Option.flatMap((node) => (node.id === ROOT_ID ? Option.some(node) : Option.none())),
86
90
  Option.map(() => [
@@ -91,7 +95,7 @@ export default (context: PluginContext) => {
91
95
  await dispatch(createIntent(SpaceAction.OpenCreateSpace));
92
96
  },
93
97
  properties: {
94
- label: ['create space label', { ns: SPACE_PLUGIN }],
98
+ label: ['create space label', { ns: meta.id }],
95
99
  icon: 'ph--plus--regular',
96
100
  testId: 'spacePlugin.createSpace',
97
101
  disposition: 'menu',
@@ -104,7 +108,7 @@ export default (context: PluginContext) => {
104
108
  await dispatch(createIntent(SpaceAction.Join));
105
109
  },
106
110
  properties: {
107
- label: ['join space label', { ns: SPACE_PLUGIN }],
111
+ label: ['join space label', { ns: meta.id }],
108
112
  icon: 'ph--sign-in--regular',
109
113
  testId: 'spacePlugin.joinSpace',
110
114
  disposition: 'menu',
@@ -119,7 +123,7 @@ export default (context: PluginContext) => {
119
123
  await dispatch(createIntent(SpaceAction.OpenMembers, { space }));
120
124
  },
121
125
  properties: {
122
- label: ['share space label', { ns: SPACE_PLUGIN }],
126
+ label: ['share space label', { ns: meta.id }],
123
127
  icon: 'ph--users--regular',
124
128
  testId: 'spacePlugin.shareSpace',
125
129
  keyBinding: {
@@ -137,7 +141,7 @@ export default (context: PluginContext) => {
137
141
  await dispatch(createIntent(SpaceAction.OpenSettings, { space }));
138
142
  },
139
143
  properties: {
140
- label: ['open current space settings label', { ns: SPACE_PLUGIN }],
144
+ label: ['open current space settings label', { ns: meta.id }],
141
145
  icon: 'ph--faders--regular',
142
146
  keyBinding: {
143
147
  macos: 'meta+shift+,',
@@ -153,11 +157,11 @@ export default (context: PluginContext) => {
153
157
 
154
158
  // Create spaces group node.
155
159
  createExtension({
156
- id: `${SPACE_PLUGIN}/root`,
160
+ id: `${meta.id}/root`,
157
161
  position: 'hoist',
158
162
  connector: (node) =>
159
163
  Rx.make((get) =>
160
- pipe(
164
+ Function.pipe(
161
165
  get(node),
162
166
  Option.flatMap((node) => (node.id === ROOT_ID ? Option.some(node) : Option.none())),
163
167
  Option.map(() => [spacesNode]),
@@ -173,7 +177,7 @@ export default (context: PluginContext) => {
173
177
  connector: (node) => {
174
178
  let query: QueryResult<Type.Expando> | undefined;
175
179
  return Rx.make((get) =>
176
- pipe(
180
+ Function.pipe(
177
181
  get(node),
178
182
  Option.flatMap((node) => (node.id === SPACES ? Option.some(node) : Option.none())),
179
183
  Option.map(() => {
@@ -190,7 +194,7 @@ export default (context: PluginContext) => {
190
194
  }
191
195
 
192
196
  const settings = get(context.capabilities(Capabilities.SettingsStore))[0]?.getStore<SpaceSettingsProps>(
193
- SPACE_PLUGIN,
197
+ meta.id,
194
198
  )?.value;
195
199
 
196
200
  // TODO(wittjosiah): During client reset, accessing default space throws.
@@ -275,10 +279,10 @@ export default (context: PluginContext) => {
275
279
 
276
280
  // Create space actions.
277
281
  createExtension({
278
- id: `${SPACE_PLUGIN}/actions`,
282
+ id: `${meta.id}/actions`,
279
283
  actions: (node) =>
280
284
  Rx.make((get) =>
281
- pipe(
285
+ Function.pipe(
282
286
  get(node),
283
287
  Option.flatMap((node) =>
284
288
  node.type === SPACE_TYPE && isSpace(node.data) ? Option.some(node.data) : Option.none(),
@@ -307,10 +311,10 @@ export default (context: PluginContext) => {
307
311
 
308
312
  // Create nodes for objects in the root collection of a space.
309
313
  createExtension({
310
- id: `${SPACE_PLUGIN}/root-collection`,
314
+ id: `${meta.id}/root-collection`,
311
315
  connector: (node) =>
312
316
  Rx.make((get) =>
313
- pipe(
317
+ Function.pipe(
314
318
  get(node),
315
319
  Option.flatMap((node) =>
316
320
  node.type === SPACE_TYPE && isSpace(node.data) ? Option.some(node.data) : Option.none(),
@@ -333,7 +337,7 @@ export default (context: PluginContext) => {
333
337
 
334
338
  return get(
335
339
  rxFromSignal(() =>
336
- pipe(
340
+ Function.pipe(
337
341
  collection.objects,
338
342
  Array.map((object) => object.target),
339
343
  Array.filter(isNonNullable),
@@ -357,10 +361,10 @@ export default (context: PluginContext) => {
357
361
 
358
362
  // Create nodes for objects in a collection or by its fully qualified id.
359
363
  createExtension({
360
- id: `${SPACE_PLUGIN}/objects`,
364
+ id: `${meta.id}/objects`,
361
365
  connector: (node) =>
362
366
  Rx.make((get) =>
363
- pipe(
367
+ Function.pipe(
364
368
  get(node),
365
369
  Option.flatMap((node) =>
366
370
  Obj.instanceOf(DataType.Collection, node.data) ? Option.some(node.data) : Option.none(),
@@ -371,7 +375,7 @@ export default (context: PluginContext) => {
371
375
 
372
376
  return get(
373
377
  rxFromSignal(() =>
374
- pipe(
378
+ Function.pipe(
375
379
  collection.objects,
376
380
  Array.map((object) => object.target),
377
381
  Array.filter(isNonNullable),
@@ -428,20 +432,19 @@ export default (context: PluginContext) => {
428
432
 
429
433
  // Create nodes for objects in a query collection.
430
434
  createExtension({
431
- id: `${SPACE_PLUGIN}/query-collection-objects`,
435
+ id: `${meta.id}/query-collection-objects`,
432
436
  connector: (node) => {
433
437
  let query: QueryResult<Type.Expando> | undefined;
434
438
  return Rx.make((get) =>
435
- pipe(
439
+ Function.pipe(
436
440
  get(node),
437
441
  Option.flatMap((node) =>
438
442
  Obj.instanceOf(DataType.QueryCollection, node.data) ? Option.some(node.data) : Option.none(),
439
443
  ),
440
444
  Option.flatMap((collection) => {
441
445
  const space = getSpace(collection);
442
- return collection.query.typename && space
443
- ? Option.some({ typename: collection.query.typename, space })
444
- : Option.none();
446
+ const typename = getTypenameFromQuery(collection.query);
447
+ return typename && space ? Option.some({ typename, space }) : Option.none();
445
448
  }),
446
449
  Option.map(({ typename, space }) => {
447
450
  const state = context.getCapability(SpaceCapabilities.State);
@@ -458,21 +461,25 @@ export default (context: PluginContext) => {
458
461
  ),
459
462
  );
460
463
  }
461
- return get(rxFromQuery(query))
462
- .map((object) =>
463
- get(
464
- rxFromSignal(() =>
465
- createObjectNode({
466
- object,
467
- space,
468
- resolve,
469
- droppable: false, // Cannot rearrange query collections.
470
- navigable: state.navigableCollections,
471
- }),
464
+ return (
465
+ get(rxFromQuery(query))
466
+ // TODO(wittjosiah): This should be the default sort order.
467
+ .toSorted((a, b) => a.id.localeCompare(b.id))
468
+ .map((object) =>
469
+ get(
470
+ rxFromSignal(() =>
471
+ createObjectNode({
472
+ object,
473
+ space,
474
+ resolve,
475
+ droppable: false, // Cannot rearrange query collections.
476
+ navigable: state.navigableCollections,
477
+ }),
478
+ ),
472
479
  ),
473
- ),
474
- )
475
- .filter(isNonNullable);
480
+ )
481
+ .filter(isNonNullable)
482
+ );
476
483
  }),
477
484
  Option.getOrElse(() => []),
478
485
  ),
@@ -482,15 +489,15 @@ export default (context: PluginContext) => {
482
489
 
483
490
  // Static schema records.
484
491
  createExtension({
485
- id: `${SPACE_PLUGIN}/static-schemas`,
492
+ id: `${meta.id}/static-schemas`,
486
493
  connector: (node) => {
487
494
  const client = context.getCapability(ClientCapabilities.Client);
488
495
  return Rx.make((get) =>
489
- pipe(
496
+ Function.pipe(
490
497
  get(node),
491
498
  Option.flatMap((node) =>
492
499
  Obj.instanceOf(DataType.QueryCollection, node.data) &&
493
- node.data.query.typename === DataType.StoredSchema.typename
500
+ getTypenameFromQuery(node.data.query) === DataType.StoredSchema.typename
494
501
  ? Option.some(node.data)
495
502
  : Option.none(),
496
503
  ),
@@ -514,11 +521,11 @@ export default (context: PluginContext) => {
514
521
 
515
522
  // Create static schema actions.
516
523
  createExtension({
517
- id: `${SPACE_PLUGIN}/static-schema-actions`,
524
+ id: `${meta.id}/static-schema-actions`,
518
525
  actions: (node) => {
519
526
  let query: QueryResult<DataType.View> | undefined;
520
527
  return Rx.make((get) =>
521
- pipe(
528
+ Function.pipe(
522
529
  get(node),
523
530
  Option.flatMap((node) => {
524
531
  const space = isSpace(node.properties.space) ? node.properties.space : undefined;
@@ -534,13 +541,25 @@ export default (context: PluginContext) => {
534
541
  const filteredViews = get(
535
542
  rxFromSignal(() =>
536
543
  // TODO(wittjosiah): Remove cast.
537
- views.filter((view) => view.query.typename === Type.getTypename(schema as Type.Obj.Any)),
544
+ views.filter(
545
+ (view) => getTypenameFromQuery(view.query.ast) === Type.getTypename(schema as Type.Obj.Any),
546
+ ),
538
547
  ),
539
548
  );
540
549
  const deletable = filteredViews.length === 0;
541
550
 
551
+ const [dispatcher] = get(context.capabilities(Capabilities.IntentDispatcher));
552
+ if (!dispatcher) {
553
+ return [];
554
+ }
555
+
542
556
  // TODO(wittjosiah): Remove cast.
543
- return createStaticSchemaActions({ schema: schema as Type.Obj.Any, space, deletable });
557
+ return createStaticSchemaActions({
558
+ schema: schema as Type.Obj.Any,
559
+ space,
560
+ dispatch: dispatcher.dispatchPromise,
561
+ deletable,
562
+ });
544
563
  }),
545
564
  Option.getOrElse(() => []),
546
565
  ),
@@ -550,11 +569,11 @@ export default (context: PluginContext) => {
550
569
 
551
570
  // Create nodes for schema views.
552
571
  createExtension({
553
- id: `${SPACE_PLUGIN}/schema-views`,
572
+ id: `${meta.id}/schema-views`,
554
573
  connector: (node) => {
555
574
  let query: QueryResult<DataType.View> | undefined;
556
575
  return Rx.make((get) =>
557
- pipe(
576
+ Function.pipe(
558
577
  get(node),
559
578
  Option.flatMap((node) => {
560
579
  const space = getSpace(node.data) ?? (isSpace(node.properties.space) ? node.properties.space : undefined);
@@ -571,7 +590,7 @@ export default (context: PluginContext) => {
571
590
  // TODO(wittjosiah): Remove cast.
572
591
  const typename = Schema.isSchema(schema) ? Type.getTypename(schema as Type.Obj.Any) : schema.typename;
573
592
  return get(rxFromQuery(query))
574
- .filter((view) => view.query.typename === typename)
593
+ .filter((view) => getTypenameFromQuery(view.query.ast) === typename)
575
594
  .map((view) =>
576
595
  get(
577
596
  rxFromSignal(() =>
@@ -592,17 +611,50 @@ export default (context: PluginContext) => {
592
611
  },
593
612
  }),
594
613
 
614
+ // Create record nodes.
615
+ createExtension({
616
+ id: `${meta.id}/records`,
617
+ resolver: (id) => {
618
+ let query: QueryResult<Type.Expando> | undefined;
619
+ return Rx.make((get) => {
620
+ const client = context.getCapability(ClientCapabilities.Client);
621
+ const { spaceId, objectId } = parseId(id);
622
+ if (!spaceId || !objectId) {
623
+ return null;
624
+ }
625
+
626
+ const space = client.spaces.get(spaceId);
627
+ if (!space) {
628
+ return null;
629
+ }
630
+
631
+ if (!query) {
632
+ query = space.db.query(Filter.ids(objectId));
633
+ }
634
+
635
+ const object = get(rxFromQuery(query)).at(0);
636
+ if (!object) {
637
+ return null;
638
+ }
639
+
640
+ return createObjectNode({ object, space, resolve, disposition: 'hidden' });
641
+ });
642
+ },
643
+ }),
644
+
595
645
  // Create collection actions and action groups.
596
646
  createExtension({
597
- id: `${SPACE_PLUGIN}/object-actions`,
647
+ id: `${meta.id}/object-actions`,
598
648
  actions: (node) => {
599
649
  let query: QueryResult<DataType.View> | undefined;
600
650
  return Rx.make((get) =>
601
- pipe(
651
+ Function.pipe(
602
652
  get(node),
603
653
  Option.flatMap((node) => {
604
654
  const space = getSpace(node.data);
605
- return space && Obj.isObject(node.data) ? Option.some({ space, object: node.data }) : Option.none();
655
+ return space && Obj.isObject(node.data) && Obj.getTypename(node.data) === node.type
656
+ ? Option.some({ space, object: node.data })
657
+ : Option.none();
606
658
  }),
607
659
  Option.flatMap(({ space, object }) => {
608
660
  const isSchema = Obj.instanceOf(DataType.StoredSchema, object);
@@ -611,11 +663,17 @@ export default (context: PluginContext) => {
611
663
  query = space.db.query(Filter.type(DataType.View));
612
664
  }
613
665
 
614
- let deletable = !isSchema;
666
+ let deletable =
667
+ !isSchema &&
668
+ // Don't allow the Records smart collection to be deleted.
669
+ !(
670
+ Obj.instanceOf(DataType.QueryCollection, object) &&
671
+ getTypenameFromQuery(object.query) === DataType.StoredSchema.typename
672
+ );
615
673
  if (isSchema && query) {
616
674
  const views = get(rxFromQuery(query));
617
675
  const filteredViews = get(
618
- rxFromSignal(() => views.filter((view) => view.query.typename === object.typename)),
676
+ rxFromSignal(() => views.filter((view) => getTypenameFromQuery(view.query.ast) === object.typename)),
619
677
  );
620
678
  deletable = filteredViews.length === 0;
621
679
  }
@@ -647,10 +705,10 @@ export default (context: PluginContext) => {
647
705
 
648
706
  // View selected objects.
649
707
  createExtension({
650
- id: `${SPACE_PLUGIN}/selected-objects`,
708
+ id: `${meta.id}/selected-objects`,
651
709
  connector: (node) =>
652
710
  Rx.make((get) =>
653
- pipe(
711
+ Function.pipe(
654
712
  get(node),
655
713
  Option.flatMap((node) => (Obj.instanceOf(DataType.View, node.data) ? Option.some(node) : Option.none())),
656
714
  Option.map((node) => [
@@ -659,7 +717,7 @@ export default (context: PluginContext) => {
659
717
  type: PLANK_COMPANION_TYPE,
660
718
  data: 'selected-objects',
661
719
  properties: {
662
- label: ['companion selected objects label', { ns: SPACE_PLUGIN }],
720
+ label: ['companion selected objects label', { ns: meta.id }],
663
721
  icon: 'ph--tree-view--regular',
664
722
  disposition: 'hidden',
665
723
  },
@@ -672,10 +730,10 @@ export default (context: PluginContext) => {
672
730
 
673
731
  // Object settings plank companion.
674
732
  createExtension({
675
- id: `${SPACE_PLUGIN}/settings`,
733
+ id: `${meta.id}/settings`,
676
734
  connector: (node) =>
677
735
  Rx.make((get) =>
678
- pipe(
736
+ Function.pipe(
679
737
  get(node),
680
738
  Option.flatMap((node) => (Obj.isObject(node.data) ? Option.some(node) : Option.none())),
681
739
  Option.map((node) => [
@@ -684,7 +742,7 @@ export default (context: PluginContext) => {
684
742
  type: PLANK_COMPANION_TYPE,
685
743
  data: 'settings',
686
744
  properties: {
687
- label: ['object settings label', { ns: SPACE_PLUGIN }],
745
+ label: ['object settings label', { ns: meta.id }],
688
746
  icon: 'ph--sliders--regular',
689
747
  disposition: 'hidden',
690
748
  position: 'fallback',
@@ -7,7 +7,7 @@ import { isSpace } from '@dxos/client/echo';
7
7
  import { Obj, Type } from '@dxos/echo';
8
8
  import { DataType } from '@dxos/schema';
9
9
 
10
- import { SPACE_PLUGIN } from '../meta';
10
+ import { meta } from '../meta';
11
11
  import { translations } from '../translations';
12
12
  import { SPACE_TYPE, SpaceAction } from '../types';
13
13
  import { SPACES } from '../util';
@@ -23,8 +23,8 @@ export default (context: PluginContext) =>
23
23
  inputType: SPACES,
24
24
  outputType: DIRECTORY_TYPE,
25
25
  serialize: (node) => ({
26
- name: translations[0]['en-US'][SPACE_PLUGIN]['spaces label'] ?? 'Spaces',
27
- data: translations[0]['en-US'][SPACE_PLUGIN]['spaces label'] ?? 'Spaces',
26
+ name: translations[0]['en-US'][meta.id]['spaces label'] ?? 'Spaces',
27
+ data: translations[0]['en-US'][meta.id]['spaces label'] ?? 'Spaces',
28
28
  type: DIRECTORY_TYPE,
29
29
  }),
30
30
  deserialize: () => {
@@ -35,8 +35,8 @@ export default (context: PluginContext) =>
35
35
  inputType: SPACE_TYPE,
36
36
  outputType: DIRECTORY_TYPE,
37
37
  serialize: (node) => ({
38
- name: node.data.properties.name ?? translations[0]['en-US'][SPACE_PLUGIN]['unnamed space label'],
39
- data: node.data.properties.name ?? translations[0]['en-US'][SPACE_PLUGIN]['unnamed space label'],
38
+ name: node.data.properties.name ?? translations[0]['en-US'][meta.id]['unnamed space label'],
39
+ data: node.data.properties.name ?? translations[0]['en-US'][meta.id]['unnamed space label'],
40
40
  type: DIRECTORY_TYPE,
41
41
  }),
42
42
  deserialize: async (data) => {
@@ -49,8 +49,8 @@ export default (context: PluginContext) =>
49
49
  inputType: COLLECTION_TYPE,
50
50
  outputType: DIRECTORY_TYPE,
51
51
  serialize: (node) => ({
52
- name: node.data.name ?? translations[0]['en-US'][SPACE_PLUGIN]['object name placeholder'],
53
- data: node.data.name ?? translations[0]['en-US'][SPACE_PLUGIN]['object name placeholder'],
52
+ name: node.data.name ?? translations[0]['en-US'][meta.id]['object name placeholder'],
53
+ data: node.data.name ?? translations[0]['en-US'][meta.id]['object name placeholder'],
54
54
  type: DIRECTORY_TYPE,
55
55
  }),
56
56
  deserialize: async (data, ancestors) => {
@@ -2,28 +2,29 @@
2
2
  // Copyright 2025 DXOS.org
3
3
  //
4
4
 
5
- import { type Schema } from 'effect';
5
+ import type * as Schema from 'effect/Schema';
6
6
 
7
- import { type AnyIntentChain, defineCapability, type Label } from '@dxos/app-framework';
7
+ import { type AnyIntentChain, type Label, defineCapability } from '@dxos/app-framework';
8
8
  import { type Space } from '@dxos/react-client/echo';
9
9
  import { type DataType } from '@dxos/schema';
10
- import { type Position, type DeepReadonly } from '@dxos/util';
10
+ import { type DeepReadonly, type Position } from '@dxos/util';
11
11
 
12
- import { SPACE_PLUGIN } from '../meta';
12
+ import { meta } from '../meta';
13
13
  import { type ObjectForm, type PluginState } from '../types';
14
14
 
15
15
  export namespace SpaceCapabilities {
16
- export const State = defineCapability<DeepReadonly<PluginState>>(`${SPACE_PLUGIN}/capability/state`);
17
- export const MutableState = defineCapability<PluginState>(`${SPACE_PLUGIN}/capability/state`);
16
+ export const State = defineCapability<DeepReadonly<PluginState>>(`${meta.id}/capability/state`);
17
+ export const MutableState = defineCapability<PluginState>(`${meta.id}/capability/state`);
18
18
 
19
19
  export type SettingsSection = { id: string; label: Label; position?: Position };
20
- export const SettingsSection = defineCapability<SettingsSection>(`${SPACE_PLUGIN}/capability/settings-section`);
20
+ export const SettingsSection = defineCapability<SettingsSection>(`${meta.id}/capability/settings-section`);
21
21
 
22
- export type OnSpaceCreated = (params: { space: Space; rootCollection: DataType.Collection }) => AnyIntentChain;
23
- export const OnSpaceCreated = defineCapability<OnSpaceCreated>(`${SPACE_PLUGIN}/capability/on-space-created`);
22
+ export type onCreateSpace = (params: { space: Space; rootCollection: DataType.Collection }) => AnyIntentChain;
23
+ export const onCreateSpace = defineCapability<onCreateSpace>(`${meta.id}/capability/on-space-created`);
24
24
 
25
25
  export type OnSchemaAdded = (params: { space: Space; schema: Schema.Schema.AnyNoContext }) => AnyIntentChain;
26
- export const OnSchemaAdded = defineCapability<OnSchemaAdded>(`${SPACE_PLUGIN}/capability/on-schema-added`);
26
+ export const OnSchemaAdded = defineCapability<OnSchemaAdded>(`${meta.id}/capability/on-schema-added`);
27
27
 
28
- export const ObjectForm = defineCapability<ObjectForm<any>>(`${SPACE_PLUGIN}/capability/object-form`);
28
+ // TODO(burdon): Should this be view? Forms are UI concepts? (associated with a View/schema).
29
+ export const ObjectForm = defineCapability<ObjectForm<any>>(`${meta.id}/capability/object-form`);
29
30
  }
@@ -2,7 +2,7 @@
2
2
  // Copyright 2025 DXOS.org
3
3
  //
4
4
 
5
- import { contributes, type PluginContext, Capabilities } from '@dxos/app-framework';
5
+ import { Capabilities, type PluginContext, contributes } from '@dxos/app-framework';
6
6
  import { Obj, Ref } from '@dxos/echo';
7
7
  import { Migrations } from '@dxos/migrations';
8
8
  import { ClientCapabilities } from '@dxos/plugin-client';
@@ -11,7 +11,6 @@ export const IntentResolver = lazy(() => import('./intent-resolver'));
11
11
  export const ReactRoot = lazy(() => import('./react-root'));
12
12
  export const ReactSurface = lazy(() => import('./react-surface'));
13
13
  export const SchemaDefs = lazy(() => import('./schema-defs'));
14
- export const SchemaTools = lazy(() => import('./schema-tools'));
15
14
  export const SpaceSettings = lazy(() => import('./settings'));
16
15
  export const SpaceState = lazy(() => import('./state'));
17
16
  export const SpacesReady = lazy(() => import('./spaces-ready'));