@dxos/plugin-client 0.10.0 → 0.11.1

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 (358) hide show
  1. package/dist/lib/ClientPlugin.mjs +65 -0
  2. package/dist/lib/ClientPlugin.mjs.map +1 -0
  3. package/dist/lib/ClientPlugin.node.mjs +904 -0
  4. package/dist/lib/ClientPlugin.node.mjs.map +1 -0
  5. package/dist/lib/ClientPlugin.workerd.mjs +10 -0
  6. package/dist/lib/ClientPlugin.workerd.mjs.map +1 -0
  7. package/dist/lib/capabilities/node.mjs +13 -0
  8. package/dist/lib/capabilities/node.mjs.map +1 -0
  9. package/dist/lib/capabilities.mjs +23 -0
  10. package/dist/lib/capabilities.mjs.map +1 -0
  11. package/dist/lib/chunk-AccountContainer.mjs +190 -0
  12. package/dist/lib/chunk-AccountContainer.mjs.map +1 -0
  13. package/dist/lib/chunk-DevicesContainer.mjs +275 -0
  14. package/dist/lib/chunk-DevicesContainer.mjs.map +1 -0
  15. package/dist/lib/chunk-InvitationsContainer.mjs +149 -0
  16. package/dist/lib/chunk-InvitationsContainer.mjs.map +1 -0
  17. package/dist/lib/chunk-JoinDialog.mjs +35 -0
  18. package/dist/lib/chunk-JoinDialog.mjs.map +1 -0
  19. package/dist/lib/chunk-ProfileContainer.mjs +145 -0
  20. package/dist/lib/chunk-ProfileContainer.mjs.map +1 -0
  21. package/dist/lib/chunk-RecoveryCodeDialog.mjs +72 -0
  22. package/dist/lib/chunk-RecoveryCodeDialog.mjs.map +1 -0
  23. package/dist/lib/chunk-RecoveryCredentialsContainer.mjs +65 -0
  24. package/dist/lib/chunk-RecoveryCredentialsContainer.mjs.map +1 -0
  25. package/dist/lib/chunk-ResetDialog.mjs +47 -0
  26. package/dist/lib/chunk-ResetDialog.mjs.map +1 -0
  27. package/dist/lib/chunk-UsageContainer.mjs +217 -0
  28. package/dist/lib/chunk-UsageContainer.mjs.map +1 -0
  29. package/dist/lib/{neutral/account-cache-YVQKLNV2.mjs → chunk-account-cache.mjs} +10 -12
  30. package/dist/lib/chunk-account-cache.mjs.map +1 -0
  31. package/dist/lib/chunk-app-graph-builder.mjs +111 -0
  32. package/dist/lib/chunk-app-graph-builder.mjs.map +1 -0
  33. package/dist/lib/chunk-client.mjs +90 -0
  34. package/dist/lib/chunk-client.mjs.map +1 -0
  35. package/dist/lib/{neutral/chunk-GSKMAS3S.mjs → chunk-constants.mjs} +5 -8
  36. package/dist/lib/chunk-constants.mjs.map +1 -0
  37. package/dist/lib/chunk-create-agent.mjs +23 -0
  38. package/dist/lib/chunk-create-agent.mjs.map +1 -0
  39. package/dist/lib/chunk-create-identity.mjs +28 -0
  40. package/dist/lib/chunk-create-identity.mjs.map +1 -0
  41. package/dist/lib/chunk-create-passkey.mjs +85 -0
  42. package/dist/lib/chunk-create-passkey.mjs.map +1 -0
  43. package/dist/lib/chunk-create-recovery-code.mjs +31 -0
  44. package/dist/lib/chunk-create-recovery-code.mjs.map +1 -0
  45. package/dist/lib/chunk-hooks.mjs +29 -0
  46. package/dist/lib/chunk-hooks.mjs.map +1 -0
  47. package/dist/lib/chunk-hub-http-client.mjs +14 -0
  48. package/dist/lib/chunk-hub-http-client.mjs.map +1 -0
  49. package/dist/lib/chunk-join-identity.mjs +20 -0
  50. package/dist/lib/chunk-join-identity.mjs.map +1 -0
  51. package/dist/lib/chunk-layer-specs.mjs +107 -0
  52. package/dist/lib/chunk-layer-specs.mjs.map +1 -0
  53. package/dist/lib/{neutral/chunk-6G4KZLBG.mjs → chunk-meta.mjs} +13 -20
  54. package/dist/lib/chunk-meta.mjs.map +1 -0
  55. package/dist/lib/chunk-migrations.mjs +29 -0
  56. package/dist/lib/chunk-migrations.mjs.map +1 -0
  57. package/dist/lib/chunk-navigation-handler.mjs +71 -0
  58. package/dist/lib/chunk-navigation-handler.mjs.map +1 -0
  59. package/dist/lib/chunk-navigation-target-loader.mjs +46 -0
  60. package/dist/lib/chunk-navigation-target-loader.mjs.map +1 -0
  61. package/dist/lib/chunk-open-usage.mjs +14 -0
  62. package/dist/lib/chunk-open-usage.mjs.map +1 -0
  63. package/dist/lib/chunk-operation-handler.mjs +11 -0
  64. package/dist/lib/chunk-operation-handler.mjs.map +1 -0
  65. package/dist/lib/chunk-operations.mjs +212 -0
  66. package/dist/lib/chunk-operations.mjs.map +1 -0
  67. package/dist/lib/chunk-progress.mjs +10 -0
  68. package/dist/lib/chunk-progress.mjs.map +1 -0
  69. package/dist/lib/chunk-react-context.mjs +30 -0
  70. package/dist/lib/chunk-react-context.mjs.map +1 -0
  71. package/dist/lib/chunk-react-surface.mjs +70 -0
  72. package/dist/lib/chunk-react-surface.mjs.map +1 -0
  73. package/dist/lib/chunk-recover-identity.mjs +17 -0
  74. package/dist/lib/chunk-recover-identity.mjs.map +1 -0
  75. package/dist/lib/chunk-redeem-passkey.mjs +72 -0
  76. package/dist/lib/chunk-redeem-passkey.mjs.map +1 -0
  77. package/dist/lib/chunk-redeem-token.mjs +24 -0
  78. package/dist/lib/chunk-redeem-token.mjs.map +1 -0
  79. package/dist/lib/chunk-remote-trace-monitor.mjs +37 -0
  80. package/dist/lib/chunk-remote-trace-monitor.mjs.map +1 -0
  81. package/dist/lib/chunk-reset-storage.mjs +17 -0
  82. package/dist/lib/chunk-reset-storage.mjs.map +1 -0
  83. package/dist/lib/chunk-resolve-navigation-targets.mjs +32 -0
  84. package/dist/lib/chunk-resolve-navigation-targets.mjs.map +1 -0
  85. package/dist/lib/chunk-schema-defs.mjs +53 -0
  86. package/dist/lib/chunk-schema-defs.mjs.map +1 -0
  87. package/dist/lib/chunk-share-identity.mjs +16 -0
  88. package/dist/lib/chunk-share-identity.mjs.map +1 -0
  89. package/dist/lib/chunk-space-replication-progress.mjs +94 -0
  90. package/dist/lib/chunk-space-replication-progress.mjs.map +1 -0
  91. package/dist/lib/chunk-trace-progress.mjs +69 -0
  92. package/dist/lib/chunk-trace-progress.mjs.map +1 -0
  93. package/dist/lib/chunk-update-profile.mjs +15 -0
  94. package/dist/lib/chunk-update-profile.mjs.map +1 -0
  95. package/dist/lib/components.mjs +0 -0
  96. package/dist/lib/containers.mjs +15 -0
  97. package/dist/lib/containers.mjs.map +1 -0
  98. package/dist/lib/index.mjs +27 -0
  99. package/dist/lib/index.mjs.map +1 -0
  100. package/dist/lib/meta.mjs +2 -0
  101. package/dist/lib/operations.mjs +2 -0
  102. package/dist/lib/plugin.mjs +9 -0
  103. package/dist/lib/plugin.mjs.map +1 -0
  104. package/dist/lib/testing.mjs +21 -0
  105. package/dist/lib/testing.mjs.map +1 -0
  106. package/dist/lib/translations.mjs +111 -0
  107. package/dist/lib/translations.mjs.map +1 -0
  108. package/dist/lib/types.mjs +139 -0
  109. package/dist/lib/types.mjs.map +1 -0
  110. package/dist/types/src/ClientPlugin.d.ts.map +1 -1
  111. package/dist/types/src/capabilities/account-cache.d.ts +1 -1
  112. package/dist/types/src/capabilities/app-graph-builder.d.ts +1 -1
  113. package/dist/types/src/capabilities/client.d.ts +1 -1
  114. package/dist/types/src/capabilities/client.d.ts.map +1 -1
  115. package/dist/types/src/capabilities/hub-http-client.d.ts +1 -1
  116. package/dist/types/src/capabilities/index.d.ts +6 -1
  117. package/dist/types/src/capabilities/index.d.ts.map +1 -1
  118. package/dist/types/src/capabilities/layer-specs.d.ts +1 -1
  119. package/dist/types/src/capabilities/migrations.d.ts +1 -1
  120. package/dist/types/src/capabilities/navigation-handler/navigation-handler.d.ts +3 -1
  121. package/dist/types/src/capabilities/navigation-handler/navigation-handler.d.ts.map +1 -1
  122. package/dist/types/src/capabilities/navigation-target-loader.d.ts +11 -0
  123. package/dist/types/src/capabilities/navigation-target-loader.d.ts.map +1 -0
  124. package/dist/types/src/capabilities/node.d.ts +2 -1
  125. package/dist/types/src/capabilities/node.d.ts.map +1 -1
  126. package/dist/types/src/capabilities/operation-handler.d.ts +1 -1
  127. package/dist/types/src/capabilities/react-context.d.ts +1 -1
  128. package/dist/types/src/capabilities/react-context.d.ts.map +1 -1
  129. package/dist/types/src/capabilities/react-surface.d.ts +1 -1
  130. package/dist/types/src/capabilities/react-surface.d.ts.map +1 -1
  131. package/dist/types/src/capabilities/remote-trace-monitor.d.ts +15 -0
  132. package/dist/types/src/capabilities/remote-trace-monitor.d.ts.map +1 -0
  133. package/dist/types/src/capabilities/schema-defs.d.ts +1 -1
  134. package/dist/types/src/capabilities/space-replication-progress.d.ts +11 -0
  135. package/dist/types/src/capabilities/space-replication-progress.d.ts.map +1 -0
  136. package/dist/types/src/capabilities/trace-progress.d.ts +17 -0
  137. package/dist/types/src/capabilities/trace-progress.d.ts.map +1 -0
  138. package/dist/types/src/commands/account/login/login.d.ts +2 -1
  139. package/dist/types/src/commands/account/login/login.d.ts.map +1 -1
  140. package/dist/types/src/commands/account/logout/logout.d.ts +1 -1
  141. package/dist/types/src/commands/account/logout/logout.d.ts.map +1 -1
  142. package/dist/types/src/commands/halo/index.d.ts.map +1 -1
  143. package/dist/types/src/commands/halo/share/share.d.ts.map +1 -1
  144. package/dist/types/src/commands/profile/create.d.ts.map +1 -1
  145. package/dist/types/src/containers/AccountContainer/AccountContainer.d.ts +4 -1
  146. package/dist/types/src/containers/AccountContainer/AccountContainer.d.ts.map +1 -1
  147. package/dist/types/src/containers/AccountContainer/AccountContainer.stories.d.ts +4 -1
  148. package/dist/types/src/containers/AccountContainer/AccountContainer.stories.d.ts.map +1 -1
  149. package/dist/types/src/containers/DevicesContainer/DevicesContainer.d.ts +4 -1
  150. package/dist/types/src/containers/DevicesContainer/DevicesContainer.d.ts.map +1 -1
  151. package/dist/types/src/containers/DevicesContainer/DevicesContainer.stories.d.ts +4 -1
  152. package/dist/types/src/containers/DevicesContainer/DevicesContainer.stories.d.ts.map +1 -1
  153. package/dist/types/src/containers/InvitationsContainer/InvitationsContainer.d.ts +4 -1
  154. package/dist/types/src/containers/InvitationsContainer/InvitationsContainer.d.ts.map +1 -1
  155. package/dist/types/src/containers/InvitationsContainer/InvitationsContainer.stories.d.ts +4 -1
  156. package/dist/types/src/containers/InvitationsContainer/InvitationsContainer.stories.d.ts.map +1 -1
  157. package/dist/types/src/containers/JoinDialog/JoinDialog.d.ts +4 -1
  158. package/dist/types/src/containers/JoinDialog/JoinDialog.d.ts.map +1 -1
  159. package/dist/types/src/containers/JoinDialog/JoinDialog.stories.d.ts +4 -1
  160. package/dist/types/src/containers/JoinDialog/JoinDialog.stories.d.ts.map +1 -1
  161. package/dist/types/src/containers/ProfileContainer/ProfileContainer.d.ts +4 -1
  162. package/dist/types/src/containers/ProfileContainer/ProfileContainer.d.ts.map +1 -1
  163. package/dist/types/src/containers/ProfileContainer/ProfileContainer.stories.d.ts +4 -1
  164. package/dist/types/src/containers/ProfileContainer/ProfileContainer.stories.d.ts.map +1 -1
  165. package/dist/types/src/containers/RecoveryCodeDialog/RecoveryCodeDialog.d.ts +4 -1
  166. package/dist/types/src/containers/RecoveryCodeDialog/RecoveryCodeDialog.d.ts.map +1 -1
  167. package/dist/types/src/containers/RecoveryCredentialsContainer/RecoveryCredentialsContainer.d.ts +4 -1
  168. package/dist/types/src/containers/RecoveryCredentialsContainer/RecoveryCredentialsContainer.d.ts.map +1 -1
  169. package/dist/types/src/containers/RecoveryCredentialsContainer/RecoveryCredentialsContainer.stories.d.ts +4 -1
  170. package/dist/types/src/containers/RecoveryCredentialsContainer/RecoveryCredentialsContainer.stories.d.ts.map +1 -1
  171. package/dist/types/src/containers/ResetDialog/ResetDialog.d.ts +4 -1
  172. package/dist/types/src/containers/ResetDialog/ResetDialog.d.ts.map +1 -1
  173. package/dist/types/src/containers/ResetDialog/ResetDialog.stories.d.ts +4 -1
  174. package/dist/types/src/containers/ResetDialog/ResetDialog.stories.d.ts.map +1 -1
  175. package/dist/types/src/containers/UsageContainer/UsageContainer.d.ts +4 -5
  176. package/dist/types/src/containers/UsageContainer/UsageContainer.d.ts.map +1 -1
  177. package/dist/types/src/containers/UsageContainer/UsageView.d.ts +4 -7
  178. package/dist/types/src/containers/UsageContainer/UsageView.d.ts.map +1 -1
  179. package/dist/types/src/containers/UsageContainer/UsageView.stories.d.ts +4 -2
  180. package/dist/types/src/containers/UsageContainer/UsageView.stories.d.ts.map +1 -1
  181. package/dist/types/src/halo-services-layer.d.ts +19 -0
  182. package/dist/types/src/halo-services-layer.d.ts.map +1 -0
  183. package/dist/types/src/index.d.ts +3 -0
  184. package/dist/types/src/index.d.ts.map +1 -1
  185. package/dist/types/src/operations/definitions.d.ts +9 -1
  186. package/dist/types/src/operations/definitions.d.ts.map +1 -1
  187. package/dist/types/src/operations/errors.d.ts +109 -0
  188. package/dist/types/src/operations/errors.d.ts.map +1 -0
  189. package/dist/types/src/operations/errors.test.d.ts +2 -0
  190. package/dist/types/src/operations/errors.test.d.ts.map +1 -0
  191. package/dist/types/src/operations/index.d.ts +1 -0
  192. package/dist/types/src/operations/index.d.ts.map +1 -1
  193. package/dist/types/src/operations/redeem-passkey.d.ts.map +1 -1
  194. package/dist/types/src/operations/resolve-navigation-targets.d.ts +5 -0
  195. package/dist/types/src/operations/resolve-navigation-targets.d.ts.map +1 -0
  196. package/dist/types/src/operations/update-profile.d.ts +5 -0
  197. package/dist/types/src/operations/update-profile.d.ts.map +1 -0
  198. package/dist/types/src/progress/index.d.ts +2 -0
  199. package/dist/types/src/progress/index.d.ts.map +1 -0
  200. package/dist/types/src/progress/progress-keys.d.ts +6 -0
  201. package/dist/types/src/progress/progress-keys.d.ts.map +1 -0
  202. package/dist/types/src/testing/initializeIdentity.d.ts +5 -1
  203. package/dist/types/src/testing/initializeIdentity.d.ts.map +1 -1
  204. package/dist/types/src/translations.d.ts.map +1 -1
  205. package/dist/types/src/types/capabilities.d.ts +10 -1
  206. package/dist/types/src/types/capabilities.d.ts.map +1 -1
  207. package/dist/types/src/types/schema.d.ts +6 -0
  208. package/dist/types/src/types/schema.d.ts.map +1 -1
  209. package/dist/types/tsconfig.tsbuildinfo +1 -1
  210. package/package.json +60 -55
  211. package/src/ClientPlugin.ts +25 -2
  212. package/src/capabilities/app-graph-builder.ts +1 -1
  213. package/src/capabilities/client.ts +26 -0
  214. package/src/capabilities/index.ts +10 -0
  215. package/src/capabilities/layer-specs.ts +64 -2
  216. package/src/capabilities/migrations.ts +9 -1
  217. package/src/capabilities/navigation-handler/navigation-handler.ts +20 -3
  218. package/src/capabilities/navigation-target-loader.ts +70 -0
  219. package/src/capabilities/react-context.tsx +20 -2
  220. package/src/capabilities/{react-surface.tsx → react-surface.ts} +14 -12
  221. package/src/capabilities/remote-trace-monitor.ts +62 -0
  222. package/src/capabilities/space-replication-progress.ts +143 -0
  223. package/src/capabilities/trace-progress.ts +84 -0
  224. package/src/commands/account/login/login.ts +48 -6
  225. package/src/commands/account/logout/logout.ts +4 -0
  226. package/src/commands/halo/index.ts +6 -2
  227. package/src/commands/halo/share/share.ts +16 -5
  228. package/src/commands/profile/create.ts +23 -40
  229. package/src/containers/AccountContainer/AccountContainer.tsx +6 -5
  230. package/src/containers/DevicesContainer/DevicesContainer.tsx +2 -0
  231. package/src/containers/InvitationsContainer/InvitationsContainer.tsx +2 -0
  232. package/src/containers/JoinDialog/JoinDialog.tsx +2 -0
  233. package/src/containers/ProfileContainer/ProfileContainer.tsx +19 -13
  234. package/src/containers/RecoveryCodeDialog/RecoveryCodeDialog.tsx +2 -0
  235. package/src/containers/RecoveryCredentialsContainer/RecoveryCredentialsContainer.tsx +7 -9
  236. package/src/containers/ResetDialog/ResetDialog.tsx +2 -0
  237. package/src/containers/UsageContainer/UsageContainer.tsx +10 -1
  238. package/src/containers/UsageContainer/UsageView.stories.tsx +0 -12
  239. package/src/containers/UsageContainer/UsageView.tsx +9 -10
  240. package/src/halo-services-layer.ts +29 -0
  241. package/src/index.ts +9 -0
  242. package/src/operations/definitions.ts +9 -1
  243. package/src/operations/errors.test.ts +27 -0
  244. package/src/operations/errors.ts +47 -0
  245. package/src/operations/index.ts +3 -0
  246. package/src/operations/open-usage.ts +3 -3
  247. package/src/operations/redeem-passkey.ts +85 -55
  248. package/src/operations/resolve-navigation-targets.ts +71 -0
  249. package/src/operations/share-identity.ts +3 -3
  250. package/src/operations/update-profile.ts +20 -0
  251. package/src/progress/index.ts +5 -0
  252. package/src/progress/progress-keys.ts +15 -0
  253. package/src/testing/initializeIdentity.ts +10 -2
  254. package/src/translations.ts +2 -0
  255. package/src/types/capabilities.ts +15 -1
  256. package/src/types/schema.ts +7 -0
  257. package/dist/lib/neutral/AccountContainer-7SF53UON.mjs +0 -186
  258. package/dist/lib/neutral/AccountContainer-7SF53UON.mjs.map +0 -7
  259. package/dist/lib/neutral/ClientPlugin.mjs +0 -72
  260. package/dist/lib/neutral/ClientPlugin.mjs.map +0 -7
  261. package/dist/lib/neutral/ClientPlugin.node.mjs +0 -1156
  262. package/dist/lib/neutral/ClientPlugin.node.mjs.map +0 -7
  263. package/dist/lib/neutral/ClientPlugin.workerd.mjs +0 -16
  264. package/dist/lib/neutral/ClientPlugin.workerd.mjs.map +0 -7
  265. package/dist/lib/neutral/DevicesContainer-PRWIN36N.mjs +0 -271
  266. package/dist/lib/neutral/DevicesContainer-PRWIN36N.mjs.map +0 -7
  267. package/dist/lib/neutral/InvitationsContainer-BI5RAWET.mjs +0 -143
  268. package/dist/lib/neutral/InvitationsContainer-BI5RAWET.mjs.map +0 -7
  269. package/dist/lib/neutral/JoinDialog-4BWV4CYB.mjs +0 -53
  270. package/dist/lib/neutral/JoinDialog-4BWV4CYB.mjs.map +0 -7
  271. package/dist/lib/neutral/ProfileContainer-YEAYOTX5.mjs +0 -169
  272. package/dist/lib/neutral/ProfileContainer-YEAYOTX5.mjs.map +0 -7
  273. package/dist/lib/neutral/RecoveryCodeDialog-7EPNKCLB.mjs +0 -59
  274. package/dist/lib/neutral/RecoveryCodeDialog-7EPNKCLB.mjs.map +0 -7
  275. package/dist/lib/neutral/RecoveryCredentialsContainer-6BZ2IWX7.mjs +0 -60
  276. package/dist/lib/neutral/RecoveryCredentialsContainer-6BZ2IWX7.mjs.map +0 -7
  277. package/dist/lib/neutral/ResetDialog-KUWX45JY.mjs +0 -57
  278. package/dist/lib/neutral/ResetDialog-KUWX45JY.mjs.map +0 -7
  279. package/dist/lib/neutral/UsageContainer-2DWCVVE4.mjs +0 -241
  280. package/dist/lib/neutral/UsageContainer-2DWCVVE4.mjs.map +0 -7
  281. package/dist/lib/neutral/account-cache-YVQKLNV2.mjs.map +0 -7
  282. package/dist/lib/neutral/app-graph-builder-RVXTD6OE.mjs +0 -159
  283. package/dist/lib/neutral/app-graph-builder-RVXTD6OE.mjs.map +0 -7
  284. package/dist/lib/neutral/capabilities/index.mjs +0 -34
  285. package/dist/lib/neutral/capabilities/index.mjs.map +0 -7
  286. package/dist/lib/neutral/capabilities/node.mjs +0 -21
  287. package/dist/lib/neutral/capabilities/node.mjs.map +0 -7
  288. package/dist/lib/neutral/chunk-6G4KZLBG.mjs.map +0 -7
  289. package/dist/lib/neutral/chunk-7DEIKHB7.mjs +0 -199
  290. package/dist/lib/neutral/chunk-7DEIKHB7.mjs.map +0 -7
  291. package/dist/lib/neutral/chunk-A7WDDIWY.mjs +0 -162
  292. package/dist/lib/neutral/chunk-A7WDDIWY.mjs.map +0 -7
  293. package/dist/lib/neutral/chunk-GSKMAS3S.mjs.map +0 -7
  294. package/dist/lib/neutral/chunk-J5LGTIGS.mjs +0 -10
  295. package/dist/lib/neutral/chunk-J5LGTIGS.mjs.map +0 -7
  296. package/dist/lib/neutral/chunk-JY35S2CN.mjs +0 -27
  297. package/dist/lib/neutral/chunk-JY35S2CN.mjs.map +0 -7
  298. package/dist/lib/neutral/chunk-ZFABGG2E.mjs +0 -8
  299. package/dist/lib/neutral/chunk-ZFABGG2E.mjs.map +0 -7
  300. package/dist/lib/neutral/client-7I5Y5SOA.mjs +0 -62
  301. package/dist/lib/neutral/client-7I5Y5SOA.mjs.map +0 -7
  302. package/dist/lib/neutral/components/index.mjs +0 -1
  303. package/dist/lib/neutral/components/index.mjs.map +0 -7
  304. package/dist/lib/neutral/containers/index.mjs +0 -25
  305. package/dist/lib/neutral/containers/index.mjs.map +0 -7
  306. package/dist/lib/neutral/create-agent-6UKJMZS5.mjs +0 -26
  307. package/dist/lib/neutral/create-agent-6UKJMZS5.mjs.map +0 -7
  308. package/dist/lib/neutral/create-identity-ULCRB3YH.mjs +0 -42
  309. package/dist/lib/neutral/create-identity-ULCRB3YH.mjs.map +0 -7
  310. package/dist/lib/neutral/create-passkey-I7VDS3AC.mjs +0 -81
  311. package/dist/lib/neutral/create-passkey-I7VDS3AC.mjs.map +0 -7
  312. package/dist/lib/neutral/create-recovery-code-DH2B6EGP.mjs +0 -36
  313. package/dist/lib/neutral/create-recovery-code-DH2B6EGP.mjs.map +0 -7
  314. package/dist/lib/neutral/hub-http-client-WOJUCDKV.mjs +0 -19
  315. package/dist/lib/neutral/hub-http-client-WOJUCDKV.mjs.map +0 -7
  316. package/dist/lib/neutral/index.mjs +0 -25
  317. package/dist/lib/neutral/index.mjs.map +0 -7
  318. package/dist/lib/neutral/join-identity-PJCHDNLH.mjs +0 -27
  319. package/dist/lib/neutral/join-identity-PJCHDNLH.mjs.map +0 -7
  320. package/dist/lib/neutral/layer-specs-YI7BVWKZ.mjs +0 -59
  321. package/dist/lib/neutral/layer-specs-YI7BVWKZ.mjs.map +0 -7
  322. package/dist/lib/neutral/meta.json +0 -1
  323. package/dist/lib/neutral/meta.mjs +0 -8
  324. package/dist/lib/neutral/meta.mjs.map +0 -7
  325. package/dist/lib/neutral/migrations-7FTW55ER.mjs +0 -23
  326. package/dist/lib/neutral/migrations-7FTW55ER.mjs.map +0 -7
  327. package/dist/lib/neutral/navigation-handler-MQ6MZXLX.mjs +0 -46
  328. package/dist/lib/neutral/navigation-handler-MQ6MZXLX.mjs.map +0 -7
  329. package/dist/lib/neutral/open-usage-OJVTPGOY.mjs +0 -27
  330. package/dist/lib/neutral/open-usage-OJVTPGOY.mjs.map +0 -7
  331. package/dist/lib/neutral/operation-handler-E3HB7E2T.mjs +0 -13
  332. package/dist/lib/neutral/operation-handler-E3HB7E2T.mjs.map +0 -7
  333. package/dist/lib/neutral/operations/index.mjs +0 -12
  334. package/dist/lib/neutral/operations/index.mjs.map +0 -7
  335. package/dist/lib/neutral/plugin.mjs +0 -17
  336. package/dist/lib/neutral/plugin.mjs.map +0 -7
  337. package/dist/lib/neutral/react-context-V74T6JOJ.mjs +0 -23
  338. package/dist/lib/neutral/react-context-V74T6JOJ.mjs.map +0 -7
  339. package/dist/lib/neutral/react-surface-HPXRA65U.mjs +0 -75
  340. package/dist/lib/neutral/react-surface-HPXRA65U.mjs.map +0 -7
  341. package/dist/lib/neutral/recover-identity-B7YM2BR4.mjs +0 -26
  342. package/dist/lib/neutral/recover-identity-B7YM2BR4.mjs.map +0 -7
  343. package/dist/lib/neutral/redeem-passkey-TYP4XLHO.mjs +0 -66
  344. package/dist/lib/neutral/redeem-passkey-TYP4XLHO.mjs.map +0 -7
  345. package/dist/lib/neutral/redeem-token-2J33R3PV.mjs +0 -29
  346. package/dist/lib/neutral/redeem-token-2J33R3PV.mjs.map +0 -7
  347. package/dist/lib/neutral/reset-storage-K47HZTGP.mjs +0 -26
  348. package/dist/lib/neutral/reset-storage-K47HZTGP.mjs.map +0 -7
  349. package/dist/lib/neutral/schema-defs-IHBCKTMM.mjs +0 -51
  350. package/dist/lib/neutral/schema-defs-IHBCKTMM.mjs.map +0 -7
  351. package/dist/lib/neutral/share-identity-TOROBLWL.mjs +0 -31
  352. package/dist/lib/neutral/share-identity-TOROBLWL.mjs.map +0 -7
  353. package/dist/lib/neutral/testing/index.mjs +0 -25
  354. package/dist/lib/neutral/testing/index.mjs.map +0 -7
  355. package/dist/lib/neutral/translations.mjs +0 -124
  356. package/dist/lib/neutral/translations.mjs.map +0 -7
  357. package/dist/lib/neutral/types/index.mjs +0 -16
  358. package/dist/lib/neutral/types/index.mjs.map +0 -7
