@dxos/plugin-client 0.7.5-main.9cb18ac → 0.7.5-main.9d2a38b

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 (123) hide show
  1. package/dist/lib/browser/app-graph-builder-6LOTDB4T.mjs +44 -0
  2. package/dist/lib/browser/app-graph-builder-6LOTDB4T.mjs.map +7 -0
  3. package/dist/lib/browser/chunk-6IF6PREG.mjs +158 -0
  4. package/dist/lib/browser/chunk-6IF6PREG.mjs.map +7 -0
  5. package/dist/lib/browser/{chunk-52IJQ35F.mjs → chunk-E3OUNOEL.mjs} +4 -6
  6. package/dist/lib/browser/chunk-E3OUNOEL.mjs.map +7 -0
  7. package/dist/lib/browser/{chunk-X4QUPYC6.mjs → chunk-NHIL4T3L.mjs} +3 -3
  8. package/dist/lib/browser/chunk-NHIL4T3L.mjs.map +7 -0
  9. package/dist/lib/browser/chunk-R4Q6H7RD.mjs +18 -0
  10. package/dist/lib/browser/chunk-R4Q6H7RD.mjs.map +7 -0
  11. package/dist/lib/browser/chunk-SVBQRT7I.mjs +17 -0
  12. package/dist/lib/browser/chunk-SVBQRT7I.mjs.map +7 -0
  13. package/dist/lib/browser/client-25GYH6TN.mjs +45 -0
  14. package/dist/lib/browser/client-25GYH6TN.mjs.map +7 -0
  15. package/dist/lib/browser/index.mjs +69 -369
  16. package/dist/lib/browser/index.mjs.map +4 -4
  17. package/dist/lib/browser/intent-resolver-IWWLWOZD.mjs +132 -0
  18. package/dist/lib/browser/intent-resolver-IWWLWOZD.mjs.map +7 -0
  19. package/dist/lib/browser/meta.json +1 -1
  20. package/dist/lib/browser/react-context-M3RT6SSG.mjs +24 -0
  21. package/dist/lib/browser/react-context-M3RT6SSG.mjs.map +7 -0
  22. package/dist/lib/browser/react-surface-XXONPG5T.mjs +41 -0
  23. package/dist/lib/browser/react-surface-XXONPG5T.mjs.map +7 -0
  24. package/dist/lib/browser/types.mjs +4 -6
  25. package/dist/lib/node/app-graph-builder-JCND3P6G.cjs +58 -0
  26. package/dist/lib/node/app-graph-builder-JCND3P6G.cjs.map +7 -0
  27. package/dist/lib/node/{meta.cjs → chunk-3OB25QN2.cjs} +14 -8
  28. package/dist/lib/node/chunk-3OB25QN2.cjs.map +7 -0
  29. package/dist/lib/node/chunk-IXVWJCYB.cjs +37 -0
  30. package/dist/lib/node/chunk-IXVWJCYB.cjs.map +7 -0
  31. package/dist/lib/node/chunk-N3U7KVO3.cjs +186 -0
  32. package/dist/lib/node/chunk-N3U7KVO3.cjs.map +7 -0
  33. package/dist/lib/node/{chunk-NFO3ADQC.cjs → chunk-NVYWMDF3.cjs} +8 -11
  34. package/dist/lib/node/chunk-NVYWMDF3.cjs.map +7 -0
  35. package/dist/lib/node/{chunk-RUA5KXVW.cjs → chunk-OIFPM5ZW.cjs} +7 -7
  36. package/dist/lib/node/chunk-OIFPM5ZW.cjs.map +7 -0
  37. package/dist/lib/node/client-52L4TUYU.cjs +59 -0
  38. package/dist/lib/node/client-52L4TUYU.cjs.map +7 -0
  39. package/dist/lib/node/index.cjs +66 -358
  40. package/dist/lib/node/index.cjs.map +4 -4
  41. package/dist/lib/node/intent-resolver-H3Y64MIP.cjs +140 -0
  42. package/dist/lib/node/intent-resolver-H3Y64MIP.cjs.map +7 -0
  43. package/dist/lib/node/meta.json +1 -1
  44. package/dist/lib/node/react-context-B2DNULH4.cjs +48 -0
  45. package/dist/lib/node/react-context-B2DNULH4.cjs.map +7 -0
  46. package/dist/lib/node/react-surface-7USN5NOO.cjs +62 -0
  47. package/dist/lib/node/react-surface-7USN5NOO.cjs.map +7 -0
  48. package/dist/lib/node/types.cjs +4 -6
  49. package/dist/lib/node/types.cjs.map +2 -2
  50. package/dist/lib/node-esm/app-graph-builder-ZLGKFBLY.mjs +45 -0
  51. package/dist/lib/node-esm/app-graph-builder-ZLGKFBLY.mjs.map +7 -0
  52. package/dist/lib/node-esm/chunk-73M5MK5Q.mjs +19 -0
  53. package/dist/lib/node-esm/chunk-73M5MK5Q.mjs.map +7 -0
  54. package/dist/lib/node-esm/{chunk-TI4GNGMM.mjs → chunk-74T33KTB.mjs} +4 -6
  55. package/dist/lib/node-esm/chunk-74T33KTB.mjs.map +7 -0
  56. package/dist/lib/node-esm/chunk-EHGD3UJH.mjs +159 -0
  57. package/dist/lib/node-esm/chunk-EHGD3UJH.mjs.map +7 -0
  58. package/dist/lib/node-esm/{chunk-GMGRQ5Q7.mjs → chunk-HO7WDE7C.mjs} +3 -3
  59. package/dist/lib/node-esm/chunk-HO7WDE7C.mjs.map +7 -0
  60. package/dist/lib/node-esm/chunk-OBGRL3DF.mjs +18 -0
  61. package/dist/lib/node-esm/chunk-OBGRL3DF.mjs.map +7 -0
  62. package/dist/lib/node-esm/client-K52NWOUN.mjs +46 -0
  63. package/dist/lib/node-esm/client-K52NWOUN.mjs.map +7 -0
  64. package/dist/lib/node-esm/index.mjs +69 -369
  65. package/dist/lib/node-esm/index.mjs.map +4 -4
  66. package/dist/lib/node-esm/intent-resolver-JCKD6R6L.mjs +133 -0
  67. package/dist/lib/node-esm/intent-resolver-JCKD6R6L.mjs.map +7 -0
  68. package/dist/lib/node-esm/meta.json +1 -1
  69. package/dist/lib/node-esm/react-context-IGEHJQK5.mjs +25 -0
  70. package/dist/lib/node-esm/react-context-IGEHJQK5.mjs.map +7 -0
  71. package/dist/lib/node-esm/react-surface-CXLBCMPN.mjs +42 -0
  72. package/dist/lib/node-esm/react-surface-CXLBCMPN.mjs.map +7 -0
  73. package/dist/lib/node-esm/types.mjs +4 -6
  74. package/dist/types/src/ClientPlugin.d.ts +2 -3
  75. package/dist/types/src/ClientPlugin.d.ts.map +1 -1
  76. package/dist/types/src/capabilities/app-graph-builder.d.ts +181 -0
  77. package/dist/types/src/capabilities/app-graph-builder.d.ts.map +1 -0
  78. package/dist/types/src/capabilities/capabilities.d.ts +8 -0
  79. package/dist/types/src/capabilities/capabilities.d.ts.map +1 -0
  80. package/dist/types/src/capabilities/client.d.ts +9 -0
  81. package/dist/types/src/capabilities/client.d.ts.map +1 -0
  82. package/dist/types/src/capabilities/index.d.ts +193 -0
  83. package/dist/types/src/capabilities/index.d.ts.map +1 -0
  84. package/dist/types/src/capabilities/intent-resolver.d.ts +8 -0
  85. package/dist/types/src/capabilities/intent-resolver.d.ts.map +1 -0
  86. package/dist/types/src/capabilities/react-context.d.ts +8 -0
  87. package/dist/types/src/capabilities/react-context.d.ts.map +1 -0
  88. package/dist/types/src/capabilities/react-surface.d.ts +7 -0
  89. package/dist/types/src/capabilities/react-surface.d.ts.map +1 -0
  90. package/dist/types/src/events.d.ts +7 -0
  91. package/dist/types/src/events.d.ts.map +1 -0
  92. package/dist/types/src/index.d.ts +3 -2
  93. package/dist/types/src/index.d.ts.map +1 -1
  94. package/dist/types/src/meta.d.ts +1 -2
  95. package/dist/types/src/meta.d.ts.map +1 -1
  96. package/dist/types/src/types.d.ts +5 -17
  97. package/dist/types/src/types.d.ts.map +1 -1
  98. package/dist/types/tsconfig.tsbuildinfo +1 -1
  99. package/package.json +15 -22
  100. package/src/ClientPlugin.ts +59 -0
  101. package/src/capabilities/app-graph-builder.ts +39 -0
  102. package/src/capabilities/capabilities.ts +15 -0
  103. package/src/capabilities/client.ts +48 -0
  104. package/src/capabilities/index.ts +13 -0
  105. package/src/capabilities/intent-resolver.ts +101 -0
  106. package/src/capabilities/react-context.tsx +20 -0
  107. package/src/capabilities/react-surface.tsx +44 -0
  108. package/src/events.ts +14 -0
  109. package/src/index.ts +4 -4
  110. package/src/meta.ts +1 -1
  111. package/src/types.ts +5 -31
  112. package/dist/lib/browser/chunk-52IJQ35F.mjs.map +0 -7
  113. package/dist/lib/browser/chunk-X4QUPYC6.mjs.map +0 -7
  114. package/dist/lib/browser/meta.mjs +0 -9
  115. package/dist/lib/browser/meta.mjs.map +0 -7
  116. package/dist/lib/node/chunk-NFO3ADQC.cjs.map +0 -7
  117. package/dist/lib/node/chunk-RUA5KXVW.cjs.map +0 -7
  118. package/dist/lib/node/meta.cjs.map +0 -7
  119. package/dist/lib/node-esm/chunk-GMGRQ5Q7.mjs.map +0 -7
  120. package/dist/lib/node-esm/chunk-TI4GNGMM.mjs.map +0 -7
  121. package/dist/lib/node-esm/meta.mjs +0 -10
  122. package/dist/lib/node-esm/meta.mjs.map +0 -7
  123. package/src/ClientPlugin.tsx +0 -227
