@dxos/plugin-space 0.8.1-main.ba2dec9 → 0.8.1-staging.31c3ee1

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 (256) hide show
  1. package/dist/lib/browser/{app-graph-builder-MGK5HWPZ.mjs → app-graph-builder-GMFCSOLG.mjs} +33 -6
  2. package/dist/lib/browser/app-graph-builder-GMFCSOLG.mjs.map +7 -0
  3. package/dist/lib/browser/{app-graph-serializer-FOWFLYGU.mjs → app-graph-serializer-DSF2U3A5.mjs} +7 -7
  4. package/dist/lib/browser/{app-graph-serializer-FOWFLYGU.mjs.map → app-graph-serializer-DSF2U3A5.mjs.map} +2 -2
  5. package/dist/lib/browser/{chunk-UDWHTKB5.mjs → chunk-5BDV575R.mjs} +22 -16
  6. package/dist/lib/browser/chunk-5BDV575R.mjs.map +7 -0
  7. package/dist/lib/browser/{chunk-ULA2UQJ4.mjs → chunk-AYW4IDRT.mjs} +15 -65
  8. package/dist/lib/browser/chunk-AYW4IDRT.mjs.map +7 -0
  9. package/dist/lib/browser/{chunk-PCEP3KQY.mjs → chunk-DVZEJGCK.mjs} +854 -587
  10. package/dist/lib/browser/chunk-DVZEJGCK.mjs.map +7 -0
  11. package/dist/lib/browser/{chunk-NU7WDVGN.mjs → chunk-KVRYWFZU.mjs} +3 -3
  12. package/dist/lib/browser/chunk-KVRYWFZU.mjs.map +7 -0
  13. package/dist/lib/browser/{chunk-23RVI5FZ.mjs → chunk-LO5UL6RU.mjs} +49 -16
  14. package/dist/lib/browser/chunk-LO5UL6RU.mjs.map +7 -0
  15. package/dist/lib/browser/{chunk-PQXZCNAU.mjs → chunk-PTKYMZWO.mjs} +1 -1
  16. package/dist/lib/browser/chunk-PTKYMZWO.mjs.map +7 -0
  17. package/dist/lib/browser/{identity-created-FYGS6TBH.mjs → identity-created-JR7BNXFH.mjs} +3 -3
  18. package/dist/lib/browser/index.mjs +40 -45
  19. package/dist/lib/browser/index.mjs.map +3 -3
  20. package/dist/lib/browser/{intent-resolver-GPNAQ2SG.mjs → intent-resolver-OG62I5IL.mjs} +69 -44
  21. package/dist/lib/browser/intent-resolver-OG62I5IL.mjs.map +7 -0
  22. package/dist/lib/browser/meta.json +1 -1
  23. package/dist/lib/browser/{react-root-4CCSD7TZ.mjs → react-root-VPSIJ6EU.mjs} +6 -6
  24. package/dist/lib/browser/{react-surface-FKMRI3WV.mjs → react-surface-KOSYP574.mjs} +39 -38
  25. package/dist/lib/browser/react-surface-KOSYP574.mjs.map +7 -0
  26. package/dist/lib/browser/{schema-5W3DSY2E.mjs → schema-FHTA26SW.mjs} +3 -3
  27. package/dist/lib/browser/schema-tools-YAXPRIXP.mjs +123 -0
  28. package/dist/lib/browser/schema-tools-YAXPRIXP.mjs.map +7 -0
  29. package/dist/lib/browser/{settings-PHPCXX33.mjs → settings-PJPTJUPE.mjs} +3 -3
  30. package/dist/lib/browser/{spaces-ready-K47RR7N2.mjs → spaces-ready-BSSP7HHG.mjs} +8 -8
  31. package/dist/lib/browser/spaces-ready-BSSP7HHG.mjs.map +7 -0
  32. package/dist/lib/browser/{state-INJ63O57.mjs → state-X7VLCC6E.mjs} +5 -3
  33. package/dist/lib/browser/state-X7VLCC6E.mjs.map +7 -0
  34. package/dist/lib/browser/types/index.mjs +2 -10
  35. package/dist/lib/node/{app-graph-builder-ZIUBXRPA.cjs → app-graph-builder-DPY7AUZE.cjs} +73 -46
  36. package/dist/lib/node/app-graph-builder-DPY7AUZE.cjs.map +7 -0
  37. package/dist/lib/node/{app-graph-serializer-VQOGHKXL.cjs → app-graph-serializer-JELGJUAY.cjs} +21 -21
  38. package/dist/lib/node/{app-graph-serializer-VQOGHKXL.cjs.map → app-graph-serializer-JELGJUAY.cjs.map} +2 -2
  39. package/dist/lib/node/{chunk-WZR6OAN3.cjs → chunk-6P2DB4QQ.cjs} +4 -4
  40. package/dist/lib/node/{chunk-WZR6OAN3.cjs.map → chunk-6P2DB4QQ.cjs.map} +2 -2
  41. package/dist/lib/node/{chunk-QE4GVR6C.cjs → chunk-APYLLIMY.cjs} +919 -657
  42. package/dist/lib/node/chunk-APYLLIMY.cjs.map +7 -0
  43. package/dist/lib/node/{chunk-YZKNRFHU.cjs → chunk-IKIDS6XF.cjs} +10 -10
  44. package/dist/lib/node/chunk-IKIDS6XF.cjs.map +7 -0
  45. package/dist/lib/node/{chunk-U6DYXAR3.cjs → chunk-PU2EYH4E.cjs} +27 -21
  46. package/dist/lib/node/chunk-PU2EYH4E.cjs.map +7 -0
  47. package/dist/lib/node/{chunk-OVGKWJOC.cjs → chunk-TUZWEPGX.cjs} +99 -66
  48. package/dist/lib/node/chunk-TUZWEPGX.cjs.map +7 -0
  49. package/dist/lib/node/{chunk-WAJKBO3J.cjs → chunk-WDEIFDTX.cjs} +19 -73
  50. package/dist/lib/node/chunk-WDEIFDTX.cjs.map +7 -0
  51. package/dist/lib/node/{identity-created-AXI64BLE.cjs → identity-created-XU4HFV2T.cjs} +7 -7
  52. package/dist/lib/node/index.cjs +105 -111
  53. package/dist/lib/node/index.cjs.map +3 -3
  54. package/dist/lib/node/{intent-resolver-ICHHI6I6.cjs → intent-resolver-UMF6MLOH.cjs} +133 -107
  55. package/dist/lib/node/intent-resolver-UMF6MLOH.cjs.map +7 -0
  56. package/dist/lib/node/meta.json +1 -1
  57. package/dist/lib/node/{react-root-TCBTUOOJ.cjs → react-root-ZRFHMM7R.cjs} +12 -12
  58. package/dist/lib/node/{react-surface-JSCCIZS5.cjs → react-surface-72U57CIU.cjs} +78 -76
  59. package/dist/lib/node/react-surface-72U57CIU.cjs.map +7 -0
  60. package/dist/lib/node/{schema-YN7WVFRX.cjs → schema-PPJ5BZ3A.cjs} +7 -7
  61. package/dist/lib/node/schema-tools-BLIMOZYY.cjs +146 -0
  62. package/dist/lib/node/schema-tools-BLIMOZYY.cjs.map +7 -0
  63. package/dist/lib/node/{settings-5QYFWNH7.cjs → settings-WVFP2UEP.cjs} +8 -8
  64. package/dist/lib/node/{spaces-ready-FQNAKR7G.cjs → spaces-ready-7DNZSUOG.cjs} +16 -16
  65. package/dist/lib/node/spaces-ready-7DNZSUOG.cjs.map +7 -0
  66. package/dist/lib/node/{state-57UE3DYE.cjs → state-5KX6WBJH.cjs} +10 -8
  67. package/dist/lib/node/state-5KX6WBJH.cjs.map +7 -0
  68. package/dist/lib/node/types/index.cjs +13 -21
  69. package/dist/lib/node/types/index.cjs.map +2 -2
  70. package/dist/lib/node-esm/{app-graph-builder-TERVM2SL.mjs → app-graph-builder-42IGWRPL.mjs} +33 -6
  71. package/dist/lib/node-esm/app-graph-builder-42IGWRPL.mjs.map +7 -0
  72. package/dist/lib/node-esm/{app-graph-serializer-GZRSWHEN.mjs → app-graph-serializer-FXONFKOE.mjs} +7 -7
  73. package/dist/lib/node-esm/{app-graph-serializer-GZRSWHEN.mjs.map → app-graph-serializer-FXONFKOE.mjs.map} +2 -2
  74. package/dist/lib/node-esm/{chunk-2TQ2AJEZ.mjs → chunk-3ZOUV4DF.mjs} +22 -16
  75. package/dist/lib/node-esm/chunk-3ZOUV4DF.mjs.map +7 -0
  76. package/dist/lib/node-esm/{chunk-TRNZQEEN.mjs → chunk-FC4UHDPL.mjs} +15 -65
  77. package/dist/lib/node-esm/chunk-FC4UHDPL.mjs.map +7 -0
  78. package/dist/lib/node-esm/{chunk-HJCEJNW3.mjs → chunk-HMCIZ7G7.mjs} +854 -587
  79. package/dist/lib/node-esm/chunk-HMCIZ7G7.mjs.map +7 -0
  80. package/dist/lib/node-esm/{chunk-ICCM4YRJ.mjs → chunk-MSWEFAPD.mjs} +1 -1
  81. package/dist/lib/node-esm/chunk-MSWEFAPD.mjs.map +7 -0
  82. package/dist/lib/node-esm/{chunk-6RSVVEPS.mjs → chunk-PIYAWT5N.mjs} +3 -3
  83. package/dist/lib/node-esm/chunk-PIYAWT5N.mjs.map +7 -0
  84. package/dist/lib/node-esm/{chunk-PGH5L7MV.mjs → chunk-ZGLK25WQ.mjs} +49 -16
  85. package/dist/lib/node-esm/chunk-ZGLK25WQ.mjs.map +7 -0
  86. package/dist/lib/node-esm/{identity-created-3CGEXNPO.mjs → identity-created-WJKAS2PV.mjs} +3 -3
  87. package/dist/lib/node-esm/index.mjs +40 -45
  88. package/dist/lib/node-esm/index.mjs.map +3 -3
  89. package/dist/lib/node-esm/{intent-resolver-VR42K5GE.mjs → intent-resolver-67C5MOIE.mjs} +69 -44
  90. package/dist/lib/node-esm/intent-resolver-67C5MOIE.mjs.map +7 -0
  91. package/dist/lib/node-esm/meta.json +1 -1
  92. package/dist/lib/node-esm/{react-root-THJBSTQS.mjs → react-root-XPRWMZGT.mjs} +6 -6
  93. package/dist/lib/node-esm/{react-surface-Z3BBQ5HX.mjs → react-surface-MUE6M34Y.mjs} +39 -38
  94. package/dist/lib/node-esm/react-surface-MUE6M34Y.mjs.map +7 -0
  95. package/dist/lib/node-esm/{schema-LOR2EVGY.mjs → schema-OUZKVYM5.mjs} +3 -3
  96. package/dist/lib/node-esm/schema-tools-IU7EX5A5.mjs +125 -0
  97. package/dist/lib/node-esm/schema-tools-IU7EX5A5.mjs.map +7 -0
  98. package/dist/lib/node-esm/{settings-H6MXTEQM.mjs → settings-FJZPC2TV.mjs} +3 -3
  99. package/dist/lib/node-esm/{spaces-ready-HKAQG5SA.mjs → spaces-ready-7X5PGB2V.mjs} +8 -8
  100. package/dist/lib/node-esm/spaces-ready-7X5PGB2V.mjs.map +7 -0
  101. package/dist/lib/node-esm/{state-VYA6OFHD.mjs → state-Z6E2YTNC.mjs} +5 -3
  102. package/dist/lib/node-esm/state-Z6E2YTNC.mjs.map +7 -0
  103. package/dist/lib/node-esm/types/index.mjs +2 -10
  104. package/dist/types/src/SpacePlugin.d.ts.map +1 -1
  105. package/dist/types/src/capabilities/app-graph-builder.d.ts.map +1 -1
  106. package/dist/types/src/capabilities/capabilities.d.ts +4 -3
  107. package/dist/types/src/capabilities/capabilities.d.ts.map +1 -1
  108. package/dist/types/src/capabilities/index.d.ts +1 -1
  109. package/dist/types/src/capabilities/index.d.ts.map +1 -1
  110. package/dist/types/src/capabilities/intent-resolver.d.ts +1 -2
  111. package/dist/types/src/capabilities/intent-resolver.d.ts.map +1 -1
  112. package/dist/types/src/capabilities/react-surface.d.ts.map +1 -1
  113. package/dist/types/src/capabilities/schema-tool.test.d.ts +2 -0
  114. package/dist/types/src/capabilities/schema-tool.test.d.ts.map +1 -0
  115. package/dist/types/src/capabilities/schema-tools.d.ts +13 -0
  116. package/dist/types/src/capabilities/schema-tools.d.ts.map +1 -0
  117. package/dist/types/src/capabilities/state.d.ts.map +1 -1
  118. package/dist/types/src/components/CreateDialog/CreateObjectDialog.d.ts.map +1 -1
  119. package/dist/types/src/components/JoinDialog.d.ts.map +1 -1
  120. package/dist/types/src/components/MembersContainer.d.ts +7 -0
  121. package/dist/types/src/components/MembersContainer.d.ts.map +1 -0
  122. package/dist/types/src/components/MembersContainer.stories.d.ts +8 -0
  123. package/dist/types/src/components/MembersContainer.stories.d.ts.map +1 -0
  124. package/dist/types/src/components/ObjectSettingsContainer/AdvancedObjectSettings.d.ts.map +1 -0
  125. package/dist/types/src/components/ObjectSettingsContainer/BaseObjectSettings.d.ts +8 -0
  126. package/dist/types/src/components/ObjectSettingsContainer/BaseObjectSettings.d.ts.map +1 -0
  127. package/dist/types/src/components/ObjectSettingsContainer/ForeignKeys.d.ts.map +1 -0
  128. package/dist/types/src/components/ObjectSettingsContainer/ObjectSettingsContainer.d.ts +8 -0
  129. package/dist/types/src/components/ObjectSettingsContainer/ObjectSettingsContainer.d.ts.map +1 -0
  130. package/dist/types/src/components/ObjectSettingsContainer/index.d.ts +2 -0
  131. package/dist/types/src/components/ObjectSettingsContainer/index.d.ts.map +1 -0
  132. package/dist/types/src/components/SpacePresence.d.ts.map +1 -1
  133. package/dist/types/src/components/SpaceSettings/SpacePropertiesForm.d.ts +7 -0
  134. package/dist/types/src/components/SpaceSettings/SpacePropertiesForm.d.ts.map +1 -0
  135. package/dist/types/src/components/SpaceSettings/SpacePropertiesForm.stories.d.ts +7 -0
  136. package/dist/types/src/components/SpaceSettings/SpacePropertiesForm.stories.d.ts.map +1 -0
  137. package/dist/types/src/components/SpaceSettings/SpaceSettingsContainer.d.ts +9 -0
  138. package/dist/types/src/components/SpaceSettings/SpaceSettingsContainer.d.ts.map +1 -0
  139. package/dist/types/src/components/SpaceSettings/index.d.ts +2 -2
  140. package/dist/types/src/components/SpaceSettings/index.d.ts.map +1 -1
  141. package/dist/types/src/components/index.d.ts +2 -2
  142. package/dist/types/src/components/index.d.ts.map +1 -1
  143. package/dist/types/src/events.d.ts +1 -1
  144. package/dist/types/src/events.d.ts.map +1 -1
  145. package/dist/types/src/meta.d.ts +2 -5
  146. package/dist/types/src/meta.d.ts.map +1 -1
  147. package/dist/types/src/translations.d.ts +53 -36
  148. package/dist/types/src/translations.d.ts.map +1 -1
  149. package/dist/types/src/types/thread.d.ts +92 -197
  150. package/dist/types/src/types/thread.d.ts.map +1 -1
  151. package/dist/types/src/types/types.d.ts +10 -0
  152. package/dist/types/src/types/types.d.ts.map +1 -1
  153. package/dist/types/src/util.d.ts +12 -0
  154. package/dist/types/src/util.d.ts.map +1 -1
  155. package/package.json +44 -39
  156. package/src/SpacePlugin.tsx +12 -11
  157. package/src/capabilities/app-graph-builder.ts +20 -0
  158. package/src/capabilities/app-graph-serializer.ts +2 -2
  159. package/src/capabilities/capabilities.ts +3 -3
  160. package/src/capabilities/index.ts +1 -0
  161. package/src/capabilities/intent-resolver.ts +66 -38
  162. package/src/capabilities/react-surface.tsx +30 -28
  163. package/src/capabilities/schema-tool.test.ts +45 -0
  164. package/src/capabilities/schema-tools.ts +124 -0
  165. package/src/capabilities/spaces-ready.ts +3 -3
  166. package/src/capabilities/state.ts +2 -0
  167. package/src/components/CreateDialog/CreateObjectDialog.tsx +3 -6
  168. package/src/components/CreateDialog/CreateObjectPanel.tsx +6 -6
  169. package/src/components/JoinDialog.tsx +43 -27
  170. package/src/components/MembersContainer.stories.tsx +34 -0
  171. package/src/components/MembersContainer.tsx +255 -0
  172. package/src/components/{AdvancedObjectSettings → ObjectSettingsContainer}/AdvancedObjectSettings.tsx +2 -2
  173. package/src/components/ObjectSettingsContainer/BaseObjectSettings.tsx +47 -0
  174. package/src/components/ObjectSettingsContainer/ObjectSettingsContainer.tsx +36 -0
  175. package/src/components/ObjectSettingsContainer/index.ts +5 -0
  176. package/src/components/PopoverRenameObject.tsx +1 -1
  177. package/src/components/SpacePresence.tsx +25 -23
  178. package/src/components/SpaceSettings/{SpaceSettingsPanel.stories.tsx → SpacePropertiesForm.stories.tsx} +6 -6
  179. package/src/components/SpaceSettings/SpacePropertiesForm.tsx +136 -0
  180. package/src/components/SpaceSettings/SpaceSettingsContainer.tsx +63 -0
  181. package/src/components/SpaceSettings/index.ts +2 -2
  182. package/src/components/SyncStatus/SyncStatus.tsx +1 -1
  183. package/src/components/SyncStatus/save-tracker.ts +5 -5
  184. package/src/components/index.ts +2 -2
  185. package/src/events.ts +2 -2
  186. package/src/meta.ts +2 -2
  187. package/src/translations.ts +21 -12
  188. package/src/types/thread.ts +2 -56
  189. package/src/types/types.ts +15 -6
  190. package/src/util.tsx +30 -9
  191. package/dist/lib/browser/app-graph-builder-MGK5HWPZ.mjs.map +0 -7
  192. package/dist/lib/browser/chunk-23RVI5FZ.mjs.map +0 -7
  193. package/dist/lib/browser/chunk-NU7WDVGN.mjs.map +0 -7
  194. package/dist/lib/browser/chunk-PCEP3KQY.mjs.map +0 -7
  195. package/dist/lib/browser/chunk-PQXZCNAU.mjs.map +0 -7
  196. package/dist/lib/browser/chunk-UDWHTKB5.mjs.map +0 -7
  197. package/dist/lib/browser/chunk-ULA2UQJ4.mjs.map +0 -7
  198. package/dist/lib/browser/intent-resolver-GPNAQ2SG.mjs.map +0 -7
  199. package/dist/lib/browser/react-surface-FKMRI3WV.mjs.map +0 -7
  200. package/dist/lib/browser/spaces-ready-K47RR7N2.mjs.map +0 -7
  201. package/dist/lib/browser/state-INJ63O57.mjs.map +0 -7
  202. package/dist/lib/node/app-graph-builder-ZIUBXRPA.cjs.map +0 -7
  203. package/dist/lib/node/chunk-OVGKWJOC.cjs.map +0 -7
  204. package/dist/lib/node/chunk-QE4GVR6C.cjs.map +0 -7
  205. package/dist/lib/node/chunk-U6DYXAR3.cjs.map +0 -7
  206. package/dist/lib/node/chunk-WAJKBO3J.cjs.map +0 -7
  207. package/dist/lib/node/chunk-YZKNRFHU.cjs.map +0 -7
  208. package/dist/lib/node/intent-resolver-ICHHI6I6.cjs.map +0 -7
  209. package/dist/lib/node/react-surface-JSCCIZS5.cjs.map +0 -7
  210. package/dist/lib/node/spaces-ready-FQNAKR7G.cjs.map +0 -7
  211. package/dist/lib/node/state-57UE3DYE.cjs.map +0 -7
  212. package/dist/lib/node-esm/app-graph-builder-TERVM2SL.mjs.map +0 -7
  213. package/dist/lib/node-esm/chunk-2TQ2AJEZ.mjs.map +0 -7
  214. package/dist/lib/node-esm/chunk-6RSVVEPS.mjs.map +0 -7
  215. package/dist/lib/node-esm/chunk-HJCEJNW3.mjs.map +0 -7
  216. package/dist/lib/node-esm/chunk-ICCM4YRJ.mjs.map +0 -7
  217. package/dist/lib/node-esm/chunk-PGH5L7MV.mjs.map +0 -7
  218. package/dist/lib/node-esm/chunk-TRNZQEEN.mjs.map +0 -7
  219. package/dist/lib/node-esm/intent-resolver-VR42K5GE.mjs.map +0 -7
  220. package/dist/lib/node-esm/react-surface-Z3BBQ5HX.mjs.map +0 -7
  221. package/dist/lib/node-esm/spaces-ready-HKAQG5SA.mjs.map +0 -7
  222. package/dist/lib/node-esm/state-VYA6OFHD.mjs.map +0 -7
  223. package/dist/types/src/components/AdvancedObjectSettings/AdvancedObjectSettings.d.ts.map +0 -1
  224. package/dist/types/src/components/AdvancedObjectSettings/ForeignKeys.d.ts.map +0 -1
  225. package/dist/types/src/components/AdvancedObjectSettings/index.d.ts +0 -2
  226. package/dist/types/src/components/AdvancedObjectSettings/index.d.ts.map +0 -1
  227. package/dist/types/src/components/BaseObjectSettings.d.ts +0 -7
  228. package/dist/types/src/components/BaseObjectSettings.d.ts.map +0 -1
  229. package/dist/types/src/components/SpaceSettings/SpaceSettingsDialog.d.ts +0 -11
  230. package/dist/types/src/components/SpaceSettings/SpaceSettingsDialog.d.ts.map +0 -1
  231. package/dist/types/src/components/SpaceSettings/SpaceSettingsDialog.stories.d.ts +0 -7
  232. package/dist/types/src/components/SpaceSettings/SpaceSettingsDialog.stories.d.ts.map +0 -1
  233. package/dist/types/src/components/SpaceSettings/SpaceSettingsPanel.d.ts +0 -7
  234. package/dist/types/src/components/SpaceSettings/SpaceSettingsPanel.d.ts.map +0 -1
  235. package/dist/types/src/components/SpaceSettings/SpaceSettingsPanel.stories.d.ts +0 -7
  236. package/dist/types/src/components/SpaceSettings/SpaceSettingsPanel.stories.d.ts.map +0 -1
  237. package/src/components/AdvancedObjectSettings/index.ts +0 -5
  238. package/src/components/BaseObjectSettings.tsx +0 -40
  239. package/src/components/SpaceSettings/SpaceSettingsDialog.stories.tsx +0 -43
  240. package/src/components/SpaceSettings/SpaceSettingsDialog.tsx +0 -120
  241. package/src/components/SpaceSettings/SpaceSettingsPanel.tsx +0 -83
  242. /package/dist/lib/browser/{identity-created-FYGS6TBH.mjs.map → identity-created-JR7BNXFH.mjs.map} +0 -0
  243. /package/dist/lib/browser/{react-root-4CCSD7TZ.mjs.map → react-root-VPSIJ6EU.mjs.map} +0 -0
  244. /package/dist/lib/browser/{schema-5W3DSY2E.mjs.map → schema-FHTA26SW.mjs.map} +0 -0
  245. /package/dist/lib/browser/{settings-PHPCXX33.mjs.map → settings-PJPTJUPE.mjs.map} +0 -0
  246. /package/dist/lib/node/{identity-created-AXI64BLE.cjs.map → identity-created-XU4HFV2T.cjs.map} +0 -0
  247. /package/dist/lib/node/{react-root-TCBTUOOJ.cjs.map → react-root-ZRFHMM7R.cjs.map} +0 -0
  248. /package/dist/lib/node/{schema-YN7WVFRX.cjs.map → schema-PPJ5BZ3A.cjs.map} +0 -0
  249. /package/dist/lib/node/{settings-5QYFWNH7.cjs.map → settings-WVFP2UEP.cjs.map} +0 -0
  250. /package/dist/lib/node-esm/{identity-created-3CGEXNPO.mjs.map → identity-created-WJKAS2PV.mjs.map} +0 -0
  251. /package/dist/lib/node-esm/{react-root-THJBSTQS.mjs.map → react-root-XPRWMZGT.mjs.map} +0 -0
  252. /package/dist/lib/node-esm/{schema-LOR2EVGY.mjs.map → schema-OUZKVYM5.mjs.map} +0 -0
  253. /package/dist/lib/node-esm/{settings-H6MXTEQM.mjs.map → settings-FJZPC2TV.mjs.map} +0 -0
  254. /package/dist/types/src/components/{AdvancedObjectSettings → ObjectSettingsContainer}/AdvancedObjectSettings.d.ts +0 -0
  255. /package/dist/types/src/components/{AdvancedObjectSettings → ObjectSettingsContainer}/ForeignKeys.d.ts +0 -0
  256. /package/src/components/{AdvancedObjectSettings → ObjectSettingsContainer}/ForeignKeys.tsx +0 -0