@@ -0,0 +1,69 @@
1
+ import { Capabilities, Capability } from "@dxos/app-framework";
2
+ import { Trace } from "@dxos/compute";
3
+ import { AppCapabilities, createProgressTraceSink, resolveTriggerId } from "@dxos/app-toolkit";
4
+ import * as Effect from "effect/Effect";
5
+ import { log } from "@dxos/log";
6
+ import { RemoteProcessManager } from "@dxos/compute-runtime";
7
+ import * as Stream from "effect/Stream";
8
+ import * as Fiber from "effect/Fiber";
9
+ //#region src/capabilities/trace-progress.ts
10
+ var __dxlog_file = "/__w/dxos/dxos/packages/plugins/plugin-client/src/capabilities/trace-progress.ts";
11
+ /**
12
+ * Projects remote (edge-runtime) `status.update` trace events into the {@link AppCapabilities.ProgressRegistry}
13
+ * (DX-1125). Subscribes to the aggregate {@link Process.Monitor.subscribeToTraceMessages}, whose remote
14
+ * source is the swarm-backed monitor contributed by `remote-trace-monitor`.
15
+ *
16
+ * Only edge-runtime messages are projected here: local progress already flows through the
17
+ * `plugin-progress` trace sink, and both write the same progress keys — projecting local messages
18
+ * twice would let two writers clobber each other's registry handles.
19
+ *
20
+ * Cancel on this path always routes to {@link RemoteProcessManager} (edge) — local terminate is
21
+ * handled by the `plugin-progress` sink, which never sees these messages.
22
+ */
23
+ var trace_progress_default = Capability.makeModule(Effect.fnUntraced(function* () {
24
+ const capabilityManager = yield* Capability.Service;
25
+ const monitor = yield* Capability.get(Capabilities.ProcessMonitor);
26
+ const processManagerRuntime = yield* Capability.get(Capabilities.ProcessManagerRuntime);
27
+ const resolver = yield* Capability.get(Capabilities.ServiceResolver);
28
+ const cancelRemote = (space, trigger, pid) => Effect.runFork(resolver.resolve(RemoteProcessManager.Service, {}).pipe(Effect.flatMap((manager) => manager.cancel?.({
29
+ space,
30
+ trigger,
31
+ pid
32
+ }) ?? Effect.void), Effect.scoped, Effect.catchAllCause((cause) => Effect.sync(() => log.warn("edge progress cancel failed", {
33
+ space,
34
+ trigger,
35
+ pid,
36
+ cause
37
+ }, {
38
+ "~LogMeta": "~LogMeta",
39
+ F: __dxlog_file,
40
+ L: 42,
41
+ S: this
42
+ })))));
43
+ const progressSink = createProgressTraceSink(() => capabilityManager.getAll(AppCapabilities.ProgressRegistry)[0], {
44
+ cancelScope: "run",
45
+ cancelProcess: (target) => {
46
+ const triggerId = resolveTriggerId(target);
47
+ if (target.space && triggerId) cancelRemote(target.space, triggerId, target.pid);
48
+ else log.warn("edge progress cancel dropped: unresolvable target", {
49
+ space: target.space,
50
+ trigger: target.trigger?.uri.toString(),
51
+ pid: target.pid
52
+ }, {
53
+ "~LogMeta": "~LogMeta",
54
+ F: __dxlog_file,
55
+ L: 59,
56
+ S: this
57
+ });
58
+ }
59
+ });
60
+ const fiber = processManagerRuntime.runFork(monitor.subscribeToTraceMessages({ type: Trace.StatusUpdate.key }).pipe(Stream.runForEach((message) => Effect.sync(() => {
61
+ const runtimeName = message.meta.runtimeName;
62
+ if (runtimeName && Trace.isEdgeRuntime(runtimeName)) progressSink.write(message);
63
+ }))));
64
+ yield* Effect.addFinalizer(() => Fiber.interrupt(fiber));
65
+ }));
66
+ //#endregion
67
+ export { trace_progress_default as default };
68
+
69
+ //# sourceMappingURL=chunk-trace-progress.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"chunk-trace-progress.mjs","names":[],"sources":["../../src/capabilities/trace-progress.ts"],"sourcesContent":["//\n// Copyright 2026 DXOS.org\n//\n\nimport * as Effect from 'effect/Effect';\nimport * as Fiber from 'effect/Fiber';\nimport * as Stream from 'effect/Stream';\n\nimport { Capabilities, Capability } from '@dxos/app-framework';\nimport { AppCapabilities, type CancelTarget, createProgressTraceSink, resolveTriggerId } from '@dxos/app-toolkit';\nimport { Trace } from '@dxos/compute';\nimport { RemoteProcessManager } from '@dxos/compute-runtime';\nimport { log } from '@dxos/log';\n\n/**\n * Projects remote (edge-runtime) `status.update` trace events into the {@link AppCapabilities.ProgressRegistry}\n * (DX-1125). Subscribes to the aggregate {@link Process.Monitor.subscribeToTraceMessages}, whose remote\n * source is the swarm-backed monitor contributed by `remote-trace-monitor`.\n *\n * Only edge-runtime messages are projected here: local progress already flows through the\n * `plugin-progress` trace sink, and both write the same progress keys — projecting local messages\n * twice would let two writers clobber each other's registry handles.\n *\n * Cancel on this path always routes to {@link RemoteProcessManager} (edge) — local terminate is\n * handled by the `plugin-progress` sink, which never sees these messages.\n */\nexport default Capability.makeModule(\n Effect.fnUntraced(function* () {\n const capabilityManager = yield* Capability.Service;\n const monitor = yield* Capability.get(Capabilities.ProcessMonitor);\n const processManagerRuntime = yield* Capability.get(Capabilities.ProcessManagerRuntime);\n const resolver = yield* Capability.get(Capabilities.ServiceResolver);\n\n // Edge-only cancel. Soft-fails (the meter has already cleared locally), but never silently: an\n // unresolvable manager or a rejected request means the run may still be going on the edge.\n const cancelRemote = (space: string, trigger: string, pid?: string) =>\n Effect.runFork(\n resolver.resolve(RemoteProcessManager.Service, {}).pipe(\n Effect.flatMap((manager) => manager.cancel?.({ space, trigger, pid }) ?? Effect.void),\n Effect.scoped,\n Effect.catchAllCause((cause) =>\n Effect.sync(() => log.warn('edge progress cancel failed', { space, trigger, pid, cause })),\n ),\n ),\n );\n\n const progressSink = createProgressTraceSink(() => capabilityManager.getAll(AppCapabilities.ProgressRegistry)[0], {\n // An edge run is a chain of bounded invocations, each with a fresh pid, so a pid tombstone\n // would only mask one chain link and the next would resurrect the meter — suppress the key\n // until the run's terminal status, matching the local (single-pid) cancel behaviour.\n cancelScope: 'run',\n cancelProcess: (target: CancelTarget) => {\n const triggerId = resolveTriggerId(target);\n if (target.space && triggerId) {\n cancelRemote(target.space, triggerId, target.pid);\n } else {\n // Never drop a user's cancel silently — an unresolvable target means the trace meta lost\n // its addressing (e.g. the swarm wire codec), which must surface in the log.\n log.warn('edge progress cancel dropped: unresolvable target', {\n space: target.space,\n trigger: target.trigger?.uri.toString(),\n pid: target.pid,\n });\n }\n },\n });\n\n // TODO(mykola): Possible bug source. Use `Effect.forkDaemon`.\n const fiber = processManagerRuntime.runFork(\n monitor.subscribeToTraceMessages({ type: Trace.StatusUpdate.key }).pipe(\n Stream.runForEach((message) =>\n Effect.sync(() => {\n const runtimeName = message.meta.runtimeName;\n if (runtimeName && Trace.isEdgeRuntime(runtimeName)) {\n progressSink.write(message);\n }\n }),\n ),\n ),\n );\n\n yield* Effect.addFinalizer(() => Fiber.interrupt(fiber));\n }),\n);\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;AA0BA,IAAA,yBAAe,WAAW,WACxB,OAAO,WAAW,aAAa;CAC7B,MAAM,oBAAoB,OAAO,WAAW;CAC5C,MAAM,UAAU,OAAO,WAAW,IAAI,aAAa,cAAc;CACjE,MAAM,wBAAwB,OAAO,WAAW,IAAI,aAAa,qBAAqB;CACtF,MAAM,WAAW,OAAO,WAAW,IAAI,aAAa,eAAe;CAInE,MAAM,gBAAgB,OAAe,SAAiB,QACpD,OAAO,QACL,SAAS,QAAQ,qBAAqB,SAAS,CAAC,CAAC,CAAC,CAAC,KACjD,OAAO,SAAS,YAAY,QAAQ,SAAS;EAAE;EAAO;EAAS;CAAI,CAAC,KAAK,OAAO,IAAI,GACpF,OAAO,QACP,OAAO,eAAe,UACpB,OAAO,WAAW,IAAI,KAAK,+BAA+B;EAAE;EAAO;EAAS;EAAK;CAAM,GAAA;EAAA,YAAA;EAAA,GAAA;EAAA,GAAA;EAAA,GAAA;CAAA,CAAC,CAAC,CAC3F,CACF,CACF;CAEF,MAAM,eAAe,8BAA8B,kBAAkB,OAAO,gBAAgB,gBAAgB,CAAC,CAAC,IAAI;EAIhH,aAAa;EACb,gBAAgB,WAAyB;GACvC,MAAM,YAAY,iBAAiB,MAAM;GACzC,IAAI,OAAO,SAAS,WAClB,aAAa,OAAO,OAAO,WAAW,OAAO,GAAG;QAIhD,IAAI,KAAK,qDAAqD;IAC5D,OAAO,OAAO;IACd,SAAS,OAAO,SAAS,IAAI,SAAS;IACtC,KAAK,OAAO;GACd,GAAA;IAAA,YAAA;IAAA,GAAA;IAAA,GAAA;IAAA,GAAA;GAAA,CAAC;EAEL;CACF,CAAC;CAGD,MAAM,QAAQ,sBAAsB,QAClC,QAAQ,yBAAyB,EAAE,MAAM,MAAM,aAAa,IAAI,CAAC,CAAC,CAAC,KACjE,OAAO,YAAY,YACjB,OAAO,WAAW;EAChB,MAAM,cAAc,QAAQ,KAAK;EACjC,IAAI,eAAe,MAAM,cAAc,WAAW,GAChD,aAAa,MAAM,OAAO;CAE9B,CAAC,CACH,CACF,CACF;CAEA,OAAO,OAAO,mBAAmB,MAAM,UAAU,KAAK,CAAC;AACzD,CAAC,CACH"}
@@ -0,0 +1,15 @@
1
+ import { v as UpdateProfile } from "./chunk-operations.mjs";
2
+ import { Identity } from "@dxos/halo";
3
+ import { Operation } from "@dxos/compute";
4
+ import * as Effect from "effect/Effect";
5
+ //#region src/operations/update-profile.ts
6
+ var handler = UpdateProfile.pipe(Operation.withHandler(Effect.fnUntraced(function* (profile) {
7
+ yield* Identity.updateProfile({
8
+ displayName: profile.displayName,
9
+ data: profile.data
10
+ });
11
+ })));
12
+ //#endregion
13
+ export { handler as default };
14
+
15
+ //# sourceMappingURL=chunk-update-profile.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"chunk-update-profile.mjs","names":[],"sources":["../../src/operations/update-profile.ts"],"sourcesContent":["//\n// Copyright 2025 DXOS.org\n//\n\nimport * as Effect from 'effect/Effect';\n\nimport { Operation } from '@dxos/compute';\nimport { Identity } from '@dxos/halo';\n\nimport { UpdateProfile } from './definitions';\n\nconst handler: Operation.WithHandler<typeof UpdateProfile> = UpdateProfile.pipe(\n Operation.withHandler(\n Effect.fnUntraced(function* (profile) {\n yield* Identity.updateProfile({ displayName: profile.displayName, data: profile.data });\n }),\n ),\n);\n\nexport default handler;\n"],"mappings":";;;;;AAWA,IAAM,UAAuD,cAAc,KACzE,UAAU,YACR,OAAO,WAAW,WAAW,SAAS;CACpC,OAAO,SAAS,cAAc;EAAE,aAAa,QAAQ;EAAa,MAAM,QAAQ;CAAK,CAAC;AACxF,CAAC,CACH,CACF"}
File without changes
@@ -0,0 +1,15 @@
1
+ import { lazy } from "react";
2
+ //#region src/containers/index.ts
3
+ var AccountContainer = lazy(() => import("./chunk-AccountContainer.mjs"));
4
+ var DevicesContainer = lazy(() => import("./chunk-DevicesContainer.mjs"));
5
+ var InvitationsContainer = lazy(() => import("./chunk-InvitationsContainer.mjs"));
6
+ var UsageContainer = lazy(() => import("./chunk-UsageContainer.mjs"));
7
+ var JoinDialog = lazy(() => import("./chunk-JoinDialog.mjs"));
8
+ var ProfileContainer = lazy(() => import("./chunk-ProfileContainer.mjs"));
9
+ var RecoveryCodeDialog = lazy(() => import("./chunk-RecoveryCodeDialog.mjs"));
10
+ var RecoveryCredentialsContainer = lazy(() => import("./chunk-RecoveryCredentialsContainer.mjs"));
11
+ var ResetDialog = lazy(() => import("./chunk-ResetDialog.mjs"));
12
+ //#endregion
13
+ export { AccountContainer, DevicesContainer, InvitationsContainer, JoinDialog, ProfileContainer, RecoveryCodeDialog, RecoveryCredentialsContainer, ResetDialog, UsageContainer };
14
+
15
+ //# sourceMappingURL=containers.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"containers.mjs","names":[],"sources":["../../src/containers/index.ts"],"sourcesContent":["//\n// Copyright 2025 DXOS.org\n//\n\nimport { type ComponentType, lazy } from 'react';\n\nexport { type RecoveryCodeDialogProps } from './RecoveryCodeDialog';\nexport { type ResetDialogProps } from './ResetDialog';\n\nexport const AccountContainer: ComponentType<any> = lazy(() => import('./AccountContainer'));\nexport const DevicesContainer: ComponentType<any> = lazy(() => import('./DevicesContainer'));\nexport const InvitationsContainer: ComponentType<any> = lazy(() => import('./InvitationsContainer'));\nexport const UsageContainer: ComponentType<any> = lazy(() => import('./UsageContainer'));\nexport const JoinDialog: ComponentType<any> = lazy(() => import('./JoinDialog'));\nexport const ProfileContainer: ComponentType<any> = lazy(() => import('./ProfileContainer'));\nexport const RecoveryCodeDialog: ComponentType<any> = lazy(() => import('./RecoveryCodeDialog'));\nexport const RecoveryCredentialsContainer: ComponentType<any> = lazy(() => import('./RecoveryCredentialsContainer'));\nexport const ResetDialog: ComponentType<any> = lazy(() => import('./ResetDialog'));\n"],"mappings":";;AASA,IAAa,mBAAuC,WAAW,OAAO,+BAAqB;AAC3F,IAAa,mBAAuC,WAAW,OAAO,+BAAqB;AAC3F,IAAa,uBAA2C,WAAW,OAAO,mCAAyB;AACnG,IAAa,iBAAqC,WAAW,OAAO,6BAAmB;AACvF,IAAa,aAAiC,WAAW,OAAO,yBAAe;AAC/E,IAAa,mBAAuC,WAAW,OAAO,+BAAqB;AAC3F,IAAa,qBAAyC,WAAW,OAAO,iCAAuB;AAC/F,IAAa,+BAAmD,WAAW,OAAO,2CAAiC;AACnH,IAAa,cAAkC,WAAW,OAAO,0BAAgB"}
@@ -0,0 +1,27 @@
1
+ import { a as classifyPasskeyFailure, i as PasskeyRejectedError, n as PasskeyDismissedError, r as PasskeyLoginError, y as definitions_exports } from "./chunk-operations.mjs";
2
+ import { t as meta } from "./chunk-meta.mjs";
3
+ import { Account, AccountCache, ClientAction, ClientCapabilities, ClientEvents } from "./types.mjs";
4
+ import { n as createSpaceReplicationProgressKey, t as createSpaceFeedReplicationProgressKey } from "./chunk-progress.mjs";
5
+ import { Capability } from "@dxos/app-framework";
6
+ import * as Layer from "effect/Layer";
7
+ import { Identity, Space } from "@dxos/halo";
8
+ //#region src/halo-services-layer.ts
9
+ /**
10
+ * Provides the canonical `@dxos/halo` services (`Identity.Service` / `Space.Service`) from the
11
+ * client-backed capabilities contributed by this plugin. Consumers depend on the halo services
12
+ * directly and provide this layer, rather than reaching for the capability instances:
13
+ *
14
+ * ```ts
15
+ * yield* Identity.getSnapshot; // requires Identity.Service
16
+ * // provided by:
17
+ * effect.pipe(Effect.provide(HaloServicesLayer));
18
+ * ```
19
+ *
20
+ * The layer itself requires `Capability.Service` (the capability manager), which is in scope inside
21
+ * capability modules and operation handlers.
22
+ */
23
+ var HaloServicesLayer = Layer.merge(Capability.layerWith(ClientCapabilities.IdentityService, (service) => Layer.succeed(Identity.Service, service)), Capability.layerWith(ClientCapabilities.SpaceService, (service) => Layer.succeed(Space.Service, service)));
24
+ //#endregion
25
+ export { Account, AccountCache, ClientAction, ClientCapabilities, ClientEvents, definitions_exports as ClientOperation, HaloServicesLayer, PasskeyDismissedError, PasskeyLoginError, PasskeyRejectedError, classifyPasskeyFailure, createSpaceFeedReplicationProgressKey, createSpaceReplicationProgressKey, meta };
26
+
27
+ //# sourceMappingURL=index.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.mjs","names":[],"sources":["../../src/halo-services-layer.ts"],"sourcesContent":["//\n// Copyright 2026 DXOS.org\n//\n\nimport * as Layer from 'effect/Layer';\n\nimport { Capability } from '@dxos/app-framework';\nimport { Identity, Space } from '@dxos/halo';\n\nimport { ClientCapabilities } from './types';\n\n/**\n * Provides the canonical `@dxos/halo` services (`Identity.Service` / `Space.Service`) from the\n * client-backed capabilities contributed by this plugin. Consumers depend on the halo services\n * directly and provide this layer, rather than reaching for the capability instances:\n *\n * ```ts\n * yield* Identity.getSnapshot; // requires Identity.Service\n * // provided by:\n * effect.pipe(Effect.provide(HaloServicesLayer));\n * ```\n *\n * The layer itself requires `Capability.Service` (the capability manager), which is in scope inside\n * capability modules and operation handlers.\n */\nexport const HaloServicesLayer: Layer.Layer<Identity.Service | Space.Service, never, Capability.Service> = Layer.merge(\n Capability.layerWith(ClientCapabilities.IdentityService, (service) => Layer.succeed(Identity.Service, service)),\n Capability.layerWith(ClientCapabilities.SpaceService, (service) => Layer.succeed(Space.Service, service)),\n);\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;AAyBA,IAAa,oBAA8F,MAAM,MAC/G,WAAW,UAAU,mBAAmB,kBAAkB,YAAY,MAAM,QAAQ,SAAS,SAAS,OAAO,CAAC,GAC9G,WAAW,UAAU,mBAAmB,eAAe,YAAY,MAAM,QAAQ,MAAM,SAAS,OAAO,CAAC,CAC1G"}
@@ -0,0 +1,2 @@
1
+ import { t as meta } from "./chunk-meta.mjs";
2
+ export { meta };
@@ -0,0 +1,2 @@
1
+ import { a as classifyPasskeyFailure, i as PasskeyRejectedError, n as PasskeyDismissedError, o as toPasskeyAssertionError, r as PasskeyLoginError, t as ClientOperationHandlerSet, y as definitions_exports } from "./chunk-operations.mjs";
2
+ export { definitions_exports as ClientOperation, ClientOperationHandlerSet, PasskeyDismissedError, PasskeyLoginError, PasskeyRejectedError, classifyPasskeyFailure, toPasskeyAssertionError };
@@ -0,0 +1,9 @@
1
+ import { t as ClientOperationHandlerSet } from "./chunk-operations.mjs";
2
+ import { t as meta } from "./chunk-meta.mjs";
3
+ import { Plugin } from "@dxos/app-framework";
4
+ //#region src/plugin.ts
5
+ var ClientPlugin = Plugin.lazy(meta, () => import("#plugin"));
6
+ //#endregion
7
+ export { ClientOperationHandlerSet, ClientPlugin };
8
+
9
+ //# sourceMappingURL=plugin.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"plugin.mjs","names":[],"sources":["../../src/plugin.ts"],"sourcesContent":["//\n// Copyright 2023 DXOS.org\n//\n\nimport { Plugin } from '@dxos/app-framework';\n\nimport { meta } from './meta';\n\nexport const ClientPlugin = Plugin.lazy(meta, () => import('#plugin'));\n\nexport { ClientOperationHandlerSet } from './operations';\n"],"mappings":";;;;AAQA,IAAa,eAAe,OAAO,KAAK,YAAY,OAAO,UAAU"}
@@ -0,0 +1,21 @@
1
+ import { AppSpace } from "@dxos/app-toolkit";
2
+ import * as Effect from "effect/Effect";
3
+ export * from "#plugin";
4
+ //#region src/testing/initializeIdentity.ts
5
+ /**
6
+ * Create an identity and a personal space.
7
+ * Returns the identity and space for further setup.
8
+ */
9
+ var initializeIdentity = (client, { displayName } = {}) => Effect.gen(function* () {
10
+ const identity = yield* Effect.promise(() => client.halo.createIdentity(displayName ? { displayName } : {}));
11
+ const personalSpace = yield* Effect.promise(() => client.spaces.create({}, { tags: [AppSpace.PERSONAL_SPACE_TAG] }));
12
+ yield* Effect.promise(() => personalSpace.waitUntilReady());
13
+ return {
14
+ identity,
15
+ personalSpace
16
+ };
17
+ });
18
+ //#endregion
19
+ export { initializeIdentity };
20
+
21
+ //# sourceMappingURL=testing.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"testing.mjs","names":[],"sources":["../../src/testing/initializeIdentity.ts"],"sourcesContent":["//\n// Copyright 2025 DXOS.org\n//\n\nimport * as Effect from 'effect/Effect';\n\nimport { AppSpace } from '@dxos/app-toolkit';\nimport { type Client } from '@dxos/client';\nimport { type Space } from '@dxos/client-protocol';\nimport { type Identity } from '@dxos/protocols/proto/dxos/client/services';\n\nexport type InitializeIdentityResult = {\n identity: Identity;\n // TODO(burdon): Rename to space.\n personalSpace: Space;\n};\n\nexport type InitializeIdentityOptions = {\n /** Profile display name for the generated identity, so stories show a real name (not a raw DID). */\n displayName?: string;\n};\n\n/**\n * Create an identity and a personal space.\n * Returns the identity and space for further setup.\n */\nexport const initializeIdentity = (\n client: Client,\n { displayName }: InitializeIdentityOptions = {},\n): Effect.Effect<InitializeIdentityResult, never, never> =>\n Effect.gen(function* () {\n const identity = yield* Effect.promise(() => client.halo.createIdentity(displayName ? { displayName } : {}));\n const personalSpace = yield* Effect.promise(() =>\n client.spaces.create({}, { tags: [AppSpace.PERSONAL_SPACE_TAG] }),\n );\n yield* Effect.promise(() => personalSpace.waitUntilReady());\n return {\n identity,\n personalSpace,\n };\n });\n"],"mappings":";;;;;;;;AA0BA,IAAa,sBACX,QACA,EAAE,gBAA2C,CAAC,MAE9C,OAAO,IAAI,aAAa;CACtB,MAAM,WAAW,OAAO,OAAO,cAAc,OAAO,KAAK,eAAe,cAAc,EAAE,YAAY,IAAI,CAAC,CAAC,CAAC;CAC3G,MAAM,gBAAgB,OAAO,OAAO,cAClC,OAAO,OAAO,OAAO,CAAC,GAAG,EAAE,MAAM,CAAC,SAAS,kBAAkB,EAAE,CAAC,CAClE;CACA,OAAO,OAAO,cAAc,cAAc,eAAe,CAAC;CAC1D,OAAO;EACL;EACA;CACF;AACF,CAAC"}
@@ -0,0 +1,111 @@
1
+ import { meta } from "#meta";
2
+ import { translations as translations$1 } from "@dxos/shell/react";
3
+ var translations = [...[{ "en-US": { [meta.profile.key]: {
4
+ "account.label": "User profile",
5
+ "profile.label": "Profile",
6
+ "profile.description": "User profile and account settings.",
7
+ "devices.label": "Devices",
8
+ "add-device.label": "Add device",
9
+ "devices-verbose.label": "Manage devices",
10
+ "add-device.description": "Authenticating another device is a two-step process. To get started, create a code using the button below.",
11
+ "devices.description": "Devices, cloud agents, and account access for this identity.",
12
+ "create-device-invitation.label": "Create code",
13
+ "qr-code.description": "Scan this QR code using the device you want to log in to, or copy the URL and share it with the new device.",
14
+ "security.label": "Security",
15
+ "account-panel.label": "Account",
16
+ "invitations-panel.label": "Invitations",
17
+ "usage-panel.label": "Usage",
18
+ "usage-section.title": "Usage",
19
+ "usage-section.description": "Rolling-window consumption against your plan limits for edge services such as AI inference.",
20
+ "usage-unavailable.title": "Usage unavailable",
21
+ "usage-unavailable.description": "Hub service is not configured, so usage data cannot be loaded.",
22
+ "usage-offline.title": "Couldn’t load usage",
23
+ "usage-offline.description": "Reconnect and reopen this panel to refresh usage and limits.",
24
+ "usage-empty.title": "No usage recorded",
25
+ "usage-empty.description": "Usage will appear here once you start using metered edge services.",
26
+ "usage-limit.description": "{{used}} of {{limit}} in the last {{window}}",
27
+ "usage-window-hours.label_one": "{{count}} hour",
28
+ "usage-window-hours.label_other": "{{count}} hours",
29
+ "usage-window-days.label_one": "{{count}} day",
30
+ "usage-window-days.label_other": "{{count}} days",
31
+ "usage-window-months.label_one": "{{count}} month",
32
+ "usage-window-months.label_other": "{{count}} months",
33
+ "usage-percent-used.label": "{{percent}}% used",
34
+ "usage-all-models.label": "All models",
35
+ "usage-unlimited.label": "Unlimited",
36
+ "usage-unlimited.description": "{{used}} used in the last {{window}}",
37
+ "usage-last-updated.label": "Last updated {{time}}",
38
+ "usage-refresh.label": "Refresh",
39
+ "usage-raw-json.label": "Raw JSON",
40
+ "account-section.title": "Account",
41
+ "account-section.description": "Your identity on this device is bound to a DXOS account that gates access to edge services like sync, agents, and AI.",
42
+ "invitations-section.title": "Invitations",
43
+ "invitations-section.description": "Share an invitation with someone you’d like to bring onto DXOS. Each code grants one-time access to create an account.",
44
+ "no-edge-access.title": "No edge access",
45
+ "no-edge-access.description": "This identity is not bound to a DXOS account, so features that depend on edge services will not work. Request access below to be notified when an invitation is available.",
46
+ "access-request-email.placeholder": "you@example.com",
47
+ "access-request-submitted.message": "Thanks — we’ll be in touch.",
48
+ "request-access.label": "Request access",
49
+ "request-access.description": "Enter your email and we’ll add you to the waiting list.",
50
+ "account-offline.title": "Couldn’t reach the server",
51
+ "account-offline.description": "Account information could not be refreshed. Reconnect to update; cached values are shown until then.",
52
+ "email.label": "Email",
53
+ "resend-verification.label": "Resend verification email",
54
+ "verification-sent.message": "Verification email sent.",
55
+ "verification-cooldown.message": "Please wait {{seconds}}s before resending.",
56
+ "verification-failed.message": "Could not send verification email.",
57
+ "delete-account.label": "Delete account",
58
+ "delete-account.description": "Permanently delete your account and all associated data. This will sign you out of this device.",
59
+ "generate-invitation.label": "Generate invitation",
60
+ "generate-invitation.description_zero": "You have no invitations left to generate.",
61
+ "generate-invitation.description_one": "You have {{count}} invitation left to generate.",
62
+ "generate-invitation.description_other": "You have {{count}} invitations left to generate.",
63
+ "available-invitations.title": "Available invitations",
64
+ "redeemed-invitations.title": "Redeemed invitations",
65
+ "reset-device.description": "Log out from this device, erasing all the data on this\xA0device.",
66
+ "join-new-identity.description": "Log out from this device, erasing all the data currently on this device, and use a QR code or URL to log\xA0in.",
67
+ "recover-identity.description": "Log out from this device, erasing all the data currently on this device, and use a passkey or recovery code to log\xA0in.",
68
+ "danger-zone.title": "Log out",
69
+ "danger-zone.description": "Because Composer is decentralized, logging out entails erasing all the data on this device. If you have any data on this device that you’d like to keep, you can log in on a separate device using a passkey or complete a peer-to-peer\xA0device invitation above.",
70
+ "display-name.label": "Display name",
71
+ "display-name.description": "Your name as it appears in the app.",
72
+ "display-name-input.placeholder": "Enter a name",
73
+ "icon.label": "Avatar",
74
+ "icon.description": "The emoji used to represent the user.",
75
+ "hue.label": "Color",
76
+ "hue.description": "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.",
77
+ "did.label": "DID",
78
+ "did.description": "Your unique ID.",
79
+ "open-user-account.label": "Open user account",
80
+ "manage-credentials-dialog.title": "Manage Account Recovery",
81
+ "credentials-list.label": "Recovery credentials",
82
+ "no-credentials.title": "WARNING: There is currently no way to recover your account.",
83
+ "no-credentials.message": "Create a recovery credential above to secure your\xA0account.",
84
+ "recovery-setup-dialog.title": "Account Security",
85
+ "recovery-setup-dialog.description": "In order to maintain access to your account you need to register a recovery credential. Passkeys are the recommended way to do this, they can be stored in your browser or in a password\xA0manager.",
86
+ "create-passkey.label": "Create Passkey",
87
+ "create-passkey.description": "A passkey is a secure and easy to use credential that can be used to recover your\xA0account.",
88
+ "create-recovery-code.label": "Create Recovery Code",
89
+ "create-recovery-code.description": "A recovery code is 12 word phrase representing a private\xA0key.",
90
+ "recovery-code-dialog.title": "Recovery Code",
91
+ "recovery-code-dialog.description": "This is your identity recovery code, store it in a safe place. You can use it to recover your identity if you ever lose access to your\xA0devices.",
92
+ "recovery-code-dialog-warning-1.message": "NOTE: This code will not be displayed\xA0again.",
93
+ "recovery-code-dialog-warning-2.message": "It is your private key for recovering DXOS data. Anyone with this key will be able to gain access to your\xA0account.",
94
+ "recovery-code-confirmation.label": "Please confirm you have saved the\xA0code.",
95
+ "continue.label": "Continue",
96
+ "auth-code.message": "Authorization code",
97
+ "auth-other-device-emoji.message": "Authorization icon",
98
+ "cancel.label": "Cancel",
99
+ "join-new-identity.label": "Join an existing identity",
100
+ "qr.label": "QR Code",
101
+ "recover-identity.label": "Use a recovery code",
102
+ "reset-device.label": "Reset storage",
103
+ "reset-dialog.description": "Reset storage",
104
+ "reset-dialog.title": "Reset storage",
105
+ "navigation-failed-toast.title": "Link could not be processed",
106
+ "navigation-failed-toast.description": "Something went wrong while handling this link. Please try again."
107
+ } } }], ...translations$1];
108
+ //#endregion
109
+ export { translations };
110
+
111
+ //# sourceMappingURL=translations.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"translations.mjs","names":[],"sources":["../../src/translations.ts"],"sourcesContent":["//\n// Copyright 2023 DXOS.org\n//\n\nimport { type Resource } from '@dxos/react-ui';\nimport { translations as shellTranslations } from '@dxos/shell/react';\n\nimport { meta } from '#meta';\n\n// TODO(burdon): Disambiguate with sdk/shell\nconst pluginTranslations = [\n {\n 'en-US': {\n [meta.profile.key]: {\n 'account.label': 'User profile',\n 'profile.label': 'Profile',\n 'profile.description': 'User profile and account settings.',\n 'devices.label': 'Devices',\n 'add-device.label': 'Add device',\n 'devices-verbose.label': 'Manage devices',\n 'add-device.description':\n 'Authenticating another device is a two-step process. To get started, create a code using the button below.',\n 'devices.description': 'Devices, cloud agents, and account access for this identity.',\n 'create-device-invitation.label': 'Create code',\n 'qr-code.description':\n 'Scan this QR code using the device you want to log in to, or copy the URL and share it with the new device.',\n 'security.label': 'Security',\n 'account-panel.label': 'Account',\n 'invitations-panel.label': 'Invitations',\n 'usage-panel.label': 'Usage',\n 'usage-section.title': 'Usage',\n 'usage-section.description':\n 'Rolling-window consumption against your plan limits for edge services such as AI inference.',\n 'usage-unavailable.title': 'Usage unavailable',\n 'usage-unavailable.description': 'Hub service is not configured, so usage data cannot be loaded.',\n 'usage-offline.title': 'Couldn’t load usage',\n 'usage-offline.description': 'Reconnect and reopen this panel to refresh usage and limits.',\n 'usage-empty.title': 'No usage recorded',\n 'usage-empty.description': 'Usage will appear here once you start using metered edge services.',\n 'usage-limit.description': '{{used}} of {{limit}} in the last {{window}}',\n 'usage-window-hours.label_one': '{{count}} hour',\n 'usage-window-hours.label_other': '{{count}} hours',\n 'usage-window-days.label_one': '{{count}} day',\n 'usage-window-days.label_other': '{{count}} days',\n 'usage-window-months.label_one': '{{count}} month',\n 'usage-window-months.label_other': '{{count}} months',\n 'usage-percent-used.label': '{{percent}}% used',\n 'usage-all-models.label': 'All models',\n 'usage-unlimited.label': 'Unlimited',\n 'usage-unlimited.description': '{{used}} used in the last {{window}}',\n 'usage-last-updated.label': 'Last updated {{time}}',\n 'usage-refresh.label': 'Refresh',\n 'usage-raw-json.label': 'Raw JSON',\n 'account-section.title': 'Account',\n 'account-section.description':\n 'Your identity on this device is bound to a DXOS account that gates access to edge services like sync, agents, and AI.',\n 'invitations-section.title': 'Invitations',\n 'invitations-section.description':\n 'Share an invitation with someone you’d like to bring onto DXOS. Each code grants one-time access to create an account.',\n 'no-edge-access.title': 'No edge access',\n 'no-edge-access.description':\n 'This identity is not bound to a DXOS account, so features that depend on edge services will not work. Request access below to be notified when an invitation is available.',\n 'access-request-email.placeholder': 'you@example.com',\n 'access-request-submitted.message': 'Thanks — we’ll be in touch.',\n 'request-access.label': 'Request access',\n 'request-access.description': 'Enter your email and we’ll add you to the waiting list.',\n 'account-offline.title': 'Couldn’t reach the server',\n 'account-offline.description':\n 'Account information could not be refreshed. Reconnect to update; cached values are shown until then.',\n 'email.label': 'Email',\n 'resend-verification.label': 'Resend verification email',\n 'verification-sent.message': 'Verification email sent.',\n 'verification-cooldown.message': 'Please wait {{seconds}}s before resending.',\n 'verification-failed.message': 'Could not send verification email.',\n 'delete-account.label': 'Delete account',\n 'delete-account.description':\n 'Permanently delete your account and all associated data. This will sign you out of this device.',\n 'generate-invitation.label': 'Generate invitation',\n 'generate-invitation.description_zero': 'You have no invitations left to generate.',\n 'generate-invitation.description_one': 'You have {{count}} invitation left to generate.',\n 'generate-invitation.description_other': 'You have {{count}} invitations left to generate.',\n 'available-invitations.title': 'Available invitations',\n 'redeemed-invitations.title': 'Redeemed invitations',\n 'reset-device.description': 'Log out from this device, erasing all the data on this device.',\n 'join-new-identity.description':\n 'Log out from this device, erasing all the data currently on this device, and use a QR code or URL to log in.',\n 'recover-identity.description':\n 'Log out from this device, erasing all the data currently on this device, and use a passkey or recovery code to log in.',\n 'danger-zone.title': 'Log out',\n 'danger-zone.description':\n 'Because Composer is decentralized, logging out entails erasing all the data on this device. If you have any data on this device that you’d like to keep, you can log in on a separate device using a passkey or complete a peer-to-peer device invitation above.',\n 'display-name.label': 'Display name',\n 'display-name.description': 'Your name as it appears in the app.',\n 'display-name-input.placeholder': 'Enter a name',\n 'icon.label': 'Avatar',\n 'icon.description': 'The emoji used to represent the user.',\n 'hue.label': 'Color',\n 'hue.description':\n '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.',\n 'did.label': 'DID',\n 'did.description': 'Your unique ID.',\n 'open-user-account.label': 'Open user account',\n 'manage-credentials-dialog.title': 'Manage Account Recovery',\n 'credentials-list.label': 'Recovery credentials',\n 'no-credentials.title': 'WARNING: There is currently no way to recover your account.',\n 'no-credentials.message': 'Create a recovery credential above to secure your account.',\n 'recovery-setup-dialog.title': 'Account Security',\n 'recovery-setup-dialog.description':\n 'In order to maintain access to your account you need to register a recovery credential. Passkeys are the recommended way to do this, they can be stored in your browser or in a password manager.',\n 'create-passkey.label': 'Create Passkey',\n // TODO(wittjosiah): At link to user-focused passkey information.\n // Something like https://www.tomsguide.com/news/what-are-passkeys.\n 'create-passkey.description':\n 'A passkey is a secure and easy to use credential that can be used to recover your account.',\n 'create-recovery-code.label': 'Create Recovery Code',\n 'create-recovery-code.description': 'A recovery code is 12 word phrase representing a private key.',\n 'recovery-code-dialog.title': 'Recovery Code',\n 'recovery-code-dialog.description':\n 'This is your identity recovery code, store it in a safe place. You can use it to recover your identity if you ever lose access to your devices.',\n 'recovery-code-dialog-warning-1.message': 'NOTE: This code will not be displayed again.',\n 'recovery-code-dialog-warning-2.message':\n 'It is your private key for recovering DXOS data. Anyone with this key will be able to gain access to your account.',\n 'recovery-code-confirmation.label': 'Please confirm you have saved the code.',\n 'continue.label': 'Continue',\n 'auth-code.message': 'Authorization code',\n 'auth-other-device-emoji.message': 'Authorization icon',\n 'cancel.label': 'Cancel',\n 'join-new-identity.label': 'Join an existing identity',\n 'qr.label': 'QR Code',\n 'recover-identity.label': 'Use a recovery code',\n 'reset-device.label': 'Reset storage',\n 'reset-dialog.description': 'Reset storage',\n 'reset-dialog.title': 'Reset storage',\n 'navigation-failed-toast.title': 'Link could not be processed',\n 'navigation-failed-toast.description': 'Something went wrong while handling this link. Please try again.',\n },\n },\n },\n] as const satisfies Resource[];\n\nexport const translations: Resource[] = [...pluginTranslations, ...shellTranslations];\n"],"mappings":";;AA4IA,IAAa,eAA2B,CAAC,GAAG,CAjI1C,EACE,SAAS,GACN,KAAK,QAAQ,MAAM;CAClB,iBAAiB;CACjB,iBAAiB;CACjB,uBAAuB;CACvB,iBAAiB;CACjB,oBAAoB;CACpB,yBAAyB;CACzB,0BACE;CACF,uBAAuB;CACvB,kCAAkC;CAClC,uBACE;CACF,kBAAkB;CAClB,uBAAuB;CACvB,2BAA2B;CAC3B,qBAAqB;CACrB,uBAAuB;CACvB,6BACE;CACF,2BAA2B;CAC3B,iCAAiC;CACjC,uBAAuB;CACvB,6BAA6B;CAC7B,qBAAqB;CACrB,2BAA2B;CAC3B,2BAA2B;CAC3B,gCAAgC;CAChC,kCAAkC;CAClC,+BAA+B;CAC/B,iCAAiC;CACjC,iCAAiC;CACjC,mCAAmC;CACnC,4BAA4B;CAC5B,0BAA0B;CAC1B,yBAAyB;CACzB,+BAA+B;CAC/B,4BAA4B;CAC5B,uBAAuB;CACvB,wBAAwB;CACxB,yBAAyB;CACzB,+BACE;CACF,6BAA6B;CAC7B,mCACE;CACF,wBAAwB;CACxB,8BACE;CACF,oCAAoC;CACpC,oCAAoC;CACpC,wBAAwB;CACxB,8BAA8B;CAC9B,yBAAyB;CACzB,+BACE;CACF,eAAe;CACf,6BAA6B;CAC7B,6BAA6B;CAC7B,iCAAiC;CACjC,+BAA+B;CAC/B,wBAAwB;CACxB,8BACE;CACF,6BAA6B;CAC7B,wCAAwC;CACxC,uCAAuC;CACvC,yCAAyC;CACzC,+BAA+B;CAC/B,8BAA8B;CAC9B,4BAA4B;CAC5B,iCACE;CACF,gCACE;CACF,qBAAqB;CACrB,2BACE;CACF,sBAAsB;CACtB,4BAA4B;CAC5B,kCAAkC;CAClC,cAAc;CACd,oBAAoB;CACpB,aAAa;CACb,mBACE;CACF,aAAa;CACb,mBAAmB;CACnB,2BAA2B;CAC3B,mCAAmC;CACnC,0BAA0B;CAC1B,wBAAwB;CACxB,0BAA0B;CAC1B,+BAA+B;CAC/B,qCACE;CACF,wBAAwB;CAGxB,8BACE;CACF,8BAA8B;CAC9B,oCAAoC;CACpC,8BAA8B;CAC9B,oCACE;CACF,0CAA0C;CAC1C,0CACE;CACF,oCAAoC;CACpC,kBAAkB;CAClB,qBAAqB;CACrB,mCAAmC;CACnC,gBAAgB;CAChB,2BAA2B;CAC3B,YAAY;CACZ,0BAA0B;CAC1B,sBAAsB;CACtB,4BAA4B;CAC5B,sBAAsB;CACtB,iCAAiC;CACjC,uCAAuC;AACzC,EACF,EACF,CAG0C,GAAoB,GAAG,cAAiB"}
@@ -0,0 +1,139 @@
1
+ import { ActivationEvent, Capability } from "@dxos/app-framework";
2
+ import * as Schema from "effect/Schema";
3
+ import { meta } from "#meta";
4
+ import { IdentityDid, SpaceId } from "@dxos/keys";
5
+ //#region src/types/account-cache.ts
6
+ var AccountCacheValue = Schema.Struct({
7
+ identityDid: Schema.String,
8
+ email: Schema.String,
9
+ emailVerified: Schema.Boolean,
10
+ /** ISO timestamp. */
11
+ createdAt: Schema.String,
12
+ invitationsRemaining: Schema.Number
13
+ });
14
+ var AccountCacheInvitation = Schema.Struct({
15
+ code: Schema.String,
16
+ /** ISO timestamp. */
17
+ createdAt: Schema.String,
18
+ redeemedByIdentityDid: Schema.optional(Schema.String),
19
+ /** ISO timestamp. */
20
+ redeemedAt: Schema.optional(Schema.String)
21
+ });
22
+ var AccountCache = Schema.Struct({
23
+ account: Schema.optional(AccountCacheValue),
24
+ invitations: Schema.optional(Schema.Array(AccountCacheInvitation)),
25
+ /** Epoch ms when the cache was last refreshed. */
26
+ fetchedAt: Schema.optional(Schema.Number)
27
+ });
28
+ //#endregion
29
+ //#region src/types/capabilities.ts
30
+ var ClientCapabilities;
31
+ (function(_ClientCapabilities) {
32
+ _ClientCapabilities.Client = Capability.make(`${meta.profile.key}.capability.client`);
33
+ _ClientCapabilities.Schema = Capability.make(`${meta.profile.key}.capability.schema`);
34
+ _ClientCapabilities.Migration = Capability.make(`${meta.profile.key}.capability.migration`);
35
+ _ClientCapabilities.AccountCache = Capability.make(`${meta.profile.key}.capability.accountCache`);
36
+ _ClientCapabilities.HubHttpClient = Capability.make(`${meta.profile.key}.capability.hubHttpClient`);
37
+ _ClientCapabilities.IdentityService = Capability.make(`${meta.profile.key}.capability.identityService`);
38
+ _ClientCapabilities.SpaceService = Capability.make(`${meta.profile.key}.capability.spaceService`);
39
+ })(ClientCapabilities || (ClientCapabilities = {}));
40
+ //#endregion
41
+ //#region src/types/events.ts
42
+ var ClientEvents;
43
+ (function(_ClientEvents) {
44
+ _ClientEvents.ClientReady = ActivationEvent.make(`${meta.profile.key}.event.clientReady`);
45
+ _ClientEvents.SetupSchema = ActivationEvent.make(`${meta.profile.key}.event.setupSchema`);
46
+ _ClientEvents.SetupMigration = ActivationEvent.make(`${meta.profile.key}.event.setupMigration`);
47
+ _ClientEvents.IdentityCreated = ActivationEvent.make(`${meta.profile.key}.event.identityCreated`);
48
+ _ClientEvents.SpacesReady = ActivationEvent.make(`${meta.profile.key}.event.spacesReady`);
49
+ })(ClientEvents || (ClientEvents = {}));
50
+ //#endregion
51
+ //#region src/types/schema.ts
52
+ var IdentitySchema = Schema.Struct({
53
+ identityDid: IdentityDid,
54
+ spaceId: Schema.optional(SpaceId),
55
+ profile: Schema.optional(Schema.Struct({
56
+ displayName: Schema.optional(Schema.String),
57
+ avatarCid: Schema.optional(Schema.String),
58
+ data: Schema.optional(Schema.Record({
59
+ key: Schema.String,
60
+ value: Schema.Any
61
+ }))
62
+ }))
63
+ });
64
+ var ClientAction;
65
+ (function(_ClientAction) {
66
+ const ProfileSchema = Schema.Struct({
67
+ displayName: Schema.optional(Schema.String),
68
+ avatarCid: Schema.optional(Schema.String),
69
+ data: Schema.optional(Schema.Record({
70
+ key: Schema.String,
71
+ value: Schema.Any
72
+ }))
73
+ });
74
+ class CreateIdentity extends Schema.TaggedClass()(`${meta.profile.key}.action.create-identity`, {
75
+ input: ProfileSchema,
76
+ output: IdentitySchema
77
+ }) {}
78
+ _ClientAction.CreateIdentity = CreateIdentity;
79
+ class JoinIdentity extends Schema.TaggedClass()(`${meta.profile.key}.action.join-identity`, {
80
+ input: Schema.Struct({ invitationCode: Schema.optional(Schema.String) }),
81
+ output: Schema.Void
82
+ }) {}
83
+ _ClientAction.JoinIdentity = JoinIdentity;
84
+ class ShareIdentity extends Schema.TaggedClass()(`${meta.profile.key}.action.share-identity`, {
85
+ input: Schema.Void,
86
+ output: Schema.Void
87
+ }) {}
88
+ _ClientAction.ShareIdentity = ShareIdentity;
89
+ class RecoverIdentity extends Schema.TaggedClass()(`${meta.profile.key}.action.recover-identity`, {
90
+ input: Schema.Void,
91
+ output: Schema.Void
92
+ }) {}
93
+ _ClientAction.RecoverIdentity = RecoverIdentity;
94
+ class ResetStorage extends Schema.TaggedClass()(`${meta.profile.key}.action.reset-storage`, {
95
+ input: Schema.Struct({ mode: Schema.optional(Schema.String) }),
96
+ output: Schema.Void
97
+ }) {}
98
+ _ClientAction.ResetStorage = ResetStorage;
99
+ class CreateAgent extends Schema.TaggedClass()(`${meta.profile.key}.action.create-agent`, {
100
+ input: Schema.Void,
101
+ output: Schema.Void
102
+ }) {}
103
+ _ClientAction.CreateAgent = CreateAgent;
104
+ class CreateRecoveryCode extends Schema.TaggedClass()(`${meta.profile.key}.action.create-recovery-code`, {
105
+ input: Schema.Void,
106
+ output: Schema.Void
107
+ }) {}
108
+ _ClientAction.CreateRecoveryCode = CreateRecoveryCode;
109
+ class CreatePasskey extends Schema.TaggedClass()(`${meta.profile.key}.action.create-passkey`, {
110
+ input: Schema.Void,
111
+ output: Schema.Void
112
+ }) {}
113
+ _ClientAction.CreatePasskey = CreatePasskey;
114
+ class RedeemPasskey extends Schema.TaggedClass()(`${meta.profile.key}.action.redeem-passkey`, {
115
+ input: Schema.Void,
116
+ output: Schema.Void
117
+ }) {}
118
+ _ClientAction.RedeemPasskey = RedeemPasskey;
119
+ class RedeemToken extends Schema.TaggedClass()(`${meta.profile.key}.action.redeem-token`, {
120
+ input: Schema.Struct({ token: Schema.String }),
121
+ output: Schema.Void
122
+ }) {}
123
+ _ClientAction.RedeemToken = RedeemToken;
124
+ })(ClientAction || (ClientAction = {}));
125
+ var Account;
126
+ (function(_Account) {
127
+ const _id = "dxos.org.plugin.client.account";
128
+ _Account.id = `!${_id}`;
129
+ _Account.Profile = `${_id}.profile`;
130
+ _Account.Devices = `${_id}.devices`;
131
+ _Account.Security = `${_id}.security`;
132
+ _Account.Account = `${_id}.account`;
133
+ _Account.Invitations = `${_id}.invitations`;
134
+ _Account.Usage = `${_id}.usage`;
135
+ })(Account || (Account = {}));
136
+ //#endregion
137
+ export { Account, AccountCache, ClientAction, ClientCapabilities, ClientEvents };
138
+
139
+ //# sourceMappingURL=types.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.mjs","names":[],"sources":["../../src/types/account-cache.ts","../../src/types/capabilities.ts","../../src/types/events.ts","../../src/types/schema.ts"],"sourcesContent":["//\n// Copyright 2026 DXOS.org\n//\n\nimport * as Schema from 'effect/Schema';\n\nconst AccountCacheValue = Schema.Struct({\n identityDid: Schema.String,\n email: Schema.String,\n emailVerified: Schema.Boolean,\n /** ISO timestamp. */\n createdAt: Schema.String,\n invitationsRemaining: Schema.Number,\n});\nexport type AccountCacheValue = Schema.Schema.Type<typeof AccountCacheValue>;\n\nconst AccountCacheInvitation = Schema.Struct({\n code: Schema.String,\n /** ISO timestamp. */\n createdAt: Schema.String,\n redeemedByIdentityDid: Schema.optional(Schema.String),\n /** ISO timestamp. */\n redeemedAt: Schema.optional(Schema.String),\n});\nexport type AccountCacheInvitation = Schema.Schema.Type<typeof AccountCacheInvitation>;\n\nexport const AccountCache = Schema.Struct({\n account: Schema.optional(AccountCacheValue),\n invitations: Schema.optional(Schema.Array(AccountCacheInvitation)),\n /** Epoch ms when the cache was last refreshed. */\n fetchedAt: Schema.optional(Schema.Number),\n});\nexport type AccountCache = Schema.Schema.Type<typeof AccountCache>;\n","//\n// Copyright 2025 DXOS.org\n//\n\nimport { type Atom } from '@effect-atom/atom';\nimport type * as Context from 'effect/Context';\n\nimport { Capability } from '@dxos/app-framework';\nimport { type Client } from '@dxos/client';\nimport { type ObjectMigration } from '@dxos/client/echo';\nimport { type Type } from '@dxos/echo';\nimport { type HubHttpClient } from '@dxos/edge-client';\nimport { type Identity, type Space } from '@dxos/halo';\n\nimport { meta } from '#meta';\n\nimport { type AccountCache as AccountCacheType } from './account-cache';\n\nexport namespace ClientCapabilities {\n export const Client = Capability.make<Client>(`${meta.profile.key}.capability.client`);\n export const Schema = Capability.make<Type.AnyEntity[]>(`${meta.profile.key}.capability.schema`);\n export const Migration = Capability.make<ObjectMigration[]>(`${meta.profile.key}.capability.migration`);\n export const AccountCache = Capability.make<Atom.Writable<AccountCacheType>>(\n `${meta.profile.key}.capability.accountCache`,\n );\n export const HubHttpClient = Capability.make<HubHttpClient>(`${meta.profile.key}.capability.hubHttpClient`);\n\n /**\n * The HALO Identity service instance, for imperative (non-React, non-Effect-layer) consumers\n * that need identity access without depending on `@dxos/client`.\n */\n export const IdentityService: Capability.InterfaceDef<Context.Tag.Service<Identity.Service>> = Capability.make(\n `${meta.profile.key}.capability.identityService`,\n );\n /** The HALO Space service instance, for imperative consumers. */\n export const SpaceService: Capability.InterfaceDef<Context.Tag.Service<Space.Service>> = Capability.make(\n `${meta.profile.key}.capability.spaceService`,\n );\n}\n","//\n// Copyright 2025 DXOS.org\n//\n\nimport { ActivationEvent } from '@dxos/app-framework';\n\nimport { meta } from '#meta';\n\nexport namespace ClientEvents {\n export const ClientReady = ActivationEvent.make(`${meta.profile.key}.event.clientReady`);\n export const SetupSchema = ActivationEvent.make(`${meta.profile.key}.event.setupSchema`);\n export const SetupMigration = ActivationEvent.make(`${meta.profile.key}.event.setupMigration`);\n export const IdentityCreated = ActivationEvent.make(`${meta.profile.key}.event.identityCreated`);\n export const SpacesReady = ActivationEvent.make(`${meta.profile.key}.event.spacesReady`);\n}\n","//\n// Copyright 2024 DXOS.org\n//\n\nimport type * as Effect from 'effect/Effect';\nimport * as Schema from 'effect/Schema';\n\nimport { Capability } from '@dxos/app-framework';\nimport { type Client, type ClientOptions } from '@dxos/client';\nimport { IdentityDid, SpaceId } from '@dxos/keys';\n\nimport { meta } from '#meta';\n\n// TODO(wittjosiah): Factor out. Generate?\nconst IdentitySchema = Schema.Struct({\n identityDid: IdentityDid,\n spaceId: Schema.optional(SpaceId),\n profile: Schema.optional(\n Schema.Struct({\n displayName: Schema.optional(Schema.String),\n avatarCid: Schema.optional(Schema.String),\n data: Schema.optional(Schema.Record({ key: Schema.String, value: Schema.Any })),\n }),\n ),\n});\n\nexport namespace ClientAction {\n const ProfileSchema = Schema.Struct({\n displayName: Schema.optional(Schema.String),\n avatarCid: Schema.optional(Schema.String),\n data: Schema.optional(Schema.Record({ key: Schema.String, value: Schema.Any })),\n });\n\n export class CreateIdentity extends Schema.TaggedClass<CreateIdentity>()(\n `${meta.profile.key}.action.create-identity`,\n {\n input: ProfileSchema,\n output: IdentitySchema,\n },\n ) {}\n\n export class JoinIdentity extends Schema.TaggedClass<JoinIdentity>()(`${meta.profile.key}.action.join-identity`, {\n input: Schema.Struct({\n invitationCode: Schema.optional(Schema.String),\n }),\n output: Schema.Void,\n }) {}\n\n export class ShareIdentity extends Schema.TaggedClass<ShareIdentity>()(`${meta.profile.key}.action.share-identity`, {\n input: Schema.Void,\n output: Schema.Void,\n }) {}\n\n export class RecoverIdentity extends Schema.TaggedClass<RecoverIdentity>()(\n `${meta.profile.key}.action.recover-identity`,\n {\n input: Schema.Void,\n output: Schema.Void,\n },\n ) {}\n\n export class ResetStorage extends Schema.TaggedClass<ResetStorage>()(`${meta.profile.key}.action.reset-storage`, {\n input: Schema.Struct({\n mode: Schema.optional(Schema.String),\n }),\n output: Schema.Void,\n }) {}\n\n export class CreateAgent extends Schema.TaggedClass<CreateAgent>()(`${meta.profile.key}.action.create-agent`, {\n input: Schema.Void,\n output: Schema.Void,\n }) {}\n\n export class CreateRecoveryCode extends Schema.TaggedClass<CreateRecoveryCode>()(\n `${meta.profile.key}.action.create-recovery-code`,\n {\n input: Schema.Void,\n output: Schema.Void,\n },\n ) {}\n\n export class CreatePasskey extends Schema.TaggedClass<CreatePasskey>()(`${meta.profile.key}.action.create-passkey`, {\n input: Schema.Void,\n output: Schema.Void,\n }) {}\n\n export class RedeemPasskey extends Schema.TaggedClass<RedeemPasskey>()(`${meta.profile.key}.action.redeem-passkey`, {\n input: Schema.Void,\n output: Schema.Void,\n }) {}\n\n export class RedeemToken extends Schema.TaggedClass<RedeemToken>()(`${meta.profile.key}.action.redeem-token`, {\n input: Schema.Struct({\n token: Schema.String,\n }),\n output: Schema.Void,\n }) {}\n}\n\nexport type ClientPluginOptions = ClientOptions & {\n /**\n * Base origin for the invitation link.\n */\n shareableLinkOrigin?: string;\n\n /**\n * Path for the invitation link.\n */\n invitationPath?: string;\n\n /**\n * Query parameter for the invitation code.\n */\n invitationProp?: string;\n\n /**\n * Whether the navigation handler consumes invitation codes from URL query params.\n * Disable when another plugin (e.g. plugin-onboarding) owns the invitation URL flow.\n * @default true\n */\n invitationUrlHandler?: boolean;\n\n /**\n * Run after the client has been initialized.\n * Plugin context is provided so capabilities are accessible.\n */\n onClientInitialized?: (params: { client: Client }) => Effect.Effect<void, Error | never, Capability.Service | never>;\n\n /**\n * Called when spaces are ready.\n * Plugin context is provided so capabilities are accessible.\n */\n onSpacesReady?: (params: { client: Client }) => Effect.Effect<void, Error | never, Capability.Service | never>;\n\n /**\n * Called when the client is reset.\n * Plugin context is provided so capabilities are accessible.\n */\n onReset?: (params: { target?: string }) => Effect.Effect<void, Error | never, Capability.Service | never>;\n};\n\nexport namespace Account {\n // TODO(wittjosiah): Cannot use slashes in ids until we have a router which decouples ids from url paths.\n const _id = 'dxos.org.plugin.client.account';\n // TODO(wittjosiah): This is a hack to prevent the previous deck from being set for pinned items.\n // Ideally this should be worked into the data model in a generic way.\n export const id = `!${_id}`;\n\n export const Profile = `${_id}.profile`;\n export const Devices = `${_id}.devices`;\n export const Security = `${_id}.security`;\n export const Account = `${_id}.account`;\n export const Invitations = `${_id}.invitations`;\n export const Usage = `${_id}.usage`;\n}\n"],"mappings":";;;;;AAMA,IAAM,oBAAoB,OAAO,OAAO;CACtC,aAAa,OAAO;CACpB,OAAO,OAAO;CACd,eAAe,OAAO;;CAEtB,WAAW,OAAO;CAClB,sBAAsB,OAAO;AAC/B,CAAC;AAGD,IAAM,yBAAyB,OAAO,OAAO;CAC3C,MAAM,OAAO;;CAEb,WAAW,OAAO;CAClB,uBAAuB,OAAO,SAAS,OAAO,MAAM;;CAEpD,YAAY,OAAO,SAAS,OAAO,MAAM;AAC3C,CAAC;AAGD,IAAa,eAAe,OAAO,OAAO;CACxC,SAAS,OAAO,SAAS,iBAAiB;CAC1C,aAAa,OAAO,SAAS,OAAO,MAAM,sBAAsB,CAAC;;CAEjE,WAAW,OAAO,SAAS,OAAO,MAAM;AAC1C,CAAC;;;ACbM,IAAA;;CACQ,oBAAA,SAAS,WAAW,KAAa,GAAG,KAAK,QAAQ,IAAI,mBAAmB;CACxE,oBAAA,SAAS,WAAW,KAAuB,GAAG,KAAK,QAAQ,IAAI,mBAAmB;CAClF,oBAAA,YAAY,WAAW,KAAwB,GAAG,KAAK,QAAQ,IAAI,sBAAsB;CACzF,oBAAA,eAAe,WAAW,KACrC,GAAG,KAAK,QAAQ,IAAI,yBACtB;CACa,oBAAA,gBAAgB,WAAW,KAAoB,GAAG,KAAK,QAAQ,IAAI,0BAA0B;CAM7F,oBAAA,kBAAkF,WAAW,KACxG,GAAG,KAAK,QAAQ,IAAI,4BACtB;CAEa,oBAAA,eAA4E,WAAW,KAClG,GAAG,KAAK,QAAQ,IAAI,yBACtB;GACF,uBAAA,qBAAA,CAAA,EAAA;;;AC9BO,IAAA;;CACQ,cAAA,cAAc,gBAAgB,KAAK,GAAG,KAAK,QAAQ,IAAI,mBAAmB;CAC1E,cAAA,cAAc,gBAAgB,KAAK,GAAG,KAAK,QAAQ,IAAI,mBAAmB;CAC1E,cAAA,iBAAiB,gBAAgB,KAAK,GAAG,KAAK,QAAQ,IAAI,sBAAsB;CAChF,cAAA,kBAAkB,gBAAgB,KAAK,GAAG,KAAK,QAAQ,IAAI,uBAAuB;CAClF,cAAA,cAAc,gBAAgB,KAAK,GAAG,KAAK,QAAQ,IAAI,mBAAmB;GACzF,iBAAA,eAAA,CAAA,EAAA;;;ACAA,IAAM,iBAAiB,OAAO,OAAO;CACnC,aAAa;CACb,SAAS,OAAO,SAAS,OAAO;CAChC,SAAS,OAAO,SACd,OAAO,OAAO;EACZ,aAAa,OAAO,SAAS,OAAO,MAAM;EAC1C,WAAW,OAAO,SAAS,OAAO,MAAM;EACxC,MAAM,OAAO,SAAS,OAAO,OAAO;GAAE,KAAK,OAAO;GAAQ,OAAO,OAAO;EAAI,CAAC,CAAC;CAChF,CAAC,CACH;AACF,CAAC;AAEM,IAAA;;CACL,MAAM,gBAAgB,OAAO,OAAO;EAClC,aAAa,OAAO,SAAS,OAAO,MAAM;EAC1C,WAAW,OAAO,SAAS,OAAO,MAAM;EACxC,MAAM,OAAO,SAAS,OAAO,OAAO;GAAE,KAAK,OAAO;GAAQ,OAAO,OAAO;EAAI,CAAC,CAAC;CAChF,CAAC;CAEM,MAAM,uBAAuB,OAAO,YAA4B,CAAC,CACtE,GAAG,KAAK,QAAQ,IAAI,0BACpB;EACE,OAAO;EACP,QAAQ;CACV,CACF,CAAC,CAAC,CAAC;;CAEI,MAAM,qBAAqB,OAAO,YAA0B,CAAC,CAAC,GAAG,KAAK,QAAQ,IAAI,wBAAwB;EAC/G,OAAO,OAAO,OAAO,EACnB,gBAAgB,OAAO,SAAS,OAAO,MAAM,EAC/C,CAAC;EACD,QAAQ,OAAO;CACjB,CAAC,CAAC,CAAC,CAAC;;CAEG,MAAM,sBAAsB,OAAO,YAA2B,CAAC,CAAC,GAAG,KAAK,QAAQ,IAAI,yBAAyB;EAClH,OAAO,OAAO;EACd,QAAQ,OAAO;CACjB,CAAC,CAAC,CAAC,CAAC;;CAEG,MAAM,wBAAwB,OAAO,YAA6B,CAAC,CACxE,GAAG,KAAK,QAAQ,IAAI,2BACpB;EACE,OAAO,OAAO;EACd,QAAQ,OAAO;CACjB,CACF,CAAC,CAAC,CAAC;;CAEI,MAAM,qBAAqB,OAAO,YAA0B,CAAC,CAAC,GAAG,KAAK,QAAQ,IAAI,wBAAwB;EAC/G,OAAO,OAAO,OAAO,EACnB,MAAM,OAAO,SAAS,OAAO,MAAM,EACrC,CAAC;EACD,QAAQ,OAAO;CACjB,CAAC,CAAC,CAAC,CAAC;;CAEG,MAAM,oBAAoB,OAAO,YAAyB,CAAC,CAAC,GAAG,KAAK,QAAQ,IAAI,uBAAuB;EAC5G,OAAO,OAAO;EACd,QAAQ,OAAO;CACjB,CAAC,CAAC,CAAC,CAAC;;CAEG,MAAM,2BAA2B,OAAO,YAAgC,CAAC,CAC9E,GAAG,KAAK,QAAQ,IAAI,+BACpB;EACE,OAAO,OAAO;EACd,QAAQ,OAAO;CACjB,CACF,CAAC,CAAC,CAAC;;CAEI,MAAM,sBAAsB,OAAO,YAA2B,CAAC,CAAC,GAAG,KAAK,QAAQ,IAAI,yBAAyB;EAClH,OAAO,OAAO;EACd,QAAQ,OAAO;CACjB,CAAC,CAAC,CAAC,CAAC;;CAEG,MAAM,sBAAsB,OAAO,YAA2B,CAAC,CAAC,GAAG,KAAK,QAAQ,IAAI,yBAAyB;EAClH,OAAO,OAAO;EACd,QAAQ,OAAO;CACjB,CAAC,CAAC,CAAC,CAAC;;CAEG,MAAM,oBAAoB,OAAO,YAAyB,CAAC,CAAC,GAAG,KAAK,QAAQ,IAAI,uBAAuB;EAC5G,OAAO,OAAO,OAAO,EACnB,OAAO,OAAO,OAChB,CAAC;EACD,QAAQ,OAAO;CACjB,CAAC,CAAC,CAAC,CAAC;;GACN,iBAAA,eAAA,CAAA,EAAA;AA4CO,IAAA;;CAEL,MAAM,MAAM;CAGC,SAAA,KAAK,IAAI;CAET,SAAA,UAAU,GAAG,IAAI;CACjB,SAAA,UAAU,GAAG,IAAI;CACjB,SAAA,WAAW,GAAG,IAAI;CAClB,SAAA,UAAU,GAAG,IAAI;CACjB,SAAA,cAAc,GAAG,IAAI;CACrB,SAAA,QAAQ,GAAG,IAAI;GAC9B,YAAA,UAAA,CAAA,EAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"ClientPlugin.d.ts","sourceRoot":"","sources":["../../../src/ClientPlugin.ts"],"names":[],"mappings":"AAIA,OAAO,EAAiD,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAmB5F,OAAO,EAAE,KAAK,mBAAmB,EAAE,MAAM,QAAQ,CAAC;AAElD,eAAO,MAAM,YAAY,2CA2DxB,CAAC;eAEa,YAAY"}
1
+ {"version":3,"file":"ClientPlugin.d.ts","sourceRoot":"","sources":["../../../src/ClientPlugin.ts"],"names":[],"mappings":"AAIA,OAAO,EAAiD,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAuB5F,OAAO,EAAE,KAAK,mBAAmB,EAAE,MAAM,QAAQ,CAAC;AAElD,eAAO,MAAM,YAAY,2CA8ExB,CAAC;eAEa,YAAY"}
@@ -1,5 +1,5 @@
1
1
  import * as Effect from 'effect/Effect';