@@ -0,0 +1,193 @@
1
+ export declare const AppGraphBuilder: (props?: import("@dxos/app-framework").PluginsContext | undefined) => Promise<import("@dxos/app-framework").Capability<Readonly<{
2
+ id: string;
3
+ disposition: import("packages/common/util/dist/types/src").Disposition;
4
+ resolver?: import("packages/sdk/app-graph/dist/types/src").ResolverExtension;
5
+ connector?: import("packages/sdk/app-graph/dist/types/src").ConnectorExtension;
6
+ relation?: import("packages/sdk/app-graph/dist/types/src").Relation;
7
+ type?: string;
8
+ filter?: (node: import("packages/sdk/app-graph/dist/types/src").Node) => boolean;
9
+ }> | Readonly<{
10
+ id: string;
11
+ disposition: import("packages/common/util/dist/types/src").Disposition;
12
+ resolver?: import("packages/sdk/app-graph/dist/types/src").ResolverExtension;
13
+ connector?: import("packages/sdk/app-graph/dist/types/src").ConnectorExtension;
14
+ relation?: import("packages/sdk/app-graph/dist/types/src").Relation;
15
+ type?: string;
16
+ filter?: (node: import("packages/sdk/app-graph/dist/types/src").Node) => boolean;
17
+ }>[] | (Readonly<{
18
+ id: string;
19
+ disposition: import("packages/common/util/dist/types/src").Disposition;
20
+ resolver?: import("packages/sdk/app-graph/dist/types/src").ResolverExtension;
21
+ connector?: import("packages/sdk/app-graph/dist/types/src").ConnectorExtension;
22
+ relation?: import("packages/sdk/app-graph/dist/types/src").Relation;
23
+ type?: string;
24
+ filter?: (node: import("packages/sdk/app-graph/dist/types/src").Node) => boolean;
25
+ }> | Readonly<{
26
+ id: string;
27
+ disposition: import("packages/common/util/dist/types/src").Disposition;
28
+ resolver?: import("packages/sdk/app-graph/dist/types/src").ResolverExtension;
29
+ connector?: import("packages/sdk/app-graph/dist/types/src").ConnectorExtension;
30
+ relation?: import("packages/sdk/app-graph/dist/types/src").Relation;
31
+ type?: string;
32
+ filter?: (node: import("packages/sdk/app-graph/dist/types/src").Node) => boolean;
33
+ }>[] | (Readonly<{
34
+ id: string;
35
+ disposition: import("packages/common/util/dist/types/src").Disposition;
36
+ resolver?: import("packages/sdk/app-graph/dist/types/src").ResolverExtension;
37
+ connector?: import("packages/sdk/app-graph/dist/types/src").ConnectorExtension;
38
+ relation?: import("packages/sdk/app-graph/dist/types/src").Relation;
39
+ type?: string;
40
+ filter?: (node: import("packages/sdk/app-graph/dist/types/src").Node) => boolean;
41
+ }> | Readonly<{
42
+ id: string;
43
+ disposition: import("packages/common/util/dist/types/src").Disposition;
44
+ resolver?: import("packages/sdk/app-graph/dist/types/src").ResolverExtension;
45
+ connector?: import("packages/sdk/app-graph/dist/types/src").ConnectorExtension;
46
+ relation?: import("packages/sdk/app-graph/dist/types/src").Relation;
47
+ type?: string;
48
+ filter?: (node: import("packages/sdk/app-graph/dist/types/src").Node) => boolean;
49
+ }>[] | (Readonly<{
50
+ id: string;
51
+ disposition: import("packages/common/util/dist/types/src").Disposition;
52
+ resolver?: import("packages/sdk/app-graph/dist/types/src").ResolverExtension;
53
+ connector?: import("packages/sdk/app-graph/dist/types/src").ConnectorExtension;
54
+ relation?: import("packages/sdk/app-graph/dist/types/src").Relation;
55
+ type?: string;
56
+ filter?: (node: import("packages/sdk/app-graph/dist/types/src").Node) => boolean;
57
+ }> | Readonly<{
58
+ id: string;
59
+ disposition: import("packages/common/util/dist/types/src").Disposition;
60
+ resolver?: import("packages/sdk/app-graph/dist/types/src").ResolverExtension;
61
+ connector?: import("packages/sdk/app-graph/dist/types/src").ConnectorExtension;
62
+ relation?: import("packages/sdk/app-graph/dist/types/src").Relation;
63
+ type?: string;
64
+ filter?: (node: import("packages/sdk/app-graph/dist/types/src").Node) => boolean;
65
+ }>[] | (Readonly<{
66
+ id: string;
67
+ disposition: import("packages/common/util/dist/types/src").Disposition;
68
+ resolver?: import("packages/sdk/app-graph/dist/types/src").ResolverExtension;
69
+ connector?: import("packages/sdk/app-graph/dist/types/src").ConnectorExtension;
70
+ relation?: import("packages/sdk/app-graph/dist/types/src").Relation;
71
+ type?: string;
72
+ filter?: (node: import("packages/sdk/app-graph/dist/types/src").Node) => boolean;
73
+ }> | Readonly<{
74
+ id: string;
75
+ disposition: import("packages/common/util/dist/types/src").Disposition;
76
+ resolver?: import("packages/sdk/app-graph/dist/types/src").ResolverExtension;
77
+ connector?: import("packages/sdk/app-graph/dist/types/src").ConnectorExtension;
78
+ relation?: import("packages/sdk/app-graph/dist/types/src").Relation;
79
+ type?: string;
80
+ filter?: (node: import("packages/sdk/app-graph/dist/types/src").Node) => boolean;
81
+ }>[] | (Readonly<{
82
+ id: string;
83
+ disposition: import("packages/common/util/dist/types/src").Disposition;
84
+ resolver?: import("packages/sdk/app-graph/dist/types/src").ResolverExtension;
85
+ connector?: import("packages/sdk/app-graph/dist/types/src").ConnectorExtension;
86
+ relation?: import("packages/sdk/app-graph/dist/types/src").Relation;
87
+ type?: string;
88
+ filter?: (node: import("packages/sdk/app-graph/dist/types/src").Node) => boolean;
89
+ }> | Readonly<{
90
+ id: string;
91
+ disposition: import("packages/common/util/dist/types/src").Disposition;
92
+ resolver?: import("packages/sdk/app-graph/dist/types/src").ResolverExtension;
93
+ connector?: import("packages/sdk/app-graph/dist/types/src").ConnectorExtension;
94
+ relation?: import("packages/sdk/app-graph/dist/types/src").Relation;
95
+ type?: string;
96
+ filter?: (node: import("packages/sdk/app-graph/dist/types/src").Node) => boolean;
97
+ }>[] | (Readonly<{
98
+ id: string;
99
+ disposition: import("packages/common/util/dist/types/src").Disposition;
100
+ resolver?: import("packages/sdk/app-graph/dist/types/src").ResolverExtension;
101
+ connector?: import("packages/sdk/app-graph/dist/types/src").ConnectorExtension;
102
+ relation?: import("packages/sdk/app-graph/dist/types/src").Relation;
103
+ type?: string;
104
+ filter?: (node: import("packages/sdk/app-graph/dist/types/src").Node) => boolean;
105
+ }> | Readonly<{
106
+ id: string;
107
+ disposition: import("packages/common/util/dist/types/src").Disposition;
108
+ resolver?: import("packages/sdk/app-graph/dist/types/src").ResolverExtension;
109
+ connector?: import("packages/sdk/app-graph/dist/types/src").ConnectorExtension;
110
+ relation?: import("packages/sdk/app-graph/dist/types/src").Relation;
111
+ type?: string;
112
+ filter?: (node: import("packages/sdk/app-graph/dist/types/src").Node) => boolean;
113
+ }>[] | (Readonly<{
114
+ id: string;
115
+ disposition: import("packages/common/util/dist/types/src").Disposition;
116
+ resolver?: import("packages/sdk/app-graph/dist/types/src").ResolverExtension;
117
+ connector?: import("packages/sdk/app-graph/dist/types/src").ConnectorExtension;
118
+ relation?: import("packages/sdk/app-graph/dist/types/src").Relation;
119
+ type?: string;
120
+ filter?: (node: import("packages/sdk/app-graph/dist/types/src").Node) => boolean;
121
+ }> | Readonly<{
122
+ id: string;
123
+ disposition: import("packages/common/util/dist/types/src").Disposition;
124
+ resolver?: import("packages/sdk/app-graph/dist/types/src").ResolverExtension;
125
+ connector?: import("packages/sdk/app-graph/dist/types/src").ConnectorExtension;
126
+ relation?: import("packages/sdk/app-graph/dist/types/src").Relation;
127
+ type?: string;
128
+ filter?: (node: import("packages/sdk/app-graph/dist/types/src").Node) => boolean;
129
+ }>[] | (Readonly<{
130
+ id: string;
131
+ disposition: import("packages/common/util/dist/types/src").Disposition;
132
+ resolver?: import("packages/sdk/app-graph/dist/types/src").ResolverExtension;
133
+ connector?: import("packages/sdk/app-graph/dist/types/src").ConnectorExtension;
134
+ relation?: import("packages/sdk/app-graph/dist/types/src").Relation;
135
+ type?: string;
136
+ filter?: (node: import("packages/sdk/app-graph/dist/types/src").Node) => boolean;
137
+ }> | Readonly<{
138
+ id: string;
139
+ disposition: import("packages/common/util/dist/types/src").Disposition;
140
+ resolver?: import("packages/sdk/app-graph/dist/types/src").ResolverExtension;
141
+ connector?: import("packages/sdk/app-graph/dist/types/src").ConnectorExtension;
142
+ relation?: import("packages/sdk/app-graph/dist/types/src").Relation;
143
+ type?: string;
144
+ filter?: (node: import("packages/sdk/app-graph/dist/types/src").Node) => boolean;
145
+ }>[] | (Readonly<{
146
+ id: string;
147
+ disposition: import("packages/common/util/dist/types/src").Disposition;
148
+ resolver?: import("packages/sdk/app-graph/dist/types/src").ResolverExtension;
149
+ connector?: import("packages/sdk/app-graph/dist/types/src").ConnectorExtension;
150
+ relation?: import("packages/sdk/app-graph/dist/types/src").Relation;
151
+ type?: string;
152
+ filter?: (node: import("packages/sdk/app-graph/dist/types/src").Node) => boolean;
153
+ }> | Readonly<{
154
+ id: string;
155
+ disposition: import("packages/common/util/dist/types/src").Disposition;
156
+ resolver?: import("packages/sdk/app-graph/dist/types/src").ResolverExtension;
157
+ connector?: import("packages/sdk/app-graph/dist/types/src").ConnectorExtension;
158
+ relation?: import("packages/sdk/app-graph/dist/types/src").Relation;
159
+ type?: string;
160
+ filter?: (node: import("packages/sdk/app-graph/dist/types/src").Node) => boolean;
161
+ }>[] | (any[] | Readonly<{
162
+ id: string;
163
+ disposition: import("packages/common/util/dist/types/src").Disposition;
164
+ resolver?: import("packages/sdk/app-graph/dist/types/src").ResolverExtension;
165
+ connector?: import("packages/sdk/app-graph/dist/types/src").ConnectorExtension;
166
+ relation?: import("packages/sdk/app-graph/dist/types/src").Relation;
167
+ type?: string;
168
+ filter?: (node: import("packages/sdk/app-graph/dist/types/src").Node) => boolean;
169
+ }> | Readonly<{
170
+ id: string;
171
+ disposition: import("packages/common/util/dist/types/src").Disposition;
172
+ resolver?: import("packages/sdk/app-graph/dist/types/src").ResolverExtension;
173
+ connector?: import("packages/sdk/app-graph/dist/types/src").ConnectorExtension;
174
+ relation?: import("packages/sdk/app-graph/dist/types/src").Relation;
175
+ type?: string;
176
+ filter?: (node: import("packages/sdk/app-graph/dist/types/src").Node) => boolean;
177
+ }>[])[])[])[])[])[])[])[])[])[])[]>>;
178
+ export declare const Client: (props?: (Omit<import("../types").ClientPluginOptions, "appKey" | "invitationUrl" | "invitationParam" | "onReset"> & {
179
+ context: import("@dxos/app-framework").PluginsContext;
180
+ }) | undefined) => Promise<import("@dxos/app-framework").Capability<import("packages/sdk/client/dist/types/src").Client>>;
181
+ export declare const IntentResolver: (props?: (Pick<import("../types").ClientPluginOptions, "onReset"> & {
182
+ context: import("@dxos/app-framework").PluginsContext;
183
+ }) | undefined) => Promise<import("@dxos/app-framework").Capability<import("@dxos/app-framework").Capabilities.IntentResolver>>;
184
+ export declare const ReactContext: (props?: unknown) => Promise<import("@dxos/app-framework").Capability<Readonly<{
185
+ id: string;
186
+ dependsOn?: string[];
187
+ context: import("react").FC<import("react").PropsWithChildren>;
188
+ }>>>;
189
+ export declare const ReactSurface: (props?: {
190
+ createInvitationUrl: (invitationCode: string) => string;
191
+ } | undefined) => Promise<import("@dxos/app-framework").Capability<import("@dxos/app-framework").Capabilities.ReactSurface>>;
192
+ export * from './capabilities';
193
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/capabilities/index.ts"],"names":[],"mappings":"AAMA,eAAO,MAAM,eAAe;;wBAOoxJ,qCAAY;sBAAyC,uCAAiB;uBAAgD,uCAAiB;sBAAgD,uCAAiB;;2BAAkE,uCAAiB;;;wBAAwF,qCAAY;sBAAyC,uCAAiB;uBAAgD,uCAAiB;sBAAgD,uCAAiB;;2BAAkE,uCAAiB;;;wBAA2F,qCAAY;sBAAyC,uCAAiB;uBAAgD,uCAAiB;sBAAgD,uCAAiB;;2BAAkE,uCAAiB;;;wBAAwF,qCAAY;sBAAyC,uCAAiB;uBAAgD,uCAAiB;sBAAgD,uCAAiB;;2BAAkE,uCAAiB;;;wBAA2F,qCAAY;sBAAyC,uCAAiB;uBAAgD,uCAAiB;sBAAgD,uCAAiB;;2BAAkE,uCAAiB;;;wBAAwF,qCAAY;sBAAyC,uCAAiB;uBAAgD,uCAAiB;sBAAgD,uCAAiB;;2BAAkE,uCAAiB;;;wBAA2F,qCAAY;sBAAyC,uCAAiB;uBAAgD,uCAAiB;sBAAgD,uCAAiB;;2BAAkE,uCAAiB;;;wBAAwF,qCAAY;sBAAyC,uCAAiB;uBAAgD,uCAAiB;sBAAgD,uCAAiB;;2BAAkE,uCAAiB;;;wBAA2F,qCAAY;sBAAyC,uCAAiB;uBAAgD,uCAAiB;sBAAgD,uCAAiB;;2BAAkE,uCAAiB;;;wBAAwF,qCAAY;sBAAyC,uCAAiB;uBAAgD,uCAAiB;sBAAgD,uCAAiB;;2BAAkE,uCAAiB;;;wBAA2F,qCAAY;sBAAyC,uCAAiB;uBAAgD,uCAAiB;sBAAgD,uCAAiB;;2BAAkE,uCAAiB;;;wBAAwF,qCAAY;sBAAyC,uCAAiB;uBAAgD,uCAAiB;sBAAgD,uCAAiB;;2BAAkE,uCAAiB;;;wBAA2F,qCAAY;sBAAyC,uCAAiB;uBAAgD,uCAAiB;sBAAgD,uCAAiB;;2BAAkE,uCAAiB;;;wBAAwF,qCAAY;sBAAyC,uCAAiB;uBAAgD,uCAAiB;sBAAgD,uCAAiB;;2BAAkE,uCAAiB;;;wBAA2F,qCAAY;sBAAyC,uCAAiB;uBAAgD,uCAAiB;sBAAgD,uCAAiB;;2BAAkE,uCAAiB;;;wBAAwF,qCAAY;sBAAyC,uCAAiB;uBAAgD,uCAAiB;sBAAgD,uCAAiB;;2BAAkE,uCAAiB;;;wBAA2F,qCAAY;sBAAyC,uCAAiB;uBAAgD,uCAAiB;sBAAgD,uCAAiB;;2BAAkE,uCAAiB;;;wBAAwF,qCAAY;sBAAyC,uCAAiB;uBAAgD,uCAAiB;sBAAgD,uCAAiB;;2BAAkE,uCAAiB;;;wBAA2F,qCAAY;sBAAyC,uCAAiB;uBAAgD,uCAAiB;sBAAgD,uCAAiB;;2BAAkE,uCAAiB;;;wBAAwF,qCAAY;sBAAyC,uCAAiB;uBAAgD,uCAAiB;sBAAgD,uCAAiB;;2BAAkE,uCAAiB;;;wBAA2F,qCAAY;sBAAyC,uCAAiB;uBAAgD,uCAAiB;sBAAgD,uCAAiB;;2BAAkE,uCAAiB;;;wBAAwF,qCAAY;sBAAyC,uCAAiB;uBAAgD,uCAAiB;sBAAgD,uCAAiB;;2BAAkE,uCAAiB;oCAP1oZ,CAAC;AAC/E,eAAO,MAAM,MAAM;;yHAAuC,CAAC;AAC3D,eAAO,MAAM,cAAc;;+HAAgD,CAAC;AAC5E,eAAO,MAAM,YAAY;;;;IAA8C,CAAC;AACxE,eAAO,MAAM,YAAY;;4HAA8C,CAAC;AAExE,cAAc,gBAAgB,CAAC"}
@@ -0,0 +1,8 @@
1
+ import { Capabilities, type PluginsContext } from '@dxos/app-framework';
2
+ import { type ClientPluginOptions } from '../types';
3
+ type IntentResolverOptions = Pick<ClientPluginOptions, 'onReset'> & {
4
+ context: PluginsContext;
5
+ };
6
+ declare const _default: ({ context, onReset }: IntentResolverOptions) => import("@dxos/app-framework").Capability<Capabilities.IntentResolver>;
7
+ export default _default;
8
+ //# sourceMappingURL=intent-resolver.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"intent-resolver.d.ts","sourceRoot":"","sources":["../../../../src/capabilities/intent-resolver.ts"],"names":[],"mappings":"AAIA,OAAO,EACL,YAAY,EAKZ,KAAK,cAAc,EACpB,MAAM,qBAAqB,CAAC;AAQ7B,OAAO,EAAgB,KAAK,mBAAmB,EAAE,MAAM,UAAU,CAAC;AAElE,KAAK,qBAAqB,GAAG,IAAI,CAAC,mBAAmB,EAAE,SAAS,CAAC,GAAG;IAClE,OAAO,EAAE,cAAc,CAAC;CACzB,CAAC;+CAEoC,qBAAqB;AAA3D,wBA2EK"}
@@ -0,0 +1,8 @@
1
+ import React from 'react';
2
+ declare const _default: () => import("@dxos/app-framework").Capability<Readonly<{
3
+ id: string;
4
+ dependsOn?: string[];
5
+ context: React.FC<React.PropsWithChildren>;
6
+ }>>;
7
+ export default _default;
8
+ //# sourceMappingURL=react-context.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"react-context.d.ts","sourceRoot":"","sources":["../../../../src/capabilities/react-context.tsx"],"names":[],"mappings":"AAIA,OAAO,KAAK,MAAM,OAAO,CAAC;;;;;;AAQ1B,wBAOK"}
@@ -0,0 +1,7 @@
1
+ import { Capabilities } from '@dxos/app-framework';
2
+ type ReactSurfaceOptions = {
3
+ createInvitationUrl: (invitationCode: string) => string;
4
+ };
5
+ declare const _default: ({ createInvitationUrl }: ReactSurfaceOptions) => import("@dxos/app-framework").Capability<Capabilities.ReactSurface>;
6
+ export default _default;
7
+ //# sourceMappingURL=react-surface.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"react-surface.d.ts","sourceRoot":"","sources":["../../../../src/capabilities/react-surface.tsx"],"names":[],"mappings":"AAMA,OAAO,EAAiB,YAAY,EAAe,MAAM,qBAAqB,CAAC;AAa/E,KAAK,mBAAmB,GAAG;IACzB,mBAAmB,EAAE,CAAC,cAAc,EAAE,MAAM,KAAK,MAAM,CAAC;CACzD,CAAC;kDAEuC,mBAAmB;AAA5D,wBAoBK"}
@@ -0,0 +1,7 @@
1
+ export declare namespace ClientEvents {
2
+ const SetupClient: import("@dxos/app-framework").ActivationEvent;
3
+ const ClientReady: import("@dxos/app-framework").ActivationEvent;
4
+ const IdentityCreated: import("@dxos/app-framework").ActivationEvent;
5
+ const SpacesReady: import("@dxos/app-framework").ActivationEvent;
6
+ }
7
+ //# sourceMappingURL=events.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"events.d.ts","sourceRoot":"","sources":["../../../src/events.ts"],"names":[],"mappings":"AAQA,yBAAiB,YAAY,CAAC;IACrB,MAAM,WAAW,+CAAqD,CAAC;IACvE,MAAM,WAAW,+CAAqD,CAAC;IACvE,MAAM,eAAe,+CAAyD,CAAC;IAC/E,MAAM,WAAW,+CAAqD,CAAC;CAC/E"}
@@ -1,4 +1,5 @@
1
- import { ClientPlugin } from './ClientPlugin';
2
- export default ClientPlugin;
3
1
  export * from './ClientPlugin';