@@ -1,6 +1,4 @@
1
1
  import {
2
- AdvancedObjectSettings,
3
- BaseObjectSettings,
4
2
  CREATE_OBJECT_DIALOG,
5
3
  CREATE_SPACE_DIALOG,
6
4
  CollectionMain,
@@ -10,35 +8,37 @@ import {
10
8
  InlineSyncStatus,
11
9
  JOIN_DIALOG,
12
10
  JoinDialog,
11
+ MembersContainer,
13
12
  MenuFooter,
13
+ ObjectSettingsContainer,
14
14
  POPOVER_ADD_SPACE,
15
15
  POPOVER_RENAME_OBJECT,
16
16
  POPOVER_RENAME_SPACE,
17
17
  PopoverAddSpace,
18
18
  PopoverRenameObject,
19
19
  PopoverRenameSpace,
20
- SPACE_SETTINGS_DIALOG,
21
20
  SmallPresenceLive,
22
21
  SpacePluginSettings,
23
22
  SpacePresence,
24
- SpaceSettingsDialog,
25
- SpaceSettingsPanel,
23
+ SpacePropertiesForm,
24
+ SpaceSettingsContainer,
26
25
  SyncStatus
27
- } from "./chunk-PCEP3KQY.mjs";
26
+ } from "./chunk-DVZEJGCK.mjs";
28
27
  import {
29
28
  SpaceCapabilities
30
- } from "./chunk-NU7WDVGN.mjs";
31
- import "./chunk-23RVI5FZ.mjs";
29
+ } from "./chunk-KVRYWFZU.mjs";
30
+ import "./chunk-LO5UL6RU.mjs";
32
31
  import {
33
32
  CollectionType
34
- } from "./chunk-ULA2UQJ4.mjs";
33
+ } from "./chunk-AYW4IDRT.mjs";
35
34
  import {
36
35
  SPACE_PLUGIN
37
- } from "./chunk-PQXZCNAU.mjs";
36
+ } from "./chunk-PTKYMZWO.mjs";
38
37
 
