@dxos/plugin-client 0.8.4-main.1f223c7 → 0.8.4-main.2244d791bb

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 (400) hide show
  1. package/dist/lib/browser/app-graph-builder-DTETNB5U.mjs +119 -0
  2. package/dist/lib/browser/app-graph-builder-DTETNB5U.mjs.map +7 -0
  3. package/dist/lib/browser/chunk-4BZGRIFS.mjs +293 -0
  4. package/dist/lib/browser/chunk-4BZGRIFS.mjs.map +7 -0
  5. package/dist/lib/browser/chunk-G7C3S2BE.mjs +15 -0
  6. package/dist/lib/browser/chunk-G7C3S2BE.mjs.map +7 -0
  7. package/dist/lib/browser/chunk-MY6BJCB6.mjs +18 -0
  8. package/dist/lib/browser/chunk-MY6BJCB6.mjs.map +7 -0
  9. package/dist/lib/browser/cli/index.mjs +1049 -0
  10. package/dist/lib/browser/cli/index.mjs.map +7 -0
  11. package/dist/lib/browser/client-XOQQ5POJ.mjs +86 -0
  12. package/dist/lib/browser/client-XOQQ5POJ.mjs.map +7 -0
  13. package/dist/lib/browser/index.mjs +77 -82
  14. package/dist/lib/browser/index.mjs.map +4 -4
  15. package/dist/lib/browser/meta.json +1 -1
  16. package/dist/lib/browser/migrations-YNQ7L5GT.mjs +24 -0
  17. package/dist/lib/browser/migrations-YNQ7L5GT.mjs.map +7 -0
  18. package/dist/lib/browser/operation-resolver-N4YCJ4KS.mjs +299 -0
  19. package/dist/lib/browser/operation-resolver-N4YCJ4KS.mjs.map +7 -0
  20. package/dist/lib/browser/react-context-FDXHIBZL.mjs +24 -0
  21. package/dist/lib/browser/react-context-FDXHIBZL.mjs.map +7 -0
  22. package/dist/lib/browser/react-surface-ZP3FLVRS.mjs +676 -0
  23. package/dist/lib/browser/react-surface-ZP3FLVRS.mjs.map +7 -0
  24. package/dist/lib/browser/schema-defs-AYXOYD2M.mjs +27 -0
  25. package/dist/lib/browser/schema-defs-AYXOYD2M.mjs.map +7 -0
  26. package/dist/lib/browser/types/index.mjs +9 -4
  27. package/dist/lib/node-esm/app-graph-builder-PFKVFRXI.mjs +120 -0
  28. package/dist/lib/node-esm/app-graph-builder-PFKVFRXI.mjs.map +7 -0
  29. package/dist/lib/node-esm/chunk-JAF64TFQ.mjs +295 -0
  30. package/dist/lib/node-esm/chunk-JAF64TFQ.mjs.map +7 -0
  31. package/dist/lib/node-esm/chunk-MUOMX53G.mjs +20 -0
  32. package/dist/lib/node-esm/chunk-MUOMX53G.mjs.map +7 -0
  33. package/dist/lib/node-esm/chunk-PRAFFO54.mjs +16 -0
  34. package/dist/lib/node-esm/chunk-PRAFFO54.mjs.map +7 -0
  35. package/dist/lib/node-esm/cli/index.mjs +1050 -0
  36. package/dist/lib/node-esm/cli/index.mjs.map +7 -0
  37. package/dist/lib/node-esm/client-3YIMWKR7.mjs +87 -0
  38. package/dist/lib/node-esm/client-3YIMWKR7.mjs.map +7 -0
  39. package/dist/lib/node-esm/index.mjs +77 -82
  40. package/dist/lib/node-esm/index.mjs.map +4 -4
  41. package/dist/lib/node-esm/meta.json +1 -1
  42. package/dist/lib/node-esm/migrations-ZH5GNG4U.mjs +25 -0
  43. package/dist/lib/node-esm/migrations-ZH5GNG4U.mjs.map +7 -0
  44. package/dist/lib/node-esm/operation-resolver-CHGWI5P2.mjs +300 -0
  45. package/dist/lib/node-esm/operation-resolver-CHGWI5P2.mjs.map +7 -0
  46. package/dist/lib/node-esm/react-context-7Z2TVUTV.mjs +25 -0
  47. package/dist/lib/node-esm/react-context-7Z2TVUTV.mjs.map +7 -0
  48. package/dist/lib/node-esm/react-surface-BHJMHIMH.mjs +677 -0
  49. package/dist/lib/node-esm/react-surface-BHJMHIMH.mjs.map +7 -0
  50. package/dist/lib/node-esm/schema-defs-TV2SCKSH.mjs +28 -0
  51. package/dist/lib/node-esm/schema-defs-TV2SCKSH.mjs.map +7 -0
  52. package/dist/lib/node-esm/types/index.mjs +9 -4
  53. package/dist/types/src/ClientPlugin.d.ts +2 -1
  54. package/dist/types/src/ClientPlugin.d.ts.map +1 -1
  55. package/dist/types/src/capabilities/app-graph-builder/app-graph-builder.d.ts +6 -0
  56. package/dist/types/src/capabilities/app-graph-builder/app-graph-builder.d.ts.map +1 -0
  57. package/dist/types/src/capabilities/app-graph-builder/index.d.ts +3 -0
  58. package/dist/types/src/capabilities/app-graph-builder/index.d.ts.map +1 -0
  59. package/dist/types/src/capabilities/client/client.d.ts +8 -0
  60. package/dist/types/src/capabilities/client/client.d.ts.map +1 -0
  61. package/dist/types/src/capabilities/client/index.d.ts +18 -0
  62. package/dist/types/src/capabilities/client/index.d.ts.map +1 -0
  63. package/dist/types/src/capabilities/index.d.ts +7 -19
  64. package/dist/types/src/capabilities/index.d.ts.map +1 -1
  65. package/dist/types/src/capabilities/migrations/index.d.ts +3 -0
  66. package/dist/types/src/capabilities/migrations/index.d.ts.map +1 -0
  67. package/dist/types/src/capabilities/migrations/migrations.d.ts +5 -0
  68. package/dist/types/src/capabilities/migrations/migrations.d.ts.map +1 -0
  69. package/dist/types/src/capabilities/operation-resolver/index.d.ts +5 -0
  70. package/dist/types/src/capabilities/operation-resolver/index.d.ts.map +1 -0
  71. package/dist/types/src/capabilities/operation-resolver/operation-resolver.d.ts +8 -0
  72. package/dist/types/src/capabilities/operation-resolver/operation-resolver.d.ts.map +1 -0
  73. package/dist/types/src/capabilities/react-context/index.d.ts +7 -0
  74. package/dist/types/src/capabilities/react-context/index.d.ts.map +1 -0
  75. package/dist/types/src/capabilities/react-context/react-context.d.ts +10 -0
  76. package/dist/types/src/capabilities/react-context/react-context.d.ts.map +1 -0
  77. package/dist/types/src/capabilities/react-surface/index.d.ts +5 -0
  78. package/dist/types/src/capabilities/react-surface/index.d.ts.map +1 -0
  79. package/dist/types/src/capabilities/react-surface/react-surface.d.ts +9 -0
  80. package/dist/types/src/capabilities/react-surface/react-surface.d.ts.map +1 -0
  81. package/dist/types/src/capabilities/schema-defs/index.d.ts +3 -0
  82. package/dist/types/src/capabilities/schema-defs/index.d.ts.map +1 -0
  83. package/dist/types/src/capabilities/schema-defs/schema-defs.d.ts +5 -0
  84. package/dist/types/src/capabilities/schema-defs/schema-defs.d.ts.map +1 -0
  85. package/dist/types/src/cli/commands/config/index.d.ts +5 -0
  86. package/dist/types/src/cli/commands/config/index.d.ts.map +1 -0
  87. package/dist/types/src/cli/commands/config/view.d.ts +5 -0
  88. package/dist/types/src/cli/commands/config/view.d.ts.map +1 -0
  89. package/dist/types/src/cli/commands/device/index.d.ts +7 -0
  90. package/dist/types/src/cli/commands/device/index.d.ts.map +1 -0
  91. package/dist/types/src/cli/commands/device/info/index.d.ts +2 -0
  92. package/dist/types/src/cli/commands/device/info/index.d.ts.map +1 -0
  93. package/dist/types/src/cli/commands/device/info/info.d.ts +7 -0
  94. package/dist/types/src/cli/commands/device/info/info.d.ts.map +1 -0
  95. package/dist/types/src/cli/commands/device/info/info.test.d.ts +2 -0
  96. package/dist/types/src/cli/commands/device/info/info.test.d.ts.map +1 -0
  97. package/dist/types/src/cli/commands/device/list/index.d.ts +2 -0
  98. package/dist/types/src/cli/commands/device/list/index.d.ts.map +1 -0
  99. package/dist/types/src/cli/commands/device/list/list.d.ts +7 -0
  100. package/dist/types/src/cli/commands/device/list/list.d.ts.map +1 -0
  101. package/dist/types/src/cli/commands/device/list/list.test.d.ts +2 -0
  102. package/dist/types/src/cli/commands/device/list/list.test.d.ts.map +1 -0
  103. package/dist/types/src/cli/commands/device/update/index.d.ts +2 -0
  104. package/dist/types/src/cli/commands/device/update/index.d.ts.map +1 -0
  105. package/dist/types/src/cli/commands/device/update/update.d.ts +11 -0
  106. package/dist/types/src/cli/commands/device/update/update.d.ts.map +1 -0
  107. package/dist/types/src/cli/commands/device/util.d.ts +16 -0
  108. package/dist/types/src/cli/commands/device/util.d.ts.map +1 -0
  109. package/dist/types/src/cli/commands/edge/index.d.ts +5 -0
  110. package/dist/types/src/cli/commands/edge/index.d.ts.map +1 -0
  111. package/dist/types/src/cli/commands/edge/status.d.ts +7 -0
  112. package/dist/types/src/cli/commands/edge/status.d.ts.map +1 -0
  113. package/dist/types/src/cli/commands/halo/create/create.d.ts +15 -0
  114. package/dist/types/src/cli/commands/halo/create/create.d.ts.map +1 -0
  115. package/dist/types/src/cli/commands/halo/create/create.test.d.ts +2 -0
  116. package/dist/types/src/cli/commands/halo/create/create.test.d.ts.map +1 -0
  117. package/dist/types/src/cli/commands/halo/create/index.d.ts +2 -0
  118. package/dist/types/src/cli/commands/halo/create/index.d.ts.map +1 -0
  119. package/dist/types/src/cli/commands/halo/credential/add/add.d.ts +13 -0
  120. package/dist/types/src/cli/commands/halo/credential/add/add.d.ts.map +1 -0
  121. package/dist/types/src/cli/commands/halo/credential/add/index.d.ts +2 -0
  122. package/dist/types/src/cli/commands/halo/credential/add/index.d.ts.map +1 -0
  123. package/dist/types/src/cli/commands/halo/credential/index.d.ts +12 -0
  124. package/dist/types/src/cli/commands/halo/credential/index.d.ts.map +1 -0
  125. package/dist/types/src/cli/commands/halo/credential/list/index.d.ts +2 -0
  126. package/dist/types/src/cli/commands/halo/credential/list/index.d.ts.map +1 -0
  127. package/dist/types/src/cli/commands/halo/credential/list/list.d.ts +19 -0
  128. package/dist/types/src/cli/commands/halo/credential/list/list.d.ts.map +1 -0
  129. package/dist/types/src/cli/commands/halo/credential/list/list.test.d.ts +2 -0
  130. package/dist/types/src/cli/commands/halo/credential/list/list.test.d.ts.map +1 -0
  131. package/dist/types/src/cli/commands/halo/identity/identity.d.ts +7 -0
  132. package/dist/types/src/cli/commands/halo/identity/identity.d.ts.map +1 -0
  133. package/dist/types/src/cli/commands/halo/identity/identity.test.d.ts +2 -0
  134. package/dist/types/src/cli/commands/halo/identity/identity.test.d.ts.map +1 -0
  135. package/dist/types/src/cli/commands/halo/identity/index.d.ts +2 -0
  136. package/dist/types/src/cli/commands/halo/identity/index.d.ts.map +1 -0
  137. package/dist/types/src/cli/commands/halo/index.d.ts +3 -0
  138. package/dist/types/src/cli/commands/halo/index.d.ts.map +1 -0
  139. package/dist/types/src/cli/commands/halo/join/index.d.ts +2 -0
  140. package/dist/types/src/cli/commands/halo/join/index.d.ts.map +1 -0
  141. package/dist/types/src/cli/commands/halo/join/join.d.ts +8 -0
  142. package/dist/types/src/cli/commands/halo/join/join.d.ts.map +1 -0
  143. package/dist/types/src/cli/commands/halo/join/join.test.d.ts +2 -0
  144. package/dist/types/src/cli/commands/halo/join/join.test.d.ts.map +1 -0
  145. package/dist/types/src/cli/commands/halo/keys/index.d.ts +2 -0
  146. package/dist/types/src/cli/commands/halo/keys/index.d.ts.map +1 -0
  147. package/dist/types/src/cli/commands/halo/keys/keys.d.ts +7 -0
  148. package/dist/types/src/cli/commands/halo/keys/keys.d.ts.map +1 -0
  149. package/dist/types/src/cli/commands/halo/keys/keys.test.d.ts +2 -0
  150. package/dist/types/src/cli/commands/halo/keys/keys.test.d.ts.map +1 -0
  151. package/dist/types/src/cli/commands/halo/recover/index.d.ts +2 -0
  152. package/dist/types/src/cli/commands/halo/recover/index.d.ts.map +1 -0
  153. package/dist/types/src/cli/commands/halo/recover/recover.d.ts +7 -0
  154. package/dist/types/src/cli/commands/halo/recover/recover.d.ts.map +1 -0
  155. package/dist/types/src/cli/commands/halo/recover/recover.test.d.ts +2 -0
  156. package/dist/types/src/cli/commands/halo/recover/recover.test.d.ts.map +1 -0
  157. package/dist/types/src/cli/commands/halo/seed/index.d.ts +2 -0
  158. package/dist/types/src/cli/commands/halo/seed/index.d.ts.map +1 -0
  159. package/dist/types/src/cli/commands/halo/seed/seed.d.ts +7 -0
  160. package/dist/types/src/cli/commands/halo/seed/seed.d.ts.map +1 -0
  161. package/dist/types/src/cli/commands/halo/share/index.d.ts +2 -0
  162. package/dist/types/src/cli/commands/halo/share/index.d.ts.map +1 -0
  163. package/dist/types/src/cli/commands/halo/share/share.d.ts +15 -0
  164. package/dist/types/src/cli/commands/halo/share/share.d.ts.map +1 -0
  165. package/dist/types/src/cli/commands/halo/update/index.d.ts +2 -0
  166. package/dist/types/src/cli/commands/halo/update/index.d.ts.map +1 -0
  167. package/dist/types/src/cli/commands/halo/update/update.d.ts +11 -0
  168. package/dist/types/src/cli/commands/halo/update/update.d.ts.map +1 -0
  169. package/dist/types/src/cli/commands/halo/update/update.test.d.ts +2 -0
  170. package/dist/types/src/cli/commands/halo/update/update.test.d.ts.map +1 -0
  171. package/dist/types/src/cli/commands/halo/util.d.ts +13 -0
  172. package/dist/types/src/cli/commands/halo/util.d.ts.map +1 -0
  173. package/dist/types/src/cli/commands/index.d.ts +6 -0
  174. package/dist/types/src/cli/commands/index.d.ts.map +1 -0
  175. package/dist/types/src/cli/commands/profile/create.d.ts +9 -0
  176. package/dist/types/src/cli/commands/profile/create.d.ts.map +1 -0
  177. package/dist/types/src/cli/commands/profile/delete.d.ts +8 -0
  178. package/dist/types/src/cli/commands/profile/delete.d.ts.map +1 -0
  179. package/dist/types/src/cli/commands/profile/import.d.ts +17 -0
  180. package/dist/types/src/cli/commands/profile/import.d.ts.map +1 -0
  181. package/dist/types/src/cli/commands/profile/index.d.ts +19 -0
  182. package/dist/types/src/cli/commands/profile/index.d.ts.map +1 -0
  183. package/dist/types/src/cli/commands/profile/inspect.d.ts +13 -0
  184. package/dist/types/src/cli/commands/profile/inspect.d.ts.map +1 -0
  185. package/dist/types/src/cli/commands/profile/list.d.ts +6 -0
  186. package/dist/types/src/cli/commands/profile/list.d.ts.map +1 -0
  187. package/dist/types/src/cli/commands/profile/reset.d.ts +8 -0
  188. package/dist/types/src/cli/commands/profile/reset.d.ts.map +1 -0
  189. package/dist/types/src/cli/commands/profile/util.d.ts +24 -0
  190. package/dist/types/src/cli/commands/profile/util.d.ts.map +1 -0
  191. package/dist/types/src/cli/index.d.ts +2 -0
  192. package/dist/types/src/cli/index.d.ts.map +1 -0
  193. package/dist/types/src/cli/plugin.d.ts +4 -0
  194. package/dist/types/src/cli/plugin.d.ts.map +1 -0
  195. package/dist/types/src/cli/testing/test-console.d.ts +37 -0
  196. package/dist/types/src/cli/testing/test-console.d.ts.map +1 -0
  197. package/dist/types/src/components/DevicesContainer.d.ts.map +1 -1
  198. package/dist/types/src/components/DevicesContainer.stories.d.ts +3 -51
  199. package/dist/types/src/components/DevicesContainer.stories.d.ts.map +1 -1
  200. package/dist/types/src/components/JoinDialog.d.ts +0 -1
  201. package/dist/types/src/components/JoinDialog.d.ts.map +1 -1
  202. package/dist/types/src/components/ProfileContainer.d.ts.map +1 -1
  203. package/dist/types/src/components/ProfileContainer.stories.d.ts +1 -48
  204. package/dist/types/src/components/ProfileContainer.stories.d.ts.map +1 -1
  205. package/dist/types/src/components/RecoveryCodeDialog.d.ts +0 -1
  206. package/dist/types/src/components/RecoveryCodeDialog.d.ts.map +1 -1
  207. package/dist/types/src/components/RecoveryCodeDialog.stories.d.ts +1 -48
  208. package/dist/types/src/components/RecoveryCodeDialog.stories.d.ts.map +1 -1
  209. package/dist/types/src/components/RecoveryCredentialsContainer.d.ts +1 -1
  210. package/dist/types/src/components/RecoveryCredentialsContainer.d.ts.map +1 -1
  211. package/dist/types/src/components/RecoveryCredentialsContainer.stories.d.ts +1 -49
  212. package/dist/types/src/components/RecoveryCredentialsContainer.stories.d.ts.map +1 -1
  213. package/dist/types/src/components/ResetDialog.d.ts +5 -3
  214. package/dist/types/src/components/ResetDialog.d.ts.map +1 -1
  215. package/dist/types/src/components/ResetDialog.stories.d.ts +3 -50
  216. package/dist/types/src/components/ResetDialog.stories.d.ts.map +1 -1
  217. package/dist/types/src/constants.d.ts +4 -0
  218. package/dist/types/src/constants.d.ts.map +1 -0
  219. package/dist/types/src/index.d.ts +3 -3
  220. package/dist/types/src/index.d.ts.map +1 -1
  221. package/dist/types/src/meta.d.ts +2 -3
  222. package/dist/types/src/meta.d.ts.map +1 -1
  223. package/dist/types/src/translations.d.ts +2 -48
  224. package/dist/types/src/translations.d.ts.map +1 -1
  225. package/dist/types/src/types/capabilities.d.ts +10 -0
  226. package/dist/types/src/types/capabilities.d.ts.map +1 -0
  227. package/dist/types/src/types/events.d.ts +9 -0
  228. package/dist/types/src/types/events.d.ts.map +1 -0
  229. package/dist/types/src/types/index.d.ts +2 -0
  230. package/dist/types/src/types/index.d.ts.map +1 -1
  231. package/dist/types/src/types/schema.d.ts +164 -10
  232. package/dist/types/src/types/schema.d.ts.map +1 -1
  233. package/dist/types/tsconfig.tsbuildinfo +1 -1
  234. package/package.json +54 -39
  235. package/src/ClientPlugin.ts +40 -59
  236. package/src/capabilities/app-graph-builder/app-graph-builder.ts +96 -0
  237. package/src/capabilities/app-graph-builder/index.ts +7 -0
  238. package/src/capabilities/client/client.ts +75 -0
  239. package/src/capabilities/client/index.ts +7 -0
  240. package/src/capabilities/index.ts +7 -11
  241. package/src/capabilities/migrations/index.ts +7 -0
  242. package/src/capabilities/migrations/migrations.ts +30 -0
  243. package/src/capabilities/operation-resolver/index.ts +7 -0
  244. package/src/capabilities/operation-resolver/operation-resolver.ts +249 -0
  245. package/src/capabilities/react-context/index.ts +7 -0
  246. package/src/capabilities/react-context/react-context.tsx +25 -0
  247. package/src/capabilities/react-surface/index.ts +7 -0
  248. package/src/capabilities/react-surface/react-surface.tsx +75 -0
  249. package/src/capabilities/schema-defs/index.ts +7 -0
  250. package/src/capabilities/schema-defs/schema-defs.ts +36 -0
  251. package/src/cli/commands/config/index.ts +12 -0
  252. package/src/cli/commands/config/view.ts +26 -0
  253. package/src/cli/commands/device/index.ts +14 -0
  254. package/src/cli/commands/device/info/index.ts +5 -0
  255. package/src/cli/commands/device/info/info.test.ts +29 -0
  256. package/src/cli/commands/device/info/info.ts +50 -0
  257. package/src/cli/commands/device/list/index.ts +5 -0
  258. package/src/cli/commands/device/list/list.test.ts +31 -0
  259. package/src/cli/commands/device/list/list.ts +30 -0
  260. package/src/cli/commands/device/update/index.ts +5 -0
  261. package/src/cli/commands/device/update/update.ts +70 -0
  262. package/src/cli/commands/device/util.ts +55 -0
  263. package/src/cli/commands/edge/index.ts +12 -0
  264. package/src/cli/commands/edge/status.ts +45 -0
  265. package/src/cli/commands/halo/create/create.test.ts +52 -0
  266. package/src/cli/commands/halo/create/create.ts +75 -0
  267. package/src/cli/commands/halo/create/index.ts +5 -0
  268. package/src/cli/commands/halo/credential/add/add.ts +97 -0
  269. package/src/cli/commands/halo/credential/add/index.ts +5 -0
  270. package/src/cli/commands/halo/credential/index.ts +13 -0
  271. package/src/cli/commands/halo/credential/list/index.ts +5 -0
  272. package/src/cli/commands/halo/credential/list/list.test.ts +28 -0
  273. package/src/cli/commands/halo/credential/list/list.ts +118 -0
  274. package/src/cli/commands/halo/identity/identity.test.ts +40 -0
  275. package/src/cli/commands/halo/identity/identity.ts +46 -0
  276. package/src/cli/commands/halo/identity/index.ts +5 -0
  277. package/src/cli/commands/halo/index.ts +21 -0
  278. package/src/cli/commands/halo/join/index.ts +5 -0
  279. package/src/cli/commands/halo/join/join.test.ts +10 -0
  280. package/src/cli/commands/halo/join/join.ts +87 -0
  281. package/src/cli/commands/halo/keys/index.ts +5 -0
  282. package/src/cli/commands/halo/keys/keys.test.ts +29 -0
  283. package/src/cli/commands/halo/keys/keys.ts +42 -0
  284. package/src/cli/commands/halo/recover/index.ts +5 -0
  285. package/src/cli/commands/halo/recover/recover.test.ts +10 -0
  286. package/src/cli/commands/halo/recover/recover.ts +44 -0
  287. package/src/cli/commands/halo/seed/index.ts +5 -0
  288. package/src/cli/commands/halo/seed/seed.ts +38 -0
  289. package/src/cli/commands/halo/share/index.ts +5 -0
  290. package/src/cli/commands/halo/share/share.ts +97 -0
  291. package/src/cli/commands/halo/update/index.ts +5 -0
  292. package/src/cli/commands/halo/update/update.test.ts +29 -0
  293. package/src/cli/commands/halo/update/update.ts +69 -0
  294. package/src/cli/commands/halo/util.ts +18 -0
  295. package/src/cli/commands/index.ts +9 -0
  296. package/src/cli/commands/profile/create.ts +87 -0
  297. package/src/cli/commands/profile/delete.ts +33 -0
  298. package/src/cli/commands/profile/import.ts +101 -0
  299. package/src/cli/commands/profile/index.ts +17 -0
  300. package/src/cli/commands/profile/inspect.ts +64 -0
  301. package/src/cli/commands/profile/list.ts +54 -0
  302. package/src/cli/commands/profile/reset.ts +45 -0
  303. package/src/cli/commands/profile/util.ts +48 -0
  304. package/src/cli/index.ts +5 -0
  305. package/src/cli/plugin.ts +34 -0
  306. package/src/cli/testing/test-console.ts +88 -0
  307. package/src/components/DevicesContainer.stories.tsx +10 -10
  308. package/src/components/DevicesContainer.tsx +46 -57
  309. package/src/components/JoinDialog.tsx +15 -17
  310. package/src/components/ProfileContainer.stories.tsx +2 -4
  311. package/src/components/ProfileContainer.tsx +65 -59
  312. package/src/components/RecoveryCodeDialog.stories.tsx +2 -4
  313. package/src/components/RecoveryCodeDialog.tsx +5 -7
  314. package/src/components/RecoveryCredentialsContainer.stories.tsx +9 -10
  315. package/src/components/RecoveryCredentialsContainer.tsx +22 -24
  316. package/src/components/ResetDialog.stories.tsx +31 -13
  317. package/src/components/ResetDialog.tsx +26 -22
  318. package/src/constants.ts +9 -0
  319. package/src/index.ts +3 -3
  320. package/src/meta.ts +8 -5
  321. package/src/translations.ts +6 -3
  322. package/src/types/capabilities.ts +16 -0
  323. package/src/types/events.ts +15 -0
  324. package/src/types/index.ts +2 -0
  325. package/src/types/schema.ts +121 -8
  326. package/dist/lib/browser/app-graph-builder-ENKIVZWH.mjs +0 -123
  327. package/dist/lib/browser/app-graph-builder-ENKIVZWH.mjs.map +0 -7
  328. package/dist/lib/browser/chunk-3F2Q2RKC.mjs +0 -18
  329. package/dist/lib/browser/chunk-3F2Q2RKC.mjs.map +0 -7
  330. package/dist/lib/browser/chunk-CAF2COXW.mjs +0 -19
  331. package/dist/lib/browser/chunk-CAF2COXW.mjs.map +0 -7
  332. package/dist/lib/browser/chunk-FOCQEA72.mjs +0 -686
  333. package/dist/lib/browser/chunk-FOCQEA72.mjs.map +0 -7
  334. package/dist/lib/browser/chunk-GS3LDHYD.mjs +0 -12
  335. package/dist/lib/browser/chunk-GS3LDHYD.mjs.map +0 -7
  336. package/dist/lib/browser/chunk-HLWIF3AW.mjs +0 -110
  337. package/dist/lib/browser/chunk-HLWIF3AW.mjs.map +0 -7
  338. package/dist/lib/browser/client-F73MIXMT.mjs +0 -43
  339. package/dist/lib/browser/client-F73MIXMT.mjs.map +0 -7
  340. package/dist/lib/browser/intent-resolver-LNPFUWU5.mjs +0 -305
  341. package/dist/lib/browser/intent-resolver-LNPFUWU5.mjs.map +0 -7
  342. package/dist/lib/browser/migrations-YJSO7JXY.mjs +0 -23
  343. package/dist/lib/browser/migrations-YJSO7JXY.mjs.map +0 -7
  344. package/dist/lib/browser/react-context-QBXCHNH2.mjs +0 -24
  345. package/dist/lib/browser/react-context-QBXCHNH2.mjs.map +0 -7
  346. package/dist/lib/browser/react-surface-3AH7INFU.mjs +0 -66
  347. package/dist/lib/browser/react-surface-3AH7INFU.mjs.map +0 -7
  348. package/dist/lib/browser/schema-defs-AMSX6T3B.mjs +0 -25
  349. package/dist/lib/browser/schema-defs-AMSX6T3B.mjs.map +0 -7
  350. package/dist/lib/node-esm/app-graph-builder-D4XJCLPN.mjs +0 -124
  351. package/dist/lib/node-esm/app-graph-builder-D4XJCLPN.mjs.map +0 -7
  352. package/dist/lib/node-esm/chunk-IOGTQFLM.mjs +0 -19
  353. package/dist/lib/node-esm/chunk-IOGTQFLM.mjs.map +0 -7
  354. package/dist/lib/node-esm/chunk-JG6AFSFU.mjs +0 -111
  355. package/dist/lib/node-esm/chunk-JG6AFSFU.mjs.map +0 -7
  356. package/dist/lib/node-esm/chunk-MUWDSQ65.mjs +0 -687
  357. package/dist/lib/node-esm/chunk-MUWDSQ65.mjs.map +0 -7
  358. package/dist/lib/node-esm/chunk-SZLX4BVJ.mjs +0 -14
  359. package/dist/lib/node-esm/chunk-SZLX4BVJ.mjs.map +0 -7
  360. package/dist/lib/node-esm/chunk-UMO3ETDV.mjs +0 -20
  361. package/dist/lib/node-esm/chunk-UMO3ETDV.mjs.map +0 -7
  362. package/dist/lib/node-esm/client-A7CNP37P.mjs +0 -44
  363. package/dist/lib/node-esm/client-A7CNP37P.mjs.map +0 -7
  364. package/dist/lib/node-esm/intent-resolver-C4INMPH7.mjs +0 -306
  365. package/dist/lib/node-esm/intent-resolver-C4INMPH7.mjs.map +0 -7
  366. package/dist/lib/node-esm/migrations-UOEK7HB7.mjs +0 -24
  367. package/dist/lib/node-esm/migrations-UOEK7HB7.mjs.map +0 -7
  368. package/dist/lib/node-esm/react-context-JIH7YBFI.mjs +0 -25
  369. package/dist/lib/node-esm/react-context-JIH7YBFI.mjs.map +0 -7
  370. package/dist/lib/node-esm/react-surface-4TMUCPEW.mjs +0 -67
  371. package/dist/lib/node-esm/react-surface-4TMUCPEW.mjs.map +0 -7
  372. package/dist/lib/node-esm/schema-defs-4UTKKRTF.mjs +0 -26
  373. package/dist/lib/node-esm/schema-defs-4UTKKRTF.mjs.map +0 -7
  374. package/dist/types/src/capabilities/app-graph-builder.d.ts +0 -4
  375. package/dist/types/src/capabilities/app-graph-builder.d.ts.map +0 -1
  376. package/dist/types/src/capabilities/capabilities.d.ts +0 -9
  377. package/dist/types/src/capabilities/capabilities.d.ts.map +0 -1
  378. package/dist/types/src/capabilities/client.d.ts +0 -9
  379. package/dist/types/src/capabilities/client.d.ts.map +0 -1
  380. package/dist/types/src/capabilities/intent-resolver.d.ts +0 -8
  381. package/dist/types/src/capabilities/intent-resolver.d.ts.map +0 -1
  382. package/dist/types/src/capabilities/migrations.d.ts +0 -4
  383. package/dist/types/src/capabilities/migrations.d.ts.map +0 -1
  384. package/dist/types/src/capabilities/react-context.d.ts +0 -8
  385. package/dist/types/src/capabilities/react-context.d.ts.map +0 -1
  386. package/dist/types/src/capabilities/react-surface.d.ts +0 -8
  387. package/dist/types/src/capabilities/react-surface.d.ts.map +0 -1
  388. package/dist/types/src/capabilities/schema-defs.d.ts +0 -4
  389. package/dist/types/src/capabilities/schema-defs.d.ts.map +0 -1
  390. package/dist/types/src/events.d.ts +0 -8
  391. package/dist/types/src/events.d.ts.map +0 -1
  392. package/src/capabilities/app-graph-builder.ts +0 -114
  393. package/src/capabilities/capabilities.ts +0 -18
  394. package/src/capabilities/client.ts +0 -43
  395. package/src/capabilities/intent-resolver.ts +0 -251
  396. package/src/capabilities/migrations.ts +0 -25
  397. package/src/capabilities/react-context.tsx +0 -21
  398. package/src/capabilities/react-surface.tsx +0 -67
  399. package/src/capabilities/schema-defs.ts +0 -29
  400. package/src/events.ts +0 -15