2
2
  import { Capability } from '@dxos/app-framework';
3
- declare const _default: (props: void) => Effect.Effect<Capability.Any, never, never>;
3
+ declare const _default: (props: void) => Effect.Effect<Capability.Any, never, import("effect/Scope").Scope>;
4
4
  export default _default;
5
5
  //# sourceMappingURL=account-cache.d.ts.map
@@ -1,5 +1,5 @@
1
1
  import * as Effect from 'effect/Effect';
2
2
  import { Capability } from '@dxos/app-framework';
3
- declare const _default: (props: void) => Effect.Effect<Capability.Any, never, Capability.Service>;
3
+ declare const _default: (props: void) => Effect.Effect<Capability.Any, never, import("effect/Scope").Scope | Capability.Service>;
4
4
  export default _default;
5
5
  //# sourceMappingURL=app-graph-builder.d.ts.map
@@ -2,6 +2,6 @@ import * as Effect from 'effect/Effect';
2
2
  import { Capability, Plugin } from '@dxos/app-framework';
3
3
  import { type ClientPluginOptions } from '#types';
4
4
  type ClientCapabilityOptions = Omit<ClientPluginOptions, 'appKey' | 'shareableLinkOrigin' | 'invitationPath' | 'invitationParam' | 'onReset'>;
