@dxos/plugin-space 0.8.2-main.2f9c567 → 0.8.2-main.36232bc

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 (171) hide show
  1. package/dist/lib/browser/{app-graph-builder-I2BU35J5.mjs → app-graph-builder-ZWNOWRAX.mjs} +3 -3
  2. package/dist/lib/browser/app-graph-builder-ZWNOWRAX.mjs.map +7 -0
  3. package/dist/lib/browser/{app-graph-serializer-HPYDOKA5.mjs → app-graph-serializer-UUJH7JRN.mjs} +4 -4
  4. package/dist/lib/browser/{chunk-TSX67XGX.mjs → chunk-3KG2VMQL.mjs} +27 -37
  5. package/dist/lib/browser/chunk-3KG2VMQL.mjs.map +7 -0
  6. package/dist/lib/browser/{chunk-OS5QKO4Z.mjs → chunk-DIJ7LMCS.mjs} +2 -2
  7. package/dist/lib/browser/{chunk-RERTVPBV.mjs → chunk-JS6ZV4GV.mjs} +2 -2
  8. package/dist/lib/browser/chunk-JS6ZV4GV.mjs.map +7 -0
  9. package/dist/lib/browser/chunk-O7WGQVLQ.mjs +306 -0
  10. package/dist/lib/browser/chunk-O7WGQVLQ.mjs.map +7 -0
  11. package/dist/lib/browser/{identity-created-DWFKBGOA.mjs → identity-created-NRVE4XLL.mjs} +2 -2
  12. package/dist/lib/browser/index.mjs +12 -12
  13. package/dist/lib/browser/index.mjs.map +3 -3
  14. package/dist/lib/browser/{intent-resolver-GKDCJ4H2.mjs → intent-resolver-U3UVTHQV.mjs} +9 -16
  15. package/dist/lib/browser/intent-resolver-U3UVTHQV.mjs.map +7 -0
  16. package/dist/lib/browser/meta.json +1 -1
  17. package/dist/lib/browser/{react-root-667IZ2Q4.mjs → react-root-63ZJ5IR6.mjs} +4 -4
  18. package/dist/lib/browser/{react-surface-I4RNTGGN.mjs → react-surface-2OFMYE6E.mjs} +4 -4
  19. package/dist/lib/browser/react-surface-2OFMYE6E.mjs.map +7 -0
  20. package/dist/lib/browser/{schema-defs-FLFEUSLB.mjs → schema-FHTA26SW.mjs} +4 -4
  21. package/dist/lib/browser/{schema-defs-FLFEUSLB.mjs.map → schema-FHTA26SW.mjs.map} +2 -2
  22. package/dist/lib/browser/{schema-tools-MYC4LTQD.mjs → schema-tools-YAXPRIXP.mjs} +22 -22
  23. package/dist/lib/browser/schema-tools-YAXPRIXP.mjs.map +7 -0
  24. package/dist/lib/browser/{settings-ILGGNYJ7.mjs → settings-MVT32NP6.mjs} +2 -2
  25. package/dist/lib/browser/{spaces-ready-IXZF3RWW.mjs → spaces-ready-ERNSICUW.mjs} +3 -3
  26. package/dist/lib/browser/types/index.mjs +1 -1
  27. package/dist/lib/node/{app-graph-builder-H7MDHM3X.cjs → app-graph-builder-LLIV422L.cjs} +33 -33
  28. package/dist/lib/node/app-graph-builder-LLIV422L.cjs.map +7 -0
  29. package/dist/lib/node/{app-graph-serializer-G7UYFWG6.cjs → app-graph-serializer-M6Z2OPA4.cjs} +20 -20
  30. package/dist/lib/node/{chunk-AR3JHVCY.cjs → chunk-EQ5BPSQ7.cjs} +117 -119
  31. package/dist/lib/node/chunk-EQ5BPSQ7.cjs.map +7 -0
  32. package/dist/lib/node/{chunk-HD4C6KKO.cjs → chunk-M7N2NCC4.cjs} +53 -63
  33. package/dist/lib/node/chunk-M7N2NCC4.cjs.map +7 -0
  34. package/dist/lib/node/{chunk-NCSFM6RA.cjs → chunk-UOCR4G2D.cjs} +6 -6
  35. package/dist/lib/node/{chunk-EG3WAZLA.cjs → chunk-XADZLQAJ.cjs} +27 -27
  36. package/dist/lib/node/chunk-XADZLQAJ.cjs.map +7 -0
  37. package/dist/lib/node/{identity-created-YLGVEWAJ.cjs → identity-created-YDTRMOMX.cjs} +6 -6
  38. package/dist/lib/node/index.cjs +67 -67
  39. package/dist/lib/node/index.cjs.map +3 -3
  40. package/dist/lib/node/{intent-resolver-V7UJKLE7.cjs → intent-resolver-4JWTDB67.cjs} +59 -66
  41. package/dist/lib/node/intent-resolver-4JWTDB67.cjs.map +7 -0
  42. package/dist/lib/node/meta.json +1 -1
  43. package/dist/lib/node/{react-root-I3SSFA5O.cjs → react-root-6T2UE4MX.cjs} +8 -8
  44. package/dist/lib/node/{react-surface-OLMQCCYD.cjs → react-surface-6W7WFRBS.cjs} +44 -44
  45. package/dist/lib/node/react-surface-6W7WFRBS.cjs.map +7 -0
  46. package/dist/lib/node/{schema-defs-PKZVL52M.cjs → schema-PPJ5BZ3A.cjs} +6 -6
  47. package/dist/lib/node/{schema-defs-PKZVL52M.cjs.map → schema-PPJ5BZ3A.cjs.map} +2 -2
  48. package/dist/lib/node/{schema-tools-OE3MFYYH.cjs → schema-tools-BLIMOZYY.cjs} +24 -24
  49. package/dist/lib/node/schema-tools-BLIMOZYY.cjs.map +7 -0
  50. package/dist/lib/node/{settings-7TC55JP4.cjs → settings-JLV7YT6Q.cjs} +6 -6
  51. package/dist/lib/node/{spaces-ready-4H3Q46GV.cjs → spaces-ready-6EBR4SM4.cjs} +11 -11
  52. package/dist/lib/node/types/index.cjs +15 -15
  53. package/dist/lib/node/types/index.cjs.map +1 -1
  54. package/dist/lib/node-esm/{app-graph-builder-NI7X6W3Q.mjs → app-graph-builder-HSGLCS76.mjs} +3 -3
  55. package/dist/lib/node-esm/app-graph-builder-HSGLCS76.mjs.map +7 -0
  56. package/dist/lib/node-esm/{app-graph-serializer-CVPYWWW3.mjs → app-graph-serializer-J3B4WSXU.mjs} +4 -4
  57. package/dist/lib/node-esm/{chunk-B2P24Q5R.mjs → chunk-ABTVMAG5.mjs} +2 -2
  58. package/dist/lib/node-esm/chunk-ABTVMAG5.mjs.map +7 -0
  59. package/dist/lib/node-esm/chunk-FJPCLEKN.mjs +307 -0
  60. package/dist/lib/node-esm/chunk-FJPCLEKN.mjs.map +7 -0
  61. package/dist/lib/node-esm/{chunk-FUH5OODY.mjs → chunk-OLISVDCF.mjs} +2 -2
  62. package/dist/lib/node-esm/{chunk-BU6F7ZU4.mjs → chunk-RM7ZVPKM.mjs} +27 -37
  63. package/dist/lib/node-esm/chunk-RM7ZVPKM.mjs.map +7 -0
  64. package/dist/lib/node-esm/{identity-created-7NHGER3Q.mjs → identity-created-EC6SVYB5.mjs} +2 -2
  65. package/dist/lib/node-esm/index.mjs +12 -12
  66. package/dist/lib/node-esm/index.mjs.map +3 -3
  67. package/dist/lib/node-esm/{intent-resolver-IL63YTIT.mjs → intent-resolver-5PUGNEOK.mjs} +9 -16
  68. package/dist/lib/node-esm/intent-resolver-5PUGNEOK.mjs.map +7 -0
  69. package/dist/lib/node-esm/meta.json +1 -1
  70. package/dist/lib/node-esm/{react-root-JEGVIVVK.mjs → react-root-YQKCDI3P.mjs} +4 -4
  71. package/dist/lib/node-esm/{react-surface-DRRXIJBE.mjs → react-surface-UK2HIELM.mjs} +4 -4
  72. package/dist/lib/node-esm/react-surface-UK2HIELM.mjs.map +7 -0
  73. package/dist/lib/node-esm/{schema-defs-IIEQR7B3.mjs → schema-OUZKVYM5.mjs} +4 -4
  74. package/dist/lib/node-esm/{schema-defs-IIEQR7B3.mjs.map → schema-OUZKVYM5.mjs.map} +2 -2
  75. package/dist/lib/node-esm/{schema-tools-YTJLA3NQ.mjs → schema-tools-IU7EX5A5.mjs} +22 -22
  76. package/dist/lib/node-esm/schema-tools-IU7EX5A5.mjs.map +7 -0
  77. package/dist/lib/node-esm/{settings-CXMV2AFR.mjs → settings-AILIMHTE.mjs} +2 -2
  78. package/dist/lib/node-esm/{spaces-ready-QMXLQ4QV.mjs → spaces-ready-5PXESKHX.mjs} +3 -3
  79. package/dist/lib/node-esm/types/index.mjs +1 -1
  80. package/dist/types/src/SpacePlugin.d.ts.map +1 -1
  81. package/dist/types/src/capabilities/index.d.ts +2 -2
  82. package/dist/types/src/capabilities/index.d.ts.map +1 -1
  83. package/dist/types/src/capabilities/intent-resolver.d.ts.map +1 -1
  84. package/dist/types/src/capabilities/schema-tools.d.ts +2 -2
  85. package/dist/types/src/capabilities/schema-tools.d.ts.map +1 -1
  86. package/dist/types/src/capabilities/{schema-defs.d.ts → schema.d.ts} +1 -1
  87. package/dist/types/src/capabilities/schema.d.ts.map +1 -0
  88. package/dist/types/src/components/CreateDialog/CreateSpaceDialog.d.ts.map +1 -1
  89. package/dist/types/src/components/MenuFooter.d.ts +2 -2
  90. package/dist/types/src/components/MenuFooter.d.ts.map +1 -1
  91. package/dist/types/src/components/ObjectSettings/AdvancedObjectSettings.d.ts +2 -2
  92. package/dist/types/src/components/ObjectSettings/AdvancedObjectSettings.d.ts.map +1 -1
  93. package/dist/types/src/components/ObjectSettings/BaseObjectSettings.d.ts +2 -2
  94. package/dist/types/src/components/ObjectSettings/BaseObjectSettings.d.ts.map +1 -1
  95. package/dist/types/src/components/ObjectSettings/ObjectSettingsContainer.d.ts +2 -2
  96. package/dist/types/src/components/ObjectSettings/ObjectSettingsContainer.d.ts.map +1 -1
  97. package/dist/types/src/components/PopoverRenameSpace.d.ts.map +1 -1
  98. package/dist/types/src/components/SpaceSettings/SpaceSettingsContainer.d.ts.map +1 -1
  99. package/dist/types/src/hooks/useInputSurfaceLookup.d.ts +2 -2
  100. package/dist/types/src/hooks/useInputSurfaceLookup.d.ts.map +1 -1
  101. package/dist/types/src/types/collection.d.ts +8 -9
  102. package/dist/types/src/types/collection.d.ts.map +1 -1
  103. package/dist/types/src/types/thread.d.ts +118 -113
  104. package/dist/types/src/types/thread.d.ts.map +1 -1
  105. package/dist/types/src/types/types.d.ts +152 -153
  106. package/dist/types/src/types/types.d.ts.map +1 -1
  107. package/dist/types/src/util.d.ts +4 -4
  108. package/dist/types/src/util.d.ts.map +1 -1
  109. package/package.json +45 -46
  110. package/src/SpacePlugin.tsx +7 -8
  111. package/src/capabilities/app-graph-builder.ts +3 -3
  112. package/src/capabilities/index.ts +2 -2
  113. package/src/capabilities/intent-resolver.ts +2 -14
  114. package/src/capabilities/react-surface.tsx +11 -11
  115. package/src/capabilities/schema-tool.test.ts +3 -2
  116. package/src/capabilities/schema-tools.ts +25 -25
  117. package/src/components/CreateDialog/CreateSpaceDialog.tsx +3 -2
  118. package/src/components/MenuFooter.tsx +2 -2
  119. package/src/components/ObjectSettings/AdvancedObjectSettings.tsx +2 -2
  120. package/src/components/ObjectSettings/BaseObjectSettings.tsx +2 -2
  121. package/src/components/ObjectSettings/ObjectSettingsContainer.tsx +2 -2
  122. package/src/components/PopoverRenameSpace.tsx +0 -8
  123. package/src/components/SpaceSettings/SpaceSettingsContainer.tsx +3 -5
  124. package/src/hooks/useInputSurfaceLookup.tsx +2 -2
  125. package/src/types/collection.ts +4 -6
  126. package/src/types/thread.ts +8 -14
  127. package/src/types/types.ts +109 -114
  128. package/src/util.tsx +9 -9
  129. package/dist/lib/browser/app-graph-builder-I2BU35J5.mjs.map +0 -7
  130. package/dist/lib/browser/chunk-RERTVPBV.mjs.map +0 -7
  131. package/dist/lib/browser/chunk-TSX67XGX.mjs.map +0 -7
  132. package/dist/lib/browser/chunk-YQNBTJI4.mjs +0 -308
  133. package/dist/lib/browser/chunk-YQNBTJI4.mjs.map +0 -7
  134. package/dist/lib/browser/intent-resolver-GKDCJ4H2.mjs.map +0 -7
  135. package/dist/lib/browser/react-surface-I4RNTGGN.mjs.map +0 -7
  136. package/dist/lib/browser/schema-tools-MYC4LTQD.mjs.map +0 -7
  137. package/dist/lib/node/app-graph-builder-H7MDHM3X.cjs.map +0 -7
  138. package/dist/lib/node/chunk-AR3JHVCY.cjs.map +0 -7
  139. package/dist/lib/node/chunk-EG3WAZLA.cjs.map +0 -7
  140. package/dist/lib/node/chunk-HD4C6KKO.cjs.map +0 -7
  141. package/dist/lib/node/intent-resolver-V7UJKLE7.cjs.map +0 -7
  142. package/dist/lib/node/react-surface-OLMQCCYD.cjs.map +0 -7
  143. package/dist/lib/node/schema-tools-OE3MFYYH.cjs.map +0 -7
  144. package/dist/lib/node-esm/app-graph-builder-NI7X6W3Q.mjs.map +0 -7
  145. package/dist/lib/node-esm/chunk-B2P24Q5R.mjs.map +0 -7
  146. package/dist/lib/node-esm/chunk-BU6F7ZU4.mjs.map +0 -7
  147. package/dist/lib/node-esm/chunk-RUWTHAV7.mjs +0 -309
  148. package/dist/lib/node-esm/chunk-RUWTHAV7.mjs.map +0 -7
  149. package/dist/lib/node-esm/intent-resolver-IL63YTIT.mjs.map +0 -7
  150. package/dist/lib/node-esm/react-surface-DRRXIJBE.mjs.map +0 -7
  151. package/dist/lib/node-esm/schema-tools-YTJLA3NQ.mjs.map +0 -7
  152. package/dist/types/src/capabilities/schema-defs.d.ts.map +0 -1
  153. /package/dist/lib/browser/{app-graph-serializer-HPYDOKA5.mjs.map → app-graph-serializer-UUJH7JRN.mjs.map} +0 -0
  154. /package/dist/lib/browser/{chunk-OS5QKO4Z.mjs.map → chunk-DIJ7LMCS.mjs.map} +0 -0
  155. /package/dist/lib/browser/{identity-created-DWFKBGOA.mjs.map → identity-created-NRVE4XLL.mjs.map} +0 -0
  156. /package/dist/lib/browser/{react-root-667IZ2Q4.mjs.map → react-root-63ZJ5IR6.mjs.map} +0 -0
  157. /package/dist/lib/browser/{settings-ILGGNYJ7.mjs.map → settings-MVT32NP6.mjs.map} +0 -0
  158. /package/dist/lib/browser/{spaces-ready-IXZF3RWW.mjs.map → spaces-ready-ERNSICUW.mjs.map} +0 -0
  159. /package/dist/lib/node/{app-graph-serializer-G7UYFWG6.cjs.map → app-graph-serializer-M6Z2OPA4.cjs.map} +0 -0
  160. /package/dist/lib/node/{chunk-NCSFM6RA.cjs.map → chunk-UOCR4G2D.cjs.map} +0 -0
  161. /package/dist/lib/node/{identity-created-YLGVEWAJ.cjs.map → identity-created-YDTRMOMX.cjs.map} +0 -0
  162. /package/dist/lib/node/{react-root-I3SSFA5O.cjs.map → react-root-6T2UE4MX.cjs.map} +0 -0
  163. /package/dist/lib/node/{settings-7TC55JP4.cjs.map → settings-JLV7YT6Q.cjs.map} +0 -0
  164. /package/dist/lib/node/{spaces-ready-4H3Q46GV.cjs.map → spaces-ready-6EBR4SM4.cjs.map} +0 -0
  165. /package/dist/lib/node-esm/{app-graph-serializer-CVPYWWW3.mjs.map → app-graph-serializer-J3B4WSXU.mjs.map} +0 -0
  166. /package/dist/lib/node-esm/{chunk-FUH5OODY.mjs.map → chunk-OLISVDCF.mjs.map} +0 -0
  167. /package/dist/lib/node-esm/{identity-created-7NHGER3Q.mjs.map → identity-created-EC6SVYB5.mjs.map} +0 -0
  168. /package/dist/lib/node-esm/{react-root-JEGVIVVK.mjs.map → react-root-YQKCDI3P.mjs.map} +0 -0
  169. /package/dist/lib/node-esm/{settings-CXMV2AFR.mjs.map → settings-AILIMHTE.mjs.map} +0 -0
  170. /package/dist/lib/node-esm/{spaces-ready-QMXLQ4QV.mjs.map → spaces-ready-5PXESKHX.mjs.map} +0 -0
  171. /package/src/capabilities/{schema-defs.ts → schema.ts} +0 -0