@@ -4,49 +4,47 @@
4
4
 
5
5
  import React from 'react';
6
6
 
7
- import { createIntent, useIntentDispatcher } from '@dxos/app-framework';
7
+ import { useOperationInvoker } from '@dxos/app-framework/ui';
8
8
  import { useCredentials } from '@dxos/react-client/halo';
9
9
  import { Icon, IconButton, List, ListItem, Message, useTranslation } from '@dxos/react-ui';
10
- import { ControlGroup, ControlItem, ControlPage, ControlSection } from '@dxos/react-ui-form';
10
+ import { Settings } from '@dxos/react-ui-form';
11
11
 
12
- import { CLIENT_PLUGIN } from '../meta';
13
- import { ClientAction } from '../types';
12
+ import { meta } from '../meta';
13
+ import { ClientOperation } from '../types';
14
14
 
15
- export const MANAGE_CREDENTIALS_DIALOG = `${CLIENT_PLUGIN}/ManageCredentialsDialog`;
15
+ export const MANAGE_CREDENTIALS_DIALOG = `${meta.id}/ManageCredentialsDialog`;
16
16
 
17
17
  export const RecoveryCredentialsContainer = () => {
18
- const { t } = useTranslation(CLIENT_PLUGIN);
19
- const { dispatchPromise: dispatch } = useIntentDispatcher();
18
+ const { t } = useTranslation(meta.id);
19
+ const { invokePromise } = useOperationInvoker();
20
20
  const credentials = useCredentials();
21
21
  const recoveryCredentials = credentials.filter(
22
22
  (credential) => credential.subject.assertion['@type'] === 'dxos.halo.credentials.IdentityRecovery',
23
23
  );
24
24
 
25
25
  return (
26
- <ControlPage>
27
- <ControlSection title={t('recovery setup dialog title')} description={t('recovery setup dialog description')}>
28
- <ControlGroup>
29
- <ControlItem title={t('create passkey label')} description={t('create passkey description')}>
26
+ <Settings.Root>
27
+ <Settings.Section title={t('recovery setup dialog title')} description={t('recovery setup dialog description')}>
28
+ <Settings.Group>
29
+ <Settings.Item title={t('create passkey label')} description={t('create passkey description')}>
30
30
  <IconButton
31
31
  label={t('create passkey label')}
32
32
  icon='ph--key--duotone'
33
33
  variant='primary'
34
- size={5}
35
- onClick={() => dispatch(createIntent(ClientAction.CreatePasskey))}
34
+ onClick={() => invokePromise(ClientOperation.CreatePasskey)}
36
35
  />
37
- </ControlItem>
38
- <ControlItem title={t('create recovery code label')} description={t('create recovery code description')}>
36
+ </Settings.Item>
37
+ <Settings.Item title={t('create recovery code label')} description={t('create recovery code description')}>
39
38
  <IconButton
40
39
  label={t('create recovery code label')}
41
40
  icon='ph--receipt--duotone'
42
41
  variant='default'
43
- size={5}
44
- onClick={() => dispatch(createIntent(ClientAction.CreateRecoveryCode))}
42
+ onClick={() => invokePromise(ClientOperation.CreateRecoveryCode)}
45
43
  />
46
- </ControlItem>
47
- </ControlGroup>
48
- </ControlSection>
49
- <ControlSection title={t('credentials list label')}>
44
+ </Settings.Item>
45
+ </Settings.Group>
46
+ </Settings.Section>
47
+ <Settings.Section title={t('credentials list label')}>
50
48
  {recoveryCredentials.length < 1 ? (
51
49
  <Message.Root valence='error' classNames='container-max-width'>
52
50
  <Message.Title icon='ph--shield-warning--duotone'>{t('no credentials title')}</Message.Title>
@@ -57,14 +55,14 @@ export const RecoveryCredentialsContainer = () => {
57
55
  {recoveryCredentials.map((credential) => (
58
56
  <ListItem.Root key={credential.id?.toHex()}>
59
57
  <ListItem.Endcap>
60
- <Icon icon='ph--key--regular' size={5} />
58
+ <Icon icon='ph--key--regular' />
61
59
  </ListItem.Endcap>
62
60
  <ListItem.Heading>{credential.issuanceDate.toLocaleString()}</ListItem.Heading>
63
61
  </ListItem.Root>
64
62
  ))}
65
63
  </List>
66
64
  )}
67
- </ControlSection>
68
- </ControlPage>
65
+ </Settings.Section>
66
+ </Settings.Root>
69
67
  );
70
68
  };
@@ -2,25 +2,32 @@
2
2
  // Copyright 2023 DXOS.org
3
3
  //
4
4
 
5
- import '@dxos-theme';
6
-
7
5
  import { type Meta, type StoryObj } from '@storybook/react-vite';
6
+ import * as Effect from 'effect/Effect';
8
7
  import React from 'react';
9
8
 
10
- import { IntentPlugin } from '@dxos/app-framework';
9
+ import { OperationPlugin, RuntimePlugin } from '@dxos/app-framework';
11
10
  import { withPluginManager } from '@dxos/app-framework/testing';
11
+ import { usePluginManager } from '@dxos/app-framework/ui';
12
12
  import { Dialog } from '@dxos/react-ui';
13
- import { withLayout, withTheme } from '@dxos/storybook-utils';
13
+ import { withTheme } from '@dxos/react-ui/testing';
14
14
 
15
+ import { ClientPlugin } from '../ClientPlugin';
15
16
  import { translations } from '../translations';
16
17
 
17
18
  import { ResetDialog, type ResetDialogProps } from './ResetDialog';
18
19
 
19
- const Render = (props: ResetDialogProps) => {
20
+ const DefaultStory = (props: Omit<ResetDialogProps, 'capabilityManager'>) => {
21
+ const manager = usePluginManager();
22
+
20
23
  return (
21
24
  <Dialog.Root open>
22
25
  <Dialog.Overlay>
23
- <ResetDialog onReset={() => console.log('reset')} {...props} />
26
+ <ResetDialog
27
+ capabilityManager={manager.capabilities}
28
+ onReset={() => Effect.sync(() => console.log('reset'))}
29
+ {...props}
30
+ />
24
31
  </Dialog.Overlay>
25
32
  </Dialog.Root>
26
33
  );
@@ -29,13 +36,12 @@ const Render = (props: ResetDialogProps) => {
29
36
  const meta = {
30
37
  title: 'plugins/plugin-client/ResetDialog',
31
38
  component: ResetDialog,
32
- render: Render,
39
+ render: DefaultStory,
33
40
  decorators: [
41
+ withTheme(),
34
42
  withPluginManager({
35
- plugins: [IntentPlugin()],
43
+ plugins: [RuntimePlugin(), OperationPlugin(), ClientPlugin({})],
36
44
  }),
37
- withTheme,
38
- withLayout(),
39
45
  ],
40
46
  parameters: {
41
47
  layout: 'fullscreen',
@@ -47,8 +53,20 @@ export default meta;
47
53
 
48
54
  type Story = StoryObj<typeof meta>;
49
55
 
50
- export const Default: Story = { args: { mode: 'reset storage' } };
56
+ export const Default: Story = {
57
+ args: {
58
+ mode: 'reset storage' as const,
59
+ } as any,
60
+ };
51
61
 
52
- export const JoinNewIdentity: Story = { args: { mode: 'join new identity' } };
62
+ export const JoinNewIdentity: Story = {
63
+ args: {
64
+ mode: 'join new identity' as const,
65
+ } as any,
66
+ };
53
67
 
54
- export const Recover: Story = { args: { mode: 'recover' } };
68
+ export const Recover: Story = {
69
+ args: {
70
+ mode: 'recover' as const,
71
+ } as any,
72
+ };
@@ -2,48 +2,52 @@
2
2
  // Copyright 2025 DXOS.org
3
3
  //
4
4
 
5
+ import * as Effect from 'effect/Effect';
5
6
  import React, { useCallback } from 'react';
6
7
 
7
- import { LayoutAction, createIntent, useIntentDispatcher } from '@dxos/app-framework';
8
+ import { Capability, type CapabilityManager } from '@dxos/app-framework';
9
+ import { useOperationInvoker } from '@dxos/app-framework/ui';
10
+ import { LayoutOperation } from '@dxos/app-toolkit';
11
+ import { runAndForwardErrors } from '@dxos/effect';
8
12
  import { useClient } from '@dxos/react-client';
9
13
  import { Dialog, useTranslation } from '@dxos/react-ui';
10
14
  import { ConfirmReset, type ConfirmResetProps } from '@dxos/shell/react';
11
15
 
12
- import { CLIENT_PLUGIN } from '../meta';
16
+ import { meta } from '../meta';
13
17
  import { type ClientPluginOptions } from '../types';
14
18
 
15
- export const RESET_DIALOG = `${CLIENT_PLUGIN}/ResetDialog`;
19
+ export type ResetDialogProps = Pick<ConfirmResetProps, 'mode'> &
20
+ Pick<ClientPluginOptions, 'onReset'> & {
21
+ capabilityManager: CapabilityManager.CapabilityManager;
22
+ };
16
23
 
17
- export type ResetDialogProps = Pick<ConfirmResetProps, 'mode'> & Pick<ClientPluginOptions, 'onReset'>;
18
-
19
- export const ResetDialog = ({ mode, onReset }: ResetDialogProps) => {
20
- const { t } = useTranslation(CLIENT_PLUGIN);
21
- const { dispatchPromise: dispatch } = useIntentDispatcher();
24
+ export const ResetDialog = ({ mode, onReset, capabilityManager }: ResetDialogProps) => {
25
+ const { t } = useTranslation(meta.id);
26
+ const { invokePromise } = useOperationInvoker();
22
27
  const client = useClient();
23
28
 
24
29
  const handleReset = useCallback(async () => {
25
30
  await client.reset();
26
31
  const target =
27
32
  mode === 'join new identity' ? 'deviceInvitation' : mode === 'recover' ? 'recoverIdentity' : undefined;
28
- await onReset?.({ target });
29
- }, [dispatch, client, mode, onReset]);
33
+ if (onReset) {
34
+ await runAndForwardErrors(onReset({ target }).pipe(Effect.provideService(Capability.Service, capabilityManager)));
35
+ }
36
+ }, [client, mode, onReset, capabilityManager]);
30
37
 
31
38
  const handleCancel = useCallback(() => {
32
- void dispatch(
33
- createIntent(LayoutAction.UpdateDialog, {
34
- part: 'dialog',
35
- options: { state: false },
36
- }),
37
- );
38
- }, [dispatch]);
39
+ void invokePromise(LayoutOperation.UpdateDialog, { state: false });
40
+ }, [invokePromise]);
39
41
 
40
42
  // TODO(wittjosiah): Add the sr-only translations.
41
43
  // TODO(wittjosiah): Add missing descriptions to other dialogs.
42
44
  return (
43
- <Dialog.Content classNames='bs-content min-bs-[15rem] max-bs-full md:max-is-[40rem] overflow-hidden'>
44
- <Dialog.Title classNames='sr-only'>{t('reset dialog title')}</Dialog.Title>
45
- <Dialog.Description classNames='sr-only'>{t('reset dialog description')}</Dialog.Description>
46
- <ConfirmReset active mode={mode} onConfirm={handleReset} onCancel={handleCancel} />
47
- </Dialog.Content>
45
+ <>
46
+ <Dialog.Content>
47
+ <Dialog.Title classNames='sr-only'>{t('reset dialog title')}</Dialog.Title>
48
+ <Dialog.Description classNames='sr-only'>{t('reset dialog description')}</Dialog.Description>
49
+ <ConfirmReset active mode={mode} onConfirm={handleReset} onCancel={handleCancel} />
50
+ </Dialog.Content>
51
+ </>
48
52
  );
49
53
  };
@@ -0,0 +1,9 @@
1
+ //
2
+ // Copyright 2025 DXOS.org
3
+ //
4
+
5
+ import { meta } from './meta';
6
+
7
+ export const JOIN_DIALOG = `${meta.id}/JoinDialog`;
8
+ export const RECOVERY_CODE_DIALOG = `${meta.id}/RecoveryCodeDialog`;
9
+ export const RESET_DIALOG = `${meta.id}/ResetDialog`;
package/src/index.ts CHANGED
@@ -2,8 +2,8 @@
2
2
  // Copyright 2023 DXOS.org
3
3
  //
4
4
 
5
- export * from './ClientPlugin';
5
+ export { ClientCapabilities, ClientEvents } from './types';
6
6
  export * from './meta';
7
+ export * from './types';
7
8
 
8
- export { ClientCapabilities } from './capabilities';
9
- export { ClientEvents } from './events';
9
+ export * from './ClientPlugin';
package/src/meta.ts CHANGED
@@ -2,11 +2,14 @@
2
2
  // Copyright 2023 DXOS.org
3
3
  //
4
4
 
5
- import { type PluginMeta } from '@dxos/app-framework';
5
+ import { type Plugin } from '@dxos/app-framework';
6
+ import { trim } from '@dxos/util';
6
7
 
7
- export const CLIENT_PLUGIN = 'dxos.org/plugin/client';
8
-
9
- export const meta: PluginMeta = {
10
- id: CLIENT_PLUGIN,
8
+ export const meta: Plugin.Meta = {
9
+ id: 'dxos.org/plugin/client',
11
10
  name: 'Client',
11
+ description: trim`
12
+ Core client connectivity and peer-to-peer networking infrastructure.
13
+ Manages identity, authentication, and real-time synchronization across devices.
14
+ `,
12
15
  };
@@ -3,14 +3,15 @@
3
3
  //
4
4
 
5
5
  import { type Resource } from '@dxos/react-ui';
6
+ import { translations as shellTranslations } from '@dxos/shell/react';
6
7
 
7
8
  import { meta } from './meta';
8
9
 
9
- export const translations = [
10
+ const pluginTranslations = [
10
11
  {
11
12
  'en-US': {
12
13
  [meta.id]: {
13
- 'account label': 'User Account',
14
+ 'account label': 'User profile',
14
15
  'profile label': 'Profile',
15
16
  'profile description': 'You can adjust how your user settings here.',
16
17
  'devices label': 'Devices',
@@ -35,7 +36,7 @@ export const translations = [
35
36
  'display name description': 'Your name as it appears in the app.',
36
37
  'display name input placeholder': 'Enter a name',
37
38
  'icon label': 'Avatar',
38
- 'icon description': 'The emoji used to represent you in the app.',
39
+ 'icon description': 'The emoji used to represent the user.',
39
40
  'hue label': 'Color',
40
41
  'hue description':
41
42
  'The color used to represent you in the app, including as your avatar’s background, your cursor as it appears to others, and the messages you send in group threads.',
@@ -68,3 +69,5 @@ export const translations = [
68
69
  },
69
70
  },
70
71
  ] as const satisfies Resource[];
72
+
73
+ export const translations: Resource[] = [...pluginTranslations, ...shellTranslations];
@@ -0,0 +1,16 @@
1
+ //
2
+ // Copyright 2025 DXOS.org
3
+ //
4
+
5
+ import { Capability } from '@dxos/app-framework';
6
+ import { type Client } from '@dxos/client';
7
+ import { type ObjectMigration } from '@dxos/client/echo';
8
+ import { type Type } from '@dxos/echo';
9
+
10
+ import { meta } from '../meta';
11
+
12
+ export namespace ClientCapabilities {
13
+ export const Client = Capability.make<Client>(`${meta.id}/capability/client`);
14
+ export const Schema = Capability.make<Type.Entity.Any[]>(`${meta.id}/capability/schema`);
15
+ export const Migration = Capability.make<ObjectMigration[]>(`${meta.id}/capability/migration`);
16
+ }
@@ -0,0 +1,15 @@
1
+ //
2
+ // Copyright 2025 DXOS.org
3
+ //
4
+
5
+ import { ActivationEvent } from '@dxos/app-framework';
6
+
7
+ import { meta } from '../meta';
8
+
9
+ export namespace ClientEvents {
10
+ export const ClientReady = ActivationEvent.make(`${meta.id}/event/client-ready`);
11
+ export const SetupSchema = ActivationEvent.make(`${meta.id}/event/setup-schema`);
12
+ export const SetupMigration = ActivationEvent.make(`${meta.id}/event/setup-migration`);
13
+ export const IdentityCreated = ActivationEvent.make(`${meta.id}/event/identity-created`);
14
+ export const SpacesReady = ActivationEvent.make(`${meta.id}/event/spaces-ready`);
15
+ }
@@ -2,4 +2,6 @@
2
2
  // Copyright 2025 DXOS.org
3
3
  //
4
4
 
5
+ export * from './capabilities';
6
+ export * from './events';
5
7
  export * from './schema';
@@ -2,11 +2,12 @@
2
2
  // Copyright 2024 DXOS.org
3
3
  //
4
4
 
5
- import { Schema } from 'effect';
5
+ import type * as Effect from 'effect/Effect';
6
+ import * as Schema from 'effect/Schema';
6
7
 
7
- import { type PluginContext } from '@dxos/app-framework';
8
- import { type Client, type ClientOptions, PublicKey } from '@dxos/react-client';
9
- import { type MaybePromise } from '@dxos/util';
8
+ import { Capability } from '@dxos/app-framework';
9
+ import { type Client, type ClientOptions, PublicKey } from '@dxos/client';
10
+ import { Operation } from '@dxos/operation';
10
11
 
11
12
  import { meta } from '../meta';
12
13
 
@@ -90,6 +91,115 @@ export namespace ClientAction {
90
91
  }) {}
91
92
  }
92
93
 
94
+ const CLIENT_OPERATION = `${meta.id}/operation`;
95
+
96
+ /**
97
+ * Operations for the Client plugin.
98
+ */
99
+ export namespace ClientOperation {
100
+ const ProfileSchema = Schema.Struct({
101
+ displayName: Schema.optional(Schema.String),
102
+ avatarCid: Schema.optional(Schema.String),
103
+ data: Schema.optional(Schema.Record({ key: Schema.String, value: Schema.Any })),
104
+ });
105
+
106
+ export const CreateIdentity = Operation.make({
107
+ meta: { key: `${CLIENT_OPERATION}/create-identity`, name: 'Create Identity' },
108
+ services: [Capability.Service],
109
+ schema: {
110
+ input: ProfileSchema,
111
+ output: IdentitySchema,
112
+ },
113
+ });
114
+
115
+ export const JoinIdentity = Operation.make({
116
+ meta: { key: `${CLIENT_OPERATION}/join-identity`, name: 'Join Identity' },
117
+ services: [Capability.Service],
118
+ schema: {
119
+ input: Schema.Struct({
120
+ invitationCode: Schema.optional(Schema.String),
121
+ }),
122
+ output: Schema.Void,
123
+ },
124
+ });
125
+
126
+ export const ShareIdentity = Operation.make({
127
+ meta: { key: `${CLIENT_OPERATION}/share-identity`, name: 'Share Identity' },
128
+ services: [Capability.Service],
129
+ schema: {
130
+ input: Schema.Void,
131
+ output: Schema.Void,
132
+ },
133
+ });
134
+
135
+ export const RecoverIdentity = Operation.make({
136
+ meta: { key: `${CLIENT_OPERATION}/recover-identity`, name: 'Recover Identity' },
137
+ services: [Capability.Service],
138
+ schema: {
139
+ input: Schema.Void,
140
+ output: Schema.Void,
141
+ },
142
+ });
143
+
144
+ export const ResetStorage = Operation.make({
145
+ meta: { key: `${CLIENT_OPERATION}/reset-storage`, name: 'Reset Storage' },
146
+ services: [Capability.Service],
147
+ schema: {
148
+ input: Schema.Struct({
149
+ mode: Schema.optional(Schema.String),
150
+ }),
151
+ output: Schema.Void,
152
+ },
153
+ });
154
+
155
+ export const CreateAgent = Operation.make({
156
+ meta: { key: `${CLIENT_OPERATION}/create-agent`, name: 'Create Agent' },
157
+ services: [Capability.Service],
158
+ schema: {
159
+ input: Schema.Void,
160
+ output: Schema.Void,
161
+ },
162
+ });
163
+
164
+ export const CreateRecoveryCode = Operation.make({
165
+ meta: { key: `${CLIENT_OPERATION}/create-recovery-code`, name: 'Create Recovery Code' },
166
+ services: [Capability.Service],
167
+ schema: {
168
+ input: Schema.Void,
169
+ output: Schema.Void,
170
+ },
171
+ });
172
+
173
+ export const CreatePasskey = Operation.make({
174
+ meta: { key: `${CLIENT_OPERATION}/create-passkey`, name: 'Create Passkey' },
175
+ services: [Capability.Service],
176
+ schema: {
177
+ input: Schema.Void,
178
+ output: Schema.Void,
179
+ },
180
+ });
181
+
182
+ export const RedeemPasskey = Operation.make({
183
+ meta: { key: `${CLIENT_OPERATION}/redeem-passkey`, name: 'Redeem Passkey' },
184
+ services: [Capability.Service],
185
+ schema: {
186
+ input: Schema.Void,
187
+ output: Schema.Void,
188
+ },
189
+ });
190
+
191
+ export const RedeemToken = Operation.make({
192
+ meta: { key: `${CLIENT_OPERATION}/redeem-token`, name: 'Redeem Token' },
193
+ services: [Capability.Service],
194
+ schema: {
195
+ input: Schema.Struct({
196
+ token: Schema.String,
197
+ }),
198
+ output: Schema.Void,
199
+ },
200
+ });
201
+ }
202
+
93
203
  export type ClientPluginOptions = ClientOptions & {
94
204
  /**
95
205
  * Base URL for the invitation link.
@@ -99,22 +209,25 @@ export type ClientPluginOptions = ClientOptions & {
99
209
  /**
100
210
  * Query parameter for the invitation code.
101
211
  */
102
- invitationParam?: string;
212
+ invitationProp?: string;
103
213
 
104
214
  /**
105
215
  * Run after the client has been initialized.
216
+ * Plugin context is provided so capabilities are accessible.
106
217
  */
107
- onClientInitialized?: (params: { context: PluginContext; client: Client }) => MaybePromise<void>;
218
+ onClientInitialized?: (params: { client: Client }) => Effect.Effect<void, Error | never, Capability.Service | never>;
108
219
 
109
220
  /**
110
221
  * Called when spaces are ready.
222
+ * Plugin context is provided so capabilities are accessible.
111
223
  */
112
- onSpacesReady?: (params: { context: PluginContext; client: Client }) => MaybePromise<void>;
224
+ onSpacesReady?: (params: { client: Client }) => Effect.Effect<void, Error | never, Capability.Service | never>;
113
225
 
114
226
  /**
115
227
  * Called when the client is reset.
228
+ * Plugin context is provided so capabilities are accessible.
116
229
  */
117
- onReset?: (params: { target?: string }) => MaybePromise<void>;
230
+ onReset?: (params: { target?: string }) => Effect.Effect<void, Error | never, Capability.Service | never>;
118
231
  };
119
232
 
120
233
  export namespace Account {
@@ -1,123 +0,0 @@
1
- import {
2
- ClientCapabilities
3
- } from "./chunk-3F2Q2RKC.mjs";
4
- import {
5
- Account,
6
- ClientAction
7
- } from "./chunk-HLWIF3AW.mjs";
8
- import {
9
- CLIENT_PLUGIN
10
- } from "./chunk-GS3LDHYD.mjs";
11
-
12
- // src/capabilities/app-graph-builder.ts
13
- import { Rx } from "@effect-rx/rx-react";
14
- import { Option, pipe } from "effect";
15
- import { createIntent } from "@dxos/app-framework";
16
- import { Capabilities, contributes } from "@dxos/app-framework";
17
- import { ROOT_ID, createExtension, rxFromObservable } from "@dxos/plugin-graph";
18
- import { ConnectionState } from "@dxos/react-client/mesh";
19
- var app_graph_builder_default = (context) => contributes(Capabilities.AppGraphBuilder, createExtension({
20
- id: CLIENT_PLUGIN,
21
- actions: (node) => Rx.make((get) => pipe(get(node), Option.flatMap((node2) => node2.id === ROOT_ID ? Option.some(node2) : Option.none()), Option.map(() => {
22
- return [
23
- {
24
- id: `${CLIENT_PLUGIN}/open-user-account`,
25
- data: async () => {
26
- const { dispatchPromise: dispatch } = context.getCapability(Capabilities.IntentDispatcher);
27
- await dispatch(createIntent(ClientAction.ShareIdentity));
28
- },
29
- properties: {
30
- label: [
31
- "open user account label",
32
- {
33
- ns: CLIENT_PLUGIN
34
- }
35
- ],
36
- icon: "ph--user--regular",
37
- disposition: "menu",
38
- keyBinding: {
39
- macos: "meta+shift+.",
40
- // TODO(wittjosiah): Test on windows to see if it behaves the same as linux.
41
- windows: "alt+shift+.",
42
- linux: "alt+shift+>"
43
- }
44
- }
45
- }
46
- ];
47
- }), Option.getOrElse(() => []))),
48
- connector: (node) => Rx.make((get) => pipe(get(node), Option.flatMap((node2) => node2.id === ROOT_ID ? Option.some(node2) : Option.none()), Option.map(() => {
49
- const client = context.getCapability(ClientCapabilities.Client);
50
- const identity = get(rxFromObservable(client.halo.identity));
51
- const status = get(rxFromObservable(client.mesh.networkStatus));
52
- return [
53
- {
54
- id: Account.id,
55
- type: CLIENT_PLUGIN,
56
- properties: {
57
- label: [
58
- "account label",
59
- {
60
- ns: CLIENT_PLUGIN
61
- }
62
- ],
63
- icon: "ph--user--regular",
64
- disposition: "user-account",
65
- // NOTE: This currently needs to be the identity key because the fallback is generated from hex.
66
- userId: identity?.identityKey.toHex(),
67
- hue: identity?.profile?.data?.hue,
68
- emoji: identity?.profile?.data?.emoji,
69
- status: status.swarm === ConnectionState.OFFLINE ? "error" : "active"
70
- },
71
- nodes: [
72
- {
73
- id: Account.Profile,
74
- data: Account.Profile,
75
- type: CLIENT_PLUGIN,
76
- properties: {
77
- label: [
78
- "profile label",
79
- {
80
- ns: CLIENT_PLUGIN
81
- }
82
- ],
83
- icon: "ph--user--regular"
84
- }
85
- },
86
- {
87
- id: Account.Devices,
88
- data: Account.Devices,
89
- type: CLIENT_PLUGIN,
90
- properties: {
91
- label: [
92
- "devices label",
93
- {
94
- ns: CLIENT_PLUGIN
95
- }
96
- ],
97
- icon: "ph--devices--regular",
98
- testId: "clientPlugin.devices"
99
- }
100
- },
101
- {
102
- id: Account.Security,
103
- data: Account.Security,
104
- type: CLIENT_PLUGIN,
105
- properties: {
106
- label: [
107
- "security label",
108
- {
109
- ns: CLIENT_PLUGIN
110
- }
111
- ],
112
- icon: "ph--key--regular"
113
- }
114
- }
115
- ]
116
- }
117
- ];
118
- }), Option.getOrElse(() => [])))
119
- }));
120
- export {
121
- app_graph_builder_default as default
122
- };
123
- //# sourceMappingURL=app-graph-builder-ENKIVZWH.mjs.map