2
+ export * from './meta';
3
+ export { ClientCapabilities } from './capabilities';
4
+ export { ClientEvents } from './events';
4
5
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/index.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAE9C,eAAe,YAAY,CAAC;AAE5B,cAAc,gBAAgB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/index.ts"],"names":[],"mappings":"AAIA,cAAc,gBAAgB,CAAC;AAC/B,cAAc,QAAQ,CAAC;AAEvB,OAAO,EAAE,kBAAkB,EAAE,MAAM,gBAAgB,CAAC;AACpD,OAAO,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC"}
@@ -1,7 +1,6 @@
1
1
  export declare const CLIENT_PLUGIN = "dxos.org/plugin/client";
2
- declare const _default: {
2
+ export declare const meta: {
3
3
  id: string;
4
4
  name: string;
5
5
  };
6
- export default _default;
7
6
  //# sourceMappingURL=meta.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"meta.d.ts","sourceRoot":"","sources":["../../../src/meta.ts"],"names":[],"mappings":"AAMA,eAAO,MAAM,aAAa,2BAA2B,CAAC;;;;;AAEtD,wBAGuB"}
1
+ {"version":3,"file":"meta.d.ts","sourceRoot":"","sources":["../../../src/meta.ts"],"names":[],"mappings":"AAMA,eAAO,MAAM,aAAa,2BAA2B,CAAC;AAEtD,eAAO,MAAM,IAAI;;;CAGK,CAAC"}
@@ -1,6 +1,7 @@
1
- import { type GraphBuilderProvides, type IntentResolverProvides, type Plugin, type SurfaceProvides, type TranslationsProvides } from '@dxos/app-framework';
1
+ import { type PluginsContext } from '@dxos/app-framework';
2
2
  import { S } from '@dxos/echo-schema';
3
- import { Client, PublicKey, type ClientOptions } from '@dxos/react-client';
3
+ import { type Client, PublicKey, type ClientOptions } from '@dxos/react-client';
4
+ import { type MaybePromise } from '@dxos/util';
4
5
  export declare namespace ClientAction {
5
6
  const CreateIdentity_base: S.TaggedClass<CreateIdentity, "dxos.org/plugin/client/action/create-identity", {
6
7
  readonly _tag: S.tag<"dxos.org/plugin/client/action/create-identity">;
@@ -75,10 +76,6 @@ export declare namespace ClientAction {
75
76
  export {};
76
77
  }
77
78
  export type ClientPluginOptions = ClientOptions & {
78
- /**
79
- * Used to track app-specific state in spaces.
80
- */
81
- appKey: string;
82
79
  /**
83
80
  * Base URL for the invitation link.
84
81
  */
@@ -90,21 +87,12 @@ export type ClientPluginOptions = ClientOptions & {
90
87
  /**
91
88
  * Run after the client has been initialized.
92
89
  */
93
- onClientInitialized?: (client: Client) => Promise<void>;
94
- /**
95
- * Run after the identity has been successfully initialized.
96
- * Run with client during plugin ready phase.
97
- */
98
- onReady?: (client: Client, plugins: Plugin[]) => Promise<void>;
90
+ onClientInitialized?: (context: PluginsContext, client: Client) => MaybePromise<void>;
99
91
  /**
100
92
  * Called when the client is reset.
101
93
  */
102
94
  onReset?: (params: {
103
95
  target?: string;
104
- }) => Promise<void>;
105
- };
106
- export type ClientPluginProvides = IntentResolverProvides & GraphBuilderProvides & SurfaceProvides & TranslationsProvides & {
107
- client: Client;
96
+ }) => MaybePromise<void>;
108
97
  };
109
- export declare const parseClientPlugin: (plugin?: Plugin) => Plugin<ClientPluginProvides> | undefined;
110
98
  //# sourceMappingURL=types.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/types.ts"],"names":[],"mappings":"AAIA,OAAO,EACL,KAAK,oBAAoB,EACzB,KAAK,sBAAsB,EAC3B,KAAK,MAAM,EACX,KAAK,eAAe,EACpB,KAAK,oBAAoB,EAC1B,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAAE,CAAC,EAAE,MAAM,mBAAmB,CAAC;AACtC,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,KAAK,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAkB3E,yBAAiB,YAAY,CAAC;;;;;;;;;;;;;;;;;IAC5B,MAAM,OAAO,cAAe,SAAQ,mBAKlC;KAAG;;;;;;;;;IAEL,MAAM,OAAO,YAAa,SAAQ,iBAKhC;KAAG;;;;;;;IAEL,MAAM,OAAO,aAAc,SAAQ,kBAGjC;KAAG;;;;;;;IAEL,MAAM,OAAO,eAAgB,SAAQ,oBAGnC;KAAG;;;;;;;;;IAEL,MAAM,OAAO,YAAa,SAAQ,iBAKhC;KAAG;;;;;;;IAEL,MAAM,OAAO,WAAY,SAAQ,gBAG/B;KAAG;;;;;;;IAEL,MAAM,OAAO,kBAAmB,SAAQ,uBAGtC;KAAG;;CACN;AAED,MAAM,MAAM,mBAAmB,GAAG,aAAa,GAAG;IAChD;;OAEG;IACH,MAAM,EAAE,MAAM,CAAC;IAEf;;OAEG;IACH,aAAa,CAAC,EAAE,MAAM,CAAC;IAEvB;;OAEG;IACH,eAAe,CAAC,EAAE,MAAM,CAAC;IAEzB;;OAEG;IACH,mBAAmB,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IAExD;;;OAGG;IACH,OAAO,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IAE/D;;OAEG;IACH,OAAO,CAAC,EAAE,CAAC,MAAM,EAAE;QAAE,MAAM,CAAC,EAAE,MAAM,CAAA;KAAE,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;CAC1D,CAAC;AAEF,MAAM,MAAM,oBAAoB,GAAG,sBAAsB,GACvD,oBAAoB,GACpB,eAAe,GACf,oBAAoB,GAAG;IACrB,MAAM,EAAE,MAAM,CAAC;CAChB,CAAC;AAEJ,eAAO,MAAM,iBAAiB,YAAa,MAAM,6CAC0D,CAAC"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/types.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,KAAK,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAC1D,OAAO,EAAE,CAAC,EAAE,MAAM,mBAAmB,CAAC;AACtC,OAAO,EAAE,KAAK,MAAM,EAAE,SAAS,EAAE,KAAK,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAChF,OAAO,EAAE,KAAK,YAAY,EAAE,MAAM,YAAY,CAAC;AAkB/C,yBAAiB,YAAY,CAAC;;;;;;;;;;;;;;;;;IAC5B,MAAM,OAAO,cAAe,SAAQ,mBAKlC;KAAG;;;;;;;;;IAEL,MAAM,OAAO,YAAa,SAAQ,iBAKhC;KAAG;;;;;;;IAEL,MAAM,OAAO,aAAc,SAAQ,kBAGjC;KAAG;;;;;;;IAEL,MAAM,OAAO,eAAgB,SAAQ,oBAGnC;KAAG;;;;;;;;;IAEL,MAAM,OAAO,YAAa,SAAQ,iBAKhC;KAAG;;;;;;;IAEL,MAAM,OAAO,WAAY,SAAQ,gBAG/B;KAAG;;;;;;;IAEL,MAAM,OAAO,kBAAmB,SAAQ,uBAGtC;KAAG;;CACN;AAED,MAAM,MAAM,mBAAmB,GAAG,aAAa,GAAG;IAChD;;OAEG;IACH,aAAa,CAAC,EAAE,MAAM,CAAC;IAEvB;;OAEG;IACH,eAAe,CAAC,EAAE,MAAM,CAAC;IAEzB;;OAEG;IACH,mBAAmB,CAAC,EAAE,CAAC,OAAO,EAAE,cAAc,EAAE,MAAM,EAAE,MAAM,KAAK,YAAY,CAAC,IAAI,CAAC,CAAC;IAEtF;;OAEG;IACH,OAAO,CAAC,EAAE,CAAC,MAAM,EAAE;QAAE,MAAM,CAAC,EAAE,MAAM,CAAA;KAAE,KAAK,YAAY,CAAC,IAAI,CAAC,CAAC;CAC/D,CAAC"}
@@ -1 +1 @@
1
- {"version":"5.7.2"}
1
+ {"version":"5.7.3"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@dxos/plugin-client",
3
- "version": "0.7.5-main.9cb18ac",
3
+ "version": "0.7.5-main.9d2a38b",
4
4
  "description": "DXOS Surface plugin for DXOS Client",
5
5
  "homepage": "https://dxos.org",
6
6
  "bugs": "https://github.com/dxos/dxos/issues",
@@ -13,11 +13,6 @@
13
13
  "browser": "./dist/lib/browser/index.mjs",
14
14
  "node": "./dist/lib/node-esm/index.mjs"
15
15
  },
16
- "./meta": {
17
- "types": "./dist/types/src/meta.d.ts",
18
- "browser": "./dist/lib/browser/meta.mjs",
19
- "node": "./dist/lib/node-esm/meta.mjs"
20
- },
21
16
  "./types": {
22
17
  "types": "./dist/types/src/types.d.ts",
23
18
  "browser": "./dist/lib/browser/types.mjs",
@@ -27,9 +22,6 @@
27
22
  "types": "dist/types/src/index.d.ts",
28
23
  "typesVersions": {
29
24
  "*": {
30
- "meta": [
31
- "dist/types/src/meta.d.ts"
32
- ],
33
25
  "types": [
34
26
  "dist/types/src/types.d.ts"
35
27
  ]
@@ -41,18 +33,19 @@
41
33
  ],
42
34
  "dependencies": {
43
35
  "@phosphor-icons/react": "^2.1.5",
44
- "@dxos/app-framework": "0.7.5-main.9cb18ac",
45
- "@dxos/echo-schema": "0.7.5-main.9cb18ac",
46
- "@dxos/echo-signals": "0.7.5-main.9cb18ac",
47
- "@dxos/invariant": "0.7.5-main.9cb18ac",
48
- "@dxos/local-storage": "0.7.5-main.9cb18ac",
49
- "@dxos/config": "0.7.5-main.9cb18ac",
50
- "@dxos/plugin-graph": "0.7.5-main.9cb18ac",
51
- "@dxos/log": "0.7.5-main.9cb18ac",
52
- "@dxos/react-client": "0.7.5-main.9cb18ac",
53
- "@dxos/plugin-observability": "0.7.5-main.9cb18ac",
54
- "@dxos/react-ui": "0.7.5-main.9cb18ac",
55
- "@dxos/shell": "0.7.5-main.9cb18ac"
36
+ "@dxos/app-framework": "0.7.5-main.9d2a38b",
37
+ "@dxos/config": "0.7.5-main.9d2a38b",
38
+ "@dxos/echo-schema": "0.7.5-main.9d2a38b",
39
+ "@dxos/echo-signals": "0.7.5-main.9d2a38b",
40
+ "@dxos/log": "0.7.5-main.9d2a38b",
41
+ "@dxos/local-storage": "0.7.5-main.9d2a38b",
42
+ "@dxos/invariant": "0.7.5-main.9d2a38b",
43
+ "@dxos/plugin-graph": "0.7.5-main.9d2a38b",
44
+ "@dxos/plugin-observability": "0.7.5-main.9d2a38b",
45
+ "@dxos/react-client": "0.7.5-main.9d2a38b",
46
+ "@dxos/react-ui": "0.7.5-main.9d2a38b",
47
+ "@dxos/shell": "0.7.5-main.9d2a38b",
48
+ "@dxos/util": "0.7.5-main.9d2a38b"
56
49
  },
57
50
  "devDependencies": {
58
51
  "@types/react": "~18.2.0",
@@ -60,7 +53,7 @@
60
53
  "react": "~18.2.0",
61
54
  "react-dom": "~18.2.0",
62
55
  "vite": "5.4.7",
63
- "@dxos/storybook-utils": "0.7.5-main.9cb18ac"
56
+ "@dxos/storybook-utils": "0.7.5-main.9d2a38b"
64
57
  },
65
58
  "peerDependencies": {
66
59
  "@phosphor-icons/react": "^2.1.5",
@@ -0,0 +1,59 @@
1
+ //
2
+ // Copyright 2025 DXOS.org
3
+ //
4
+
5
+ import { Capabilities, contributes, defineModule, definePlugin, Events } from '@dxos/app-framework';
6
+
7
+ import { Client, AppGraphBuilder, IntentResolver, ReactContext, ReactSurface } from './capabilities';
8
+ import { ClientEvents } from './events';
9
+ import { meta } from './meta';
10
+ import translations from './translations';
11
+ import { type ClientPluginOptions } from './types';
12
+
13
+ export const ClientPlugin = ({
14
+ invitationUrl = window.location.origin,
15
+ invitationParam = 'deviceInvitationCode',
16
+ onReset,
17
+ ...options
18
+ }: ClientPluginOptions) => {
19
+ const createInvitationUrl = (invitationCode: string) => {
20
+ const baseUrl = new URL(invitationUrl);
21
+ baseUrl.searchParams.set(invitationParam, invitationCode);
22
+ return baseUrl.toString();
23
+ };
24
+
25
+ return definePlugin(meta, [
26
+ defineModule({
27
+ id: `${meta.id}/module/client`,
28
+ activatesOn: Events.Startup,
29
+ activatesBefore: [ClientEvents.SetupClient],
30
+ activatesAfter: [ClientEvents.ClientReady],
31
+ activate: (context) => Client({ ...options, context }),
32
+ }),
33
+ defineModule({
34
+ id: `${meta.id}/module/react-context`,
35
+ activatesOn: Events.Startup,
36
+ activate: ReactContext,
37
+ }),
38
+ defineModule({
39
+ id: `${meta.id}/module/react-surface`,
40
+ activatesOn: Events.Startup,
41
+ activate: () => ReactSurface({ createInvitationUrl }),
42
+ }),
43
+ defineModule({
44
+ id: `${meta.id}/module/app-graph-builder`,
45
+ activatesOn: Events.SetupAppGraph,
46
+ activate: AppGraphBuilder,
47
+ }),
48
+ defineModule({
49
+ id: `${meta.id}/module/intent-resolver`,
50
+ activatesOn: Events.SetupIntents,
51
+ activate: (context) => IntentResolver({ context, onReset }),
52
+ }),
53
+ defineModule({
54
+ id: `${meta.id}/module/translations`,
55
+ activatesOn: Events.SetupTranslations,
56
+ activate: () => contributes(Capabilities.Translations, translations),
57
+ }),
58
+ ]);
59
+ };
@@ -0,0 +1,39 @@
1
+ //
2
+ // Copyright 2025 DXOS.org
3
+ //
4
+
5
+ import { createIntent } from '@dxos/app-framework';
6
+ import { Capabilities, contributes, type PluginsContext } from '@dxos/app-framework';
7
+ import { createExtension, type Node } from '@dxos/plugin-graph';
8
+
9
+ import { CLIENT_PLUGIN } from '../meta';
10
+ import { ClientAction } from '../types';
11
+
12
+ export default (context: PluginsContext) =>
13
+ contributes(
14
+ Capabilities.AppGraphBuilder,
15
+ createExtension({
16
+ id: CLIENT_PLUGIN,
17
+ filter: (node): node is Node<null> => node.id === 'root',
18
+ actions: () => [
19
+ {
20
+ id: `${CLIENT_PLUGIN}/open-shell`,
21
+ data: async () => {
22
+ const { dispatchPromise: dispatch } = context.requestCapability(Capabilities.IntentDispatcher);
23
+ await dispatch(createIntent(ClientAction.ShareIdentity));
24
+ },
25
+ properties: {
26
+ label: ['open shell label', { ns: CLIENT_PLUGIN }],
27
+ icon: 'ph--address-book--regular',
28
+ keyBinding: {
29
+ macos: 'meta+shift+.',
30
+ // TODO(wittjosiah): Test on windows to see if it behaves the same as linux.
31
+ windows: 'alt+shift+.',
32
+ linux: 'alt+shift+>',
33
+ },
34
+ testId: 'clientPlugin.openShell',
35
+ },
36
+ },
37
+ ],
38
+ }),
39
+ );
@@ -0,0 +1,15 @@
1
+ //
2
+ // Copyright 2025 DXOS.org
3
+ //
4
+
5
+ import { defineCapability } from '@dxos/app-framework';
6
+ import { type TypedObject } from '@dxos/echo-schema';
7
+ import { type Client } from '@dxos/react-client';
8
+
9
+ import { CLIENT_PLUGIN } from '../meta';
10
+
11
+ export namespace ClientCapabilities {
12
+ export const Client = defineCapability<Client>(`${CLIENT_PLUGIN}/capability/client`);
13
+ export const Schema = defineCapability<TypedObject[]>(`${CLIENT_PLUGIN}/capability/schema`);
14
+ export const SystemSchema = defineCapability<TypedObject[]>(`${CLIENT_PLUGIN}/capability/system-schema`);
15
+ }
@@ -0,0 +1,48 @@
1
+ //
2
+ // Copyright 2025 DXOS.org
3
+ //
4
+
5
+ import { contributes, type PluginsContext } from '@dxos/app-framework';
6
+ import { Config, Defaults, Envs, Local, Storage } from '@dxos/config';
7
+ import { Client } from '@dxos/react-client';
8
+
9
+ import { ClientCapabilities } from './capabilities';
10
+ import { ClientEvents } from '../events';
11
+ import { type ClientPluginOptions } from '../types';
12
+
13
+ type ClientCapabilityOptions = Omit<ClientPluginOptions, 'appKey' | 'invitationUrl' | 'invitationParam' | 'onReset'> & {
14
+ context: PluginsContext;
15
+ };
16
+
17
+ export default async ({ context, onClientInitialized, ...options }: ClientCapabilityOptions) => {
18
+ const config = new Config(await Storage(), Envs(), Local(), Defaults());
19
+ const client = new Client({ config, ...options });
20
+
21
+ await client.initialize();
22
+ await onClientInitialized?.(context, client);
23
+
24
+ const systemSchemas = Array.from(new Set(context.requestCapabilities(ClientCapabilities.SystemSchema).flat()));
25
+ const schemas = Array.from(new Set(context.requestCapabilities(ClientCapabilities.Schema).flat()));
26
+ client.addTypes(systemSchemas);
27
+ client.addTypes(schemas);
28
+
29
+ // TODO(wittjosiah): Remove. This is a hack to get the app to boot with the new identity after a reset.
30
+ client.reloaded.on(() => {
31
+ client.halo.identity.subscribe(async (identity) => {
32
+ if (identity) {
33
+ window.location.href = window.location.origin;
34
+ }
35
+ });
36
+ });
37
+
38
+ const subscription = client.spaces.isReady.subscribe(async (ready) => {
39
+ if (ready) {
40
+ await context.activate(ClientEvents.SpacesReady);
41
+ }
42
+ });
43
+
44
+ return contributes(ClientCapabilities.Client, client, async () => {
45
+ subscription.unsubscribe();
46
+ await client.destroy();
47
+ });
48
+ };
@@ -0,0 +1,13 @@
1
+ //
2
+ // Copyright 2025 DXOS.org
3
+ //
4
+
5
+ import { lazy } from '@dxos/app-framework';
6
+
7
+ export const AppGraphBuilder = lazy(async () => import('./app-graph-builder'));
8
+ export const Client = lazy(async () => import('./client'));
9
+ export const IntentResolver = lazy(async () => import('./intent-resolver'));
10
+ export const ReactContext = lazy(async () => import('./react-context'));
11
+ export const ReactSurface = lazy(async () => import('./react-surface'));
12
+
13
+ export * from './capabilities';