@@ -1,11 +1,11 @@
1
1
  import {
2
2
  AwaitingObject
3
- } from "./chunk-TSX67XGX.mjs";
3
+ } from "./chunk-3KG2VMQL.mjs";
4
4
  import {
5
5
  SpaceCapabilities
6
6
  } from "./chunk-KVRYWFZU.mjs";
7
- import "./chunk-RERTVPBV.mjs";
8
- import "./chunk-YQNBTJI4.mjs";
7
+ import "./chunk-JS6ZV4GV.mjs";
8
+ import "./chunk-O7WGQVLQ.mjs";
9
9
  import {
10
10
  SPACE_PLUGIN
11
11
  } from "./chunk-PTKYMZWO.mjs";
@@ -25,4 +25,4 @@ var react_root_default = () => contributes(Capabilities.ReactRoot, {
25
25
  export {
26
26
  react_root_default as default
27
27
  };
28
- //# sourceMappingURL=react-root-667IZ2Q4.mjs.map
28
+ //# sourceMappingURL=react-root-63ZJ5IR6.mjs.map
@@ -23,16 +23,16 @@ import {
23
23
  SpacePresence,
24
24
  SpaceSettingsContainer,
25
25
  SyncStatus
26
- } from "./chunk-TSX67XGX.mjs";
26
+ } from "./chunk-3KG2VMQL.mjs";
27
27
  import {
28
28
  SpaceCapabilities
29
29
  } from "./chunk-KVRYWFZU.mjs";
30
- import "./chunk-RERTVPBV.mjs";
30
+ import "./chunk-JS6ZV4GV.mjs";
31
31
  import {
32
32
  CollectionType,
33
33
  HueAnnotationId,
34
34
  IconAnnotationId
35
- } from "./chunk-YQNBTJI4.mjs";
35
+ } from "./chunk-O7WGQVLQ.mjs";
36
36
  import {
37
37
  SPACE_PLUGIN
38
38
  } from "./chunk-PTKYMZWO.mjs";