5
- declare const _default: (props: ClientCapabilityOptions) => Effect.Effect<[Capability.Any, Capability.Any], Error, Plugin.Service | Capability.Service>;
5
+ declare const _default: (props: ClientCapabilityOptions) => Effect.Effect<[Capability.Any, Capability.Any, Capability.Any, Capability.Any], Error, import("effect/Scope").Scope | Plugin.Service | Capability.Service>;
6
6
  export default _default;
7
7
  //# sourceMappingURL=client.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../../../src/capabilities/client.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,MAAM,MAAM,eAAe,CAAC;AAExC,OAAO,EAAgB,UAAU,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAMvE,OAAO,EAAsB,KAAK,mBAAmB,EAAE,MAAM,QAAQ,CAAC;AAEtE,KAAK,uBAAuB,GAAG,IAAI,CACjC,mBAAmB,EACnB,QAAQ,GAAG,qBAAqB,GAAG,gBAAgB,GAAG,iBAAiB,GAAG,SAAS,CACpF,CAAC"}
1
+ {"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../../../src/capabilities/client.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,MAAM,MAAM,eAAe,CAAC;AAExC,OAAO,EAAgB,UAAU,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAOvE,OAAO,EAAsB,KAAK,mBAAmB,EAAE,MAAM,QAAQ,CAAC;AAEtE,KAAK,uBAAuB,GAAG,IAAI,CACjC,mBAAmB,EACnB,QAAQ,GAAG,qBAAqB,GAAG,gBAAgB,GAAG,iBAAiB,GAAG,SAAS,CACpF,CAAC"}
@@ -1,5 +1,5 @@
1
1
  import * as Effect from 'effect/Effect';