39
38
  // packages/plugins/plugin-space/src/capabilities/react-surface.tsx
40
39
  import React from "react";
41
40
  import { Capabilities, contributes, createSurface, Surface, useCapability } from "@dxos/app-framework";
41
+ import { isInstanceOf } from "@dxos/echo-schema";
42
42
  import { SettingsStore } from "@dxos/local-storage";
43
43
  import { getSpace, isEchoObject, isReactiveObject, isSpace, SpaceState } from "@dxos/react-client/echo";
44
44
  var react_surface_default = ({ createInvitationUrl }) => contributes(Capabilities.ReactSurface, [
@@ -62,45 +62,45 @@ var react_surface_default = ({ createInvitationUrl }) => contributes(Capabilitie
62
62
  id: `${SPACE_PLUGIN}/collection-fallback`,
63
63
  role: "article",
64
64
  position: "fallback",
65
- filter: (data) => data.subject instanceof CollectionType,
65
+ filter: (data) => isInstanceOf(CollectionType, data.subject),
66
66
  component: ({ data }) => /* @__PURE__ */ React.createElement(CollectionMain, {
67
67
  collection: data.subject
68
68
  })
69
69
  }),
70
70
  createSurface({
71
- id: `${SPACE_PLUGIN}/settings-panel`,
72
- // TODO(burdon): Add role name syntax to minimal plugin docs.
73
- role: "complementary--settings",
74
- filter: (data) => isSpace(data.subject),
75
- component: ({ data }) => /* @__PURE__ */ React.createElement(SpaceSettingsPanel, {
76
- space: data.subject
71
+ id: `${SPACE_PLUGIN}/members`,
72
+ role: "article",
73
+ position: "hoist",
74
+ filter: (data) => isSpace(data.subject) && data.variant === "members",
75
+ component: ({ data }) => /* @__PURE__ */ React.createElement(MembersContainer, {
76
+ space: data.subject,
77
+ createInvitationUrl
77
78
  })
78
79
  }),
79
80
  createSurface({
80
- id: `${SPACE_PLUGIN}/object-settings-base-panel`,
81
- role: "complementary--settings",
81
+ id: `${SPACE_PLUGIN}/settings`,
82
+ role: "article",
82
83
  position: "hoist",
83
- filter: (data) => isEchoObject(data.subject),
84
- component: ({ data }) => /* @__PURE__ */ React.createElement(BaseObjectSettings, {
85
- object: data.subject
84
+ filter: (data) => isSpace(data.subject) && data.variant === "settings",
85
+ component: ({ data }) => /* @__PURE__ */ React.createElement(SpaceSettingsContainer, {
86
+ space: data.subject
86
87
  })
87
88
  }),
88
89
  createSurface({
89
- id: `${SPACE_PLUGIN}/object-settings-advanced-panel`,
90
- role: "complementary--settings",
91
- position: "fallback",
92
- filter: (data) => isEchoObject(data.subject),
93
- component: ({ data }) => /* @__PURE__ */ React.createElement(AdvancedObjectSettings, {
94
- object: data.subject
90
+ id: `${SPACE_PLUGIN}/companion/object-settings`,
91
+ role: "article",
92
+ filter: (data) => isEchoObject(data.companionTo) && data.subject === "settings",
93
+ component: ({ data, role }) => /* @__PURE__ */ React.createElement(ObjectSettingsContainer, {
94
+ object: data.companionTo,
95
+ role
95
96
  })
96
97
  }),
97
98
  createSurface({
98
- id: SPACE_SETTINGS_DIALOG,
99
- role: "dialog",
100
- filter: (data) => data.component === SPACE_SETTINGS_DIALOG,
101
- component: ({ data }) => /* @__PURE__ */ React.createElement(SpaceSettingsDialog, {
102
- ...data.props,
103
- createInvitationUrl
99
+ id: `${SPACE_PLUGIN}/space-settings--properties`,
100
+ role: "space-settings--properties",
101
+ filter: (data) => isSpace(data.subject),
102
+ component: ({ data }) => /* @__PURE__ */ React.createElement(SpacePropertiesForm, {
103
+ space: data.subject
104
104
  })
105
105
  }),
106
106
  createSurface({
@@ -156,8 +156,8 @@ var react_surface_default = ({ createInvitationUrl }) => contributes(Capabilitie
156
156
  });
157
157
  }
158
158
  }),
159
+ // TODO(wittjosiah): Attention glyph for non-echo items should be handled elsewhere.
159
160
  createSurface({
160
- // TODO(wittjosiah): Attention glyph for non-echo items should be handled elsewhere.
161
161
  id: `${SPACE_PLUGIN}/navtree-presence-fallback`,
162
162
  role: "navtree-item-end",
163
163
  position: "fallback",
@@ -167,6 +167,7 @@ var react_surface_default = ({ createInvitationUrl }) => contributes(Capabilitie
167
167
  open: data.open
168
168
  })
169
169
  }),
170
+ // TODO(wittjosiah): Broken?
170
171
  createSurface({
171
172
  id: `${SPACE_PLUGIN}/navtree-sync-status`,
172
173
  role: "navtree-item-end",
@@ -192,13 +193,13 @@ var react_surface_default = ({ createInvitationUrl }) => contributes(Capabilitie
192
193
  createSurface({
193
194
  id: `${SPACE_PLUGIN}/collection-section`,
194
195
  role: "section",
195
- filter: (data) => data.subject instanceof CollectionType,
196
+ filter: (data) => isInstanceOf(CollectionType, data.subject),
196
197
  component: ({ data }) => /* @__PURE__ */ React.createElement(CollectionSection, {
197
198
  collection: data.subject
198
199
  })
199
200
  }),
200
201
  createSurface({
201
- id: `${SPACE_PLUGIN}/settings`,
202
+ id: `${SPACE_PLUGIN}/plugin-settings`,
202
203
  role: "article",
203
204
  filter: (data) => data.subject instanceof SettingsStore && data.subject.prefix === SPACE_PLUGIN,
204
205
  component: ({ data: { subject } }) => /* @__PURE__ */ React.createElement(SpacePluginSettings, {
@@ -222,4 +223,4 @@ var react_surface_default = ({ createInvitationUrl }) => contributes(Capabilitie
222
223
  export {
223
224
  react_surface_default as default
224
225
  };
225
- //# sourceMappingURL=react-surface-FKMRI3WV.mjs.map
226
+ //# sourceMappingURL=react-surface-KOSYP574.mjs.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../src/capabilities/react-surface.tsx"],
4
+ "sourcesContent": ["//\n// Copyright 2025 DXOS.org\n//\n\nimport React from 'react';\n\nimport { Capabilities, contributes, createSurface, Surface, useCapability } from '@dxos/app-framework';\nimport { isInstanceOf } from '@dxos/echo-schema';\nimport { SettingsStore } from '@dxos/local-storage';\nimport {\n getSpace,\n isEchoObject,\n isReactiveObject,\n isSpace,\n SpaceState,\n type ReactiveEchoObject,\n type Space,\n} from '@dxos/react-client/echo';\nimport { type JoinPanelProps } from '@dxos/shell/react';\n\nimport { SpaceCapabilities } from './capabilities';\nimport {\n CollectionMain,\n CollectionSection,\n CREATE_OBJECT_DIALOG,\n CREATE_SPACE_DIALOG,\n CreateObjectDialog,\n CreateSpaceDialog,\n InlineSyncStatus,\n JOIN_DIALOG,\n JoinDialog,\n MenuFooter,\n POPOVER_RENAME_OBJECT,\n POPOVER_RENAME_SPACE,\n PopoverRenameObject,\n PopoverRenameSpace,\n SmallPresenceLive,\n SpacePluginSettings,\n SpacePresence,\n SyncStatus,\n type CreateObjectDialogProps,\n POPOVER_ADD_SPACE,\n PopoverAddSpace,\n SpaceSettingsContainer,\n SpacePropertiesForm,\n MembersContainer,\n ObjectSettingsContainer,\n} from '../components';\nimport { SPACE_PLUGIN } from '../meta';\nimport { CollectionType, type SpaceSettingsProps } from '../types';\n\ntype ReactSurfaceOptions = {\n createInvitationUrl: (invitationCode: string) => string;\n};\n\nexport default ({ createInvitationUrl }: ReactSurfaceOptions) =>\n contributes(Capabilities.ReactSurface, [\n createSurface({\n id: `${SPACE_PLUGIN}/article`,\n role: 'article',\n filter: (data): data is { subject: Space } =>\n // TODO(wittjosiah): Need to avoid shotgun parsing space state everywhere.\n isSpace(data.subject) && data.subject.state.get() === SpaceState.SPACE_READY,\n component: ({ data, role, ...rest }) => (\n <Surface\n data={{ id: data.subject.id, subject: data.subject.properties[CollectionType.typename]?.target }}\n role={role}\n {...rest}\n />\n ),\n }),\n createSurface({\n id: `${SPACE_PLUGIN}/collection-fallback`,\n role: 'article',\n position: 'fallback',\n filter: (data): data is { subject: CollectionType } => isInstanceOf(CollectionType, data.subject),\n component: ({ data }) => <CollectionMain collection={data.subject} />,\n }),\n createSurface({\n id: `${SPACE_PLUGIN}/members`,\n role: 'article',\n position: 'hoist',\n filter: (data): data is { subject: Space; variant: 'members' } =>\n isSpace(data.subject) && data.variant === 'members',\n component: ({ data }) => <MembersContainer space={data.subject} createInvitationUrl={createInvitationUrl} />,\n }),\n createSurface({\n id: `${SPACE_PLUGIN}/settings`,\n role: 'article',\n position: 'hoist',\n filter: (data): data is { subject: Space; variant: 'settings' } =>\n isSpace(data.subject) && data.variant === 'settings',\n component: ({ data }) => <SpaceSettingsContainer space={data.subject} />,\n }),\n createSurface({\n id: `${SPACE_PLUGIN}/companion/object-settings`,\n role: 'article',\n filter: (data): data is { companionTo: ReactiveEchoObject<any> } =>\n isEchoObject(data.companionTo) && data.subject === 'settings',\n component: ({ data, role }) => <ObjectSettingsContainer object={data.companionTo} role={role} />,\n }),\n createSurface({\n id: `${SPACE_PLUGIN}/space-settings--properties`,\n role: 'space-settings--properties',\n filter: (data): data is { subject: Space } => isSpace(data.subject),\n component: ({ data }) => <SpacePropertiesForm space={data.subject} />,\n }),\n createSurface({\n id: JOIN_DIALOG,\n role: 'dialog',\n filter: (data): data is { props: JoinPanelProps } => data.component === JOIN_DIALOG,\n component: ({ data }) => <JoinDialog {...data.props} />,\n }),\n createSurface({\n id: CREATE_SPACE_DIALOG,\n role: 'dialog',\n filter: (data): data is any => data.component === CREATE_SPACE_DIALOG,\n component: () => <CreateSpaceDialog />,\n }),\n createSurface({\n id: CREATE_OBJECT_DIALOG,\n role: 'dialog',\n filter: (data): data is { props: CreateObjectDialogProps } => data.component === CREATE_OBJECT_DIALOG,\n component: ({ data }) => <CreateObjectDialog {...data.props} />,\n }),\n createSurface({\n id: POPOVER_RENAME_SPACE,\n role: 'popover',\n filter: (data): data is { props: Space } => data.component === POPOVER_RENAME_SPACE && isSpace(data.props),\n component: ({ data }) => <PopoverRenameSpace space={data.props} />,\n }),\n createSurface({\n id: POPOVER_RENAME_OBJECT,\n role: 'popover',\n filter: (data): data is { props: ReactiveEchoObject<any> } =>\n data.component === POPOVER_RENAME_OBJECT && isReactiveObject(data.props),\n component: ({ data }) => <PopoverRenameObject object={data.props} />,\n }),\n createSurface({\n id: POPOVER_ADD_SPACE,\n role: 'popover',\n filter: (data): data is any => data.component === POPOVER_ADD_SPACE,\n component: () => <PopoverAddSpace />,\n }),\n createSurface({\n id: `${SPACE_PLUGIN}/navtree-presence`,\n role: 'navtree-item-end',\n filter: (data): data is { id: string; subject: ReactiveEchoObject<any>; open?: boolean } =>\n typeof data.id === 'string' && isEchoObject(data.subject),\n component: ({ data }) => {\n // TODO(wittjosiah): Doesn't need to be mutable but readonly type messes with ComplexMap.\n const state = useCapability(SpaceCapabilities.MutableState);\n return <SmallPresenceLive id={data.id} open={data.open} viewers={state.viewersByObject[data.id]} />;\n },\n }),\n // TODO(wittjosiah): Attention glyph for non-echo items should be handled elsewhere.\n createSurface({\n id: `${SPACE_PLUGIN}/navtree-presence-fallback`,\n role: 'navtree-item-end',\n position: 'fallback',\n filter: (data): data is { id: string; open?: boolean } => typeof data.id === 'string',\n component: ({ data }) => <SmallPresenceLive id={data.id} open={data.open} />,\n }),\n // TODO(wittjosiah): Broken?\n createSurface({\n id: `${SPACE_PLUGIN}/navtree-sync-status`,\n role: 'navtree-item-end',\n filter: (data): data is { subject: Space; open?: boolean } => isSpace(data.subject),\n component: ({ data }) => <InlineSyncStatus space={data.subject} open={data.open} />,\n }),\n createSurface({\n id: `${SPACE_PLUGIN}/navbar-presence`,\n role: 'navbar-end',\n position: 'hoist',\n filter: (data): data is { subject: Space | ReactiveEchoObject<any> } =>\n isSpace(data.subject) || isEchoObject(data.subject),\n component: ({ data }) => {\n const space = isSpace(data.subject) ? data.subject : getSpace(data.subject);\n const object = isSpace(data.subject)\n ? data.subject.state.get() === SpaceState.SPACE_READY\n ? (space?.properties[CollectionType.typename]?.target as CollectionType)\n : undefined\n : data.subject;\n\n return object ? <SpacePresence object={object} /> : null;\n },\n }),\n createSurface({\n id: `${SPACE_PLUGIN}/collection-section`,\n role: 'section',\n filter: (data): data is { subject: CollectionType } => isInstanceOf(CollectionType, data.subject),\n component: ({ data }) => <CollectionSection collection={data.subject} />,\n }),\n createSurface({\n id: `${SPACE_PLUGIN}/plugin-settings`,\n role: 'article',\n filter: (data): data is { subject: SettingsStore<SpaceSettingsProps> } =>\n data.subject instanceof SettingsStore && data.subject.prefix === SPACE_PLUGIN,\n component: ({ data: { subject } }) => <SpacePluginSettings settings={subject.value} />,\n }),\n createSurface({\n id: `${SPACE_PLUGIN}/menu-footer`,\n role: 'menu-footer',\n filter: (data): data is { subject: ReactiveEchoObject<any> } => isEchoObject(data.subject),\n component: ({ data }) => <MenuFooter object={data.subject} />,\n }),\n createSurface({\n id: `${SPACE_PLUGIN}/status`,\n role: 'status',\n component: () => <SyncStatus />,\n }),\n ]);\n"],
5
+ "mappings": "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",
6
+ "names": ["React", "Capabilities", "contributes", "createSurface", "Surface", "useCapability", "isInstanceOf", "SettingsStore", "getSpace", "isEchoObject", "isReactiveObject", "isSpace", "SpaceState", "createInvitationUrl", "contributes", "Capabilities", "ReactSurface", "createSurface", "id", "SPACE_PLUGIN", "role", "filter", "data", "isSpace", "subject", "state", "get", "SpaceState", "SPACE_READY", "component", "rest", "Surface", "properties", "CollectionType", "typename", "target", "position", "isInstanceOf", "CollectionMain", "collection", "variant", "MembersContainer", "space", "SpaceSettingsContainer", "isEchoObject", "companionTo", "ObjectSettingsContainer", "object", "SpacePropertiesForm", "JOIN_DIALOG", "JoinDialog", "props", "CREATE_SPACE_DIALOG", "CreateSpaceDialog", "CREATE_OBJECT_DIALOG", "CreateObjectDialog", "POPOVER_RENAME_SPACE", "PopoverRenameSpace", "POPOVER_RENAME_OBJECT", "isReactiveObject", "PopoverRenameObject", "POPOVER_ADD_SPACE", "PopoverAddSpace", "useCapability", "SpaceCapabilities", "MutableState", "SmallPresenceLive", "open", "viewers", "viewersByObject", "InlineSyncStatus", "getSpace", "undefined", "SpacePresence", "CollectionSection", "SettingsStore", "prefix", "SpacePluginSettings", "settings", "value", "MenuFooter", "SyncStatus"]
7
+ }
@@ -1,7 +1,7 @@
1
1
  import {
2
2
  SpaceCapabilities
3
- } from "./chunk-NU7WDVGN.mjs";
4
- import "./chunk-PQXZCNAU.mjs";
3
+ } from "./chunk-KVRYWFZU.mjs";
4
+ import "./chunk-PTKYMZWO.mjs";
5
5
 
6
6
  // packages/plugins/plugin-space/src/capabilities/schema.ts
7
7
  import { effect } from "@preact/signals-core";
@@ -21,4 +21,4 @@ var schema_default = (context) => {
21
21
  export {
22
22
  schema_default as default
23
23
  };
24
- //# sourceMappingURL=schema-5W3DSY2E.mjs.map
24
+ //# sourceMappingURL=schema-FHTA26SW.mjs.map
@@ -0,0 +1,123 @@
1
+ // packages/plugins/plugin-space/src/capabilities/schema-tools.ts
2
+ import { DescriptionAnnotationId, ExamplesAnnotationId, TitleAnnotationId } from "effect/SchemaAST";
3
+ import { Capabilities, contributes } from "@dxos/app-framework";
4
+ import { defineTool, ToolResult } from "@dxos/artifact";
5
+ import { FormatEnum, FormatEnums, S, SelectOptionSchema, GeoPoint, toJsonSchema } from "@dxos/echo-schema";
6
+ import { invariant } from "@dxos/invariant";
7
+ import { hues } from "@dxos/react-ui-theme";
8
+ import { getSchemaFromPropertyDefinitions } from "@dxos/schema";
9
+ var __dxlog_file = "/home/runner/work/dxos/dxos/packages/plugins/plugin-space/src/capabilities/schema-tools.ts";
10
+ var TypeNameSchema = S.String.pipe(S.pattern(/^\w+\.\w{2,}\/[\w/]+$/i), S.annotations({
11
+ [TitleAnnotationId]: "TypeName",
12
+ [DescriptionAnnotationId]: "Domain-style type name path. Dashes are not allowed. Use camel case for the final component of the type name.",
13
+ [ExamplesAnnotationId]: [
14
+ "example.com/type/Document",
15
+ "example.com/type/FlightList"
16
+ ]
17
+ }));
18
+ var formatDescription = `The format of the property. Additional information:
19
+ ${FormatEnum.GeoPoint}: ${JSON.stringify(toJsonSchema(GeoPoint))}
20
+ This tuple is GeoJSON. You must specify \`${FormatEnum.GeoPoint}\` as [Longitude, Latitude]`;
21
+ var PropertyDefinitionSchema = S.Struct({
22
+ name: S.String.annotations({
23
+ [DescriptionAnnotationId]: "The name of the property."
24
+ }),
25
+ format: S.Union(...FormatEnums.map((format) => S.Literal(format))).annotations({
26
+ [DescriptionAnnotationId]: formatDescription
27
+ }),
28
+ config: S.optional(S.Struct({
29
+ options: S.optional(S.Array(SelectOptionSchema).annotations({
30
+ description: `Options for SingleSelect/MultiSelect formats. Available colors: ${hues.join(", ")}`
31
+ }).pipe(S.mutable))
32
+ }))
33
+ }).pipe(S.mutable);
34
+ var SYSTEM_NAMESPACE = "dxos.org/echo/schema";
35
+ var schema_tools_default = () => contributes(Capabilities.Tools, [
36
+ defineTool(SYSTEM_NAMESPACE, {
37
+ name: "list",
38
+ description: "List registered schemas in the space.",
39
+ caption: "Listing registered schemas...",
40
+ schema: S.Struct({}),
41
+ execute: async (_input, { extensions }) => {
42
+ invariant(extensions?.space, "No space.", {
43
+ F: __dxlog_file,
44
+ L: 67,
45
+ S: void 0,
46
+ A: [
47
+ "extensions?.space",
48
+ "'No space.'"
49
+ ]
50
+ });
51
+ const space = extensions.space;
52
+ const schemas = await space.db.schemaRegistry.query({}).run();
53
+ return ToolResult.Success(schemas.map((schema) => ({
54
+ typename: schema.typename,
55
+ version: schema.version
56
+ })));
57
+ }
58
+ }),
59
+ defineTool(SYSTEM_NAMESPACE, {
60
+ name: "get",
61
+ description: "Get a specific schema by its typename.",
62
+ caption: "Getting schema...",
63
+ schema: S.Struct({
64
+ typename: S.String.annotations({
65
+ description: "The fully qualified typename of the schema."
66
+ })
67
+ }),
68
+ execute: async ({ typename }, { extensions }) => {
69
+ invariant(extensions?.space, "No space.", {
70
+ F: __dxlog_file,
71
+ L: 89,
72
+ S: void 0,
73
+ A: [
74
+ "extensions?.space",
75
+ "'No space.'"
76
+ ]
77
+ });
78
+ const space = extensions.space;
79
+ const schema = await space.db.schemaRegistry.query({
80
+ typename
81
+ }).firstOrUndefined();
82
+ if (!schema) {
83
+ return ToolResult.Error(`Schema not found: ${typename}`);
84
+ }
85
+ return ToolResult.Success(schema);
86
+ }
87
+ }),
88
+ defineTool(SYSTEM_NAMESPACE, {
89
+ name: "create",
90
+ description: "Create a new schema with the provided definition.",
91
+ caption: "Creating schema...",
92
+ schema: S.Struct({
93
+ typename: TypeNameSchema.annotations({
94
+ description: 'The fully qualified schema typename. Must start with a domain, and then one or more path components (e.g., "example.com/type/TypeName").'
95
+ }),
96
+ properties: S.Array(PropertyDefinitionSchema).pipe(S.annotations({
97
+ description: "Array of property definitions for the schema."
98
+ }), S.mutable)
99
+ }),
100
+ execute: async ({ typename, properties }, { extensions }) => {
101
+ invariant(extensions?.space, "No space.", {
102
+ F: __dxlog_file,
103
+ L: 115,
104
+ S: void 0,
105
+ A: [
106
+ "extensions?.space",
107
+ "'No space.'"
108
+ ]
109
+ });
110
+ const space = extensions.space;
111
+ const schema = getSchemaFromPropertyDefinitions(typename, properties);
112
+ const [registeredSchema] = await space.db.schemaRegistry.register([
113
+ schema
114
+ ]);
115
+ return ToolResult.Success(registeredSchema);
116
+ }
117
+ })
118
+ ]);
119
+ export {
120
+ TypeNameSchema,
121
+ schema_tools_default as default
122
+ };
123
+ //# sourceMappingURL=schema-tools-YAXPRIXP.mjs.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../src/capabilities/schema-tools.ts"],
4
+ "sourcesContent": ["//\n// Copyright 2025 DXOS.org\n//\n\nimport { DescriptionAnnotationId, ExamplesAnnotationId, TitleAnnotationId } from 'effect/SchemaAST';\n\nimport { Capabilities, contributes, type PromiseIntentDispatcher } from '@dxos/app-framework';\nimport { defineTool, ToolResult } from '@dxos/artifact';\nimport { type Space } from '@dxos/client/echo';\nimport { FormatEnum, FormatEnums, S, SelectOptionSchema, GeoPoint, toJsonSchema } from '@dxos/echo-schema';\nimport { invariant } from '@dxos/invariant';\nimport { hues } from '@dxos/react-ui-theme';\nimport { getSchemaFromPropertyDefinitions } from '@dxos/schema';\n\n// TODO(burdon): Factor out.\ndeclare global {\n interface ToolContextExtensions {\n space?: Space;\n dispatch?: PromiseIntentDispatcher;\n }\n}\n\n// TODO(ZaymonFC): Move this somewhere common.\nexport const TypeNameSchema = S.String.pipe(\n S.pattern(/^\\w+\\.\\w{2,}\\/[\\w/]+$/i),\n S.annotations({\n [TitleAnnotationId]: 'TypeName',\n [DescriptionAnnotationId]:\n 'Domain-style type name path. Dashes are not allowed. Use camel case for the final component of the type name.',\n [ExamplesAnnotationId]: ['example.com/type/Document', 'example.com/type/FlightList'],\n }),\n);\n\nconst formatDescription = `The format of the property. Additional information:\n ${FormatEnum.GeoPoint}: ${JSON.stringify(toJsonSchema(GeoPoint))}\n This tuple is GeoJSON. You must specify \\`${FormatEnum.GeoPoint}\\` as [Longitude, Latitude]`;\n\n// TODO(ZaymonFC): All properties are default optional, but maybe we should allow for required properties.\nconst PropertyDefinitionSchema = S.Struct({\n name: S.String.annotations({ [DescriptionAnnotationId]: 'The name of the property.' }),\n format: S.Union(...FormatEnums.map((format) => S.Literal(format))).annotations({\n [DescriptionAnnotationId]: formatDescription,\n }),\n config: S.optional(\n S.Struct({\n options: S.optional(\n S.Array(SelectOptionSchema)\n .annotations({\n description: `Options for SingleSelect/MultiSelect formats. Available colors: ${hues.join(', ')}`,\n })\n .pipe(S.mutable),\n ),\n }),\n ),\n}).pipe(S.mutable);\n\nconst SYSTEM_NAMESPACE = 'dxos.org/echo/schema';\n\nexport default () =>\n contributes(Capabilities.Tools, [\n defineTool(SYSTEM_NAMESPACE, {\n name: 'list',\n description: 'List registered schemas in the space.',\n caption: 'Listing registered schemas...',\n schema: S.Struct({}),\n execute: async (_input, { extensions }) => {\n invariant(extensions?.space, 'No space.');\n const space = extensions.space;\n\n const schemas = await space.db.schemaRegistry.query({}).run();\n return ToolResult.Success(\n schemas.map((schema) => ({\n typename: schema.typename,\n version: schema.version,\n })),\n );\n },\n }),\n defineTool(SYSTEM_NAMESPACE, {\n name: 'get',\n description: 'Get a specific schema by its typename.',\n caption: 'Getting schema...',\n schema: S.Struct({\n typename: S.String.annotations({\n description: 'The fully qualified typename of the schema.',\n }),\n }),\n execute: async ({ typename }, { extensions }) => {\n invariant(extensions?.space, 'No space.');\n const space = extensions.space;\n\n const schema = await space.db.schemaRegistry.query({ typename }).firstOrUndefined();\n if (!schema) {\n return ToolResult.Error(`Schema not found: ${typename}`);\n }\n\n return ToolResult.Success(schema);\n },\n }),\n defineTool(SYSTEM_NAMESPACE, {\n name: 'create',\n description: 'Create a new schema with the provided definition.',\n caption: 'Creating schema...',\n schema: S.Struct({\n typename: TypeNameSchema.annotations({\n description:\n 'The fully qualified schema typename. Must start with a domain, and then one or more path components (e.g., \"example.com/type/TypeName\").',\n }),\n properties: S.Array(PropertyDefinitionSchema).pipe(\n S.annotations({ description: 'Array of property definitions for the schema.' }),\n S.mutable,\n ),\n }),\n execute: async ({ typename, properties }, { extensions }) => {\n invariant(extensions?.space, 'No space.');\n const space = extensions.space;\n\n const schema = getSchemaFromPropertyDefinitions(typename, properties);\n const [registeredSchema] = await space.db.schemaRegistry.register([schema]);\n\n return ToolResult.Success(registeredSchema);\n },\n }),\n ]);\n"],
5
+ "mappings": ";AAIA,SAASA,yBAAyBC,sBAAsBC,yBAAyB;AAEjF,SAASC,cAAcC,mBAAiD;AACxE,SAASC,YAAYC,kBAAkB;AAEvC,SAASC,YAAYC,aAAaC,GAAGC,oBAAoBC,UAAUC,oBAAoB;AACvF,SAASC,iBAAiB;AAC1B,SAASC,YAAY;AACrB,SAASC,wCAAwC;;AAW1C,IAAMC,iBAAiBP,EAAEQ,OAAOC,KACrCT,EAAEU,QAAQ,wBAAA,GACVV,EAAEW,YAAY;EACZ,CAAClB,iBAAAA,GAAoB;EACrB,CAACF,uBAAAA,GACC;EACF,CAACC,oBAAAA,GAAuB;IAAC;IAA6B;;AACxD,CAAA,CAAA;AAGF,IAAMoB,oBAAoB;IACtBd,WAAWI,QAAQ,KAAKW,KAAKC,UAAUX,aAAaD,QAAAA,CAAAA,CAAAA;8CACVJ,WAAWI,QAAQ;AAGjE,IAAMa,2BAA2Bf,EAAEgB,OAAO;EACxCC,MAAMjB,EAAEQ,OAAOG,YAAY;IAAE,CAACpB,uBAAAA,GAA0B;EAA4B,CAAA;EACpF2B,QAAQlB,EAAEmB,MAAK,GAAIpB,YAAYqB,IAAI,CAACF,WAAWlB,EAAEqB,QAAQH,MAAAA,CAAAA,CAAAA,EAAUP,YAAY;IAC7E,CAACpB,uBAAAA,GAA0BqB;EAC7B,CAAA;EACAU,QAAQtB,EAAEuB,SACRvB,EAAEgB,OAAO;IACPQ,SAASxB,EAAEuB,SACTvB,EAAEyB,MAAMxB,kBAAAA,EACLU,YAAY;MACXe,aAAa,mEAAmErB,KAAKsB,KAAK,IAAA,CAAA;IAC5F,CAAA,EACClB,KAAKT,EAAE4B,OAAO,CAAA;EAErB,CAAA,CAAA;AAEJ,CAAA,EAAGnB,KAAKT,EAAE4B,OAAO;AAEjB,IAAMC,mBAAmB;AAEzB,IAAA,uBAAe,MACblC,YAAYD,aAAaoC,OAAO;EAC9BlC,WAAWiC,kBAAkB;IAC3BZ,MAAM;IACNS,aAAa;IACbK,SAAS;IACTC,QAAQhC,EAAEgB,OAAO,CAAC,CAAA;IAClBiB,SAAS,OAAOC,QAAQ,EAAEC,WAAU,MAAE;AACpC/B,gBAAU+B,YAAYC,OAAO,aAAA;;;;;;;;;AAC7B,YAAMA,QAAQD,WAAWC;AAEzB,YAAMC,UAAU,MAAMD,MAAME,GAAGC,eAAeC,MAAM,CAAC,CAAA,EAAGC,IAAG;AAC3D,aAAO5C,WAAW6C,QAChBL,QAAQjB,IAAI,CAACY,YAAY;QACvBW,UAAUX,OAAOW;QACjBC,SAASZ,OAAOY;MAClB,EAAA,CAAA;IAEJ;EACF,CAAA;EACAhD,WAAWiC,kBAAkB;IAC3BZ,MAAM;IACNS,aAAa;IACbK,SAAS;IACTC,QAAQhC,EAAEgB,OAAO;MACf2B,UAAU3C,EAAEQ,OAAOG,YAAY;QAC7Be,aAAa;MACf,CAAA;IACF,CAAA;IACAO,SAAS,OAAO,EAAEU,SAAQ,GAAI,EAAER,WAAU,MAAE;AAC1C/B,gBAAU+B,YAAYC,OAAO,aAAA;;;;;;;;;AAC7B,YAAMA,QAAQD,WAAWC;AAEzB,YAAMJ,SAAS,MAAMI,MAAME,GAAGC,eAAeC,MAAM;QAAEG;MAAS,CAAA,EAAGE,iBAAgB;AACjF,UAAI,CAACb,QAAQ;AACX,eAAOnC,WAAWiD,MAAM,qBAAqBH,QAAAA,EAAU;MACzD;AAEA,aAAO9C,WAAW6C,QAAQV,MAAAA;IAC5B;EACF,CAAA;EACApC,WAAWiC,kBAAkB;IAC3BZ,MAAM;IACNS,aAAa;IACbK,SAAS;IACTC,QAAQhC,EAAEgB,OAAO;MACf2B,UAAUpC,eAAeI,YAAY;QACnCe,aACE;MACJ,CAAA;MACAqB,YAAY/C,EAAEyB,MAAMV,wBAAAA,EAA0BN,KAC5CT,EAAEW,YAAY;QAAEe,aAAa;MAAgD,CAAA,GAC7E1B,EAAE4B,OAAO;IAEb,CAAA;IACAK,SAAS,OAAO,EAAEU,UAAUI,WAAU,GAAI,EAAEZ,WAAU,MAAE;AACtD/B,gBAAU+B,YAAYC,OAAO,aAAA;;;;;;;;;AAC7B,YAAMA,QAAQD,WAAWC;AAEzB,YAAMJ,SAAS1B,iCAAiCqC,UAAUI,UAAAA;AAC1D,YAAM,CAACC,gBAAAA,IAAoB,MAAMZ,MAAME,GAAGC,eAAeU,SAAS;QAACjB;OAAO;AAE1E,aAAOnC,WAAW6C,QAAQM,gBAAAA;IAC5B;EACF,CAAA;CACD;",
6
+ "names": ["DescriptionAnnotationId", "ExamplesAnnotationId", "TitleAnnotationId", "Capabilities", "contributes", "defineTool", "ToolResult", "FormatEnum", "FormatEnums", "S", "SelectOptionSchema", "GeoPoint", "toJsonSchema", "invariant", "hues", "getSchemaFromPropertyDefinitions", "TypeNameSchema", "String", "pipe", "pattern", "annotations", "formatDescription", "JSON", "stringify", "PropertyDefinitionSchema", "Struct", "name", "format", "Union", "map", "Literal", "config", "optional", "options", "Array", "description", "join", "mutable", "SYSTEM_NAMESPACE", "Tools", "caption", "schema", "execute", "_input", "extensions", "space", "schemas", "db", "schemaRegistry", "query", "run", "Success", "typename", "version", "firstOrUndefined", "Error", "properties", "registeredSchema", "register"]
7
+ }
@@ -1,9 +1,9 @@
1
1
  import {
2
2
  SpaceSettingsSchema
3
- } from "./chunk-ULA2UQJ4.mjs";
3
+ } from "./chunk-AYW4IDRT.mjs";
4
4
  import {
5
5
  SPACE_PLUGIN
6
- } from "./chunk-PQXZCNAU.mjs";
6
+ } from "./chunk-PTKYMZWO.mjs";
7
7
 
8
8
  // packages/plugins/plugin-space/src/capabilities/settings.ts
9
9
  import { Capabilities, contributes } from "@dxos/app-framework";
@@ -21,4 +21,4 @@ var settings_default = () => {
21
21
  export {
22
22
  settings_default as default
23
23
  };
24
- //# sourceMappingURL=settings-PHPCXX33.mjs.map
24
+ //# sourceMappingURL=settings-PJPTJUPE.mjs.map
@@ -1,18 +1,18 @@
1
1
  import {
2
2
  SpaceCapabilities
3
- } from "./chunk-NU7WDVGN.mjs";
3
+ } from "./chunk-KVRYWFZU.mjs";
4
4
  import {
5
5
  COMPOSER_SPACE_LOCK,
6
6
  SHARED
7
- } from "./chunk-23RVI5FZ.mjs";
7
+ } from "./chunk-LO5UL6RU.mjs";
8
8
  import {
9
9
  SpaceAction
10
- } from "./chunk-ULA2UQJ4.mjs";
11
- import "./chunk-PQXZCNAU.mjs";
10
+ } from "./chunk-AYW4IDRT.mjs";
11
+ import "./chunk-PTKYMZWO.mjs";
12
12
 
13
13
  // packages/plugins/plugin-space/src/capabilities/spaces-ready.ts
14
14
  import { contributes, createIntent, Capabilities, LayoutAction } from "@dxos/app-framework";
15
- import { EventSubscriptions } from "@dxos/async";
15
+ import { SubscriptionList } from "@dxos/async";
16
16
  import { Expando } from "@dxos/echo-schema";
17
17
  import { scheduledEffect } from "@dxos/echo-signals/core";
18
18
  import { create } from "@dxos/live-object";
@@ -28,8 +28,8 @@ var __dxlog_file = "/home/runner/work/dxos/dxos/packages/plugins/plugin-space/sr
28
28
  var ACTIVE_NODE_BROADCAST_INTERVAL = 3e4;
29
29
  var WAIT_FOR_OBJECT_TIMEOUT = 1e3;
30
30
  var spaces_ready_default = async (context) => {
31
- const subscriptions = new EventSubscriptions();
32
- const spaceSubscriptions = new EventSubscriptions();
31
+ const subscriptions = new SubscriptionList();
32
+ const spaceSubscriptions = new SubscriptionList();
33
33
  const { dispatchPromise: dispatch } = context.requestCapability(Capabilities.IntentDispatcher);
34
34
  const { graph } = context.requestCapability(Capabilities.AppGraph);
35
35
  const layout = context.requestCapability(Capabilities.Layout);
@@ -196,4 +196,4 @@ var spaces_ready_default = async (context) => {
196
196
  export {
197
197
  spaces_ready_default as default
198
198
  };
199
- //# sourceMappingURL=spaces-ready-K47RR7N2.mjs.map
199
+ //# sourceMappingURL=spaces-ready-BSSP7HHG.mjs.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../src/capabilities/spaces-ready.ts"],
4
+ "sourcesContent": ["//\n// Copyright 2025 DXOS.org\n//\n\nimport { contributes, createIntent, type PluginsContext, Capabilities, LayoutAction } from '@dxos/app-framework';\nimport { SubscriptionList } from '@dxos/async';\nimport { Expando } from '@dxos/echo-schema';\nimport { scheduledEffect } from '@dxos/echo-signals/core';\nimport { create } from '@dxos/live-object';\nimport { log } from '@dxos/log';\nimport { AttentionCapabilities } from '@dxos/plugin-attention';\nimport { ClientCapabilities } from '@dxos/plugin-client';\nimport { DeckCapabilities } from '@dxos/plugin-deck';\nimport { EdgeReplicationSetting } from '@dxos/protocols/proto/dxos/echo/metadata';\nimport { PublicKey } from '@dxos/react-client';\nimport { Filter, FQ_ID_LENGTH, parseFullyQualifiedId, SpaceState } from '@dxos/react-client/echo';\nimport { ComplexMap, reduceGroupBy } from '@dxos/util';\n\nimport { SpaceCapabilities } from './capabilities';\nimport { SpaceAction } from '../types';\nimport { COMPOSER_SPACE_LOCK, SHARED } from '../util';\n\nconst ACTIVE_NODE_BROADCAST_INTERVAL = 30_000;\nconst WAIT_FOR_OBJECT_TIMEOUT = 1000;\n\nexport default async (context: PluginsContext) => {\n const subscriptions = new SubscriptionList();\n const spaceSubscriptions = new SubscriptionList();\n\n const { dispatchPromise: dispatch } = context.requestCapability(Capabilities.IntentDispatcher);\n const { graph } = context.requestCapability(Capabilities.AppGraph);\n const layout = context.requestCapability(Capabilities.Layout);\n const deck = context.requestCapability(DeckCapabilities.DeckState);\n const attention = context.requestCapability(AttentionCapabilities.Attention);\n const state = context.requestCapability(SpaceCapabilities.MutableState);\n const client = context.requestCapability(ClientCapabilities.Client);\n\n const defaultSpace = client.spaces.default;\n await defaultSpace.waitUntilReady();\n\n if (deck.activeDeck === 'default') {\n await dispatch(createIntent(LayoutAction.SwitchWorkspace, { part: 'workspace', subject: defaultSpace.id }));\n }\n\n // Initialize space sharing lock in default space.\n if (typeof defaultSpace.properties[COMPOSER_SPACE_LOCK] !== 'boolean') {\n defaultSpace.properties[COMPOSER_SPACE_LOCK] = true;\n }\n\n const {\n objects: [spacesOrder],\n } = await defaultSpace.db.query(Filter.schema(Expando, { key: SHARED })).run();\n if (!spacesOrder) {\n // TODO(wittjosiah): Cannot be a Folder because Spaces are not TypedObjects so can't be saved in the database.\n // Instead, we store order as an array of space ids.\n defaultSpace.db.add(create({ key: SHARED, order: [] }));\n }\n\n // Await missing objects.\n subscriptions.add(\n scheduledEffect(\n () => ({ active: layout.active }),\n ({ active }) => {\n if (active.length !== 1) {\n return;\n }\n\n const node = graph.findNode(active[0]);\n if (!node && active[0].length === FQ_ID_LENGTH) {\n const timeout = setTimeout(async () => {\n const node = graph.findNode(active[0]);\n if (!node) {\n await dispatch(createIntent(SpaceAction.WaitForObject, { id: active[0] }));\n }\n }, WAIT_FOR_OBJECT_TIMEOUT);\n\n return () => clearTimeout(timeout);\n }\n },\n ),\n );\n\n // Cache space names.\n subscriptions.add(\n client.spaces.subscribe(async (spaces) => {\n // TODO(wittjosiah): Remove. This is a hack to be able to migrate the default space properties.\n if (defaultSpace.state.get() === SpaceState.SPACE_REQUIRES_MIGRATION) {\n await defaultSpace.internal.migrate();\n }\n\n spaces\n .filter((space) => space.state.get() === SpaceState.SPACE_READY)\n .forEach((space) => {\n subscriptions.add(\n scheduledEffect(\n () => ({ name: space.properties.name }),\n ({ name }) => (state.spaceNames[space.id] = name),\n ),\n );\n });\n }).unsubscribe,\n );\n\n // Broadcast active node to other peers in the space.\n subscriptions.add(\n scheduledEffect(\n () => ({ current: attention.current, active: layout.active, inactive: layout.inactive }),\n ({ current, active, inactive }) => {\n const send = () => {\n const spaces = client.spaces.get();\n const identity = client.halo.identity.get();\n if (identity) {\n // Group parts by space for efficient messaging.\n const idsBySpace = reduceGroupBy(active, (id) => {\n try {\n const [spaceId] = parseFullyQualifiedId(id);\n return spaceId;\n } catch {\n return null;\n }\n });\n\n const removedBySpace = reduceGroupBy(inactive, (id) => {\n try {\n const [spaceId] = parseFullyQualifiedId(id);\n return spaceId;\n } catch {\n return null;\n }\n });\n\n // NOTE: Ensure all spaces are included so that we send the correct `removed` object arrays.\n for (const space of spaces) {\n if (!idsBySpace.has(space.id)) {\n idsBySpace.set(space.id, []);\n }\n }\n\n for (const [spaceId, added] of idsBySpace) {\n const removed = removedBySpace.get(spaceId) ?? [];\n const space = spaces.find((space) => space.id === spaceId);\n if (!space) {\n continue;\n }\n\n void space\n .postMessage('viewing', {\n identityKey: identity.identityKey.toHex(),\n attended: current,\n added,\n removed,\n })\n // TODO(burdon): This seems defensive; why would this fail? Backoff interval.\n .catch((err) => {\n log.warn('Failed to broadcast active node for presence.', { err: err.message });\n });\n }\n }\n };\n\n send();\n // Send at interval to allow peers to expire entries if they become disconnected.\n const interval = setInterval(() => send(), ACTIVE_NODE_BROADCAST_INTERVAL);\n return () => clearInterval(interval);\n },\n ),\n );\n\n // Listen for active nodes from other peers in the space.\n subscriptions.add(\n client.spaces.subscribe((spaces) => {\n spaceSubscriptions.clear();\n spaces.forEach((space) => {\n spaceSubscriptions.add(\n space.listen('viewing', (message) => {\n const { added, removed, attended } = message.payload;\n\n const identityKey = PublicKey.safeFrom(message.payload.identityKey);\n const currentIdentity = client.halo.identity.get();\n if (\n identityKey &&\n !currentIdentity?.identityKey.equals(identityKey) &&\n Array.isArray(added) &&\n Array.isArray(removed)\n ) {\n added.forEach((id) => {\n if (typeof id === 'string') {\n if (!(id in state.viewersByObject)) {\n state.viewersByObject[id] = new ComplexMap(PublicKey.hash);\n }\n state.viewersByObject[id]!.set(identityKey, {\n lastSeen: Date.now(),\n currentlyAttended: new Set(attended).has(id),\n });\n if (!state.viewersByIdentity.has(identityKey)) {\n state.viewersByIdentity.set(identityKey, new Set());\n }\n state.viewersByIdentity.get(identityKey)!.add(id);\n }\n });\n\n removed.forEach((id) => {\n if (typeof id === 'string') {\n state.viewersByObject[id]?.delete(identityKey);\n state.viewersByIdentity.get(identityKey)?.delete(id);\n // It’s okay for these to be empty sets/maps, reduces churn.\n }\n });\n }\n }),\n );\n });\n }).unsubscribe,\n );\n\n // Enable edge replication for all spaces.\n try {\n await Promise.all(\n client.spaces.get().map((space) => space.internal.setEdgeReplicationPreference(EdgeReplicationSetting.ENABLED)),\n );\n state.enabledEdgeReplication = true;\n } catch (err) {\n log.catch(err);\n }\n\n return contributes(Capabilities.Null, null, () => {\n spaceSubscriptions.clear();\n subscriptions.clear();\n });\n};\n"],
5
+ "mappings": "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",
6
+ "names": ["contributes", "createIntent", "Capabilities", "LayoutAction", "SubscriptionList", "Expando", "scheduledEffect", "create", "log", "AttentionCapabilities", "ClientCapabilities", "DeckCapabilities", "EdgeReplicationSetting", "PublicKey", "Filter", "FQ_ID_LENGTH", "parseFullyQualifiedId", "SpaceState", "ComplexMap", "reduceGroupBy", "ACTIVE_NODE_BROADCAST_INTERVAL", "WAIT_FOR_OBJECT_TIMEOUT", "context", "subscriptions", "SubscriptionList", "spaceSubscriptions", "dispatchPromise", "dispatch", "requestCapability", "Capabilities", "IntentDispatcher", "graph", "AppGraph", "layout", "Layout", "deck", "DeckCapabilities", "DeckState", "attention", "AttentionCapabilities", "Attention", "state", "SpaceCapabilities", "MutableState", "client", "ClientCapabilities", "Client", "defaultSpace", "spaces", "default", "waitUntilReady", "activeDeck", "createIntent", "LayoutAction", "SwitchWorkspace", "part", "subject", "id", "properties", "COMPOSER_SPACE_LOCK", "objects", "spacesOrder", "db", "query", "Filter", "schema", "Expando", "key", "SHARED", "run", "add", "create", "order", "scheduledEffect", "active", "length", "node", "findNode", "FQ_ID_LENGTH", "timeout", "setTimeout", "SpaceAction", "WaitForObject", "clearTimeout", "subscribe", "get", "SpaceState", "SPACE_REQUIRES_MIGRATION", "internal", "migrate", "filter", "space", "SPACE_READY", "forEach", "name", "spaceNames", "unsubscribe", "current", "inactive", "send", "identity", "halo", "idsBySpace", "reduceGroupBy", "spaceId", "parseFullyQualifiedId", "removedBySpace", "has", "set", "added", "removed", "find", "postMessage", "identityKey", "toHex", "attended", "catch", "err", "log", "warn", "message", "interval", "setInterval", "clearInterval", "clear", "listen", "payload", "PublicKey", "safeFrom", "currentIdentity", "equals", "Array", "isArray", "viewersByObject", "ComplexMap", "hash", "lastSeen", "Date", "now", "currentlyAttended", "Set", "viewersByIdentity", "delete", "Promise", "all", "map", "setEdgeReplicationPreference", "EdgeReplicationSetting", "ENABLED", "enabledEdgeReplication", "contributes", "Null"]
7
+ }
@@ -1,9 +1,9 @@
1
1
  import {
2
2
  SpaceCapabilities
3
- } from "./chunk-NU7WDVGN.mjs";
3
+ } from "./chunk-KVRYWFZU.mjs";
4
4
  import {
5
5
  SPACE_PLUGIN
6
- } from "./chunk-PQXZCNAU.mjs";
6
+ } from "./chunk-PTKYMZWO.mjs";
7
7
 
8
8
  // packages/plugins/plugin-space/src/capabilities/state.ts
9
9
  import { effect } from "@preact/signals-core";
@@ -12,9 +12,11 @@ import { PublicKey } from "@dxos/keys";
12
12
  import { LocalStorageStore } from "@dxos/local-storage";
13
13
  import { ComplexMap } from "@dxos/util";
14
14
  var state_default = (context) => {
15
+ const sections = context.requestCapabilities(SpaceCapabilities.SettingsSection);
15
16
  const state = new LocalStorageStore(SPACE_PLUGIN, {
16
17
  awaiting: void 0,
17
18
  spaceNames: {},
19
+ spaceSettingsOpenSections: sections.map((section) => section.id),
18
20
  viewersByObject: {},
19
21
  // TODO(wittjosiah): Stop using (Complex)Map inside reactive object.
20
22
  viewersByIdentity: new ComplexMap(PublicKey.hash),
@@ -44,4 +46,4 @@ var state_default = (context) => {
44
46
  export {
45
47
  state_default as default
46
48
  };
47
- //# sourceMappingURL=state-INJ63O57.mjs.map
49
+ //# sourceMappingURL=state-X7VLCC6E.mjs.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../src/capabilities/state.ts"],
4
+ "sourcesContent": ["//\n// Copyright 2025 DXOS.org\n//\n\nimport { effect } from '@preact/signals-core';\n\nimport { Capabilities, contributes, type PluginsContext } from '@dxos/app-framework';\nimport { PublicKey } from '@dxos/keys';\nimport { LocalStorageStore } from '@dxos/local-storage';\nimport { ComplexMap } from '@dxos/util';\n\nimport { SpaceCapabilities } from './capabilities';\nimport { SPACE_PLUGIN } from '../meta';\nimport { type PluginState } from '../types';\n\nexport default (context: PluginsContext) => {\n const sections = context.requestCapabilities(SpaceCapabilities.SettingsSection);\n const state = new LocalStorageStore<PluginState>(SPACE_PLUGIN, {\n awaiting: undefined,\n spaceNames: {},\n spaceSettingsOpenSections: sections.map((section) => section.id),\n viewersByObject: {},\n // TODO(wittjosiah): Stop using (Complex)Map inside reactive object.\n viewersByIdentity: new ComplexMap(PublicKey.hash),\n sdkMigrationRunning: {},\n navigableCollections: false,\n enabledEdgeReplication: false,\n });\n\n state\n .prop({ key: 'spaceNames', type: LocalStorageStore.json<Record<string, string>>() })\n .prop({ key: 'enabledEdgeReplication', type: LocalStorageStore.bool() });\n\n const manager = context.requestCapability(Capabilities.PluginManager);\n const unsubscribe = effect(() => {\n // TODO(wittjosiah): Find a way to make this capability-based.\n const enabled = manager.enabled.includes('dxos.org/plugin/stack');\n if (enabled !== state.values.navigableCollections) {\n state.values.navigableCollections = enabled;\n }\n });\n\n return contributes(SpaceCapabilities.State, state.values, () => {\n unsubscribe();\n state.close();\n });\n};\n"],
5
+ "mappings": ";;;;;;;;AAIA,SAASA,cAAc;AAEvB,SAASC,cAAcC,mBAAwC;AAC/D,SAASC,iBAAiB;AAC1B,SAASC,yBAAyB;AAClC,SAASC,kBAAkB;AAM3B,IAAA,gBAAe,CAACC,YAAAA;AACd,QAAMC,WAAWD,QAAQE,oBAAoBC,kBAAkBC,eAAe;AAC9E,QAAMC,QAAQ,IAAIC,kBAA+BC,cAAc;IAC7DC,UAAUC;IACVC,YAAY,CAAC;IACbC,2BAA2BV,SAASW,IAAI,CAACC,YAAYA,QAAQC,EAAE;IAC/DC,iBAAiB,CAAC;;IAElBC,mBAAmB,IAAIC,WAAWC,UAAUC,IAAI;IAChDC,qBAAqB,CAAC;IACtBC,sBAAsB;IACtBC,wBAAwB;EAC1B,CAAA;AAEAjB,QACGkB,KAAK;IAAEC,KAAK;IAAcC,MAAMnB,kBAAkBoB,KAAI;EAA2B,CAAA,EACjFH,KAAK;IAAEC,KAAK;IAA0BC,MAAMnB,kBAAkBqB,KAAI;EAAG,CAAA;AAExE,QAAMC,UAAU5B,QAAQ6B,kBAAkBC,aAAaC,aAAa;AACpE,QAAMC,cAAcC,OAAO,MAAA;AAEzB,UAAMC,UAAUN,QAAQM,QAAQC,SAAS,uBAAA;AACzC,QAAID,YAAY7B,MAAM+B,OAAOf,sBAAsB;AACjDhB,YAAM+B,OAAOf,uBAAuBa;IACtC;EACF,CAAA;AAEA,SAAOG,YAAYlC,kBAAkBmC,OAAOjC,MAAM+B,QAAQ,MAAA;AACxDJ,gBAAAA;AACA3B,UAAMkC,MAAK;EACb,CAAA;AACF;",
6
+ "names": ["effect", "Capabilities", "contributes", "PublicKey", "LocalStorageStore", "ComplexMap", "context", "sections", "requestCapabilities", "SpaceCapabilities", "SettingsSection", "state", "LocalStorageStore", "SPACE_PLUGIN", "awaiting", "undefined", "spaceNames", "spaceSettingsOpenSections", "map", "section", "id", "viewersByObject", "viewersByIdentity", "ComplexMap", "PublicKey", "hash", "sdkMigrationRunning", "navigableCollections", "enabledEdgeReplication", "prop", "key", "type", "json", "bool", "manager", "requestCapability", "Capabilities", "PluginManager", "unsubscribe", "effect", "enabled", "includes", "values", "contributes", "State", "close"]
7
+ }
@@ -1,11 +1,7 @@
1
1
  import {
2
- ActorSchema,
3
2
  ChannelType,
4
3
  CollectionAction,
5
4
  CollectionType,
6
- ContactType,
7
- MessageState,
8
- MessageType,
9
5
  SPACE_ACTION,
10
6
  SPACE_DIRECTORY_HANDLE,
11
7
  SpaceAction,
@@ -14,16 +10,12 @@ import {
14
10
  ThreadStatus,
15
11
  ThreadType,
16
12
  defineObjectForm
17
- } from "../chunk-ULA2UQJ4.mjs";
18
- import "../chunk-PQXZCNAU.mjs";
13
+ } from "../chunk-AYW4IDRT.mjs";
14
+ import "../chunk-PTKYMZWO.mjs";
19
15
  export {
20
- ActorSchema,
21
16
  ChannelType,
22
17
  CollectionAction,
23
18
  CollectionType,
24
- ContactType,
25
- MessageState,
26
- MessageType,
27
19
  SPACE_ACTION,
28
20
  SPACE_DIRECTORY_HANDLE,
29
21
  SpaceAction,