@@ -297,4 +297,4 @@ var react_surface_default = ({ createInvitationUrl }) => contributes(Capabilitie
297
297
  export {
298
298
  react_surface_default as default
299
299
  };
300
- //# sourceMappingURL=react-surface-I4RNTGGN.mjs.map
300
+ //# sourceMappingURL=react-surface-2OFMYE6E.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 { type Schema as S } from 'effect';\nimport React, { useCallback } from 'react';\n\nimport { Capabilities, contributes, createSurface, Surface, useCapability, useLayout } from '@dxos/app-framework';\nimport { isInstanceOf } from '@dxos/echo-schema';\nimport { findAnnotation } from '@dxos/effect';\nimport { SettingsStore } from '@dxos/local-storage';\nimport {\n getSpace,\n isEchoObject,\n isLiveObject,\n isSpace,\n parseId,\n SpaceState,\n useSpace,\n type ReactiveEchoObject,\n type Space,\n} from '@dxos/react-client/echo';\nimport { Input } from '@dxos/react-ui';\nimport { type InputProps } from '@dxos/react-ui-form';\nimport { HuePicker, IconPicker } from '@dxos/react-ui-pickers';\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 MembersContainer,\n ObjectSettingsContainer,\n SpaceSettingsContainer,\n SchemaContainer,\n} from '../components';\nimport { SPACE_PLUGIN } from '../meta';\nimport { CollectionType, HueAnnotationId, IconAnnotationId, 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}/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}/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: 'article',\n filter: (data): data is { subject: string } => data.subject === `${SPACE_PLUGIN}/properties`,\n component: () => {\n const layout = useLayout();\n const { spaceId } = parseId(layout.workspace);\n const space = useSpace(spaceId);\n if (!space || !spaceId) {\n return null;\n }\n\n return <SpaceSettingsContainer space={space} />;\n },\n }),\n createSurface({\n id: `${SPACE_PLUGIN}/space-settings-members`,\n role: 'article',\n position: 'hoist',\n filter: (data): data is { subject: string } => data.subject === `${SPACE_PLUGIN}/members`,\n component: () => {\n const layout = useLayout();\n const { spaceId } = parseId(layout.workspace);\n const space = useSpace(spaceId);\n if (!space || !spaceId) {\n return null;\n }\n\n return <MembersContainer space={space} createInvitationUrl={createInvitationUrl} />;\n },\n }),\n createSurface({\n id: `${SPACE_PLUGIN}/space-settings-schema`,\n role: 'article',\n filter: (data): data is { subject: string } => data.subject === `${SPACE_PLUGIN}/schema`,\n component: () => {\n const layout = useLayout();\n const { spaceId } = parseId(layout.workspace);\n const space = useSpace(spaceId);\n if (!space || !spaceId) {\n return null;\n }\n\n return <SchemaContainer space={space} />;\n },\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: `${SPACE_PLUGIN}/create-initial-space-form-[hue]`,\n role: 'form-input',\n filter: (data): data is { prop: string; schema: S.Schema<any> } => {\n const annotation = findAnnotation<boolean>((data.schema as S.Schema.All).ast, HueAnnotationId);\n return !!annotation;\n },\n component: ({ data: _, ...inputProps }) => {\n const { label, disabled, type, getValue, onValueChange } = inputProps as any as InputProps;\n const handleChange = useCallback((nextHue: string) => onValueChange(type, nextHue), [onValueChange]);\n const handleReset = useCallback(() => onValueChange(type, undefined), [onValueChange]);\n return (\n <Input.Root>\n <Input.Label>{label}</Input.Label>\n <HuePicker disabled={disabled} value={getValue() ?? ''} onChange={handleChange} onReset={handleReset} />\n </Input.Root>\n );\n },\n }),\n createSurface({\n id: `${SPACE_PLUGIN}/create-initial-space-form-[icon]`,\n role: 'form-input',\n filter: (data): data is { prop: string; schema: S.Schema<any> } => {\n const annotation = findAnnotation<boolean>((data.schema as S.Schema.All).ast, IconAnnotationId);\n return !!annotation;\n },\n component: ({ data: _, ...inputProps }) => {\n const { label, disabled, type, getValue, onValueChange } = inputProps as any as InputProps;\n const handleChange = useCallback((nextIcon: string) => onValueChange(type, nextIcon), [onValueChange]);\n const handleReset = useCallback(() => onValueChange(type, undefined), [onValueChange]);\n return (\n <Input.Root>\n <Input.Label>{label}</Input.Label>\n <IconPicker disabled={disabled} value={getValue() ?? ''} onChange={handleChange} onReset={handleReset} />\n </Input.Root>\n );\n },\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 && isLiveObject(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}/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}/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}/status`,\n role: 'status',\n component: () => <SyncStatus />,\n }),\n ]);\n"],
5
+ "mappings": "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",
6
+ "names": ["React", "useCallback", "Capabilities", "contributes", "createSurface", "Surface", "useCapability", "useLayout", "isInstanceOf", "findAnnotation", "SettingsStore", "getSpace", "isEchoObject", "isLiveObject", "isSpace", "parseId", "SpaceState", "useSpace", "Input", "HuePicker", "IconPicker", "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", "SettingsStore", "prefix", "SpacePluginSettings", "settings", "value", "isEchoObject", "companionTo", "ObjectSettingsContainer", "object", "layout", "useLayout", "spaceId", "parseId", "workspace", "space", "useSpace", "SpaceSettingsContainer", "MembersContainer", "SchemaContainer", "JOIN_DIALOG", "JoinDialog", "props", "CREATE_SPACE_DIALOG", "CreateSpaceDialog", "CREATE_OBJECT_DIALOG", "CreateObjectDialog", "annotation", "findAnnotation", "schema", "ast", "HueAnnotationId", "_", "inputProps", "label", "disabled", "type", "getValue", "onValueChange", "handleChange", "useCallback", "nextHue", "handleReset", "undefined", "Input", "Root", "Label", "HuePicker", "onChange", "onReset", "IconAnnotationId", "nextIcon", "IconPicker", "POPOVER_RENAME_SPACE", "PopoverRenameSpace", "POPOVER_RENAME_OBJECT", "isLiveObject", "PopoverRenameObject", "POPOVER_ADD_SPACE", "PopoverAddSpace", "MenuFooter", "useCapability", "SpaceCapabilities", "MutableState", "SmallPresenceLive", "open", "viewers", "viewersByObject", "InlineSyncStatus", "getSpace", "SpacePresence", "CollectionSection", "SyncStatus"]
7
+ }
@@ -3,11 +3,11 @@ import {
3
3
  } from "./chunk-KVRYWFZU.mjs";