2
2
  import { Capability } from '@dxos/app-framework';
3
- declare const _default: (props: void) => Effect.Effect<Capability.Any | [], Error, Capability.Service>;
3
+ declare const _default: (props: void) => Effect.Effect<Capability.Any | [], Error, import("effect/Scope").Scope | Capability.Service>;
4
4
  export default _default;
5
5
  //# sourceMappingURL=hub-http-client.d.ts.map
@@ -6,12 +6,13 @@ export declare const HubHttpClient: Capability.LazyCapability<void, Capability.M
6
6
  export declare const Client: Capability.LazyCapability<{
7
7
  config?: import("@dxos/config").Config;
8
8
  services?: import("@dxos/util").MaybePromise<import("@dxos/client-protocol").ClientServicesProvider>;
9
+ runtime?: import("effect/Runtime").Runtime<never>;
9
10
  types?: import("@dxos/echo/Type").AnyEntity[];
10
11
  shell?: string;
11
12
  sqlitePath?: string;
12
- createWorker?: () => SharedWorker;
13
13
  createOpfsWorker?: () => Worker;
14
14
  invitationProp?: string;
15
+ invitationUrlHandler?: boolean;
15
16
  onClientInitialized?: (params: {
16
17
  client: import("@dxos/client").Client;
17
18
  }) => import("effect/Effect").Effect<void, Error | never, Capability.Service | never>;
@@ -23,10 +24,14 @@ export declare const LayerSpecs: Capability.LazyCapability<void, Capability.Modu
23
24
  export declare const Migrations: Capability.LazyCapability<void, Capability.ModuleReturn, Error>;
24
25
  export { NavigationHandler } from './navigation-handler';
25
26
  export type { NavigationHandlerOptions } from './navigation-handler';
27
+ export declare const NavigationTargetLoader: Capability.LazyCapability<void, Capability.ModuleReturn, Error>;
26
28
  export declare const OperationHandler: Capability.LazyCapability<OperationHandlerSet.OperationHandlerSet, Capability.ModuleReturn, Error>;
27
29
  export declare const ReactContext: Capability.LazyCapability<void, Capability.ModuleReturn, Error>;
30
+ export declare const RemoteTraceMonitor: Capability.LazyCapability<void, Capability.ModuleReturn, Error>;
28
31
  export declare const ReactSurface: Capability.LazyCapability<Pick<import("..").ClientPluginOptions, "onReset"> & {
29
32
  createInvitationUrl: (invitationCode: string) => string;
30
33
  }, Capability.ModuleReturn, Error>;
31
34
  export declare const SchemaDefs: Capability.LazyCapability<void, Capability.ModuleReturn, Error>;
35
+ export declare const SpaceReplicationProgress: Capability.LazyCapability<void, Capability.ModuleReturn, Error>;
36
+ export declare const TraceProgress: Capability.LazyCapability<void, Capability.ModuleReturn, Error>;
32
37
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/capabilities/index.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AACjD,OAAO,EAAE,mBAAmB,EAAE,MAAM,eAAe,CAAC;AAEpD,eAAO,MAAM,YAAY,iEAAmE,CAAC;AAC7F,eAAO,MAAM,eAAe,iEAA0E,CAAC;AACvG,eAAO,MAAM,aAAa,iEAAsE,CAAC;AACjG,eAAO,MAAM,MAAM;;;;;;;;;;;;;;;kCAAsD,CAAC;AAC1E,eAAO,MAAM,UAAU,iEAAuF,CAAC;AAC/G,eAAO,MAAM,UAAU,iEAA8D,CAAC;AACtF,OAAO,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AACzD,YAAY,EAAE,wBAAwB,EAAE,MAAM,sBAAsB,CAAC;AACrE,eAAO,MAAM,gBAAgB,oGAG5B,CAAC;AACF,eAAO,MAAM,YAAY,iEAAmE,CAAC;AAC7F,eAAO,MAAM,YAAY;;kCAAmE,CAAC;AAC7F,eAAO,MAAM,UAAU,iEAA+D,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/capabilities/index.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AACjD,OAAO,EAAE,mBAAmB,EAAE,MAAM,eAAe,CAAC;AAEpD,eAAO,MAAM,YAAY,iEAAmE,CAAC;AAC7F,eAAO,MAAM,eAAe,iEAA0E,CAAC;AACvG,eAAO,MAAM,aAAa,iEAAsE,CAAC;AACjG,eAAO,MAAM,MAAM;;;;;;;;;;;;;;;;kCAAsD,CAAC;AAC1E,eAAO,MAAM,UAAU,iEAAuF,CAAC;AAC/G,eAAO,MAAM,UAAU,iEAA8D,CAAC;AACtF,OAAO,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AACzD,YAAY,EAAE,wBAAwB,EAAE,MAAM,sBAAsB,CAAC;AACrE,eAAO,MAAM,sBAAsB,iEAGlC,CAAC;AACF,eAAO,MAAM,gBAAgB,oGAG5B,CAAC;AACF,eAAO,MAAM,YAAY,iEAAmE,CAAC;AAC7F,eAAO,MAAM,kBAAkB,iEAAgF,CAAC;AAChH,eAAO,MAAM,YAAY;;kCAAmE,CAAC;AAC7F,eAAO,MAAM,UAAU,iEAA+D,CAAC;AACvF,eAAO,MAAM,wBAAwB,iEAGpC,CAAC;AACF,eAAO,MAAM,aAAa,iEAAqE,CAAC"}