@dxos/plugin-client 0.10.0 → 0.11.0

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
@@ -1,57 +0,0 @@
1
- import "./chunk-J5LGTIGS.mjs";
2
-
3
- // src/containers/ResetDialog/ResetDialog.tsx
4
- import * as Effect from "effect/Effect";
5
- import React, { useCallback } from "react";
6
- import { Capability } from "@dxos/app-framework";
7
- import { useOperationInvoker } from "@dxos/app-framework/ui";
8
- import { LayoutOperation } from "@dxos/app-toolkit";
9
- import { EffectEx } from "@dxos/effect";
10
- import { useClient } from "@dxos/react-client";
11
- import { Dialog, useTranslation } from "@dxos/react-ui";
12
- import { ConfirmReset, translationKey } from "@dxos/shell/react";
13
- var ResetDialog = ({ mode, onReset, onBeforeReset, capabilityManager }) => {
14
- const { t } = useTranslation(translationKey);
15
- const { invokePromise } = useOperationInvoker();
16
- const client = useClient();
17
- const handleReset = useCallback(async () => {
18
- if (onBeforeReset) {
19
- await onBeforeReset();
20
- }
21
- await client.reset();
22
- const target = mode === "join-new-identity" ? "deviceInvitation" : mode === "recover" ? "recoverIdentity" : void 0;
23
- if (onReset) {
24
- await EffectEx.runAndForwardErrors(onReset({
25
- target
26
- }).pipe(Effect.provideService(Capability.Service, capabilityManager)));
27
- }
28
- }, [
29
- client,
30
- mode,
31
- onReset,
32
- capabilityManager
33
- ]);
34
- const handleCancel = useCallback(() => {
35
- void invokePromise(LayoutOperation.UpdateDialog, {
36
- state: false
37
- });
38
- }, [
39
- invokePromise
40
- ]);
41
- return /* @__PURE__ */ React.createElement(Dialog.Content, null, /* @__PURE__ */ React.createElement(Dialog.Header, null, /* @__PURE__ */ React.createElement(Dialog.Title, null, t("reset-dialog.title"))), /* @__PURE__ */ React.createElement(Dialog.Body, null, /* @__PURE__ */ React.createElement(Dialog.Description, {
42
- classNames: "sr-only"
43
- }, t("reset-dialog.description")), /* @__PURE__ */ React.createElement(ConfirmReset, {
44
- active: true,
45
- mode,
46
- onConfirm: handleReset,
47
- onCancel: handleCancel
48
- })));
49
- };
50
-
51
- // src/containers/ResetDialog/index.ts
52
- var ResetDialog_default = ResetDialog;
53
- export {
54
- ResetDialog,
55
- ResetDialog_default as default
56
- };
57
- //# sourceMappingURL=ResetDialog-KUWX45JY.mjs.map
@@ -1,7 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../../../src/containers/ResetDialog/ResetDialog.tsx", "../../../src/containers/ResetDialog/index.ts"],
4
- "sourcesContent": ["//\n// Copyright 2025 DXOS.org\n//\n\nimport * as Effect from 'effect/Effect';\nimport React, { useCallback } from 'react';\n\nimport { Capability, type CapabilityManager } from '@dxos/app-framework';\nimport { useOperationInvoker } from '@dxos/app-framework/ui';\nimport { LayoutOperation } from '@dxos/app-toolkit';\nimport { EffectEx } from '@dxos/effect';\nimport { useClient } from '@dxos/react-client';\nimport { Dialog, useTranslation } from '@dxos/react-ui';\nimport { ConfirmReset, type ConfirmResetProps, translationKey } from '@dxos/shell/react';\n\nimport { type ClientPluginOptions } from '#types';\n\nexport type ResetDialogProps = Pick<ConfirmResetProps, 'mode'> &\n Pick<ClientPluginOptions, 'onReset'> & {\n capabilityManager: CapabilityManager.CapabilityManager;\n /**\n * Optional async action run before `client.reset()`. Throwing here aborts the\n * reset so callers can surface errors without wiping local state.\n */\n onBeforeReset?: () => Promise<void>;\n };\n\nexport const ResetDialog = ({ mode, onReset, onBeforeReset, capabilityManager }: ResetDialogProps) => {\n const { t } = useTranslation(translationKey);\n const { invokePromise } = useOperationInvoker();\n const client = useClient();\n\n const handleReset = useCallback(async () => {\n if (onBeforeReset) {\n await onBeforeReset();\n }\n await client.reset();\n const target =\n mode === 'join-new-identity' ? 'deviceInvitation' : mode === 'recover' ? 'recoverIdentity' : undefined;\n if (onReset) {\n await EffectEx.runAndForwardErrors(\n onReset({ target }).pipe(Effect.provideService(Capability.Service, capabilityManager)),\n );\n }\n }, [client, mode, onReset, capabilityManager]);\n\n const handleCancel = useCallback(() => {\n void invokePromise(LayoutOperation.UpdateDialog, { state: false });\n }, [invokePromise]);\n\n return (\n <Dialog.Content>\n <Dialog.Header>\n <Dialog.Title>{t('reset-dialog.title')}</Dialog.Title>\n </Dialog.Header>\n <Dialog.Body>\n <Dialog.Description classNames='sr-only'>{t('reset-dialog.description')}</Dialog.Description>\n <ConfirmReset active mode={mode} onConfirm={handleReset} onCancel={handleCancel} />\n </Dialog.Body>\n </Dialog.Content>\n );\n};\n", "//\n// Copyright 2025 DXOS.org\n//\n\nimport { ResetDialog } from './ResetDialog';\n\nexport * from './ResetDialog';\nexport default ResetDialog;\n"],
5
- "mappings": ";;;AAIA,YAAYA,YAAY;AACxB,OAAOC,SAASC,mBAAmB;AAEnC,SAASC,kBAA0C;AACnD,SAASC,2BAA2B;AACpC,SAASC,uBAAuB;AAChC,SAASC,gBAAgB;AACzB,SAASC,iBAAiB;AAC1B,SAASC,QAAQC,sBAAsB;AACvC,SAASC,cAAsCC,sBAAsB;AAc9D,IAAMC,cAAc,CAAC,EAAEC,MAAMC,SAASC,eAAeC,kBAAiB,MAAoB;AAC/F,QAAM,EAAEC,EAAC,IAAKR,eAAeE,cAAAA;AAC7B,QAAM,EAAEO,cAAa,IAAKd,oBAAAA;AAC1B,QAAMe,SAASZ,UAAAA;AAEf,QAAMa,cAAclB,YAAY,YAAA;AAC9B,QAAIa,eAAe;AACjB,YAAMA,cAAAA;IACR;AACA,UAAMI,OAAOE,MAAK;AAClB,UAAMC,SACJT,SAAS,sBAAsB,qBAAqBA,SAAS,YAAY,oBAAoBU;AAC/F,QAAIT,SAAS;AACX,YAAMR,SAASkB,oBACbV,QAAQ;QAAEQ;MAAO,CAAA,EAAGG,KAAYC,sBAAevB,WAAWwB,SAASX,iBAAAA,CAAAA,CAAAA;IAEvE;EACF,GAAG;IAACG;IAAQN;IAAMC;IAASE;GAAkB;AAE7C,QAAMY,eAAe1B,YAAY,MAAA;AAC/B,SAAKgB,cAAcb,gBAAgBwB,cAAc;MAAEC,OAAO;IAAM,CAAA;EAClE,GAAG;IAACZ;GAAc;AAElB,SACE,sBAAA,cAACV,OAAOuB,SAAO,MACb,sBAAA,cAACvB,OAAOwB,QAAM,MACZ,sBAAA,cAACxB,OAAOyB,OAAK,MAAEhB,EAAE,oBAAA,CAAA,CAAA,GAEnB,sBAAA,cAACT,OAAO0B,MAAI,MACV,sBAAA,cAAC1B,OAAO2B,aAAW;IAACC,YAAW;KAAWnB,EAAE,0BAAA,CAAA,GAC5C,sBAAA,cAACP,cAAAA;IAAa2B,QAAAA;IAAOxB;IAAYyB,WAAWlB;IAAamB,UAAUX;;AAI3E;;;ACtDA,IAAA,sBAAeY;",
6
- "names": ["Effect", "React", "useCallback", "Capability", "useOperationInvoker", "LayoutOperation", "EffectEx", "useClient", "Dialog", "useTranslation", "ConfirmReset", "translationKey", "ResetDialog", "mode", "onReset", "onBeforeReset", "capabilityManager", "t", "invokePromise", "client", "handleReset", "reset", "target", "undefined", "runAndForwardErrors", "pipe", "provideService", "Service", "handleCancel", "UpdateDialog", "state", "Content", "Header", "Title", "Body", "Description", "classNames", "active", "onConfirm", "onCancel", "ResetDialog"]
7
- }
@@ -1,241 +0,0 @@
1
- import {
2
- useHubHttpClient
3
- } from "./chunk-JY35S2CN.mjs";
4
- import "./chunk-J5LGTIGS.mjs";
5
-
6
- // src/containers/UsageContainer/UsageContainer.tsx
7
- import React2, { useCallback as useCallback2, useState as useState2 } from "react";
8
- import { Context } from "@dxos/context";
9
- import { log } from "@dxos/log";
10
- import { useAsyncEffect } from "@dxos/react-ui";
11
-
12
- // src/containers/UsageContainer/UsageView.tsx
13
- import * as Schema from "effect/Schema";
14
- import React, { useCallback, useMemo, useState } from "react";
15
- import { IconButton, Message, Status, ToggleIconButton, useTranslation } from "@dxos/react-ui";
16
- import { Form } from "@dxos/react-ui-form";
17
- import { JsonHighlighter } from "@dxos/react-ui-syntax-highlighter";
18
- import { meta } from "#meta";
19
- var usageMatchesLimit = (item, limit) => {
20
- if (item.eventType !== limit.eventType || item.valueKey !== limit.valueKey) {
21
- return false;
22
- }
23
- return limit.subtypePattern.every((pattern, index) => pattern === "*" || pattern === item.subtypePattern[index]);
24
- };
25
- var sumUsageForLimit = (usage, limit) => usage.reduce((total, item) => usageMatchesLimit(item, limit) ? total + item.amount : total, 0);
26
- var formatValueKey = (valueKey) => valueKey.replace(/([A-Z])/g, " $1").trim().toLowerCase();
27
- var formatLimitLabel = (limit, t) => {
28
- const metric = formatValueKey(limit.valueKey);
29
- const subtype = limit.subtypePattern.filter((segment) => segment && segment !== "*").join("/");
30
- if (limit.eventType === "ai") {
31
- return `${subtype || t("usage-all-models.label")} \xB7 ${metric}`;
32
- }
33
- return `${subtype ? `${limit.eventType}/${subtype}` : limit.eventType} \xB7 ${metric}`;
34
- };
35
- var formatAmount = (amount) => amount.toLocaleString();
36
- var SECONDS_PER_HOUR = 60 * 60;
37
- var formatWindow = (windowHours, t) => {
38
- if (windowHours % (24 * 30) === 0) {
39
- return t("usage-window-months.label", {
40
- count: windowHours / (24 * 30)
41
- });
42
- }
43
- if (windowHours % 24 === 0) {
44
- return t("usage-window-days.label", {
45
- count: windowHours / 24
46
- });
47
- }
48
- return t("usage-window-hours.label", {
49
- count: windowHours
50
- });
51
- };
52
- var computeRows = (data, t) => data.limits.map((limit) => {
53
- const used = sumUsageForLimit(data.usage, limit);
54
- const label = formatLimitLabel(limit, t);
55
- const windowHours = limit.windowDuration / SECONDS_PER_HOUR;
56
- const window = formatWindow(windowHours, t);
57
- const key = `${limit.eventType}/${limit.subtypePattern.join(",")}/${limit.valueKey}/${limit.windowDuration}/${limit.limit ?? "unlimited"}`;
58
- if (limit.limit === null) {
59
- return {
60
- key,
61
- label,
62
- caption: t("usage-unlimited.description", {
63
- used: formatAmount(used),
64
- window
65
- }),
66
- windowHours
67
- };
68
- }
69
- const percent = limit.limit > 0 ? Math.min(100, Math.round(used / limit.limit * 100)) : used > 0 ? 100 : 0;
70
- return {
71
- key,
72
- label,
73
- caption: `${t("usage-percent-used.label", {
74
- percent
75
- })} \xB7 ${t("usage-limit.description", {
76
- used: formatAmount(used),
77
- limit: formatAmount(limit.limit),
78
- window
79
- })}`,
80
- percent,
81
- windowHours
82
- };
83
- }).sort((left, right) => left.windowHours - right.windowHours);
84
- var usageField = (title, description) => Schema.optional(Schema.Number.annotations({
85
- title,
86
- description
87
- }));
88
- var buildUsageForm = (rows) => {
89
- const fields = {};
90
- const values = {};
91
- rows.forEach((row, index) => {
92
- const field = `metric_${index}`;
93
- fields[field] = usageField(row.label, row.caption);
94
- if (row.percent !== void 0) {
95
- values[field] = row.percent;
96
- }
97
- });
98
- return {
99
- schema: Schema.Struct(fields),
100
- values
101
- };
102
- };
103
- var STATE_MESSAGES = {
104
- unavailable: {
105
- valence: "warning",
106
- icon: "ph--cloud-slash--duotone",
107
- title: "usage-unavailable.title",
108
- description: "usage-unavailable.description"
109
- },
110
- error: {
111
- valence: "error",
112
- icon: "ph--cloud-x--duotone",
113
- title: "usage-offline.title",
114
- description: "usage-offline.description"
115
- },
116
- empty: {
117
- valence: "neutral",
118
- icon: "ph--chart-bar--duotone",
119
- title: "usage-empty.title",
120
- description: "usage-empty.description"
121
- }
122
- };
123
- var UsageView = ({ state, data, lastUpdated, onRefresh }) => {
124
- const { t } = useTranslation(meta.profile.key);
125
- const [rawExpanded, setRawExpanded] = useState(false);
126
- const { schema, values, empty } = useMemo(() => {
127
- const rows = data ? computeRows(data, t) : [];
128
- return {
129
- ...buildUsageForm(rows),
130
- empty: rows.length === 0
131
- };
132
- }, [
133
- data,
134
- t
135
- ]);
136
- const message = state === "unavailable" ? STATE_MESSAGES.unavailable : state === "error" ? STATE_MESSAGES.error : state === "ready" && empty ? STATE_MESSAGES.empty : void 0;
137
- const meterFieldProvider = useCallback(({ fieldProps: { label, description, getValue } }) => {
138
- const percent = getValue();
139
- return /* @__PURE__ */ React.createElement(Form.Row, {
140
- label,
141
- description
142
- }, typeof percent === "number" ? /* @__PURE__ */ React.createElement(Status, {
143
- progress: percent / 100,
144
- "aria-label": t("usage-percent-used.label", {
145
- percent
146
- })
147
- }) : t("usage-unlimited.label"));
148
- }, [
149
- t
150
- ]);
151
- return /* @__PURE__ */ React.createElement(Form.Root, {
152
- variant: "settings",
153
- layout: "static",
154
- schema,
155
- values
156
- }, /* @__PURE__ */ React.createElement(Form.Viewport, {
157
- scroll: true
158
- }, /* @__PURE__ */ React.createElement(Form.Content, null, /* @__PURE__ */ React.createElement(Form.Section, {
159
- title: t("usage-section.title"),
160
- description: t("usage-section.description")
161
- }, state === "loading" ? /* @__PURE__ */ React.createElement(Status, {
162
- indeterminate: true,
163
- "aria-label": t("usage-section.title")
164
- }) : message ? /* @__PURE__ */ React.createElement(Message.Root, {
165
- valence: message.valence
166
- }, /* @__PURE__ */ React.createElement(Message.Title, {
167
- icon: message.icon
168
- }, t(message.title)), /* @__PURE__ */ React.createElement(Message.Content, null, t(message.description))) : /* @__PURE__ */ React.createElement(Form.FieldSet, {
169
- fieldProvider: meterFieldProvider
170
- })), state === "ready" && data && /* @__PURE__ */ React.createElement(Form.Section, null, /* @__PURE__ */ React.createElement(Form.Row, {
171
- label: lastUpdated !== void 0 ? t("usage-last-updated.label", {
172
- time: new Date(lastUpdated).toLocaleTimeString()
173
- }) : t("usage-refresh.label")
174
- }, onRefresh && /* @__PURE__ */ React.createElement(IconButton, {
175
- iconOnly: true,
176
- variant: "ghost",
177
- icon: "ph--arrow-clockwise--regular",
178
- label: t("usage-refresh.label"),
179
- onClick: onRefresh
180
- }))), state === "ready" && data && /* @__PURE__ */ React.createElement(Form.Section, null, /* @__PURE__ */ React.createElement(Form.Row, {
181
- label: t("usage-raw-json.label")
182
- }, /* @__PURE__ */ React.createElement(ToggleIconButton, {
183
- iconOnly: true,
184
- variant: "ghost",
185
- active: rawExpanded,
186
- icon: "ph--caret-right--regular",
187
- label: t("usage-raw-json.label"),
188
- onClick: () => setRawExpanded((value) => !value)
189
- })), rawExpanded && /* @__PURE__ */ React.createElement(JsonHighlighter, {
190
- data,
191
- testId: "usage-raw-json"
192
- })))));
193
- };
194
-
195
- // src/containers/UsageContainer/UsageContainer.tsx
196
- var __dxlog_file = "/__w/dxos/dxos/packages/plugins/plugin-client/src/containers/UsageContainer/UsageContainer.tsx";
197
- var UsageContainer = () => {
198
- const hubHttp = useHubHttpClient();
199
- const [fetchState, setFetchState] = useState2({
200
- state: "loading"
201
- });
202
- const [lastUpdated, setLastUpdated] = useState2();
203
- const [refreshCount, setRefreshCount] = useState2(0);
204
- useAsyncEffect(async () => {
205
- if (!hubHttp) {
206
- setFetchState({
207
- state: "unavailable"
208
- });
209
- return;
210
- }
211
- setFetchState((previous) => previous.state === "ready" ? previous : {
212
- state: "loading"
213
- });
214
- try {
215
- const result = await hubHttp.getProfileUsage(new Context(void 0, { "~LogMeta": "~LogMeta", F: __dxlog_file, L: 32 }));
216
- setFetchState({
217
- state: "ready",
218
- data: result
219
- });
220
- setLastUpdated(Date.now());
221
- } catch (err) {
222
- log.catch(err, void 0, { "~LogMeta": "~LogMeta", F: __dxlog_file, L: 39, S: void 0 });
223
- setFetchState({
224
- state: "error"
225
- });
226
- }
227
- }, [
228
- hubHttp,
229
- refreshCount
230
- ]);
231
- const handleRefresh = useCallback2(() => setRefreshCount((count) => count + 1), []);
232
- return /* @__PURE__ */ React2.createElement(UsageView, {
233
- ...fetchState,
234
- lastUpdated,
235
- onRefresh: handleRefresh
236
- });
237
- };
238
- export {
239
- UsageContainer as default
240
- };
241
- //# sourceMappingURL=UsageContainer-2DWCVVE4.mjs.map
@@ -1,7 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../../../src/containers/UsageContainer/UsageContainer.tsx", "../../../src/containers/UsageContainer/UsageView.tsx"],
4
- "sourcesContent": ["//\n// Copyright 2026 DXOS.org\n//\n\nimport React, { useCallback, useState } from 'react';\n\nimport { Context } from '@dxos/context';\nimport { log } from '@dxos/log';\nimport { type GetProfileUsageResponse } from '@dxos/protocols';\nimport { useAsyncEffect } from '@dxos/react-ui';\n\nimport { useHubHttpClient } from '../../hooks';\nimport { UsageView, type UsageViewState } from './UsageView';\n\n/** State + payload kept together so `ready` always carries data (mirrors the discriminated `UsageViewProps`). */\ntype UsageFetchState = { state: Exclude<UsageViewState, 'ready'> } | { state: 'ready'; data: GetProfileUsageResponse };\n\n/**\n * Fetches rolling-window profile usage from the hub service and renders it.\n * Connected wrapper around the presentational {@link UsageView}.\n */\nexport const UsageContainer = () => {\n const hubHttp = useHubHttpClient();\n const [fetchState, setFetchState] = useState<UsageFetchState>({ state: 'loading' });\n const [lastUpdated, setLastUpdated] = useState<number | undefined>();\n const [refreshCount, setRefreshCount] = useState(0);\n\n useAsyncEffect(async () => {\n if (!hubHttp) {\n setFetchState({ state: 'unavailable' });\n return;\n }\n // Keep prior data visible while refetching; only show the loading state on first load.\n setFetchState((previous) => (previous.state === 'ready' ? previous : { state: 'loading' }));\n try {\n const result = await hubHttp.getProfileUsage(new Context());\n setFetchState({ state: 'ready', data: result });\n setLastUpdated(Date.now());\n } catch (err) {\n log.catch(err);\n setFetchState({ state: 'error' });\n }\n }, [hubHttp, refreshCount]);\n\n const handleRefresh = useCallback(() => setRefreshCount((count) => count + 1), []);\n\n return <UsageView {...fetchState} lastUpdated={lastUpdated} onRefresh={handleRefresh} />;\n};\n", "//\n// Copyright 2026 DXOS.org\n//\n\nimport * as Schema from 'effect/Schema';\nimport React, { useCallback, useMemo, useState } from 'react';\n\nimport { type GetProfileUsageResponse, type MeteringLimit, type MeteringUsageItem } from '@dxos/protocols';\nimport { IconButton, Message, Status, ToggleIconButton, useTranslation } from '@dxos/react-ui';\nimport { Form, type FormFieldProvider } from '@dxos/react-ui-form';\nimport { JsonHighlighter } from '@dxos/react-ui-syntax-highlighter';\n\nimport { meta } from '#meta';\n\nexport type UsageViewState = 'loading' | 'ready' | 'error' | 'unavailable';\n\ntype UsageViewCommonProps = {\n /** Epoch milliseconds of the last successful fetch. */\n lastUpdated?: number;\n /** Invoked when the user requests a refresh. */\n onRefresh?: () => void;\n};\n\n/**\n * Discriminated on `state`: the payload is required (and only present) when `state` is `'ready'`, so a\n * missing payload can't be silently rendered as an empty plan.\n */\nexport type UsageViewProps =\n | (UsageViewCommonProps & { state: Exclude<UsageViewState, 'ready'>; data?: undefined })\n | (UsageViewCommonProps & { state: 'ready'; data: GetProfileUsageResponse });\n\ntype TFunction = (key: string, options?: Record<string, unknown>) => string;\n\n/**\n * Whether a usage row falls under a limit. Subtype segments are matched positionally against\n * `subtypePattern` where `*` matches any segment.\n */\nconst usageMatchesLimit = (item: MeteringUsageItem, limit: MeteringLimit): boolean => {\n if (item.eventType !== limit.eventType || item.valueKey !== limit.valueKey) {\n return false;\n }\n return limit.subtypePattern.every((pattern, index) => pattern === '*' || pattern === item.subtypePattern[index]);\n};\n\n/** Sum every usage item that falls under the limit. */\nconst sumUsageForLimit = (usage: GetProfileUsageResponse['usage'], limit: MeteringLimit): number =>\n usage.reduce((total, item) => (usageMatchesLimit(item, limit) ? total + item.amount : total), 0);\n\n/** Humanize a camelCase value key, e.g. `outputTokens` → `output tokens`. */\nconst formatValueKey = (valueKey: string): string =>\n valueKey\n .replace(/([A-Z])/g, ' $1')\n .trim()\n .toLowerCase();\n\n/**\n * Human label for a limit: a scope followed by the value key, e.g.\n * `{ eventType: 'ai', valueKey: 'outputTokens', subtypePattern: ['*'] }` → `All models · output tokens`,\n * `{ eventType: 'ai', valueKey: 'inputTokens', subtypePattern: ['claude-opus-4'] }` → `claude-opus-4 · input tokens`.\n */\nconst formatLimitLabel = (limit: MeteringLimit, t: TFunction): string => {\n const metric = formatValueKey(limit.valueKey);\n const subtype = limit.subtypePattern.filter((segment) => segment && segment !== '*').join('/');\n if (limit.eventType === 'ai') {\n return `${subtype || t('usage-all-models.label')} · ${metric}`;\n }\n return `${subtype ? `${limit.eventType}/${subtype}` : limit.eventType} · ${metric}`;\n};\n\nconst formatAmount = (amount: number): string => amount.toLocaleString();\n\nconst SECONDS_PER_HOUR = 60 * 60;\n\n/** Render `windowHours` as a localized \"N months / days / hours\" string. */\nconst formatWindow = (windowHours: number, t: TFunction): string => {\n if (windowHours % (24 * 30) === 0) {\n return t('usage-window-months.label', { count: windowHours / (24 * 30) });\n }\n if (windowHours % 24 === 0) {\n return t('usage-window-days.label', { count: windowHours / 24 });\n }\n return t('usage-window-hours.label', { count: windowHours });\n};\n\ntype UsageRow = {\n key: string;\n /** Field label (schema `title` annotation). */\n label: string;\n /** Field caption (schema `description` annotation). */\n caption: string;\n /** Consumption as a whole percentage (`0`–`100`); `undefined` for an unlimited limit. */\n percent?: number;\n windowHours: number;\n};\n\n/** One display row per limit, shorter windows first. A `null` limit is reported as unlimited. */\nconst computeRows = (data: GetProfileUsageResponse, t: TFunction): UsageRow[] =>\n data.limits\n .map((limit): UsageRow => {\n const used = sumUsageForLimit(data.usage, limit);\n const label = formatLimitLabel(limit, t);\n const windowHours = limit.windowDuration / SECONDS_PER_HOUR;\n const window = formatWindow(windowHours, t);\n const key = `${limit.eventType}/${limit.subtypePattern.join(',')}/${limit.valueKey}/${limit.windowDuration}/${limit.limit ?? 'unlimited'}`;\n if (limit.limit === null) {\n return {\n key,\n label,\n caption: t('usage-unlimited.description', { used: formatAmount(used), window }),\n windowHours,\n };\n }\n const percent = limit.limit > 0 ? Math.min(100, Math.round((used / limit.limit) * 100)) : used > 0 ? 100 : 0;\n return {\n key,\n label,\n caption: `${t('usage-percent-used.label', { percent })} · ${t('usage-limit.description', { used: formatAmount(used), limit: formatAmount(limit.limit), window })}`,\n percent,\n windowHours,\n };\n })\n .sort((left, right) => left.windowHours - right.windowHours);\n\n/**\n * A single usage field: an optional number carrying its label/caption as `title`/`description`\n * annotations and the consumption percentage as its value. Optional so the form renders no required\n * markers; `Schema.Number` keeps the field context-free (`R = never`) so the struct stays assignable to `Form`.\n */\nconst usageField = (title: string, description: string) =>\n Schema.optional(Schema.Number.annotations({ title, description }));\n\n/**\n * Build the Effect schema (one annotated field per limit) and matching values. Unlimited limits have no\n * value, so their field reads `undefined` and the renderer shows the \"Unlimited\" label instead of a meter.\n */\nconst buildUsageForm = (rows: UsageRow[]) => {\n const fields: Record<string, ReturnType<typeof usageField>> = {};\n const values: Record<string, number> = {};\n rows.forEach((row, index) => {\n const field = `metric_${index}`;\n fields[field] = usageField(row.label, row.caption);\n if (row.percent !== undefined) {\n values[field] = row.percent;\n }\n });\n return { schema: Schema.Struct(fields), values };\n};\n\n/** Non-data states shown as a single `Message`, keyed by message variant (translation keys for the copy). */\nconst STATE_MESSAGES = {\n unavailable: {\n valence: 'warning',\n icon: 'ph--cloud-slash--duotone',\n title: 'usage-unavailable.title',\n description: 'usage-unavailable.description',\n },\n error: {\n valence: 'error',\n icon: 'ph--cloud-x--duotone',\n title: 'usage-offline.title',\n description: 'usage-offline.description',\n },\n empty: {\n valence: 'neutral',\n icon: 'ph--chart-bar--duotone',\n title: 'usage-empty.title',\n description: 'usage-empty.description',\n },\n} as const;\n\n/**\n * Presentational view of profile usage: renders loading/error/unavailable/empty states, or a\n * schema-driven settings form (one read-only field per limit), plus a refresh control and a\n * collapsible raw-response viewer. Pure — all data via props.\n */\nexport const UsageView = ({ state, data, lastUpdated, onRefresh }: UsageViewProps) => {\n const { t } = useTranslation(meta.profile.key);\n const [rawExpanded, setRawExpanded] = useState(false);\n\n const { schema, values, empty } = useMemo(() => {\n const rows = data ? computeRows(data, t) : [];\n return { ...buildUsageForm(rows), empty: rows.length === 0 };\n }, [data, t]);\n\n // Non-data states resolve to a `Message`; `loading` shows a spinner and `ready` with data shows the form.\n const message =\n state === 'unavailable'\n ? STATE_MESSAGES.unavailable\n : state === 'error'\n ? STATE_MESSAGES.error\n : state === 'ready' && empty\n ? STATE_MESSAGES.empty\n : undefined;\n\n // Render each metric as a meter from its percentage value; unlimited limits (no value) show a label.\n const meterFieldProvider = useCallback<FormFieldProvider>(\n ({ fieldProps: { label, description, getValue } }) => {\n const percent = getValue();\n return (\n <Form.Row label={label} description={description}>\n {typeof percent === 'number' ? (\n <Status progress={percent / 100} aria-label={t('usage-percent-used.label', { percent })} />\n ) : (\n t('usage-unlimited.label')\n )}\n </Form.Row>\n );\n },\n [t],\n );\n\n return (\n <Form.Root variant='settings' layout='static' schema={schema} values={values}>\n <Form.Viewport scroll>\n <Form.Content>\n <Form.Section title={t('usage-section.title')} description={t('usage-section.description')}>\n {state === 'loading' ? (\n <Status indeterminate aria-label={t('usage-section.title')} />\n ) : message ? (\n <Message.Root valence={message.valence}>\n <Message.Title icon={message.icon}>{t(message.title)}</Message.Title>\n <Message.Content>{t(message.description)}</Message.Content>\n </Message.Root>\n ) : (\n <Form.FieldSet fieldProvider={meterFieldProvider} />\n )}\n </Form.Section>\n\n {state === 'ready' && data && (\n <Form.Section>\n <Form.Row\n label={\n lastUpdated !== undefined\n ? t('usage-last-updated.label', { time: new Date(lastUpdated).toLocaleTimeString() })\n : t('usage-refresh.label')\n }\n >\n {onRefresh && (\n <IconButton\n iconOnly\n variant='ghost'\n icon='ph--arrow-clockwise--regular'\n label={t('usage-refresh.label')}\n onClick={onRefresh}\n />\n )}\n </Form.Row>\n </Form.Section>\n )}\n\n {state === 'ready' && data && (\n <Form.Section>\n <Form.Row label={t('usage-raw-json.label')}>\n <ToggleIconButton\n iconOnly\n variant='ghost'\n active={rawExpanded}\n icon='ph--caret-right--regular'\n label={t('usage-raw-json.label')}\n onClick={() => setRawExpanded((value) => !value)}\n />\n </Form.Row>\n {rawExpanded && <JsonHighlighter data={data} testId='usage-raw-json' />}\n </Form.Section>\n )}\n </Form.Content>\n </Form.Viewport>\n </Form.Root>\n );\n};\n"],
5
- "mappings": "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",
6
- "names": ["React", "useCallback", "useState", "Context", "log", "useAsyncEffect", "Schema", "React", "useCallback", "useMemo", "useState", "IconButton", "Message", "Status", "ToggleIconButton", "useTranslation", "Form", "JsonHighlighter", "meta", "usageMatchesLimit", "item", "limit", "eventType", "valueKey", "subtypePattern", "every", "pattern", "index", "sumUsageForLimit", "usage", "reduce", "total", "amount", "formatValueKey", "replace", "trim", "toLowerCase", "formatLimitLabel", "t", "metric", "subtype", "filter", "segment", "join", "formatAmount", "toLocaleString", "SECONDS_PER_HOUR", "formatWindow", "windowHours", "count", "computeRows", "data", "limits", "map", "used", "label", "windowDuration", "window", "key", "caption", "percent", "Math", "min", "round", "sort", "left", "right", "usageField", "title", "description", "optional", "Number", "annotations", "buildUsageForm", "rows", "fields", "values", "forEach", "row", "field", "undefined", "schema", "Struct", "STATE_MESSAGES", "unavailable", "valence", "icon", "error", "empty", "UsageView", "state", "lastUpdated", "onRefresh", "profile", "rawExpanded", "setRawExpanded", "length", "message", "meterFieldProvider", "fieldProps", "getValue", "Row", "progress", "aria-label", "Root", "variant", "layout", "Viewport", "scroll", "Content", "Section", "indeterminate", "Title", "FieldSet", "fieldProvider", "time", "Date", "toLocaleTimeString", "iconOnly", "onClick", "active", "value", "testId", "fetchState", "setFetchState", "state", "useState", "lastUpdated", "useAsyncEffect", "result", "setLastUpdated", "log", "err", "hubHttp", "useCallback", "onRefresh"]
7
- }
@@ -1,7 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../../../src/capabilities/account-cache.ts"],
4
- "sourcesContent": ["//\n// Copyright 2026 DXOS.org\n//\n\nimport * as Effect from 'effect/Effect';\n\nimport { Capability } from '@dxos/app-framework';\nimport { createKvsStore } from '@dxos/effect';\n\nimport { AccountCache, ClientCapabilities } from '#types';\n\nexport default Capability.makeModule(() =>\n Effect.succeed(\n Capability.contributes(\n ClientCapabilities.AccountCache,\n createKvsStore<AccountCache>({\n key: 'composer.account',\n schema: AccountCache,\n defaultValue: () => ({}),\n }),\n ),\n ),\n);\n"],
5
- "mappings": ";;;AAIA,YAAYA,YAAY;AAExB,SAASC,kBAAkB;AAC3B,SAASC,sBAAsB;AAE/B,SAASC,cAAcC,0BAA0B;AAEjD,IAAA,wBAAeH,WAAWI,WAAW,MAC5BC,eACLL,WAAWM,YACTH,mBAAmBD,cACnBD,eAA6B;EAC3BM,KAAK;EACLC,QAAQN;EACRO,cAAc,OAAO,CAAC;AACxB,CAAA,CAAA,CAAA,CAAA;",
6
- "names": ["Effect", "Capability", "createKvsStore", "AccountCache", "ClientCapabilities", "makeModule", "succeed", "contributes", "key", "schema", "defaultValue"]
7
- }
@@ -1,159 +0,0 @@
1
- import "./chunk-J5LGTIGS.mjs";
2
-
3
- // src/capabilities/app-graph-builder.ts
4
- import * as Effect from "effect/Effect";
5
- import { Capability } from "@dxos/app-framework";
6
- import { AppCapabilities } from "@dxos/app-toolkit";
7
- import { Operation } from "@dxos/compute";
8
- import { CreateAtom, GraphBuilder, Node, NodeMatcher } from "@dxos/plugin-graph";
9
- import { ConnectionState } from "@dxos/react-client/mesh";
10
- import { meta } from "#meta";
11
- import { ClientOperation } from "#operations";
12
- import { Account, ClientCapabilities } from "#types";
13
- var app_graph_builder_default = Capability.makeModule(Effect.fnUntraced(function* () {
14
- const extensions = yield* GraphBuilder.createExtension({
15
- id: "root",
16
- match: NodeMatcher.whenRoot,
17
- actions: () => Effect.succeed([
18
- {
19
- id: "openUserAccount",
20
- data: () => Operation.invoke(ClientOperation.ShareIdentity),
21
- properties: {
22
- label: [
23
- "open-user-account.label",
24
- {
25
- ns: meta.profile.key
26
- }
27
- ],
28
- icon: "ph--user--regular",
29
- disposition: "menu",
30
- keyBinding: {
31
- macos: "meta+shift+.",
32
- // TODO(wittjosiah): Test on windows to see if it behaves the same as linux.
33
- windows: "alt+shift+.",
34
- linux: "alt+shift+>"
35
- }
36
- }
37
- }
38
- ]),
39
- connector: (node, get) => Effect.gen(function* () {
40
- const client = yield* Capability.get(ClientCapabilities.Client);
41
- const identity = get(CreateAtom.fromObservable(client.halo.identity));
42
- const status = get(CreateAtom.fromObservable(client.mesh.networkStatus));
43
- return [
44
- Node.make({
45
- id: Account.id,
46
- type: meta.profile.key,
47
- properties: {
48
- label: [
49
- "account.label",
50
- {
51
- ns: meta.profile.key
52
- }
53
- ],
54
- icon: "ph--user--regular",
55
- disposition: "user-account",
56
- testId: "clientPlugin.account",
57
- // NOTE: This currently needs to be the identity key because the fallback is generated from hex.
58
- userId: identity?.identityKey.toHex(),
59
- hue: identity?.profile?.data?.hue,
60
- emoji: identity?.profile?.data?.emoji,
61
- status: status.swarm === ConnectionState.OFFLINE ? "error" : "active"
62
- },
63
- nodes: [
64
- Node.make({
65
- id: Account.Profile,
66
- data: Account.Profile,
67
- type: meta.profile.key,
68
- properties: {
69
- label: [
70
- "profile.label",
71
- {
72
- ns: meta.profile.key
73
- }
74
- ],
75
- icon: "ph--user--regular"
76
- }
77
- }),
78
- Node.make({
79
- id: Account.Account,
80
- data: Account.Account,
81
- type: meta.profile.key,
82
- properties: {
83
- label: [
84
- "account-panel.label",
85
- {
86
- ns: meta.profile.key
87
- }
88
- ],
89
- icon: "ph--identification-card--regular"
90
- }
91
- }),
92
- Node.make({
93
- id: Account.Devices,
94
- data: Account.Devices,
95
- type: meta.profile.key,
96
- properties: {
97
- label: [
98
- "devices.label",
99
- {
100
- ns: meta.profile.key
101
- }
102
- ],
103
- icon: "ph--devices--regular",
104
- testId: "clientPlugin.devices"
105
- }
106
- }),
107
- Node.make({
108
- id: Account.Security,
109
- data: Account.Security,
110
- type: meta.profile.key,
111
- properties: {
112
- label: [
113
- "security.label",
114
- {
115
- ns: meta.profile.key
116
- }
117
- ],
118
- icon: "ph--key--regular"
119
- }
120
- }),
121
- Node.make({
122
- id: Account.Invitations,
123
- data: Account.Invitations,
124
- type: meta.profile.key,
125
- properties: {
126
- label: [
127
- "invitations-panel.label",
128
- {
129
- ns: meta.profile.key
130
- }
131
- ],
132
- icon: "ph--ticket--regular"
133
- }
134
- }),
135
- Node.make({
136
- id: Account.Usage,
137
- data: Account.Usage,
138
- type: meta.profile.key,
139
- properties: {
140
- label: [
141
- "usage-panel.label",
142
- {
143
- ns: meta.profile.key
144
- }
145
- ],
146
- icon: "ph--chart-bar--regular"
147
- }
148
- })
149
- ]
150
- })
151
- ];
152
- }).pipe(Effect.orDie)
153
- });
154
- return Capability.contributes(AppCapabilities.AppGraphBuilder, extensions);
155
- }));
156
- export {
157
- app_graph_builder_default as default
158
- };
159
- //# sourceMappingURL=app-graph-builder-RVXTD6OE.mjs.map
@@ -1,7 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../../../src/capabilities/app-graph-builder.ts"],
4
- "sourcesContent": ["//\n// Copyright 2025 DXOS.org\n//\n\nimport * as Effect from 'effect/Effect';\n\nimport { Capability } from '@dxos/app-framework';\nimport { AppCapabilities } from '@dxos/app-toolkit';\nimport { Operation } from '@dxos/compute';\nimport { CreateAtom, GraphBuilder, Node, NodeMatcher } from '@dxos/plugin-graph';\nimport { ConnectionState } from '@dxos/react-client/mesh';\n\nimport { meta } from '#meta';\nimport { ClientOperation } from '#operations';\nimport { Account, ClientCapabilities } from '#types';\n\nexport default Capability.makeModule(\n Effect.fnUntraced(function* () {\n const extensions = yield* GraphBuilder.createExtension({\n id: 'root',\n match: NodeMatcher.whenRoot,\n actions: () =>\n Effect.succeed([\n {\n id: 'openUserAccount',\n data: () => Operation.invoke(ClientOperation.ShareIdentity),\n properties: {\n label: ['open-user-account.label', { ns: meta.profile.key }],\n icon: 'ph--user--regular',\n disposition: 'menu',\n keyBinding: {\n macos: 'meta+shift+.',\n // TODO(wittjosiah): Test on windows to see if it behaves the same as linux.\n windows: 'alt+shift+.',\n linux: 'alt+shift+>',\n },\n },\n },\n ]),\n connector: (node, get) =>\n Effect.gen(function* () {\n const client = yield* Capability.get(ClientCapabilities.Client);\n const identity = get(CreateAtom.fromObservable(client.halo.identity));\n const status = get(CreateAtom.fromObservable(client.mesh.networkStatus));\n\n return [\n Node.make({\n id: Account.id,\n type: meta.profile.key,\n properties: {\n label: ['account.label', { ns: meta.profile.key }],\n icon: 'ph--user--regular',\n disposition: 'user-account',\n testId: 'clientPlugin.account',\n // NOTE: This currently needs to be the identity key because the fallback is generated from hex.\n userId: identity?.identityKey.toHex(),\n hue: identity?.profile?.data?.hue,\n emoji: identity?.profile?.data?.emoji,\n status: status.swarm === ConnectionState.OFFLINE ? 'error' : 'active',\n },\n nodes: [\n Node.make({\n id: Account.Profile,\n data: Account.Profile,\n type: meta.profile.key,\n properties: {\n label: ['profile.label', { ns: meta.profile.key }],\n icon: 'ph--user--regular',\n },\n }),\n Node.make({\n id: Account.Account,\n data: Account.Account,\n type: meta.profile.key,\n properties: {\n label: ['account-panel.label', { ns: meta.profile.key }],\n icon: 'ph--identification-card--regular',\n },\n }),\n Node.make({\n id: Account.Devices,\n data: Account.Devices,\n type: meta.profile.key,\n properties: {\n label: ['devices.label', { ns: meta.profile.key }],\n icon: 'ph--devices--regular',\n testId: 'clientPlugin.devices',\n },\n }),\n Node.make({\n id: Account.Security,\n data: Account.Security,\n type: meta.profile.key,\n properties: {\n label: ['security.label', { ns: meta.profile.key }],\n icon: 'ph--key--regular',\n },\n }),\n Node.make({\n id: Account.Invitations,\n data: Account.Invitations,\n type: meta.profile.key,\n properties: {\n label: ['invitations-panel.label', { ns: meta.profile.key }],\n icon: 'ph--ticket--regular',\n },\n }),\n Node.make({\n id: Account.Usage,\n data: Account.Usage,\n type: meta.profile.key,\n properties: {\n label: ['usage-panel.label', { ns: meta.profile.key }],\n icon: 'ph--chart-bar--regular',\n },\n }),\n ],\n }),\n ];\n }).pipe(Effect.orDie),\n });\n\n return Capability.contributes(AppCapabilities.AppGraphBuilder, extensions);\n }),\n);\n"],
5
- "mappings": "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",
6
- "names": ["Effect", "Capability", "AppCapabilities", "Operation", "CreateAtom", "GraphBuilder", "Node", "NodeMatcher", "ConnectionState", "meta", "ClientOperation", "Account", "ClientCapabilities", "makeModule", "fnUntraced", "extensions", "createExtension", "id", "match", "whenRoot", "actions", "succeed", "data", "invoke", "ShareIdentity", "properties", "label", "ns", "profile", "key", "icon", "disposition", "keyBinding", "macos", "windows", "linux", "connector", "node", "get", "gen", "client", "Client", "identity", "fromObservable", "halo", "status", "mesh", "networkStatus", "make", "type", "testId", "userId", "identityKey", "toHex", "hue", "emoji", "swarm", "OFFLINE", "nodes", "Profile", "Devices", "Security", "Invitations", "Usage", "pipe", "orDie", "contributes", "AppGraphBuilder"]
7
- }
@@ -1,34 +0,0 @@
1
- import "../chunk-J5LGTIGS.mjs";
2
-
3
- // src/capabilities/index.ts
4
- import { Capability as Capability2 } from "@dxos/app-framework";
5
-
6
- // src/capabilities/navigation-handler/index.ts
7
- import { Capability } from "@dxos/app-framework";
8
- var NavigationHandler = Capability.lazy("NavigationHandler", () => import("../navigation-handler-MQ6MZXLX.mjs"));
9
-
10
- // src/capabilities/index.ts
11
- var AccountCache = Capability2.lazy("AccountCache", () => import("../account-cache-YVQKLNV2.mjs"));
12
- var AppGraphBuilder = Capability2.lazy("AppGraphBuilder", () => import("../app-graph-builder-RVXTD6OE.mjs"));
13
- var HubHttpClient = Capability2.lazy("HubHttpClient", () => import("../hub-http-client-WOJUCDKV.mjs"));
14
- var Client = Capability2.lazy("Client", () => import("../client-7I5Y5SOA.mjs"));
15
- var LayerSpecs = Capability2.lazy("LayerSpecs", () => import("../layer-specs-YI7BVWKZ.mjs"));
16
- var Migrations = Capability2.lazy("Migrations", () => import("../migrations-7FTW55ER.mjs"));
17
- var OperationHandler = Capability2.lazy("OperationHandler", () => import("../operation-handler-E3HB7E2T.mjs"));
18
- var ReactContext = Capability2.lazy("ReactContext", () => import("../react-context-V74T6JOJ.mjs"));
19
- var ReactSurface = Capability2.lazy("ReactSurface", () => import("../react-surface-HPXRA65U.mjs"));
20
- var SchemaDefs = Capability2.lazy("SchemaDefs", () => import("../schema-defs-IHBCKTMM.mjs"));
21
- export {
22
- AccountCache,
23
- AppGraphBuilder,
24
- Client,
25
- HubHttpClient,
26
- LayerSpecs,
27
- Migrations,
28
- NavigationHandler,
29
- OperationHandler,
30
- ReactContext,
31
- ReactSurface,
32
- SchemaDefs
33
- };
34
- //# sourceMappingURL=index.mjs.map
@@ -1,7 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../../../../src/capabilities/index.ts", "../../../../src/capabilities/navigation-handler/index.ts"],
4
- "sourcesContent": ["//\n// Copyright 2025 DXOS.org\n//\n\nimport { Capability } from '@dxos/app-framework';\nimport { OperationHandlerSet } from '@dxos/compute';\n\nexport const AccountCache = Capability.lazy('AccountCache', () => import('./account-cache'));\nexport const AppGraphBuilder = Capability.lazy('AppGraphBuilder', () => import('./app-graph-builder'));\nexport const HubHttpClient = Capability.lazy('HubHttpClient', () => import('./hub-http-client'));\nexport const Client = Capability.lazy('Client', () => import('./client'));\nexport const LayerSpecs = Capability.lazy<void, Capability.Any[]>('LayerSpecs', () => import('./layer-specs'));\nexport const Migrations = Capability.lazy('Migrations', () => import('./migrations'));\nexport { NavigationHandler } from './navigation-handler';\nexport type { NavigationHandlerOptions } from './navigation-handler';\nexport const OperationHandler = Capability.lazy<OperationHandlerSet.OperationHandlerSet>(\n 'OperationHandler',\n () => import('./operation-handler'),\n);\nexport const ReactContext = Capability.lazy('ReactContext', () => import('./react-context'));\nexport const ReactSurface = Capability.lazy('ReactSurface', () => import('./react-surface'));\nexport const SchemaDefs = Capability.lazy('SchemaDefs', () => import('./schema-defs'));\n", "//\n// Copyright 2025 DXOS.org\n//\n\nimport { Capability } from '@dxos/app-framework';\n\nexport type { NavigationHandlerOptions } from './navigation-handler';\n\nexport const NavigationHandler = Capability.lazy('NavigationHandler', () => import('./navigation-handler'));\n"],
5
- "mappings": ";;;AAIA,SAASA,cAAAA,mBAAkB;;;ACA3B,SAASC,kBAAkB;AAIpB,IAAMC,oBAAoBD,WAAWE,KAAK,qBAAqB,MAAM,OAAO,oCAAA,CAAA;;;ADD5E,IAAMC,eAAeC,YAAWC,KAAK,gBAAgB,MAAM,OAAO,+BAAA,CAAA;AAClE,IAAMC,kBAAkBF,YAAWC,KAAK,mBAAmB,MAAM,OAAO,mCAAA,CAAA;AACxE,IAAME,gBAAgBH,YAAWC,KAAK,iBAAiB,MAAM,OAAO,iCAAA,CAAA;AACpE,IAAMG,SAASJ,YAAWC,KAAK,UAAU,MAAM,OAAO,wBAAA,CAAA;AACtD,IAAMI,aAAaL,YAAWC,KAA6B,cAAc,MAAM,OAAO,6BAAA,CAAA;AACtF,IAAMK,aAAaN,YAAWC,KAAK,cAAc,MAAM,OAAO,4BAAA,CAAA;AAG9D,IAAMM,mBAAmBP,YAAWC,KACzC,oBACA,MAAM,OAAO,mCAAA,CAAA;AAER,IAAMO,eAAeR,YAAWC,KAAK,gBAAgB,MAAM,OAAO,+BAAA,CAAA;AAClE,IAAMQ,eAAeT,YAAWC,KAAK,gBAAgB,MAAM,OAAO,+BAAA,CAAA;AAClE,IAAMS,aAAaV,YAAWC,KAAK,cAAc,MAAM,OAAO,6BAAA,CAAA;",
6
- "names": ["Capability", "Capability", "NavigationHandler", "lazy", "AccountCache", "Capability", "lazy", "AppGraphBuilder", "HubHttpClient", "Client", "LayerSpecs", "Migrations", "OperationHandler", "ReactContext", "ReactSurface", "SchemaDefs"]
7
- }
@@ -1,21 +0,0 @@
1
- import "../chunk-J5LGTIGS.mjs";
2
-
3
- // src/capabilities/node.ts
4
- import { Capability } from "@dxos/app-framework";
5
- var AppGraphBuilder = Capability.lazy("AppGraphBuilder", () => import("../app-graph-builder-RVXTD6OE.mjs"));
6
- var Client = Capability.lazy("Client", () => import("../client-7I5Y5SOA.mjs"));
7
- var LayerSpecs = Capability.lazy("LayerSpecs", () => import("../layer-specs-YI7BVWKZ.mjs"));
8
- var Migrations = Capability.lazy("Migrations", () => import("../migrations-7FTW55ER.mjs"));
9
- var NavigationHandler = Capability.lazy("NavigationHandler", () => import("../navigation-handler-MQ6MZXLX.mjs"));
10
- var OperationHandler = Capability.lazy("OperationHandler", () => import("../operation-handler-E3HB7E2T.mjs"));
11
- var SchemaDefs = Capability.lazy("SchemaDefs", () => import("../schema-defs-IHBCKTMM.mjs"));
12
- export {
13
- AppGraphBuilder,
14
- Client,
15
- LayerSpecs,
16
- Migrations,
17
- NavigationHandler,
18
- OperationHandler,
19
- SchemaDefs
20
- };
21
- //# sourceMappingURL=node.mjs.map
@@ -1,7 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../../../../src/capabilities/node.ts"],
4
- "sourcesContent": ["//\n// Copyright 2025 DXOS.org\n//\n\nimport { Capability } from '@dxos/app-framework';\nimport { OperationHandlerSet } from '@dxos/compute';\n\nexport const AppGraphBuilder = Capability.lazy('AppGraphBuilder', () => import('./app-graph-builder'));\nexport const Client = Capability.lazy('Client', () => import('./client'));\nexport const LayerSpecs = Capability.lazy<void, Capability.Any[]>('LayerSpecs', () => import('./layer-specs'));\nexport const Migrations = Capability.lazy('Migrations', () => import('./migrations'));\nexport const NavigationHandler = Capability.lazy(\n 'NavigationHandler',\n () => import('./navigation-handler/navigation-handler'),\n);\nexport type { NavigationHandlerOptions } from './navigation-handler';\nexport const OperationHandler = Capability.lazy<OperationHandlerSet.OperationHandlerSet>(\n 'OperationHandler',\n () => import('./operation-handler'),\n);\nexport const SchemaDefs = Capability.lazy('SchemaDefs', () => import('./schema-defs'));\n"],
5
- "mappings": ";;;AAIA,SAASA,kBAAkB;AAGpB,IAAMC,kBAAkBD,WAAWE,KAAK,mBAAmB,MAAM,OAAO,mCAAA,CAAA;AACxE,IAAMC,SAASH,WAAWE,KAAK,UAAU,MAAM,OAAO,wBAAA,CAAA;AACtD,IAAME,aAAaJ,WAAWE,KAA6B,cAAc,MAAM,OAAO,6BAAA,CAAA;AACtF,IAAMG,aAAaL,WAAWE,KAAK,cAAc,MAAM,OAAO,4BAAA,CAAA;AAC9D,IAAMI,oBAAoBN,WAAWE,KAC1C,qBACA,MAAM,OAAO,oCAAA,CAAA;AAGR,IAAMK,mBAAmBP,WAAWE,KACzC,oBACA,MAAM,OAAO,mCAAA,CAAA;AAER,IAAMM,aAAaR,WAAWE,KAAK,cAAc,MAAM,OAAO,6BAAA,CAAA;",
6
- "names": ["Capability", "AppGraphBuilder", "lazy", "Client", "LayerSpecs", "Migrations", "NavigationHandler", "OperationHandler", "SchemaDefs"]
7
- }