4
4
  import "./chunk-PTKYMZWO.mjs";
5
5
 
6
- // packages/plugins/plugin-space/src/capabilities/schema-defs.ts
6
+ // packages/plugins/plugin-space/src/capabilities/schema.ts
7
7
  import { effect } from "@preact/signals-core";
8
8
  import { Capabilities, contributes } from "@dxos/app-framework";
9
9
  import { ClientCapabilities } from "@dxos/plugin-client";
10
- var schema_defs_default = (context) => {
10
+ var schema_default = (context) => {
11
11
  const client = context.requestCapability(ClientCapabilities.Client);
12
12
  let previous = [];
13
13
  const unsubscribe = effect(() => {
@@ -19,6 +19,6 @@ var schema_defs_default = (context) => {
19
19
  return contributes(Capabilities.Null, null, () => unsubscribe());
20
20
  };
21
21
  export {
22
- schema_defs_default as default
22
+ schema_default as default
23
23
  };
24
- //# sourceMappingURL=schema-defs-FLFEUSLB.mjs.map
24
+ //# sourceMappingURL=schema-FHTA26SW.mjs.map
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
- "sources": ["../../../src/capabilities/schema-defs.ts"],
3
+ "sources": ["../../../src/capabilities/schema.ts"],
4
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 { ClientCapabilities } from '@dxos/plugin-client';\n\nimport { SpaceCapabilities } from './capabilities';\nimport { type ObjectForm } from '../types';\n\nexport default (context: PluginsContext) => {\n const client = context.requestCapability(ClientCapabilities.Client);\n\n // TODO(wittjosiah): Unregister schemas when they are disabled.\n let previous: ObjectForm[] = [];\n const unsubscribe = effect(() => {\n const forms = Array.from(new Set(context.requestCapabilities(SpaceCapabilities.ObjectForm)));\n // TODO(wittjosiah): Filter out schemas which the client has already registered.\n const newSchemas = forms.filter((form) => !previous.includes(form)).map((form) => form.objectSchema);\n previous = forms;\n client.addTypes(newSchemas);\n });\n\n return contributes(Capabilities.Null, null, () => unsubscribe());\n};\n"],
5
- "mappings": ";;;;;;AAIA,SAASA,cAAc;AAEvB,SAASC,cAAcC,mBAAwC;AAC/D,SAASC,0BAA0B;AAKnC,IAAA,sBAAe,CAACC,YAAAA;AACd,QAAMC,SAASD,QAAQE,kBAAkBC,mBAAmBC,MAAM;AAGlE,MAAIC,WAAyB,CAAA;AAC7B,QAAMC,cAAcC,OAAO,MAAA;AACzB,UAAMC,QAAQC,MAAMC,KAAK,IAAIC,IAAIX,QAAQY,oBAAoBC,kBAAkBC,UAAU,CAAA,CAAA;AAEzF,UAAMC,aAAaP,MAAMQ,OAAO,CAACC,SAAS,CAACZ,SAASa,SAASD,IAAAA,CAAAA,EAAOE,IAAI,CAACF,SAASA,KAAKG,YAAY;AACnGf,eAAWG;AACXP,WAAOoB,SAASN,UAAAA;EAClB,CAAA;AAEA,SAAOO,YAAYC,aAAaC,MAAM,MAAM,MAAMlB,YAAAA,CAAAA;AACpD;",
5
+ "mappings": ";;;;;;AAIA,SAASA,cAAc;AAEvB,SAASC,cAAcC,mBAAwC;AAC/D,SAASC,0BAA0B;AAKnC,IAAA,iBAAe,CAACC,YAAAA;AACd,QAAMC,SAASD,QAAQE,kBAAkBC,mBAAmBC,MAAM;AAGlE,MAAIC,WAAyB,CAAA;AAC7B,QAAMC,cAAcC,OAAO,MAAA;AACzB,UAAMC,QAAQC,MAAMC,KAAK,IAAIC,IAAIX,QAAQY,oBAAoBC,kBAAkBC,UAAU,CAAA,CAAA;AAEzF,UAAMC,aAAaP,MAAMQ,OAAO,CAACC,SAAS,CAACZ,SAASa,SAASD,IAAAA,CAAAA,EAAOE,IAAI,CAACF,SAASA,KAAKG,YAAY;AACnGf,eAAWG;AACXP,WAAOoB,SAASN,UAAAA;EAClB,CAAA;AAEA,SAAOO,YAAYC,aAAaC,MAAM,MAAM,MAAMlB,YAAAA,CAAAA;AACpD;",
6
6
  "names": ["effect", "Capabilities", "contributes", "ClientCapabilities", "context", "client", "requestCapability", "ClientCapabilities", "Client", "previous", "unsubscribe", "effect", "forms", "Array", "from", "Set", "requestCapabilities", "SpaceCapabilities", "ObjectForm", "newSchemas", "filter", "form", "includes", "map", "objectSchema", "addTypes", "contributes", "Capabilities", "Null"]
7
7
  }
@@ -1,16 +1,16 @@
1
1
  // packages/plugins/plugin-space/src/capabilities/schema-tools.ts
2
- import { Schema, SchemaAST } from "effect";
2
+ import { DescriptionAnnotationId, ExamplesAnnotationId, TitleAnnotationId } from "effect/SchemaAST";
3
3
  import { Capabilities, contributes } from "@dxos/app-framework";
4
4
  import { defineTool, ToolResult } from "@dxos/artifact";
5
- import { FormatEnum, FormatEnums, SelectOptionSchema, GeoPoint, toJsonSchema } from "@dxos/echo-schema";
5
+ import { FormatEnum, FormatEnums, S, SelectOptionSchema, GeoPoint, toJsonSchema } from "@dxos/echo-schema";
6
6
  import { invariant } from "@dxos/invariant";
7
7
  import { hues } from "@dxos/react-ui-theme";
8
8
  import { getSchemaFromPropertyDefinitions } from "@dxos/schema";
9
9
  var __dxlog_file = "/home/runner/work/dxos/dxos/packages/plugins/plugin-space/src/capabilities/schema-tools.ts";
10
- var TypeNameSchema = Schema.String.pipe(Schema.pattern(/^\w+\.\w{2,}\/[\w/]+$/i), Schema.annotations({
11
- [SchemaAST.TitleAnnotationId]: "TypeName",
12
- [SchemaAST.DescriptionAnnotationId]: "Domain-style type name path. Dashes are not allowed. Use camel case for the final component of the type name.",
13
- [SchemaAST.ExamplesAnnotationId]: [
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
14
  "example.com/type/Document",
15
15
  "example.com/type/FlightList"
16
16
  ]
@@ -18,26 +18,26 @@ var TypeNameSchema = Schema.String.pipe(Schema.pattern(/^\w+\.\w{2,}\/[\w/]+$/i)
18
18
  var formatDescription = `The format of the property. Additional information:
19
19
  ${FormatEnum.GeoPoint}: ${JSON.stringify(toJsonSchema(GeoPoint))}
20
20
  This tuple is GeoJSON. You must specify \`${FormatEnum.GeoPoint}\` as [Longitude, Latitude]`;
21
- var PropertyDefinitionSchema = Schema.Struct({
22
- name: Schema.String.annotations({
23
- [SchemaAST.DescriptionAnnotationId]: "The name of the property."
21
+ var PropertyDefinitionSchema = S.Struct({
22
+ name: S.String.annotations({
23
+ [DescriptionAnnotationId]: "The name of the property."
24
24
  }),
25
- format: Schema.Union(...FormatEnums.map((format) => Schema.Literal(format))).annotations({
26
- [SchemaAST.DescriptionAnnotationId]: formatDescription
25
+ format: S.Union(...FormatEnums.map((format) => S.Literal(format))).annotations({
26
+ [DescriptionAnnotationId]: formatDescription
27
27
  }),
28
- config: Schema.optional(Schema.Struct({
29
- options: Schema.optional(Schema.Array(SelectOptionSchema).annotations({
28
+ config: S.optional(S.Struct({
29
+ options: S.optional(S.Array(SelectOptionSchema).annotations({
30
30
  description: `Options for SingleSelect/MultiSelect formats. Available colors: ${hues.join(", ")}`
31
- }).pipe(Schema.mutable))
31
+ }).pipe(S.mutable))
32
32
  }))
33
- }).pipe(Schema.mutable);
33
+ }).pipe(S.mutable);
34
34
  var SYSTEM_NAMESPACE = "dxos.org/echo/schema";
35
35
  var schema_tools_default = () => contributes(Capabilities.Tools, [
36
36
  defineTool(SYSTEM_NAMESPACE, {
37
37
  name: "list",
38
38
  description: "List registered schemas in the space.",
39
39
  caption: "Listing registered schemas...",
40
- schema: Schema.Struct({}),
40
+ schema: S.Struct({}),
41
41
  execute: async (_input, { extensions }) => {
42
42
  invariant(extensions?.space, "No space.", {
43
43
  F: __dxlog_file,
@@ -60,8 +60,8 @@ var schema_tools_default = () => contributes(Capabilities.Tools, [
60
60
  name: "get",
61
61
  description: "Get a specific schema by its typename.",
62
62
  caption: "Getting schema...",
63
- schema: Schema.Struct({
64
- typename: Schema.String.annotations({
63
+ schema: S.Struct({
64
+ typename: S.String.annotations({
65
65
  description: "The fully qualified typename of the schema."
66
66
  })
67
67
  }),
@@ -89,13 +89,13 @@ var schema_tools_default = () => contributes(Capabilities.Tools, [
89
89
  name: "create",
90
90
  description: "Create a new schema with the provided definition.",
91
91
  caption: "Creating schema...",
92
- schema: Schema.Struct({
92
+ schema: S.Struct({
93
93
  typename: TypeNameSchema.annotations({
94
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
95
  }),
96
- properties: Schema.Array(PropertyDefinitionSchema).pipe(Schema.annotations({
96
+ properties: S.Array(PropertyDefinitionSchema).pipe(S.annotations({
97
97
  description: "Array of property definitions for the schema."
98
- }), Schema.mutable)
98
+ }), S.mutable)
99
99
  }),
100
100
  execute: async ({ typename, properties }, { extensions }) => {
101
101
  invariant(extensions?.space, "No space.", {
@@ -120,4 +120,4 @@ export {
120
120
  TypeNameSchema,
121
121
  schema_tools_default as default
122
122
  };
123
- //# sourceMappingURL=schema-tools-MYC4LTQD.mjs.map
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": "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",
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,6 +1,6 @@
1
1
  import {
2
2
  SpaceSettingsSchema
3
- } from "./chunk-YQNBTJI4.mjs";
3
+ } from "./chunk-O7WGQVLQ.mjs";
4
4
  import {
5
5
  SPACE_PLUGIN
6
6
  } from "./chunk-PTKYMZWO.mjs";
@@ -21,4 +21,4 @@ var settings_default = () => {
21
21
  export {
22
22
  settings_default as default
23
23
  };
24
- //# sourceMappingURL=settings-ILGGNYJ7.mjs.map
24
+ //# sourceMappingURL=settings-MVT32NP6.mjs.map
@@ -4,10 +4,10 @@ import {
4
4
  import {
5
5
  COMPOSER_SPACE_LOCK,
6
6
  SHARED
7
- } from "./chunk-RERTVPBV.mjs";
7
+ } from "./chunk-JS6ZV4GV.mjs";
8
8
  import {
9
9
  SpaceAction
10
- } from "./chunk-YQNBTJI4.mjs";
10
+ } from "./chunk-O7WGQVLQ.mjs";
11
11
  import "./chunk-PTKYMZWO.mjs";
12
12
 
13
13
  // packages/plugins/plugin-space/src/capabilities/spaces-ready.ts
@@ -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-IXZF3RWW.mjs.map
199
+ //# sourceMappingURL=spaces-ready-ERNSICUW.mjs.map
@@ -13,7 +13,7 @@ import {
13
13
  ThreadStatus,
14
14
  ThreadType,
15
15
  defineObjectForm
16
- } from "../chunk-YQNBTJI4.mjs";
16
+ } from "../chunk-O7WGQVLQ.mjs";
17
17
  import "../chunk-PTKYMZWO.mjs";
18
18
  export {
19
19
  ChannelType,
@@ -16,14 +16,14 @@ var __copyProps = (to, from, except, desc) => {
16
16
  return to;
17
17
  };
18
18
  var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
19
- var app_graph_builder_H7MDHM3X_exports = {};
20
- __export(app_graph_builder_H7MDHM3X_exports, {
19
+ var app_graph_builder_LLIV422L_exports = {};
20
+ __export(app_graph_builder_LLIV422L_exports, {
21
21
  default: () => app_graph_builder_default
22
22
  });
23
- module.exports = __toCommonJS(app_graph_builder_H7MDHM3X_exports);
23
+ module.exports = __toCommonJS(app_graph_builder_LLIV422L_exports);
24
24
  var import_chunk_IKIDS6XF = require("./chunk-IKIDS6XF.cjs");
25
- var import_chunk_EG3WAZLA = require("./chunk-EG3WAZLA.cjs");
26
- var import_chunk_AR3JHVCY = require("./chunk-AR3JHVCY.cjs");
25
+ var import_chunk_XADZLQAJ = require("./chunk-XADZLQAJ.cjs");
26
+ var import_chunk_EQ5BPSQ7 = require("./chunk-EQ5BPSQ7.cjs");
27
27
  var import_chunk_6P2DB4QQ = require("./chunk-6P2DB4QQ.cjs");
28
28
  var import_app_framework = require("@dxos/app-framework");
29
29
  var import_echo = require("@dxos/client/echo");
@@ -37,8 +37,8 @@ var __dxlog_file = "/home/runner/work/dxos/dxos/packages/plugins/plugin-space/sr
37
37
  var app_graph_builder_default = (context) => {
38
38
  const resolve = (typename) => context.requestCapabilities(import_app_framework.Capabilities.Metadata).find(({ id }) => id === typename)?.metadata ?? {};
39
39
  const spacesNode = {
40
- id: import_chunk_EG3WAZLA.SPACES,
41
- type: import_chunk_EG3WAZLA.SPACES,
40
+ id: import_chunk_XADZLQAJ.SPACES,
41
+ type: import_chunk_XADZLQAJ.SPACES,
42
42
  cacheable: [
43
43
  "label",
44
44
  "role"
@@ -59,9 +59,9 @@ var app_graph_builder_default = (context) => {
59
59
  onRearrangeChildren: async (nextOrder) => {
60
60
  const { graph } = context.requestCapability(import_app_framework.Capabilities.AppGraph);
61
61
  const client = context.requestCapability(import_plugin_client.ClientCapabilities.Client);
62
- graph._sortEdges(import_chunk_EG3WAZLA.SPACES, "outbound", nextOrder.map(({ id }) => id));
62
+ graph._sortEdges(import_chunk_XADZLQAJ.SPACES, "outbound", nextOrder.map(({ id }) => id));
63
63
  const { objects: [spacesOrder] } = await client.spaces.default.db.query(import_echo.Filter.schema(import_echo.Expando, {
64
- key: import_chunk_EG3WAZLA.SHARED
64
+ key: import_chunk_XADZLQAJ.SHARED
65
65
  })).run();
66
66
  if (spacesOrder) {
67
67
  spacesOrder.order = nextOrder.map(({ id }) => id);
@@ -84,10 +84,10 @@ var app_graph_builder_default = (context) => {
84
84
  filter: (node) => node.id === "root",
85
85
  actions: () => [
86
86
  {
87
- id: import_chunk_AR3JHVCY.SpaceAction.AddSpace._tag,
87
+ id: import_chunk_EQ5BPSQ7.SpaceAction.AddSpace._tag,
88
88
  data: async (params) => {
89
89
  const { dispatchPromise: dispatch } = context.requestCapability(import_app_framework.Capabilities.IntentDispatcher);
90
- await dispatch((0, import_app_framework.createIntent)(import_chunk_AR3JHVCY.SpaceAction.AddSpace));
90
+ await dispatch((0, import_app_framework.createIntent)(import_chunk_EQ5BPSQ7.SpaceAction.AddSpace));
91
91
  },
92
92
  properties: {
93
93
  label: [
@@ -103,14 +103,14 @@ var app_graph_builder_default = (context) => {
103
103
  }
104
104
  },
105
105
  {
106
- id: import_chunk_AR3JHVCY.SpaceAction.OpenMembers._tag,
106
+ id: import_chunk_EQ5BPSQ7.SpaceAction.OpenMembers._tag,
107
107
  data: async () => {
108
108
  const { dispatchPromise: dispatch } = context.requestCapability(import_app_framework.Capabilities.IntentDispatcher);
109
109
  const layout = context.requestCapability(import_app_framework.Capabilities.Layout);
110
110
  const client = context.requestCapability(import_plugin_client.ClientCapabilities.Client);
111
111
  const { spaceId } = (0, import_echo.parseId)(layout.workspace);
112
112
  const space = (spaceId && client.spaces.get(spaceId)) ?? client.spaces.default;
113
- await dispatch((0, import_app_framework.createIntent)(import_chunk_AR3JHVCY.SpaceAction.OpenMembers, {
113
+ await dispatch((0, import_app_framework.createIntent)(import_chunk_EQ5BPSQ7.SpaceAction.OpenMembers, {
114
114
  space
115
115
  }));
116
116
  },
@@ -130,14 +130,14 @@ var app_graph_builder_default = (context) => {
130
130
  }
131
131
  },
132
132
  {
133
- id: import_chunk_AR3JHVCY.SpaceAction.OpenSettings._tag,
133
+ id: import_chunk_EQ5BPSQ7.SpaceAction.OpenSettings._tag,
134
134
  data: async () => {
135
135
  const { dispatchPromise: dispatch } = context.requestCapability(import_app_framework.Capabilities.IntentDispatcher);
136
136
  const layout = context.requestCapability(import_app_framework.Capabilities.Layout);
137
137
  const client = context.requestCapability(import_plugin_client.ClientCapabilities.Client);
138
138
  const { spaceId } = (0, import_echo.parseId)(layout.workspace);
139
139
  const space = (spaceId && client.spaces.get(spaceId)) ?? client.spaces.default;
140
- await dispatch((0, import_app_framework.createIntent)(import_chunk_AR3JHVCY.SpaceAction.OpenSettings, {
140
+ await dispatch((0, import_app_framework.createIntent)(import_chunk_EQ5BPSQ7.SpaceAction.OpenSettings, {
141
141
  space
142
142
  }));
143
143
  },
@@ -165,12 +165,12 @@ var app_graph_builder_default = (context) => {
165
165
  connector: () => [
166
166
  spacesNode
167
167
  ],
168
- resolver: ({ id }) => id === import_chunk_EG3WAZLA.SPACES ? spacesNode : void 0
168
+ resolver: ({ id }) => id === import_chunk_XADZLQAJ.SPACES ? spacesNode : void 0
169
169
  }),
170
170
  // Create space nodes.
171
171
  (0, import_plugin_graph.createExtension)({
172
- id: import_chunk_EG3WAZLA.SPACES,
173
- filter: (node) => node.id === import_chunk_EG3WAZLA.SPACES,
172
+ id: import_chunk_XADZLQAJ.SPACES,
173
+ filter: (node) => node.id === import_chunk_XADZLQAJ.SPACES,
174
174
  connector: () => {
175
175
  const client = context.requestCapability(import_plugin_client.ClientCapabilities.Client);
176
176
  const spaces = (0, import_plugin_graph.toSignal)((onChange) => client.spaces.subscribe(() => onChange()).unsubscribe, () => client.spaces.get());
@@ -181,8 +181,8 @@ var app_graph_builder_default = (context) => {
181
181
  const state = context.requestCapability(import_chunk_IKIDS6XF.SpaceCapabilities.State);
182
182
  const settings = context.requestCapabilities(import_app_framework.Capabilities.SettingsStore)[0]?.getStore(import_chunk_6P2DB4QQ.SPACE_PLUGIN)?.value;
183
183
  try {
184
- const [spacesOrder] = (0, import_chunk_EG3WAZLA.memoizeQuery)(client.spaces.default, import_echo.Filter.schema(import_echo.Expando, {
185
- key: import_chunk_EG3WAZLA.SHARED
184
+ const [spacesOrder] = (0, import_chunk_XADZLQAJ.memoizeQuery)(client.spaces.default, import_echo.Filter.schema(import_echo.Expando, {
185
+ key: import_chunk_XADZLQAJ.SHARED
186
186
  }));
187
187
  const order = spacesOrder?.order ?? [];
188
188
  const orderMap = new Map(order.map((id, index) => [
@@ -192,7 +192,7 @@ var app_graph_builder_default = (context) => {
192
192
  return [
193
193
  ...spaces.filter((space) => orderMap.has(space.id)).sort((a, b) => orderMap.get(a.id) - orderMap.get(b.id)),
194
194
  ...spaces.filter((space) => !orderMap.has(space.id))
195
- ].filter((space) => settings?.showHidden ? true : space.state.get() !== import_echo.SpaceState.SPACE_INACTIVE).map((space) => (0, import_chunk_EG3WAZLA.constructSpaceNode)({
195
+ ].filter((space) => settings?.showHidden ? true : space.state.get() !== import_echo.SpaceState.SPACE_INACTIVE).map((space) => (0, import_chunk_XADZLQAJ.constructSpaceNode)({
196
196
  space,
197
197
  navigable: state.navigableCollections,
198
198
  personal: space === client.spaces.default,
@@ -222,7 +222,7 @@ var app_graph_builder_default = (context) => {
222
222
  return void 0;
223
223
  } else {
224
224
  const state = context.requestCapability(import_chunk_IKIDS6XF.SpaceCapabilities.State);
225
- return (0, import_chunk_EG3WAZLA.constructSpaceNode)({
225
+ return (0, import_chunk_XADZLQAJ.constructSpaceNode)({
226
226
  space,
227
227
  navigable: state.navigableCollections,
228
228
  personal: space === client.spaces.default,
@@ -235,13 +235,13 @@ var app_graph_builder_default = (context) => {
235
235
  // Create space actions.
236
236
  (0, import_plugin_graph.createExtension)({
237
237
  id: `${import_chunk_6P2DB4QQ.SPACE_PLUGIN}/actions`,
238
- filter: (node) => node.type === import_chunk_AR3JHVCY.SPACE_TYPE,
238
+ filter: (node) => node.type === import_chunk_EQ5BPSQ7.SPACE_TYPE,
239
239
  actions: ({ node }) => {
240
240
  const space = node.data;
241
241
  const { dispatchPromise: dispatch } = context.requestCapability(import_app_framework.Capabilities.IntentDispatcher);
242
242
  const client = context.requestCapability(import_plugin_client.ClientCapabilities.Client);
243
243
  const state = context.requestCapability(import_chunk_IKIDS6XF.SpaceCapabilities.State);
244
- return (0, import_chunk_EG3WAZLA.constructSpaceActions)({
244
+ return (0, import_chunk_XADZLQAJ.constructSpaceActions)({
245
245
  space,
246
246
  dispatch,
247
247
  personal: space === client.spaces.default,
@@ -252,19 +252,19 @@ var app_graph_builder_default = (context) => {
252
252
  // Create nodes for objects in the root collection of a space.
253
253
  (0, import_plugin_graph.createExtension)({
254
254
  id: `${import_chunk_6P2DB4QQ.SPACE_PLUGIN}/root-collection`,
255
- filter: (node) => node.type === import_chunk_AR3JHVCY.SPACE_TYPE,
255
+ filter: (node) => node.type === import_chunk_EQ5BPSQ7.SPACE_TYPE,
256
256
  connector: ({ node }) => {
257
257
  const space = node.data;
258
258
  const spaceState = (0, import_plugin_graph.toSignal)((onChange) => space.state.subscribe(() => onChange()).unsubscribe, () => space.state.get(), space.id);
259
259
  if (spaceState !== import_echo.SpaceState.SPACE_READY) {
260
260
  return;
261
261
  }
262
- const collection = space.properties[import_chunk_AR3JHVCY.CollectionType.typename]?.target;
262
+ const collection = space.properties[import_chunk_EQ5BPSQ7.CollectionType.typename]?.target;
263
263
  if (!collection) {
264
264
  return;
265
265
  }
266
266
  const state = context.requestCapability(import_chunk_IKIDS6XF.SpaceCapabilities.State);
267
- return collection.objects.map((object) => object.target).filter(import_util.isNonNullable).map((object) => (0, import_chunk_EG3WAZLA.createObjectNode)({
267
+ return collection.objects.map((object) => object.target).filter(import_util.isNonNullable).map((object) => (0, import_chunk_XADZLQAJ.createObjectNode)({
268
268
  object,
269
269
  space,
270
270
  resolve,
@@ -275,7 +275,7 @@ var app_graph_builder_default = (context) => {
275
275
  // Create nodes for objects in a collection or by its fully qualified id.
276
276
  (0, import_plugin_graph.createExtension)({
277
277
  id: `${import_chunk_6P2DB4QQ.SPACE_PLUGIN}/objects`,
278
- filter: (node) => node.data instanceof import_chunk_AR3JHVCY.CollectionType,
278
+ filter: (node) => node.data instanceof import_chunk_EQ5BPSQ7.CollectionType,
279
279
  connector: ({ node }) => {
280
280
  const collection = node.data;
281
281
  const space = (0, import_echo.getSpace)(collection);
@@ -283,7 +283,7 @@ var app_graph_builder_default = (context) => {
283
283
  return;
284
284
  }
285
285
  const state = context.requestCapability(import_chunk_IKIDS6XF.SpaceCapabilities.State);
286
- return collection.objects.map((object) => object.target).filter(import_util.isNonNullable).map((object) => (0, import_chunk_EG3WAZLA.createObjectNode)({
286
+ return collection.objects.map((object) => object.target).filter(import_util.isNonNullable).map((object) => (0, import_chunk_XADZLQAJ.createObjectNode)({
287
287
  object,
288
288
  space,
289
289
  resolve,
@@ -307,7 +307,7 @@ var app_graph_builder_default = (context) => {
307
307
  if (spaceState !== import_echo.SpaceState.SPACE_READY) {
308
308
  return;
309
309
  }
310
- const [object] = (0, import_chunk_EG3WAZLA.memoizeQuery)(space, {
310
+ const [object] = (0, import_chunk_XADZLQAJ.memoizeQuery)(space, {
311
311
  id: objectId
312
312
  });
313
313
  if (!object) {
@@ -317,7 +317,7 @@ var app_graph_builder_default = (context) => {
317
317
  return false;
318
318
  } else {
319
319
  const state = context.requestCapability(import_chunk_IKIDS6XF.SpaceCapabilities.State);
320
- return (0, import_chunk_EG3WAZLA.createObjectNode)({
320
+ return (0, import_chunk_XADZLQAJ.createObjectNode)({
321
321
  object,
322
322
  space,
323
323
  resolve,
@@ -333,7 +333,7 @@ var app_graph_builder_default = (context) => {
333
333
  actions: ({ node }) => {
334
334
  const { dispatchPromise: dispatch } = context.requestCapability(import_app_framework.Capabilities.IntentDispatcher);
335
335
  const state = context.requestCapability(import_chunk_IKIDS6XF.SpaceCapabilities.State);
336
- return (0, import_chunk_EG3WAZLA.constructObjectActions)({
336
+ return (0, import_chunk_XADZLQAJ.constructObjectActions)({
337
337
  node,
338
338
  dispatch,
339
339
  navigable: state.navigableCollections
@@ -368,4 +368,4 @@ var app_graph_builder_default = (context) => {
368
368
  })
369
369
  ]);
370
370
  };
371
- //# sourceMappingURL=app-graph-builder-H7MDHM3X.cjs.map
371
+ //# sourceMappingURL=app-graph-builder-LLIV422L.cjs.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../src/capabilities/app-graph-builder.ts"],
4
+ "sourcesContent": ["//\n// Copyright 2025 DXOS.org\n//\n\nimport { Capabilities, contributes, createIntent, type PluginsContext } from '@dxos/app-framework';\nimport {\n Expando,\n Filter,\n FQ_ID_LENGTH,\n getSpace,\n isEchoObject,\n OBJECT_ID_LENGTH,\n type ReactiveEchoObject,\n SPACE_ID_LENGTH,\n SpaceState,\n type Space,\n parseId,\n} from '@dxos/client/echo';\nimport { isDeleted } from '@dxos/live-object';\nimport { log } from '@dxos/log';\nimport { ClientCapabilities } from '@dxos/plugin-client';\nimport { PLANK_COMPANION_TYPE, ATTENDABLE_PATH_SEPARATOR } from '@dxos/plugin-deck/types';\nimport { createExtension, toSignal, type Node, type InvokeParams } from '@dxos/plugin-graph';\nimport { isNonNullable } from '@dxos/util';\n\nimport { SpaceCapabilities } from './capabilities';\nimport { SPACE_PLUGIN } from '../meta';\nimport { CollectionType, SPACE_TYPE, SpaceAction, type SpaceSettingsProps } from '../types';\nimport {\n constructObjectActions,\n constructSpaceActions,\n constructSpaceNode,\n createObjectNode,\n memoizeQuery,\n SHARED,\n SPACES,\n} from '../util';\n\nexport default (context: PluginsContext) => {\n const resolve = (typename: string) =>\n context.requestCapabilities(Capabilities.Metadata).find(({ id }) => id === typename)?.metadata ?? {};\n\n const spacesNode = {\n id: SPACES,\n type: SPACES,\n cacheable: ['label', 'role'],\n properties: {\n label: ['spaces label', { ns: SPACE_PLUGIN }],\n icon: 'ph--planet--regular',\n testId: 'spacePlugin.spaces',\n role: 'branch',\n disposition: 'collection',\n disabled: true,\n childrenPersistenceClass: 'echo',\n onRearrangeChildren: async (nextOrder: Space[]) => {\n const { graph } = context.requestCapability(Capabilities.AppGraph);\n const client = context.requestCapability(ClientCapabilities.Client);\n\n // NOTE: This is needed to ensure order is updated by next animation frame.\n // TODO(wittjosiah): Is there a better way to do this?\n // If not, graph should be passed as an argument to the extension.\n graph._sortEdges(\n SPACES,\n 'outbound',\n nextOrder.map(({ id }) => id),\n );\n\n const {\n objects: [spacesOrder],\n } = await client.spaces.default.db.query(Filter.schema(Expando, { key: SHARED })).run();\n if (spacesOrder) {\n spacesOrder.order = nextOrder.map(({ id }) => id);\n } else {\n log.warn('spaces order object not found');\n }\n },\n },\n };\n\n return contributes(Capabilities.AppGraphBuilder, [\n // Primary actions.\n createExtension({\n id: `${SPACE_PLUGIN}/primary-actions`,\n position: 'hoist',\n filter: (node): node is Node<null> => node.id === 'root',\n actions: () => [\n {\n id: SpaceAction.AddSpace._tag,\n data: async (params: InvokeParams) => {\n const { dispatchPromise: dispatch } = context.requestCapability(Capabilities.IntentDispatcher);\n await dispatch(createIntent(SpaceAction.AddSpace));\n },\n properties: {\n label: ['add space label', { ns: SPACE_PLUGIN }],\n icon: 'ph--plus--regular',\n testId: 'spacePlugin.addSpace',\n disposition: 'item',\n position: 'fallback',\n },\n },\n {\n id: SpaceAction.OpenMembers._tag,\n data: async () => {\n const { dispatchPromise: dispatch } = context.requestCapability(Capabilities.IntentDispatcher);\n const layout = context.requestCapability(Capabilities.Layout);\n const client = context.requestCapability(ClientCapabilities.Client);\n const { spaceId } = parseId(layout.workspace);\n const space = (spaceId && client.spaces.get(spaceId)) ?? client.spaces.default;\n await dispatch(createIntent(SpaceAction.OpenMembers, { space }));\n },\n properties: {\n label: ['share space label', { ns: SPACE_PLUGIN }],\n icon: 'ph--users--regular',\n testId: 'spacePlugin.shareSpace',\n keyBinding: {\n macos: 'meta+.',\n windows: 'alt+.',\n },\n },\n },\n {\n id: SpaceAction.OpenSettings._tag,\n data: async () => {\n const { dispatchPromise: dispatch } = context.requestCapability(Capabilities.IntentDispatcher);\n const layout = context.requestCapability(Capabilities.Layout);\n const client = context.requestCapability(ClientCapabilities.Client);\n const { spaceId } = parseId(layout.workspace);\n const space = (spaceId && client.spaces.get(spaceId)) ?? client.spaces.default;\n await dispatch(createIntent(SpaceAction.OpenSettings, { space }));\n },\n properties: {\n label: ['open current space settings label', { ns: SPACE_PLUGIN }],\n icon: 'ph--faders--regular',\n keyBinding: {\n macos: 'meta+shift+,',\n windows: 'ctrl+shift+,',\n },\n },\n },\n ],\n }),\n\n // Create spaces group node.\n createExtension({\n id: `${SPACE_PLUGIN}/root`,\n position: 'hoist',\n filter: (node): node is Node<null> => node.id === 'root',\n connector: () => [spacesNode],\n resolver: ({ id }) => (id === SPACES ? spacesNode : undefined),\n }),\n\n // Create space nodes.\n createExtension({\n id: SPACES,\n filter: (node): node is Node<null> => node.id === SPACES,\n connector: () => {\n const client = context.requestCapability(ClientCapabilities.Client);\n const spaces = toSignal(\n (onChange) => client.spaces.subscribe(() => onChange()).unsubscribe,\n () => client.spaces.get(),\n );\n\n const isReady = toSignal(\n (onChange) => client.spaces.isReady.subscribe(() => onChange()).unsubscribe,\n () => client.spaces.isReady.get(),\n );\n\n if (!spaces || !isReady) {\n return;\n }\n\n const state = context.requestCapability(SpaceCapabilities.State);\n const settings = context\n .requestCapabilities(Capabilities.SettingsStore)[0]\n ?.getStore<SpaceSettingsProps>(SPACE_PLUGIN)?.value;\n\n // TODO(wittjosiah): During client reset, accessing default space throws.\n try {\n const [spacesOrder] = memoizeQuery(client.spaces.default, Filter.schema(Expando, { key: SHARED }));\n const order: string[] = spacesOrder?.order ?? [];\n const orderMap = new Map(order.map((id, index) => [id, index]));\n return [\n ...spaces\n .filter((space) => orderMap.has(space.id))\n .sort((a, b) => orderMap.get(a.id)! - orderMap.get(b.id)!),\n ...spaces.filter((space) => !orderMap.has(space.id)),\n ]\n .filter((space) => (settings?.showHidden ? true : space.state.get() !== SpaceState.SPACE_INACTIVE))\n .map((space) =>\n constructSpaceNode({\n space,\n navigable: state.navigableCollections,\n personal: space === client.spaces.default,\n namesCache: state.spaceNames,\n resolve,\n }),\n );\n } catch {}\n },\n resolver: ({ id }) => {\n if (id.length !== SPACE_ID_LENGTH) {\n return;\n }\n\n const client = context.requestCapability(ClientCapabilities.Client);\n const spaces = toSignal(\n (onChange) => client.spaces.subscribe(() => onChange()).unsubscribe,\n () => client.spaces.get(),\n );\n\n const isReady = toSignal(\n (onChange) => client.spaces.isReady.subscribe(() => onChange()).unsubscribe,\n () => client.spaces.isReady.get(),\n );\n\n if (!spaces || !isReady) {\n return;\n }\n\n const space = spaces.find((space) => space.id === id);\n if (!space) {\n return;\n }\n\n if (space.state.get() === SpaceState.SPACE_INACTIVE) {\n return false;\n } else if (space.state.get() !== SpaceState.SPACE_READY) {\n return undefined;\n } else {\n const state = context.requestCapability(SpaceCapabilities.State);\n return constructSpaceNode({\n space,\n navigable: state.navigableCollections,\n personal: space === client.spaces.default,\n namesCache: state.spaceNames,\n resolve,\n });\n }\n },\n }),\n\n // Create space actions.\n createExtension({\n id: `${SPACE_PLUGIN}/actions`,\n filter: (node): node is Node<Space> => node.type === SPACE_TYPE,\n actions: ({ node }) => {\n const space = node.data;\n const { dispatchPromise: dispatch } = context.requestCapability(Capabilities.IntentDispatcher);\n const client = context.requestCapability(ClientCapabilities.Client);\n const state = context.requestCapability(SpaceCapabilities.State);\n return constructSpaceActions({\n space,\n dispatch,\n personal: space === client.spaces.default,\n migrating: state.sdkMigrationRunning[space.id],\n });\n },\n }),\n\n // Create nodes for objects in the root collection of a space.\n createExtension({\n id: `${SPACE_PLUGIN}/root-collection`,\n filter: (node): node is Node<Space> => node.type === SPACE_TYPE,\n connector: ({ node }) => {\n const space = node.data;\n const spaceState = toSignal(\n (onChange) => space.state.subscribe(() => onChange()).unsubscribe,\n () => space.state.get(),\n space.id,\n );\n if (spaceState !== SpaceState.SPACE_READY) {\n return;\n }\n\n const collection = space.properties[CollectionType.typename]?.target as CollectionType | undefined;\n if (!collection) {\n return;\n }\n\n const state = context.requestCapability(SpaceCapabilities.State);\n\n return collection.objects\n .map((object) => object.target)\n .filter(isNonNullable)\n .map((object) => createObjectNode({ object, space, resolve, navigable: state.navigableCollections }))\n .filter(isNonNullable);\n },\n }),\n\n // Create nodes for objects in a collection or by its fully qualified id.\n createExtension({\n id: `${SPACE_PLUGIN}/objects`,\n filter: (node): node is Node<CollectionType> => node.data instanceof CollectionType,\n connector: ({ node }) => {\n const collection = node.data;\n const space = getSpace(collection);\n if (!space) {\n return;\n }\n\n const state = context.requestCapability(SpaceCapabilities.State);\n\n return collection.objects\n .map((object) => object.target)\n .filter(isNonNullable)\n .map((object) => createObjectNode({ object, space, resolve, navigable: state.navigableCollections }))\n .filter(isNonNullable);\n },\n resolver: ({ id }) => {\n if (id.length !== FQ_ID_LENGTH) {\n return;\n }\n\n const [spaceId, objectId] = id.split(':');\n if (spaceId.length !== SPACE_ID_LENGTH && objectId.length !== OBJECT_ID_LENGTH) {\n return;\n }\n\n const client = context.requestCapability(ClientCapabilities.Client);\n const space = client.spaces.get().find((space) => space.id === spaceId);\n if (!space) {\n return;\n }\n\n const spaceState = toSignal(\n (onChange) => space.state.subscribe(() => onChange()).unsubscribe,\n () => space.state.get(),\n space.id,\n );\n if (spaceState !== SpaceState.SPACE_READY) {\n return;\n }\n\n const [object] = memoizeQuery(space, { id: objectId });\n if (!object) {\n return;\n }\n\n if (isDeleted(object)) {\n return false;\n } else {\n const state = context.requestCapability(SpaceCapabilities.State);\n return createObjectNode({ object, space, resolve, navigable: state.navigableCollections });\n }\n },\n }),\n\n // Create collection actions and action groups.\n createExtension({\n id: `${SPACE_PLUGIN}/object-actions`,\n filter: (node): node is Node<ReactiveEchoObject<any>> => isEchoObject(node.data),\n actions: ({ node }) => {\n const { dispatchPromise: dispatch } = context.requestCapability(Capabilities.IntentDispatcher);\n const state = context.requestCapability(SpaceCapabilities.State);\n return constructObjectActions({ node, dispatch, navigable: state.navigableCollections });\n },\n }),\n\n // Object settings plank companion.\n createExtension({\n id: `${SPACE_PLUGIN}/settings`,\n filter: (node): node is Node<ReactiveEchoObject<any>> => isEchoObject(node.data),\n connector: ({ node }) => [\n {\n id: [node.id, 'settings'].join(ATTENDABLE_PATH_SEPARATOR),\n type: PLANK_COMPANION_TYPE,\n data: 'settings',\n properties: {\n label: ['object settings label', { ns: SPACE_PLUGIN }],\n icon: 'ph--sliders--regular',\n disposition: 'hidden',\n position: 'fallback',\n },\n },\n ],\n }),\n ]);\n};\n"],
5
+ "mappings": "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",
6
+ "names": ["context", "resolve", "typename", "requestCapabilities", "Capabilities", "Metadata", "find", "id", "metadata", "spacesNode", "SPACES", "type", "cacheable", "properties", "label", "ns", "SPACE_PLUGIN", "icon", "testId", "role", "disposition", "disabled", "childrenPersistenceClass", "onRearrangeChildren", "nextOrder", "graph", "requestCapability", "AppGraph", "client", "ClientCapabilities", "Client", "_sortEdges", "map", "objects", "spacesOrder", "spaces", "default", "db", "query", "Filter", "schema", "Expando", "key", "SHARED", "run", "order", "log", "warn", "contributes", "AppGraphBuilder", "createExtension", "position", "filter", "node", "actions", "SpaceAction", "AddSpace", "_tag", "data", "params", "dispatchPromise", "dispatch", "IntentDispatcher", "createIntent", "OpenMembers", "layout", "Layout", "spaceId", "parseId", "workspace", "space", "get", "keyBinding", "macos", "windows", "OpenSettings", "connector", "resolver", "undefined", "toSignal", "onChange", "subscribe", "unsubscribe", "isReady", "state", "SpaceCapabilities", "State", "settings", "SettingsStore", "getStore", "value", "memoizeQuery", "orderMap", "Map", "index", "has", "sort", "a", "b", "showHidden", "SpaceState", "SPACE_INACTIVE", "constructSpaceNode", "navigable", "navigableCollections", "personal", "namesCache", "spaceNames", "length", "SPACE_ID_LENGTH", "SPACE_READY", "SPACE_TYPE", "constructSpaceActions", "migrating", "sdkMigrationRunning", "spaceState", "collection", "CollectionType", "target", "object", "isNonNullable", "createObjectNode", "getSpace", "FQ_ID_LENGTH", "objectId", "split", "OBJECT_ID_LENGTH", "isDeleted", "isEchoObject", "constructObjectActions", "join", "ATTENDABLE_PATH_SEPARATOR", "PLANK_COMPANION_TYPE"]
7
+ }