@dxos/plugin-client 0.8.4-main.bc674ce → 0.8.4-main.bcb3aa67d6

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 (360) hide show
  1. package/dist/lib/browser/chunk-ELAYKIQU.mjs +12 -0
  2. package/dist/lib/browser/chunk-ELAYKIQU.mjs.map +7 -0
  3. package/dist/lib/browser/chunk-J5LGTIGS.mjs +10 -0
  4. package/dist/lib/browser/chunk-J5LGTIGS.mjs.map +7 -0
  5. package/dist/lib/browser/chunk-M43LJQ5U.mjs +175 -0
  6. package/dist/lib/browser/chunk-M43LJQ5U.mjs.map +7 -0
  7. package/dist/lib/browser/chunk-WNJRYPGG.mjs +131 -0
  8. package/dist/lib/browser/chunk-WNJRYPGG.mjs.map +7 -0
  9. package/dist/lib/browser/cli/index.mjs +92 -80
  10. package/dist/lib/browser/cli/index.mjs.map +3 -3
  11. package/dist/lib/browser/create-agent-WXBNGUBQ.mjs +34 -0
  12. package/dist/lib/browser/create-agent-WXBNGUBQ.mjs.map +7 -0
  13. package/dist/lib/browser/create-identity-LIE4RCXJ.mjs +30 -0
  14. package/dist/lib/browser/create-identity-LIE4RCXJ.mjs.map +7 -0
  15. package/dist/lib/browser/create-passkey-PYZ47DJT.mjs +105 -0
  16. package/dist/lib/browser/create-passkey-PYZ47DJT.mjs.map +7 -0
  17. package/dist/lib/browser/create-recovery-code-NSRU3QDJ.mjs +44 -0
  18. package/dist/lib/browser/create-recovery-code-NSRU3QDJ.mjs.map +7 -0
  19. package/dist/lib/browser/index.mjs +90 -93
  20. package/dist/lib/browser/index.mjs.map +4 -4
  21. package/dist/lib/browser/join-identity-B6DC2VW7.mjs +27 -0
  22. package/dist/lib/browser/join-identity-B6DC2VW7.mjs.map +7 -0
  23. package/dist/lib/browser/meta.json +1 -1
  24. package/dist/lib/browser/operations/index.mjs +13 -0
  25. package/dist/lib/browser/operations/index.mjs.map +7 -0
  26. package/dist/lib/browser/recover-identity-Z3H4GJ3L.mjs +26 -0
  27. package/dist/lib/browser/recover-identity-Z3H4GJ3L.mjs.map +7 -0
  28. package/dist/lib/browser/redeem-passkey-ODK47PIR.mjs +82 -0
  29. package/dist/lib/browser/redeem-passkey-ODK47PIR.mjs.map +7 -0
  30. package/dist/lib/browser/redeem-token-OYXEFDM3.mjs +37 -0
  31. package/dist/lib/browser/redeem-token-OYXEFDM3.mjs.map +7 -0
  32. package/dist/lib/browser/reset-storage-JAU4CS2U.mjs +26 -0
  33. package/dist/lib/browser/reset-storage-JAU4CS2U.mjs.map +7 -0
  34. package/dist/lib/browser/share-identity-H2JNYYCP.mjs +31 -0
  35. package/dist/lib/browser/share-identity-H2JNYYCP.mjs.map +7 -0
  36. package/dist/lib/browser/testing/index.mjs +22 -0
  37. package/dist/lib/browser/testing/index.mjs.map +7 -0
  38. package/dist/lib/browser/types/index.mjs +4 -5
  39. package/dist/lib/node-esm/chunk-HSLMI22Q.mjs +11 -0
  40. package/dist/lib/node-esm/chunk-HSLMI22Q.mjs.map +7 -0
  41. package/dist/lib/node-esm/chunk-IT5LAIV3.mjs +133 -0
  42. package/dist/lib/node-esm/chunk-IT5LAIV3.mjs.map +7 -0
  43. package/dist/lib/node-esm/chunk-J5RWSQT6.mjs +14 -0
  44. package/dist/lib/node-esm/chunk-J5RWSQT6.mjs.map +7 -0
  45. package/dist/lib/node-esm/chunk-SJ6FDER5.mjs +176 -0
  46. package/dist/lib/node-esm/chunk-SJ6FDER5.mjs.map +7 -0
  47. package/dist/lib/node-esm/cli/index.mjs +92 -80
  48. package/dist/lib/node-esm/cli/index.mjs.map +3 -3
  49. package/dist/lib/node-esm/create-agent-I7VGTH7O.mjs +35 -0
  50. package/dist/lib/node-esm/create-agent-I7VGTH7O.mjs.map +7 -0
  51. package/dist/lib/node-esm/create-identity-NWY3YT5C.mjs +31 -0
  52. package/dist/lib/node-esm/create-identity-NWY3YT5C.mjs.map +7 -0
  53. package/dist/lib/node-esm/create-passkey-2LQEEIAN.mjs +106 -0
  54. package/dist/lib/node-esm/create-passkey-2LQEEIAN.mjs.map +7 -0
  55. package/dist/lib/node-esm/create-recovery-code-2MVK5CVE.mjs +45 -0
  56. package/dist/lib/node-esm/create-recovery-code-2MVK5CVE.mjs.map +7 -0
  57. package/dist/lib/node-esm/index.mjs +90 -93
  58. package/dist/lib/node-esm/index.mjs.map +4 -4
  59. package/dist/lib/node-esm/join-identity-6NT75FSO.mjs +28 -0
  60. package/dist/lib/node-esm/join-identity-6NT75FSO.mjs.map +7 -0
  61. package/dist/lib/node-esm/meta.json +1 -1
  62. package/dist/lib/node-esm/operations/index.mjs +14 -0
  63. package/dist/lib/node-esm/operations/index.mjs.map +7 -0
  64. package/dist/lib/node-esm/recover-identity-3UKCQ2M4.mjs +27 -0
  65. package/dist/lib/node-esm/recover-identity-3UKCQ2M4.mjs.map +7 -0
  66. package/dist/lib/node-esm/redeem-passkey-TDNEMVJJ.mjs +83 -0
  67. package/dist/lib/node-esm/redeem-passkey-TDNEMVJJ.mjs.map +7 -0
  68. package/dist/lib/node-esm/redeem-token-ZBYMFFKM.mjs +38 -0
  69. package/dist/lib/node-esm/redeem-token-ZBYMFFKM.mjs.map +7 -0
  70. package/dist/lib/node-esm/reset-storage-NY3ALG72.mjs +27 -0
  71. package/dist/lib/node-esm/reset-storage-NY3ALG72.mjs.map +7 -0
  72. package/dist/lib/node-esm/share-identity-FDIZWTDG.mjs +32 -0
  73. package/dist/lib/node-esm/share-identity-FDIZWTDG.mjs.map +7 -0
  74. package/dist/lib/node-esm/testing/index.mjs +23 -0
  75. package/dist/lib/node-esm/testing/index.mjs.map +7 -0
  76. package/dist/lib/node-esm/types/index.mjs +4 -5
  77. package/dist/types/src/ClientPlugin.d.ts +1 -1
  78. package/dist/types/src/ClientPlugin.d.ts.map +1 -1
  79. package/dist/types/src/capabilities/app-graph-builder.d.ts +6 -0
  80. package/dist/types/src/capabilities/app-graph-builder.d.ts.map +1 -0
  81. package/dist/types/src/capabilities/client.d.ts +8 -0
  82. package/dist/types/src/capabilities/client.d.ts.map +1 -0
  83. package/dist/types/src/capabilities/index.d.ts +32 -7
  84. package/dist/types/src/capabilities/index.d.ts.map +1 -1
  85. package/dist/types/src/capabilities/migrations.d.ts +5 -0
  86. package/dist/types/src/capabilities/migrations.d.ts.map +1 -0
  87. package/dist/types/src/capabilities/navigation-handler/index.d.ts +4 -0
  88. package/dist/types/src/capabilities/navigation-handler/index.d.ts.map +1 -0
  89. package/dist/types/src/capabilities/navigation-handler/navigation-handler.d.ts +15 -0
  90. package/dist/types/src/capabilities/navigation-handler/navigation-handler.d.ts.map +1 -0
  91. package/dist/types/src/capabilities/{client/index.d.ts → node.d.ts} +7 -3
  92. package/dist/types/src/capabilities/node.d.ts.map +1 -0
  93. package/dist/types/src/capabilities/operation-handler.d.ts +6 -0
  94. package/dist/types/src/capabilities/operation-handler.d.ts.map +1 -0
  95. package/dist/types/src/capabilities/{react-context/react-context.d.ts → react-context.d.ts} +1 -1
  96. package/dist/types/src/capabilities/react-context.d.ts.map +1 -0
  97. package/dist/types/src/capabilities/react-surface.d.ts +9 -0
  98. package/dist/types/src/capabilities/react-surface.d.ts.map +1 -0
  99. package/dist/types/src/capabilities/schema-defs.d.ts +5 -0
  100. package/dist/types/src/capabilities/schema-defs.d.ts.map +1 -0
  101. package/dist/types/src/cli/commands/config/view.d.ts.map +1 -1
  102. package/dist/types/src/cli/commands/device/info/info.d.ts +2 -2
  103. package/dist/types/src/cli/commands/device/info/info.d.ts.map +1 -1
  104. package/dist/types/src/cli/commands/device/list/list.d.ts +2 -2
  105. package/dist/types/src/cli/commands/device/list/list.d.ts.map +1 -1
  106. package/dist/types/src/cli/commands/device/update/update.d.ts.map +1 -1
  107. package/dist/types/src/cli/commands/edge/status.d.ts.map +1 -1
  108. package/dist/types/src/cli/commands/halo/create/create.d.ts +2 -2
  109. package/dist/types/src/cli/commands/halo/create/create.d.ts.map +1 -1
  110. package/dist/types/src/cli/commands/halo/credential/list/list.d.ts +1 -1
  111. package/dist/types/src/cli/commands/halo/credential/list/list.d.ts.map +1 -1
  112. package/dist/types/src/cli/commands/halo/identity/identity.d.ts +2 -2
  113. package/dist/types/src/cli/commands/halo/identity/identity.d.ts.map +1 -1
  114. package/dist/types/src/cli/commands/halo/keys/keys.d.ts +2 -2
  115. package/dist/types/src/cli/commands/halo/keys/keys.d.ts.map +1 -1
  116. package/dist/types/src/cli/commands/halo/seed/seed.d.ts.map +1 -1
  117. package/dist/types/src/cli/commands/halo/update/update.d.ts.map +1 -1
  118. package/dist/types/src/cli/commands/profile/create.d.ts +2 -1
  119. package/dist/types/src/cli/commands/profile/create.d.ts.map +1 -1
  120. package/dist/types/src/cli/commands/profile/delete.d.ts +1 -1
  121. package/dist/types/src/cli/commands/profile/delete.d.ts.map +1 -1
  122. package/dist/types/src/cli/commands/profile/list.d.ts.map +1 -1
  123. package/dist/types/src/cli/plugin.d.ts +1 -1
  124. package/dist/types/src/cli/plugin.d.ts.map +1 -1
  125. package/dist/types/src/components/index.d.ts +0 -6
  126. package/dist/types/src/components/index.d.ts.map +1 -1
  127. package/dist/types/src/containers/DevicesContainer/DevicesContainer.d.ts.map +1 -0
  128. package/dist/types/src/containers/DevicesContainer/DevicesContainer.stories.d.ts +184 -0
  129. package/dist/types/src/containers/DevicesContainer/DevicesContainer.stories.d.ts.map +1 -0
  130. package/dist/types/src/containers/DevicesContainer/index.d.ts +3 -0
  131. package/dist/types/src/containers/DevicesContainer/index.d.ts.map +1 -0
  132. package/dist/types/src/containers/JoinDialog/JoinDialog.d.ts.map +1 -0
  133. package/dist/types/src/containers/JoinDialog/JoinDialog.stories.d.ts +15 -0
  134. package/dist/types/src/containers/JoinDialog/JoinDialog.stories.d.ts.map +1 -0
  135. package/dist/types/src/containers/JoinDialog/index.d.ts +3 -0
  136. package/dist/types/src/containers/JoinDialog/index.d.ts.map +1 -0
  137. package/dist/types/src/containers/ProfileContainer/ProfileContainer.d.ts.map +1 -0
  138. package/dist/types/src/containers/ProfileContainer/ProfileContainer.stories.d.ts.map +1 -0
  139. package/dist/types/src/containers/ProfileContainer/index.d.ts +3 -0
  140. package/dist/types/src/containers/ProfileContainer/index.d.ts.map +1 -0
  141. package/dist/types/src/containers/RecoveryCodeDialog/RecoveryCodeDialog.d.ts.map +1 -0
  142. package/dist/types/src/containers/RecoveryCodeDialog/RecoveryCodeDialog.stories.d.ts.map +1 -0
  143. package/dist/types/src/containers/RecoveryCodeDialog/index.d.ts +4 -0
  144. package/dist/types/src/containers/RecoveryCodeDialog/index.d.ts.map +1 -0
  145. package/dist/types/src/containers/RecoveryCredentialsContainer/RecoveryCredentialsContainer.d.ts.map +1 -0
  146. package/dist/types/src/containers/RecoveryCredentialsContainer/RecoveryCredentialsContainer.stories.d.ts.map +1 -0
  147. package/dist/types/src/containers/RecoveryCredentialsContainer/index.d.ts +3 -0
  148. package/dist/types/src/containers/RecoveryCredentialsContainer/index.d.ts.map +1 -0
  149. package/dist/types/src/{components → containers/ResetDialog}/ResetDialog.d.ts +1 -1
  150. package/dist/types/src/containers/ResetDialog/ResetDialog.d.ts.map +1 -0
  151. package/dist/types/src/{components → containers/ResetDialog}/ResetDialog.stories.d.ts +1 -1
  152. package/dist/types/src/containers/ResetDialog/ResetDialog.stories.d.ts.map +1 -0
  153. package/dist/types/src/containers/ResetDialog/index.d.ts +4 -0
  154. package/dist/types/src/containers/ResetDialog/index.d.ts.map +1 -0
  155. package/dist/types/src/containers/index.d.ts +10 -0
  156. package/dist/types/src/containers/index.d.ts.map +1 -0
  157. package/dist/types/src/index.d.ts +2 -4
  158. package/dist/types/src/index.d.ts.map +1 -1
  159. package/dist/types/src/operations/create-agent.d.ts +5 -0
  160. package/dist/types/src/operations/create-agent.d.ts.map +1 -0
  161. package/dist/types/src/operations/create-identity.d.ts +5 -0
  162. package/dist/types/src/operations/create-identity.d.ts.map +1 -0
  163. package/dist/types/src/operations/create-passkey.d.ts +5 -0
  164. package/dist/types/src/operations/create-passkey.d.ts.map +1 -0
  165. package/dist/types/src/operations/create-recovery-code.d.ts +5 -0
  166. package/dist/types/src/operations/create-recovery-code.d.ts.map +1 -0
  167. package/dist/types/src/operations/definitions.d.ts +36 -0
  168. package/dist/types/src/operations/definitions.d.ts.map +1 -0
  169. package/dist/types/src/operations/index.d.ts +4 -0
  170. package/dist/types/src/operations/index.d.ts.map +1 -0
  171. package/dist/types/src/operations/join-identity.d.ts +5 -0
  172. package/dist/types/src/operations/join-identity.d.ts.map +1 -0
  173. package/dist/types/src/operations/recover-identity.d.ts +5 -0
  174. package/dist/types/src/operations/recover-identity.d.ts.map +1 -0
  175. package/dist/types/src/operations/redeem-passkey.d.ts +5 -0
  176. package/dist/types/src/operations/redeem-passkey.d.ts.map +1 -0
  177. package/dist/types/src/operations/redeem-token.d.ts +5 -0
  178. package/dist/types/src/operations/redeem-token.d.ts.map +1 -0
  179. package/dist/types/src/operations/reset-storage.d.ts +5 -0
  180. package/dist/types/src/operations/reset-storage.d.ts.map +1 -0
  181. package/dist/types/src/operations/share-identity.d.ts +5 -0
  182. package/dist/types/src/operations/share-identity.d.ts.map +1 -0
  183. package/dist/types/src/testing/index.d.ts +2 -0
  184. package/dist/types/src/testing/index.d.ts.map +1 -0
  185. package/dist/types/src/testing/initializeIdentity.d.ts +13 -0
  186. package/dist/types/src/testing/initializeIdentity.d.ts.map +1 -0
  187. package/dist/types/src/translations.d.ts.map +1 -1
  188. package/dist/types/src/types/capabilities.d.ts +1 -1
  189. package/dist/types/src/types/capabilities.d.ts.map +1 -1
  190. package/dist/types/src/types/schema.d.ts +26 -175
  191. package/dist/types/src/types/schema.d.ts.map +1 -1
  192. package/dist/types/tsconfig.tsbuildinfo +1 -1
  193. package/package.json +72 -36
  194. package/src/ClientPlugin.ts +38 -25
  195. package/src/capabilities/{app-graph-builder/app-graph-builder.ts → app-graph-builder.ts} +21 -19
  196. package/src/capabilities/{client/client.ts → client.ts} +16 -12
  197. package/src/capabilities/index.ts +15 -7
  198. package/src/capabilities/{migrations/migrations.ts → migrations.ts} +4 -4
  199. package/src/capabilities/navigation-handler/index.ts +9 -0
  200. package/src/capabilities/navigation-handler/navigation-handler.ts +64 -0
  201. package/src/capabilities/node.ts +13 -0
  202. package/src/capabilities/operation-handler.ts +16 -0
  203. package/src/capabilities/{react-context/react-context.tsx → react-context.tsx} +7 -7
  204. package/src/capabilities/{react-surface/react-surface.tsx → react-surface.tsx} +13 -13
  205. package/src/capabilities/{schema-defs/schema-defs.ts → schema-defs.ts} +8 -7
  206. package/src/cli/commands/config/view.ts +4 -1
  207. package/src/cli/commands/device/info/info.test.ts +0 -1
  208. package/src/cli/commands/device/info/info.ts +0 -2
  209. package/src/cli/commands/device/list/list.test.ts +0 -1
  210. package/src/cli/commands/device/list/list.ts +0 -2
  211. package/src/cli/commands/device/update/update.ts +0 -2
  212. package/src/cli/commands/edge/status.ts +3 -2
  213. package/src/cli/commands/halo/create/create.ts +13 -6
  214. package/src/cli/commands/halo/credential/list/list.test.ts +0 -1
  215. package/src/cli/commands/halo/credential/list/list.ts +4 -7
  216. package/src/cli/commands/halo/identity/identity.ts +0 -1
  217. package/src/cli/commands/halo/keys/keys.ts +0 -2
  218. package/src/cli/commands/halo/seed/seed.ts +0 -2
  219. package/src/cli/commands/halo/update/update.test.ts +0 -1
  220. package/src/cli/commands/halo/update/update.ts +0 -2
  221. package/src/cli/commands/profile/create.ts +9 -6
  222. package/src/cli/commands/profile/delete.ts +5 -2
  223. package/src/cli/commands/profile/list.ts +12 -11
  224. package/src/cli/plugin.ts +12 -13
  225. package/src/components/index.ts +0 -7
  226. package/src/constants.ts +4 -4
  227. package/src/{components → containers/DevicesContainer}/DevicesContainer.stories.tsx +10 -7
  228. package/src/{components → containers/DevicesContainer}/DevicesContainer.tsx +76 -83
  229. package/src/containers/DevicesContainer/index.ts +7 -0
  230. package/src/containers/JoinDialog/JoinDialog.stories.tsx +43 -0
  231. package/src/{components → containers/JoinDialog}/JoinDialog.tsx +20 -15
  232. package/src/containers/JoinDialog/index.ts +7 -0
  233. package/src/{components → containers/ProfileContainer}/ProfileContainer.stories.tsx +4 -4
  234. package/src/{components → containers/ProfileContainer}/ProfileContainer.tsx +21 -29
  235. package/src/containers/ProfileContainer/index.ts +7 -0
  236. package/src/{components → containers/RecoveryCodeDialog}/RecoveryCodeDialog.stories.tsx +4 -4
  237. package/src/{components → containers/RecoveryCodeDialog}/RecoveryCodeDialog.tsx +29 -26
  238. package/src/containers/RecoveryCodeDialog/index.ts +8 -0
  239. package/src/{components → containers/RecoveryCredentialsContainer}/RecoveryCredentialsContainer.stories.tsx +10 -7
  240. package/src/containers/RecoveryCredentialsContainer/RecoveryCredentialsContainer.tsx +66 -0
  241. package/src/containers/RecoveryCredentialsContainer/index.ts +7 -0
  242. package/src/{components → containers/ResetDialog}/ResetDialog.stories.tsx +27 -14
  243. package/src/{components → containers/ResetDialog}/ResetDialog.tsx +11 -11
  244. package/src/containers/ResetDialog/index.ts +8 -0
  245. package/src/containers/index.ts +15 -0
  246. package/src/index.ts +2 -5
  247. package/src/meta.ts +1 -1
  248. package/src/operations/create-agent.ts +27 -0
  249. package/src/operations/create-identity.ts +30 -0
  250. package/src/operations/create-passkey.ts +89 -0
  251. package/src/operations/create-recovery-code.ts +35 -0
  252. package/src/operations/definitions.ts +107 -0
  253. package/src/operations/index.ts +20 -0
  254. package/src/operations/join-identity.ts +29 -0
  255. package/src/operations/recover-identity.ts +29 -0
  256. package/src/operations/redeem-passkey.ts +86 -0
  257. package/src/operations/redeem-token.ts +32 -0
  258. package/src/operations/reset-storage.ts +28 -0
  259. package/src/operations/share-identity.ts +27 -0
  260. package/src/testing/index.ts +5 -0
  261. package/src/testing/initializeIdentity.ts +24 -0
  262. package/src/translations.ts +53 -42
  263. package/src/types/capabilities.ts +4 -4
  264. package/src/types/events.ts +6 -6
  265. package/src/types/schema.ts +18 -123
  266. package/dist/lib/browser/app-graph-builder-3FGBMLTF.mjs +0 -118
  267. package/dist/lib/browser/app-graph-builder-3FGBMLTF.mjs.map +0 -7
  268. package/dist/lib/browser/chunk-4BZGRIFS.mjs +0 -293
  269. package/dist/lib/browser/chunk-4BZGRIFS.mjs.map +0 -7
  270. package/dist/lib/browser/chunk-F7H2Y3Z2.mjs +0 -18
  271. package/dist/lib/browser/chunk-F7H2Y3Z2.mjs.map +0 -7
  272. package/dist/lib/browser/chunk-G7C3S2BE.mjs +0 -15
  273. package/dist/lib/browser/chunk-G7C3S2BE.mjs.map +0 -7
  274. package/dist/lib/browser/client-IX5LMWV4.mjs +0 -86
  275. package/dist/lib/browser/client-IX5LMWV4.mjs.map +0 -7
  276. package/dist/lib/browser/migrations-3EBTAW3N.mjs +0 -24
  277. package/dist/lib/browser/migrations-3EBTAW3N.mjs.map +0 -7
  278. package/dist/lib/browser/operation-resolver-2NT3ISVP.mjs +0 -298
  279. package/dist/lib/browser/operation-resolver-2NT3ISVP.mjs.map +0 -7
  280. package/dist/lib/browser/react-context-4UABG3GP.mjs +0 -24
  281. package/dist/lib/browser/react-context-4UABG3GP.mjs.map +0 -7
  282. package/dist/lib/browser/react-surface-RSQ74XCT.mjs +0 -675
  283. package/dist/lib/browser/react-surface-RSQ74XCT.mjs.map +0 -7
  284. package/dist/lib/browser/schema-defs-O7VLP745.mjs +0 -26
  285. package/dist/lib/browser/schema-defs-O7VLP745.mjs.map +0 -7
  286. package/dist/lib/node-esm/app-graph-builder-2PIYVUNC.mjs +0 -119
  287. package/dist/lib/node-esm/app-graph-builder-2PIYVUNC.mjs.map +0 -7
  288. package/dist/lib/node-esm/chunk-BCELGXRI.mjs +0 -20
  289. package/dist/lib/node-esm/chunk-BCELGXRI.mjs.map +0 -7
  290. package/dist/lib/node-esm/chunk-JAF64TFQ.mjs +0 -295
  291. package/dist/lib/node-esm/chunk-JAF64TFQ.mjs.map +0 -7
  292. package/dist/lib/node-esm/chunk-PRAFFO54.mjs +0 -16
  293. package/dist/lib/node-esm/chunk-PRAFFO54.mjs.map +0 -7
  294. package/dist/lib/node-esm/client-FFPK5UFP.mjs +0 -87
  295. package/dist/lib/node-esm/client-FFPK5UFP.mjs.map +0 -7
  296. package/dist/lib/node-esm/migrations-WSZSFGDK.mjs +0 -25
  297. package/dist/lib/node-esm/migrations-WSZSFGDK.mjs.map +0 -7
  298. package/dist/lib/node-esm/operation-resolver-VW5R2BE4.mjs +0 -299
  299. package/dist/lib/node-esm/operation-resolver-VW5R2BE4.mjs.map +0 -7
  300. package/dist/lib/node-esm/react-context-UVXMGPW4.mjs +0 -25
  301. package/dist/lib/node-esm/react-context-UVXMGPW4.mjs.map +0 -7
  302. package/dist/lib/node-esm/react-surface-KBHANGGC.mjs +0 -676
  303. package/dist/lib/node-esm/react-surface-KBHANGGC.mjs.map +0 -7
  304. package/dist/lib/node-esm/schema-defs-QLRGBIKY.mjs +0 -27
  305. package/dist/lib/node-esm/schema-defs-QLRGBIKY.mjs.map +0 -7
  306. package/dist/types/src/capabilities/app-graph-builder/app-graph-builder.d.ts +0 -6
  307. package/dist/types/src/capabilities/app-graph-builder/app-graph-builder.d.ts.map +0 -1
  308. package/dist/types/src/capabilities/app-graph-builder/index.d.ts +0 -3
  309. package/dist/types/src/capabilities/app-graph-builder/index.d.ts.map +0 -1
  310. package/dist/types/src/capabilities/client/client.d.ts +0 -8
  311. package/dist/types/src/capabilities/client/client.d.ts.map +0 -1
  312. package/dist/types/src/capabilities/client/index.d.ts.map +0 -1
  313. package/dist/types/src/capabilities/migrations/index.d.ts +0 -3
  314. package/dist/types/src/capabilities/migrations/index.d.ts.map +0 -1
  315. package/dist/types/src/capabilities/migrations/migrations.d.ts +0 -5
  316. package/dist/types/src/capabilities/migrations/migrations.d.ts.map +0 -1
  317. package/dist/types/src/capabilities/operation-resolver/index.d.ts +0 -5
  318. package/dist/types/src/capabilities/operation-resolver/index.d.ts.map +0 -1
  319. package/dist/types/src/capabilities/operation-resolver/operation-resolver.d.ts +0 -8
  320. package/dist/types/src/capabilities/operation-resolver/operation-resolver.d.ts.map +0 -1
  321. package/dist/types/src/capabilities/react-context/index.d.ts +0 -7
  322. package/dist/types/src/capabilities/react-context/index.d.ts.map +0 -1
  323. package/dist/types/src/capabilities/react-context/react-context.d.ts.map +0 -1
  324. package/dist/types/src/capabilities/react-surface/index.d.ts +0 -5
  325. package/dist/types/src/capabilities/react-surface/index.d.ts.map +0 -1
  326. package/dist/types/src/capabilities/react-surface/react-surface.d.ts +0 -9
  327. package/dist/types/src/capabilities/react-surface/react-surface.d.ts.map +0 -1
  328. package/dist/types/src/capabilities/schema-defs/index.d.ts +0 -3
  329. package/dist/types/src/capabilities/schema-defs/index.d.ts.map +0 -1
  330. package/dist/types/src/capabilities/schema-defs/schema-defs.d.ts +0 -5
  331. package/dist/types/src/capabilities/schema-defs/schema-defs.d.ts.map +0 -1
  332. package/dist/types/src/components/DevicesContainer.d.ts.map +0 -1
  333. package/dist/types/src/components/DevicesContainer.stories.d.ts +0 -181
  334. package/dist/types/src/components/DevicesContainer.stories.d.ts.map +0 -1
  335. package/dist/types/src/components/JoinDialog.d.ts.map +0 -1
  336. package/dist/types/src/components/ProfileContainer.d.ts.map +0 -1
  337. package/dist/types/src/components/ProfileContainer.stories.d.ts.map +0 -1
  338. package/dist/types/src/components/RecoveryCodeDialog.d.ts.map +0 -1
  339. package/dist/types/src/components/RecoveryCodeDialog.stories.d.ts.map +0 -1
  340. package/dist/types/src/components/RecoveryCredentialsContainer.d.ts.map +0 -1
  341. package/dist/types/src/components/RecoveryCredentialsContainer.stories.d.ts.map +0 -1
  342. package/dist/types/src/components/ResetDialog.d.ts.map +0 -1
  343. package/dist/types/src/components/ResetDialog.stories.d.ts.map +0 -1
  344. package/src/capabilities/app-graph-builder/index.ts +0 -7
  345. package/src/capabilities/client/index.ts +0 -7
  346. package/src/capabilities/migrations/index.ts +0 -7
  347. package/src/capabilities/operation-resolver/index.ts +0 -7
  348. package/src/capabilities/operation-resolver/operation-resolver.ts +0 -248
  349. package/src/capabilities/react-context/index.ts +0 -7
  350. package/src/capabilities/react-surface/index.ts +0 -7
  351. package/src/capabilities/schema-defs/index.ts +0 -7
  352. package/src/components/RecoveryCredentialsContainer.tsx +0 -68
  353. /package/dist/types/src/{components → containers/DevicesContainer}/DevicesContainer.d.ts +0 -0
  354. /package/dist/types/src/{components → containers/JoinDialog}/JoinDialog.d.ts +0 -0
  355. /package/dist/types/src/{components → containers/ProfileContainer}/ProfileContainer.d.ts +0 -0
  356. /package/dist/types/src/{components → containers/ProfileContainer}/ProfileContainer.stories.d.ts +0 -0
  357. /package/dist/types/src/{components → containers/RecoveryCodeDialog}/RecoveryCodeDialog.d.ts +0 -0
  358. /package/dist/types/src/{components → containers/RecoveryCodeDialog}/RecoveryCodeDialog.stories.d.ts +0 -0
  359. /package/dist/types/src/{components → containers/RecoveryCredentialsContainer}/RecoveryCredentialsContainer.d.ts +0 -0
  360. /package/dist/types/src/{components → containers/RecoveryCredentialsContainer}/RecoveryCredentialsContainer.stories.d.ts +0 -0
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../../src/cli/plugin.ts", "../../../../src/cli/commands/config/index.ts", "../../../../src/cli/commands/config/view.ts", "../../../../src/cli/commands/device/index.ts", "../../../../src/cli/commands/device/info/info.ts", "../../../../src/cli/commands/device/util.ts", "../../../../src/cli/commands/device/list/list.ts", "../../../../src/cli/commands/device/update/update.ts", "../../../../src/cli/commands/edge/index.ts", "../../../../src/cli/commands/edge/status.ts", "../../../../src/cli/commands/halo/index.ts", "../../../../src/cli/commands/halo/create/create.ts", "../../../../src/cli/commands/halo/util.ts", "../../../../src/cli/commands/halo/credential/index.ts", "../../../../src/cli/commands/halo/credential/add/add.ts", "../../../../src/cli/commands/halo/credential/list/list.ts", "../../../../src/cli/commands/halo/identity/identity.ts", "../../../../src/cli/commands/halo/keys/keys.ts", "../../../../src/cli/commands/halo/recover/recover.ts", "../../../../src/cli/commands/halo/seed/seed.ts", "../../../../src/cli/commands/halo/update/update.ts", "../../../../src/cli/commands/profile/index.ts", "../../../../src/cli/commands/profile/create.ts", "../../../../src/cli/commands/profile/util.ts", "../../../../src/cli/commands/profile/delete.ts", "../../../../src/cli/commands/profile/import.ts", "../../../../src/cli/commands/profile/inspect.ts", "../../../../src/cli/commands/profile/list.ts", "../../../../src/cli/commands/profile/reset.ts"],
4
- "sourcesContent": ["//\n// Copyright 2025 DXOS.org\n//\n\nimport { Capability, Common, Plugin } from '@dxos/app-framework';\n\n// NOTE: Must not import from index to avoid pulling in react dependencies.\nimport { Client } from '../capabilities/client';\nimport { OperationResolver } from '../capabilities/operation-resolver';\nimport { SchemaDefs } from '../capabilities/schema-defs';\nimport { meta } from '../meta';\nimport { ClientEvents } from '../types';\nimport { type ClientPluginOptions } from '../types';\n\nimport { config, device, edge, halo, profile } from './commands';\n\nexport const ClientPlugin = Plugin.define<ClientPluginOptions>(meta).pipe(\n Plugin.addModule((options) => ({\n id: Capability.getModuleTag(Client),\n activatesOn: Common.ActivationEvent.Startup,\n activatesAfter: [ClientEvents.ClientReady],\n activate: () => Client(options),\n })),\n Plugin.addModule({\n activatesOn: ClientEvents.ClientReady,\n activatesBefore: [Common.ActivationEvent.SetupSchema],\n activate: SchemaDefs,\n }),\n // TODO(wittjosiah): Could some of these commands make use of operations?\n Common.Plugin.addCommandModule({ commands: [config, device, edge, halo, profile] }),\n Common.Plugin.addOperationResolverModule({ activate: () => OperationResolver() }),\n Plugin.make,\n);\n", "//\n// Copyright 2025 DXOS.org\n//\n\nimport * as Command from '@effect/cli/Command';\n\nimport { view } from './view';\n\nexport const config = Command.make('config').pipe(\n Command.withDescription('Config commands.'),\n Command.withSubcommands([view]),\n);\n", "//\n// Copyright 2025 DXOS.org\n//\n\nimport * as Command from '@effect/cli/Command';\nimport * as Console from 'effect/Console';\nimport * as Effect from 'effect/Effect';\nimport * as Yaml from 'yaml';\n\nimport { CommandConfig } from '@dxos/cli-util';\nimport { ConfigService } from '@dxos/client';\n\nexport const view = Command.make(\n 'view',\n {},\n Effect.fnUntraced(function* () {\n const config = yield* ConfigService;\n const { json } = yield* CommandConfig;\n\n if (json) {\n yield* Console.log(JSON.stringify(config.values, null, 2));\n } else {\n yield* Console.log(Yaml.stringify(config.values));\n }\n }),\n);\n", "//\n// Copyright 2025 DXOS.org\n//\n\nimport * as Command from '@effect/cli/Command';\n\nimport { info } from './info';\nimport { list } from './list';\nimport { update } from './update';\n\nexport const device = Command.make('device').pipe(\n Command.withDescription('Manage HALO devices.'),\n Command.withSubcommands([info, list, update]),\n);\n", "//\n// Copyright 2025 DXOS.org\n//\n\nimport * as Command from '@effect/cli/Command';\nimport * as Console from 'effect/Console';\nimport * as Effect from 'effect/Effect';\n\nimport { CommandConfig } from '@dxos/cli-util';\nimport { print } from '@dxos/cli-util';\nimport { ClientService } from '@dxos/client';\nimport { DeviceType } from '@dxos/protocols/proto/dxos/halo/credentials';\n\nimport { printDevice } from '../util';\n\nexport const handler = Effect.fn(function* () {\n const { json } = yield* CommandConfig;\n const client = yield* ClientService;\n yield* Effect.tryPromise(() => client.spaces.waitUntilReady());\n\n const device = client.halo.device;\n if (!device) {\n if (json) {\n yield* Console.log(JSON.stringify({ error: 'No device found' }, null, 2));\n } else {\n yield* Console.log('No device found.');\n }\n return;\n }\n\n if (json) {\n yield* Console.log(\n JSON.stringify(\n {\n deviceKey: device.deviceKey.toHex(),\n profile: {\n ...device.profile,\n type: device.profile?.type ? DeviceType[device.profile?.type] : 'UNKNOWN',\n },\n },\n null,\n 2,\n ),\n );\n } else {\n yield* Console.log(print(printDevice(device)));\n }\n});\n\nexport const info = Command.make('info', {}, handler).pipe(Command.withDescription('Show device info.'));\n", "//\n// Copyright 2025 DXOS.org\n//\n\nimport { FormBuilder } from '@dxos/cli-util';\nimport { Device, DeviceKind, DeviceType } from '@dxos/client/halo';\n\nconst maybeTruncateKey = (key: { toHex(): string; truncate(): string }, truncate = false) =>\n truncate ? key.truncate() : key.toHex();\n\nconst getDeviceTitle = (device: Device): string => {\n if (device.profile?.label) {\n return device.profile.label;\n }\n const platform = device.profile?.platform ?? 'Unknown';\n const os = device.profile?.os ?? 'Unknown';\n return `${platform} on ${os}`;\n};\n\nexport const mapDevices = (devices: Device[], truncateKeys = false) => {\n return devices.map((device) => ({\n label: device.profile?.label,\n type: device.profile?.type ? DeviceType[device.profile?.type] : 'UNKNOWN',\n key: maybeTruncateKey(device.deviceKey, truncateKeys),\n kind: DeviceKind[device.kind],\n platform: device.profile?.platform,\n platformVersion: device.profile?.platformVersion,\n architecture: device.profile?.architecture,\n os: device.profile?.os,\n osVersion: device.profile?.osVersion,\n presence: device?.kind === DeviceKind.CURRENT ? 'THIS DEVICE' : Device.PresenceState[device.presence],\n }));\n};\n\nexport const printDevice = (device: Device) =>\n FormBuilder.make({ title: getDeviceTitle(device) }).pipe(\n FormBuilder.set('deviceKey', device.deviceKey.truncate()),\n FormBuilder.set('label', device.profile?.label ?? '<none>'),\n FormBuilder.set('type', device.profile?.type ? DeviceType[device.profile?.type] : 'UNKNOWN'),\n FormBuilder.set('kind', DeviceKind[device.kind]),\n FormBuilder.set(\n 'presence',\n device?.kind === DeviceKind.CURRENT ? 'THIS DEVICE' : Device.PresenceState[device.presence],\n ),\n FormBuilder.set('platform', device.profile?.platform ?? '<none>'),\n FormBuilder.set('platformVersion', device.profile?.platformVersion ?? '<none>'),\n FormBuilder.set('architecture', device.profile?.architecture ?? '<none>'),\n FormBuilder.set('os', device.profile?.os ?? '<none>'),\n FormBuilder.set('osVersion', device.profile?.osVersion ?? '<none>'),\n FormBuilder.build,\n );\n\nexport const printDevices = (devices: Device[]) => {\n return devices.map(printDevice);\n};\n", "//\n// Copyright 2025 DXOS.org\n//\n\nimport * as Command from '@effect/cli/Command';\nimport * as Console from 'effect/Console';\nimport * as Effect from 'effect/Effect';\n\nimport { CommandConfig } from '@dxos/cli-util';\nimport { printList } from '@dxos/cli-util';\nimport { ClientService } from '@dxos/client';\n\nimport { mapDevices, printDevices } from '../util';\n\nexport const handler = Effect.fn(function* () {\n const { json } = yield* CommandConfig;\n const client = yield* ClientService;\n yield* Effect.tryPromise(() => client.spaces.waitUntilReady());\n\n const devices = client.halo.devices.get();\n\n if (json) {\n yield* Console.log(JSON.stringify(mapDevices(devices), null, 2));\n } else {\n const formatted = printDevices(devices);\n yield* Console.log(printList(formatted));\n }\n});\n\nexport const list = Command.make('list', {}, handler).pipe(Command.withDescription('List devices.'));\n", "//\n// Copyright 2025 DXOS.org\n//\n\nimport * as Command from '@effect/cli/Command';\nimport * as Options from '@effect/cli/Options';\nimport * as Console from 'effect/Console';\nimport * as Effect from 'effect/Effect';\n\nimport { CommandConfig } from '@dxos/cli-util';\nimport { print } from '@dxos/cli-util';\nimport { ClientService } from '@dxos/client';\n\nimport { printDevice } from '../util';\n\nexport const handler = Effect.fn(function* ({ label }: { label: string }) {\n const { json } = yield* CommandConfig;\n const client = yield* ClientService;\n yield* Effect.tryPromise(() => client.spaces.waitUntilReady());\n\n const device = client.halo.device;\n if (!device) {\n if (json) {\n yield* Console.log(JSON.stringify({ error: 'No device found' }, null, 2));\n } else {\n yield* Console.log('No device found.');\n }\n return;\n }\n\n const updatedProfile = {\n ...device.profile,\n label,\n };\n\n const devicesService = client.services.services.DevicesService;\n if (!devicesService) {\n if (json) {\n yield* Console.log(JSON.stringify({ error: 'DevicesService not found' }, null, 2));\n } else {\n yield* Console.log('DevicesService not found.');\n }\n return;\n }\n\n const updatedDevice = yield* Effect.tryPromise(() => devicesService.updateDevice(updatedProfile));\n\n if (json) {\n yield* Console.log(\n JSON.stringify(\n {\n deviceKey: updatedDevice.deviceKey.toHex(),\n profile: updatedDevice.profile,\n },\n null,\n 2,\n ),\n );\n } else {\n yield* Console.log(print(printDevice(updatedDevice)));\n }\n});\n\nexport const update = Command.make(\n 'update',\n {\n label: Options.text('label').pipe(Options.withDescription('The device label.')),\n },\n handler,\n).pipe(Command.withDescription('Update device label.'));\n", "//\n// Copyright 2025 DXOS.org\n//\n\nimport * as Command from '@effect/cli/Command';\n\nimport { status } from './status';\n\nexport const edge = Command.make('edge').pipe(\n Command.withDescription('EDGE commands.'),\n Command.withSubcommands([status]),\n);\n", "//\n// Copyright 2025 DXOS.org\n//\n\nimport * as Command from '@effect/cli/Command';\nimport * as Console from 'effect/Console';\nimport * as Effect from 'effect/Effect';\nimport * as Option from 'effect/Option';\n\nimport { CommandConfig } from '@dxos/cli-util';\nimport { ClientService } from '@dxos/client';\nimport { createEdgeIdentity } from '@dxos/client/edge';\n\nexport const getStatus = () =>\n Effect.gen(function* () {\n const client = yield* ClientService;\n const identity = createEdgeIdentity(client);\n client.edge.setIdentity(identity);\n const status = yield* Effect.tryPromise(() => client.edge.getStatus());\n\n if (yield* CommandConfig.isJson) {\n yield* Console.log(JSON.stringify(status, null, 2));\n } else if (status.problems.length > 0) {\n for (const problem of status.problems) {\n yield* Console.error(problem);\n }\n } else {\n yield* Console.log('No problems found.');\n }\n }).pipe(\n // TODO(wittjosiah): Tagged error.\n Effect.catchSome((error) => {\n if (error instanceof Error && error.message === 'Identity not available') {\n // TODO(wittjosiah): Error coloring for logs.\n return Option.some(Console.error(error.message));\n } else {\n return Option.none();\n }\n }),\n );\n\n// TODO(wittjosiah): Admin functionality to provide to specify an identity.\nexport const status = Command.make('status', {}, getStatus).pipe(\n Command.withDescription('Get the EDGE status for the current identity.'),\n);\n", "//\n// Copyright 2025 DXOS.org\n//\n\nimport * as Command from '@effect/cli/Command';\n\nimport { create } from './create';\nimport { credential } from './credential';\nimport { identity } from './identity';\n// TODO(wittjosiah): Omitted currently due to p2p networking not working in bun.\n// import { join } from './join';\nimport { keys } from './keys';\nimport { recover } from './recover';\nimport { seed } from './seed';\n// import { share } from './share';\nimport { update } from './update';\n\nexport const halo: Command.Command<any, any, any, any> = Command.make('halo').pipe(\n Command.withDescription('Manage HALO identity.'),\n Command.withSubcommands([create, credential, identity, keys, recover, seed, update]),\n);\n", "//\n// Copyright 2025 DXOS.org\n//\n\nimport * as Command from '@effect/cli/Command';\nimport * as Options from '@effect/cli/Options';\nimport * as Console from 'effect/Console';\nimport * as Effect from 'effect/Effect';\nimport * as Option from 'effect/Option';\n\nimport { Common, Plugin } from '@dxos/app-framework';\nimport { CommandConfig, flushAndSync, spaceLayer } from '@dxos/cli-util';\nimport { print } from '@dxos/cli-util';\nimport { ClientService } from '@dxos/client';\nimport { invariant } from '@dxos/invariant';\n\nimport { ClientOperation } from '../../../../types';\nimport { printIdentity } from '../util';\n\nexport const handler = Effect.fn(function* ({\n agent,\n displayName,\n}: {\n agent: boolean;\n displayName: Option.Option<string>;\n}) {\n const { json } = yield* CommandConfig;\n const client = yield* ClientService;\n // TODO(wittjosiah): How to surface this error to the user cleanly?\n invariant(!client.halo.identity.get(), 'Identity already exists');\n\n const manager = yield* Plugin.Service;\n const { invoke } = manager.capabilities.get(Common.Capability.OperationInvoker);\n const identity = yield* invoke(ClientOperation.CreateIdentity, {\n displayName: Option.getOrUndefined(displayName),\n });\n\n if (agent) {\n yield* invoke(ClientOperation.CreateAgent);\n }\n\n yield* Effect.promise(() => client.spaces.waitUntilReady());\n yield* Effect.promise(() => client.spaces.default.waitUntilReady());\n const space = client.spaces.default;\n yield* flushAndSync({ indexes: true }).pipe(Effect.provide(spaceLayer(Option.some(space.id))));\n\n if (json) {\n yield* Console.log(\n JSON.stringify(\n {\n identityKey: identity.identityKey.toHex(),\n displayName: identity.profile?.displayName,\n },\n null,\n 2,\n ),\n );\n } else {\n yield* Console.log(print(printIdentity(identity)));\n }\n});\n\nexport const create = Command.make(\n 'create',\n {\n agent: Options.boolean('noAgent', { ifPresent: false }).pipe(\n Options.withDescription('Do not create an EDGE agent for the identity.'),\n ),\n displayName: Options.text('displayName').pipe(\n Options.withDescription('The display name of the identity.'),\n Options.optional,\n ),\n },\n handler,\n).pipe(Command.withDescription('Create a new identity.'));\n", "//\n// Copyright 2025 DXOS.org\n//\n\nimport { FormBuilder } from '@dxos/cli-util';\n\n/**\n * Pretty prints an identity with ANSI colors.\n */\nexport const printIdentity = (identity: {\n identityKey: { toHex(): string; truncate(): string };\n profile?: { displayName?: string };\n}) =>\n FormBuilder.make({ title: 'Identity' }).pipe(\n FormBuilder.set('identityKey', identity.identityKey.truncate()),\n FormBuilder.set('displayName', identity.profile?.displayName ?? '<none>'),\n FormBuilder.build,\n );\n", "//\n// Copyright 2025 DXOS.org\n//\n\nimport * as Command from '@effect/cli/Command';\n\nimport { add } from './add';\nimport { list } from './list';\n\nexport const credential = Command.make('credential').pipe(\n Command.withDescription('Manage HALO credentials.'),\n Command.withSubcommands([add, list]),\n);\n", "//\n// Copyright 2025 DXOS.org\n//\n\nimport * as Args from '@effect/cli/Args';\nimport * as Command from '@effect/cli/Command';\nimport * as Prompt from '@effect/cli/Prompt';\nimport * as Console from 'effect/Console';\nimport * as Effect from 'effect/Effect';\nimport * as Option from 'effect/Option';\n\nimport { CommandConfig } from '@dxos/cli-util';\nimport { ClientService } from '@dxos/client';\nimport { invariant } from '@dxos/invariant';\nimport { schema } from '@dxos/protocols/proto';\n\nexport const handler = Effect.fn(function* ({ credential }: { credential: Option.Option<string> }) {\n const { json } = yield* CommandConfig;\n const client = yield* ClientService;\n\n let credentialHex = Option.getOrUndefined(credential);\n if (!credentialHex) {\n credentialHex = yield* Prompt.text({ message: 'Enter credential (hex string)' }).pipe(Prompt.run);\n }\n\n invariant(credentialHex, 'Invalid credential.');\n\n const identity = client.halo.identity;\n if (!identity) {\n if (json) {\n yield* Console.log(JSON.stringify({ error: 'Profile not initialized' }, null, 2));\n } else {\n yield* Console.log('Profile not initialized.');\n }\n return;\n }\n\n yield* Effect.gen(function* () {\n const codec = schema.getCodecForType('dxos.halo.credentials.Credential');\n const credentialBytes = yield* Effect.try({\n try: () => Buffer.from(credentialHex, 'hex'),\n catch: (error) => new Error(`Failed to parse hex string: ${error}`),\n });\n\n const verifyError = codec.protoType.verify(credentialBytes);\n if (verifyError) {\n yield* Effect.fail(new Error(verifyError));\n }\n\n const credentialObj = yield* Effect.try({\n try: () => codec.decode(credentialBytes),\n catch: (error) => new Error(`Failed to decode credential: ${error}`),\n });\n\n yield* Effect.tryPromise({\n try: () => client.halo.writeCredentials([credentialObj]),\n catch: (error) => new Error(`Failed to write credential: ${error}`),\n });\n\n if (json) {\n yield* Console.log(JSON.stringify({ success: true }, null, 2));\n } else {\n yield* Console.log('Credential added successfully.');\n }\n }).pipe(\n Effect.catchAll((error) =>\n Effect.gen(function* () {\n if (json) {\n yield* Console.log(\n JSON.stringify(\n {\n error: 'Invalid credential',\n message: error instanceof Error ? error.message : String(error),\n },\n null,\n 2,\n ),\n );\n } else {\n yield* Console.log('Invalid credential.');\n }\n yield* Effect.fail(error);\n }),\n ),\n );\n});\n\nexport const add = Command.make(\n 'add',\n {\n credential: Args.text({ name: 'credential' }).pipe(\n Args.withDescription('Credential as hex string.'),\n Args.optional,\n ),\n },\n handler,\n).pipe(Command.withDescription('Import credential into HALO.'));\n", "//\n// Copyright 2025 DXOS.org\n//\n\nimport * as Command from '@effect/cli/Command';\nimport * as Options from '@effect/cli/Options';\nimport * as Console from 'effect/Console';\nimport * as Duration from 'effect/Duration';\nimport * as Effect from 'effect/Effect';\nimport * as Option from 'effect/Option';\n\nimport { CommandConfig, Common, FormBuilder, getSpace, printList, spaceIdWithDefault } from '@dxos/cli-util';\nimport { ClientService } from '@dxos/client';\nimport type { Credential } from '@dxos/client/halo';\nimport { type Key } from '@dxos/echo';\n\nconst mapCredentials = (credentials: Credential[]) => {\n return credentials.map((credential) => ({\n id: credential.id?.toHex() ?? '<unknown>',\n issuer: credential.issuer?.toHex() ?? '<unknown>',\n subject: credential.subject?.id?.toHex() ?? '<unknown>',\n type: credential.subject.assertion['@type'],\n assertion: credential.subject.assertion,\n }));\n};\n\nconst printCredential = (credential: Credential) => {\n const type = credential.subject.assertion['@type'] ?? '<unknown>';\n return FormBuilder.make({ title: type }).pipe(\n FormBuilder.option('id', Option.fromNullable(credential.id?.truncate())),\n FormBuilder.option('issuer', Option.fromNullable(credential.issuer?.truncate())),\n FormBuilder.option('subject', Option.fromNullable(credential.subject?.id?.truncate())),\n FormBuilder.build,\n );\n};\n\nexport const handler = Effect.fn(function* ({\n type,\n spaceId,\n timeout,\n delay,\n}: {\n type: Option.Option<string>;\n spaceId: Option.Option<string>;\n timeout: number;\n delay: number;\n}) {\n const { json } = yield* CommandConfig;\n const client = yield* ClientService;\n yield* Effect.tryPromise(() => client.spaces.waitUntilReady());\n\n let credentials: Credential[];\n\n const resolvedSpaceId = yield* spaceIdWithDefault(spaceId as Option.Option<Key.SpaceId>);\n if (Option.isSome(spaceId)) {\n // If space ID was provided, get credentials from that space\n const space = yield* getSpace(resolvedSpaceId);\n credentials = yield* Effect.tryPromise(() => space.internal.getCredentials());\n } else {\n // Get credentials from HALO\n const identity = client.halo.identity;\n if (!identity) {\n if (json) {\n yield* Console.log(JSON.stringify({ error: 'Profile not initialized' }, null, 2));\n } else {\n yield* Console.log('Profile not initialized.');\n }\n return;\n }\n\n // Wait for at least one credential\n const latch = yield* Effect.makeLatch();\n const subscription = client.halo.credentials.subscribe((creds) => {\n if (creds.length > 0) {\n Effect.runSync(latch.open);\n }\n });\n\n yield* latch.await.pipe(\n Effect.timeout(Duration.millis(timeout)),\n Effect.catchAll(() => Effect.void),\n Effect.ensuring(\n Effect.sync(() => {\n subscription.unsubscribe();\n }),\n ),\n );\n\n // Wait a bit more to ensure all credentials are loaded\n yield* Effect.sleep(Duration.millis(delay));\n\n credentials = client.halo.queryCredentials({ type: Option.getOrUndefined(type) });\n }\n\n if (json) {\n yield* Console.log(JSON.stringify(mapCredentials(credentials), null, 2));\n } else {\n const formatted = credentials.map(printCredential);\n yield* Console.log(printList(formatted));\n }\n});\n\nexport const list = Command.make(\n 'list',\n {\n type: Options.text('type').pipe(Options.withDescription('Filter by credential type.'), Options.optional),\n spaceId: Common.spaceId.pipe(Options.withDescription('Space ID to show credentials from.'), Options.optional),\n timeout: Options.integer('timeout').pipe(\n Options.withDescription('Time in milliseconds to wait for at least one credential before listing.'),\n Options.withDefault(500),\n ),\n delay: Options.integer('delay').pipe(\n Options.withDescription('Delay in milliseconds before listing.'),\n Options.withDefault(250),\n ),\n },\n handler,\n).pipe(Command.withDescription('List HALO credentials.'));\n", "//\n// Copyright 2025 DXOS.org\n//\n\nimport * as Command from '@effect/cli/Command';\nimport * as Console from 'effect/Console';\nimport * as Effect from 'effect/Effect';\n\nimport { CommandConfig } from '@dxos/cli-util';\nimport { print } from '@dxos/cli-util';\nimport { ClientService } from '@dxos/client';\n\nimport { printIdentity } from '../util';\n\nexport const handler = Effect.fn(function* () {\n const { json } = yield* CommandConfig;\n const client = yield* ClientService;\n const identity = client.halo.identity.get();\n if (!identity) {\n if (json) {\n yield* Console.log(JSON.stringify({ error: 'Identity not initialized' }, null, 2));\n } else {\n yield* Console.log('Identity not initialized.');\n }\n } else {\n yield* Effect.tryPromise(() => client.spaces.waitUntilReady());\n if (json) {\n yield* Console.log(\n JSON.stringify(\n {\n identityKey: identity.identityKey.toHex(),\n displayName: identity.profile?.displayName,\n },\n null,\n 2,\n ),\n );\n } else {\n yield* Console.log(print(printIdentity(identity)));\n }\n }\n});\n\nexport const identity = Command.make('identity', {}, handler).pipe(\n Command.withDescription('Get the current identity.'),\n);\n", "//\n// Copyright 2025 DXOS.org\n//\n\nimport * as Command from '@effect/cli/Command';\nimport * as Console from 'effect/Console';\nimport * as Effect from 'effect/Effect';\nimport * as Option from 'effect/Option';\n\nimport { CommandConfig } from '@dxos/cli-util';\nimport { FormBuilder, print } from '@dxos/cli-util';\nimport { ClientService } from '@dxos/client';\n\nexport const handler = Effect.fn(function* () {\n const { json } = yield* CommandConfig;\n const client = yield* ClientService;\n yield* Effect.tryPromise(() => client.spaces.waitUntilReady());\n\n const identity = client.halo.identity.get();\n const device = client.halo.device;\n\n if (json) {\n yield* Console.log(\n JSON.stringify(\n {\n identityKey: identity?.identityKey.toHex(),\n deviceKey: device?.deviceKey.toHex(),\n },\n null,\n 2,\n ),\n );\n } else {\n const builder = FormBuilder.make({ title: 'HALO Keys' }).pipe(\n FormBuilder.option('identityKey', Option.fromNullable(identity?.identityKey.truncate())),\n FormBuilder.option('deviceKey', Option.fromNullable(device?.deviceKey.truncate())),\n );\n yield* Console.log(print(FormBuilder.build(builder)));\n }\n});\n\nexport const keys = Command.make('keys', {}, handler).pipe(Command.withDescription('Show HALO keys.'));\n", "//\n// Copyright 2025 DXOS.org\n//\n\nimport * as Args from '@effect/cli/Args';\nimport * as Command from '@effect/cli/Command';\nimport * as Console from 'effect/Console';\nimport * as Effect from 'effect/Effect';\n\nimport { CommandConfig, print } from '@dxos/cli-util';\nimport { ClientService } from '@dxos/client';\nimport { invariant } from '@dxos/invariant';\n\nimport { printIdentity } from '../util';\n\nexport const recover = Command.make(\n 'recover',\n {\n recoveryCode: Args.text({ name: 'recoveryCode' }).pipe(Args.withDescription('The recovery code seed phrase.')),\n },\n Effect.fn(function* ({ recoveryCode }) {\n const { json } = yield* CommandConfig;\n const client = yield* ClientService;\n // TODO(wittjosiah): How to surface this error to the user cleanly?\n invariant(!client.halo.identity.get(), 'Identity already exists');\n\n const identity = yield* Effect.tryPromise(() => client.halo.recoverIdentity({ recoveryCode }));\n if (json) {\n yield* Console.log(\n JSON.stringify(\n {\n identityKey: identity.identityKey.toHex(),\n displayName: identity.profile?.displayName,\n },\n null,\n 2,\n ),\n );\n } else {\n yield* Console.log('Identity recovered successfully');\n yield* Console.log(print(printIdentity(identity)));\n }\n }),\n).pipe(Command.withDescription('Recover an existing identity using a recovery code.'));\n", "//\n// Copyright 2025 DXOS.org\n//\n\nimport * as Command from '@effect/cli/Command';\nimport * as Console from 'effect/Console';\nimport * as Effect from 'effect/Effect';\n\nimport { CommandConfig } from '@dxos/cli-util';\nimport { ClientService } from '@dxos/client';\n\nexport const handler = Effect.fn(function* () {\n const { json } = yield* CommandConfig;\n const client = yield* ClientService;\n yield* Effect.tryPromise(() => client.spaces.waitUntilReady());\n\n const identityService = client.services.services.IdentityService;\n if (!identityService) {\n if (json) {\n yield* Console.log(JSON.stringify({ error: 'IdentityService not found' }, null, 2));\n } else {\n yield* Console.log('IdentityService not found.');\n }\n return;\n }\n\n const result = yield* Effect.tryPromise(() => identityService.createRecoveryCredential({}));\n\n if (json) {\n yield* Console.log(JSON.stringify({ recoveryCode: result.recoveryCode }, null, 2));\n } else {\n yield* Console.log(result.recoveryCode);\n }\n});\n\nexport const seed = Command.make('seed', {}, handler).pipe(\n Command.withDescription('Generate a seedphrase that can be used for identity recovery.'),\n);\n", "//\n// Copyright 2025 DXOS.org\n//\n\nimport * as Command from '@effect/cli/Command';\nimport * as Options from '@effect/cli/Options';\nimport * as Console from 'effect/Console';\nimport * as Effect from 'effect/Effect';\n\nimport { CommandConfig } from '@dxos/cli-util';\nimport { print } from '@dxos/cli-util';\nimport { ClientService } from '@dxos/client';\n\nimport { printIdentity } from '../util';\n\nexport const handler = Effect.fn(function* ({ displayName }: { displayName: string }) {\n const { json } = yield* CommandConfig;\n const client = yield* ClientService;\n yield* Effect.tryPromise(() => client.spaces.waitUntilReady());\n\n const identity = client.halo.identity.get();\n if (!identity) {\n if (json) {\n yield* Console.log(JSON.stringify({ error: 'Identity not initialized' }, null, 2));\n } else {\n yield* Console.log('Identity not initialized.');\n }\n return;\n }\n\n const identityService = client.services.services.IdentityService;\n if (!identityService) {\n if (json) {\n yield* Console.log(JSON.stringify({ error: 'IdentityService not found' }, null, 2));\n } else {\n yield* Console.log('IdentityService not found.');\n }\n return;\n }\n\n const updatedIdentity = yield* Effect.tryPromise(() =>\n identityService.updateProfile({\n displayName,\n }),\n );\n\n if (json) {\n yield* Console.log(\n JSON.stringify(\n {\n identityKey: updatedIdentity.identityKey.toHex(),\n displayName: updatedIdentity.profile?.displayName,\n },\n null,\n 2,\n ),\n );\n } else {\n yield* Console.log(print(printIdentity(updatedIdentity)));\n }\n});\n\nexport const update = Command.make(\n 'update',\n {\n displayName: Options.text('displayName').pipe(Options.withDescription('The display name of the identity.')),\n },\n handler,\n).pipe(Command.withDescription('Update identity profile.'));\n", "//\n// Copyright 2025 DXOS.org\n//\n\nimport * as Command from '@effect/cli/Command';\n\nimport { create } from './create';\nimport { del } from './delete';\nimport { importCommand } from './import';\nimport { inspect } from './inspect';\nimport { list } from './list';\nimport { reset } from './reset';\n\nexport const profile = Command.make('profile').pipe(\n Command.withDescription('Profile commands.'),\n Command.withSubcommands([create, del, importCommand, inspect, list, reset]),\n);\n", "//\n// Copyright 2025 DXOS.org\n//\n\nimport * as Command from '@effect/cli/Command';\nimport * as Options from '@effect/cli/Options';\nimport * as FileSystem from '@effect/platform/FileSystem';\nimport * as Console from 'effect/Console';\nimport * as Effect from 'effect/Effect';\nimport * as Option from 'effect/Option';\nimport * as Record from 'effect/Record';\n\nimport { CommandConfig, print } from '@dxos/cli-util';\nimport { DX_CONFIG, getProfilePath } from '@dxos/client-protocol';\nimport { trim } from '@dxos/util';\n\nimport { printProfileCreated } from './util';\n\nconst TEMPLATES = {\n default: trim`\n version: 1\n runtime:\n client:\n storage:\n persistent: true\n services:\n edge:\n url: https://edge-production.dxos.workers.dev\n `,\n main: trim`\n version: 1\n runtime:\n client:\n storage:\n persistent: true\n services:\n edge:\n url: https://edge-main.dxos.workers.dev\n `,\n dev: trim`\n version: 1\n runtime:\n client:\n storage:\n persistent: true\n services:\n edge:\n url: https://edge.dxos.workers.dev\n `,\n local: trim`\n version: 1\n runtime:\n client:\n storage:\n persistent: true\n services:\n edge:\n url: http://localhost:8787\n `,\n} as const;\n\nexport const create = Command.make(\n 'create',\n {\n template: Options.choice('template', Record.keys(TEMPLATES)).pipe(\n Options.withDescription('Template to use'),\n Options.withDefault('default'),\n ),\n name: Options.text('name').pipe(Options.withDescription('Profile name'), Options.optional),\n },\n Effect.fnUntraced(function* ({ template, name }) {\n const { json } = yield* CommandConfig;\n const fs = yield* FileSystem.FileSystem;\n const profileName = name.pipe(Option.getOrElse(() => template));\n const profilePath = `${getProfilePath(DX_CONFIG, profileName)}.yml`;\n if (yield* fs.exists(profilePath)) {\n throw new Error(`Profile ${profileName} already exists`);\n }\n\n yield* fs.writeFileString(profilePath, TEMPLATES[template]);\n if (json) {\n yield* Console.log(JSON.stringify({ name: profileName, path: profilePath }, null, 2));\n } else {\n yield* Console.log(print(printProfileCreated(profileName, profilePath)));\n }\n }),\n);\n", "//\n// Copyright 2025 DXOS.org\n//\n\nimport { FormBuilder } from '@dxos/cli-util';\n\nexport type ProfileInfo = {\n name: string;\n isCurrent: boolean;\n fullPath: string;\n storagePath: string;\n edge?: string;\n};\n\n/**\n * Pretty prints profile creation result with ANSI colors.\n */\nexport const printProfileCreated = (name: string, path: string) =>\n FormBuilder.make({ title: 'Profile created' }).pipe(\n FormBuilder.set('name', name),\n FormBuilder.set('path', path),\n FormBuilder.build,\n );\n\n/**\n * Pretty prints profile deletion result with ANSI colors.\n */\nexport const printProfileDeleted = (name: string) =>\n FormBuilder.make({ title: 'Profile deleted' }).pipe(FormBuilder.set('name', name), FormBuilder.build);\n\n/**\n * Pretty prints profile reset result with ANSI colors.\n */\nexport const printProfileReset = (profile: string) =>\n FormBuilder.make({ title: 'Profile reset' }).pipe(FormBuilder.set('profile', profile), FormBuilder.build);\n\n/**\n * Pretty prints a profile with ANSI colors.\n */\nexport const printProfile = (profile: ProfileInfo) => {\n const title = profile.isCurrent ? `${profile.name} (current)` : profile.name;\n return FormBuilder.make({ title }).pipe(\n FormBuilder.set('fullPath', profile.fullPath),\n FormBuilder.set('storagePath', profile.storagePath),\n FormBuilder.set('edge', profile.edge ?? '<none>'),\n FormBuilder.build,\n );\n};\n", "//\n// Copyright 2025 DXOS.org\n//\n\nimport * as Command from '@effect/cli/Command';\nimport * as Options from '@effect/cli/Options';\nimport * as FileSystem from '@effect/platform/FileSystem';\nimport * as Console from 'effect/Console';\nimport * as Effect from 'effect/Effect';\nimport * as Option from 'effect/Option';\n\nimport { CommandConfig, print } from '@dxos/cli-util';\nimport { DX_CONFIG, getProfilePath } from '@dxos/client-protocol';\n\nimport { printProfileDeleted } from './util';\n\nexport const del = Command.make(\n 'delete',\n {\n name: Options.text('name').pipe(Options.withDescription('Profile name'), Options.optional),\n },\n Effect.fnUntraced(function* ({ name }) {\n const { json } = yield* CommandConfig;\n const fs = yield* FileSystem.FileSystem;\n const profileName = name.pipe(Option.getOrElse(() => 'default'));\n yield* fs.remove(`${getProfilePath(DX_CONFIG, profileName)}.yml`);\n if (json) {\n yield* Console.log(JSON.stringify({ name: profileName, deleted: true }, null, 2));\n } else {\n yield* Console.log(print(printProfileDeleted(profileName)));\n }\n }),\n);\n", "//\n// Copyright 2025 DXOS.org\n//\n\nimport * as Command from '@effect/cli/Command';\nimport * as Options from '@effect/cli/Options';\nimport * as Prompt from '@effect/cli/Prompt';\nimport * as FileSystem from '@effect/platform/FileSystem';\nimport * as Path from '@effect/platform/Path';\nimport * as Console from 'effect/Console';\nimport * as Effect from 'effect/Effect';\nimport * as Option from 'effect/Option';\n\nimport { CommandConfig } from '@dxos/cli-util';\nimport { ConfigService } from '@dxos/config';\nimport { log } from '@dxos/log';\nimport type { Runtime } from '@dxos/protocols/proto/dxos/config';\n\nexport const handler = Effect.fn(function* ({\n file,\n dataDir,\n force,\n}: {\n file: string;\n dataDir: Option.Option<string>;\n force: boolean;\n}) {\n const dataDirValue = Option.getOrUndefined(dataDir);\n const { json, profile } = yield* CommandConfig;\n const fs = yield* FileSystem.FileSystem;\n const path = yield* Path.Path;\n const config = yield* ConfigService;\n\n const { createLevel, createStorageObjects, importProfileData, decodeProfileArchive } = yield* Effect.promise(\n () => import('@dxos/client-services'),\n );\n\n let storageConfig: Runtime.Client.Storage;\n if (!dataDirValue) {\n if (!force) {\n yield* Console.log(`Will overwrite profile: ${profile}`);\n const confirmed = yield* Prompt.confirm({\n message: `Delete all data? (Profile: ${profile})`,\n initial: false,\n }).pipe(Prompt.run);\n if (!confirmed) {\n return;\n }\n }\n storageConfig = config.values.runtime!.client!.storage!;\n } else {\n const fullPath = path.resolve(dataDirValue);\n yield* Console.log(`Importing into: ${fullPath}`);\n storageConfig = {\n persistent: true,\n dataRoot: fullPath,\n };\n }\n\n if (yield* fs.exists(storageConfig.dataRoot!)) {\n log.error('data directory already exists', { path: storageConfig.dataRoot! });\n if (json) {\n yield* Console.log(JSON.stringify({ error: 'Data directory already exists' }, null, 2));\n } else {\n yield* Console.log('Data directory already exists.');\n }\n return;\n }\n\n const data = yield* fs.readFile(file);\n\n const archive = decodeProfileArchive(data);\n yield* Console.log(`Importing archive with ${archive.storage.length} entries`);\n\n const { storage } = createStorageObjects(storageConfig);\n const level = yield* Effect.tryPromise({\n try: () => createLevel(storageConfig),\n catch: (error) => new Error(`Failed to create level: ${error}`),\n });\n\n yield* Console.log('Beginning profile import...');\n yield* Effect.tryPromise({\n try: () => importProfileData({ storage, level }, archive),\n catch: (error) => new Error(`Failed to import profile data: ${error}`),\n });\n yield* Console.log('Profile import complete');\n\n if (json) {\n yield* Console.log(JSON.stringify({ success: true, profile, entries: archive.storage.length }, null, 2));\n }\n});\n\nexport const importCommand = Command.make(\n 'import',\n {\n file: Options.text('file').pipe(Options.withDescription('Archive filename.'), Options.withAlias('f')),\n dataDir: Options.text('data-dir').pipe(Options.withDescription('Storage directory.'), Options.optional),\n force: Options.boolean('force', { ifPresent: true }).pipe(Options.withDescription('Skip confirmation prompt.')),\n },\n handler,\n).pipe(Command.withDescription('Import profile.'));\n", "//\n// Copyright 2025 DXOS.org\n//\n\nimport * as Command from '@effect/cli/Command';\nimport * as Options from '@effect/cli/Options';\nimport * as FileSystem from '@effect/platform/FileSystem';\nimport * as Console from 'effect/Console';\nimport * as Effect from 'effect/Effect';\n\nimport { CommandConfig, FormBuilder, print } from '@dxos/cli-util';\nimport { ProfileArchiveEntryType } from '@dxos/protocols';\nimport { arrayToBuffer } from '@dxos/util';\n\nexport const handler = Effect.fn(function* ({ file, storage }: { file: string; storage: boolean }) {\n const { json } = yield* CommandConfig;\n const fs = yield* FileSystem.FileSystem;\n\n const { decodeProfileArchive } = yield* Effect.promise(() => import('@dxos/client-services'));\n\n const data = yield* fs.readFile(file);\n\n const archive = decodeProfileArchive(data);\n\n if (json) {\n yield* Console.log(\n JSON.stringify(\n {\n meta: archive.meta,\n ...(storage ? { storage: archive.storage } : {}),\n },\n null,\n 2,\n ),\n );\n } else {\n const builder = FormBuilder.make({ title: 'Profile Archive' }).pipe(\n FormBuilder.when(\n archive.meta,\n FormBuilder.each(Object.entries(archive.meta ?? {}), ([key, value]) => FormBuilder.set(key, String(value))),\n ),\n FormBuilder.build,\n );\n yield* Console.log(print(builder));\n\n if (storage) {\n yield* Console.log('\\nStorage entries:\\n');\n for (const entry of archive.storage) {\n const key =\n typeof entry.key === 'string' ? entry.key : JSON.stringify(arrayToBuffer(entry.key).toString()).slice(1, -1);\n yield* Console.log(` ${ProfileArchiveEntryType[entry.type]} ${key}`);\n }\n }\n }\n});\n\nexport const inspect = Command.make(\n 'inspect',\n {\n file: Options.text('file').pipe(Options.withDescription('Archive filename.'), Options.withAlias('f')),\n storage: Options.boolean('storage', { ifPresent: true }).pipe(Options.withDescription('List storage entries.')),\n },\n handler,\n).pipe(Command.withDescription('Inspect profile archive.'));\n", "//\n// Copyright 2025 DXOS.org\n//\n\nimport * as Command from '@effect/cli/Command';\nimport * as FileSystem from '@effect/platform/FileSystem';\nimport * as Path from '@effect/platform/Path';\nimport * as Console from 'effect/Console';\nimport * as Effect from 'effect/Effect';\nimport * as Yaml from 'yaml';\n\nimport { CommandConfig, printList } from '@dxos/cli-util';\nimport { Config } from '@dxos/client';\nimport { DX_CONFIG, DX_DATA, getProfilePath } from '@dxos/client-protocol';\n\nimport { printProfile } from './util';\n\nexport const list = Command.make(\n 'list',\n {},\n Effect.fnUntraced(function* () {\n const { profile: currentProfile } = yield* CommandConfig;\n const fs = yield* FileSystem.FileSystem;\n const path = yield* Path.Path;\n const profileDir = path.join(DX_CONFIG, 'profile');\n const files = yield* fs.readDirectory(profileDir);\n const profiles = yield* Effect.forEach(\n files,\n Effect.fnUntraced(function* (filename) {\n const ext = path.extname(filename);\n const name = filename.slice(0, -ext.length);\n const fullPath = path.join(DX_CONFIG, 'profile', filename);\n const configContent = yield* fs.readFileString(fullPath);\n const configValues = Yaml.parse(configContent);\n const config = new Config(configValues);\n return {\n name,\n isCurrent: name === currentProfile,\n fullPath,\n storagePath: getProfilePath(configValues?.runtime?.client?.storage.dataRoot ?? DX_DATA, name),\n edge: config.values.runtime?.services?.edge?.url,\n };\n }),\n );\n\n const { json } = yield* CommandConfig;\n if (json) {\n yield* Console.log(JSON.stringify(profiles, null, 2));\n } else {\n const formatted = profiles.map(printProfile);\n yield* Console.log(printList(formatted));\n }\n }),\n);\n", "//\n// Copyright 2025 DXOS.org\n//\n\nimport * as Command from '@effect/cli/Command';\nimport * as Options from '@effect/cli/Options';\nimport * as Prompt from '@effect/cli/Prompt';\nimport * as FileSystem from '@effect/platform/FileSystem';\nimport * as Console from 'effect/Console';\nimport * as Effect from 'effect/Effect';\n\nimport { CommandConfig, print } from '@dxos/cli-util';\nimport { DX_DATA, getProfilePath } from '@dxos/client-protocol';\nimport { ConfigService } from '@dxos/config';\n\nimport { printProfileReset } from './util';\n\nexport const reset = Command.make(\n 'reset',\n {\n force: Options.boolean('force', { ifPresent: true }).pipe(Options.withDescription('Skip confirmation prompt')),\n },\n Effect.fnUntraced(function* ({ force }) {\n const fs = yield* FileSystem.FileSystem;\n const config = yield* ConfigService;\n const { json, profile } = yield* CommandConfig;\n const path = config.values.runtime?.client?.storage?.dataRoot ?? getProfilePath(DX_DATA, profile);\n if (!force) {\n const confirmed = yield* Prompt.confirm({\n message: `Are you sure you want to reset the profile (${profile})?`,\n initial: false,\n });\n if (!confirmed) {\n return;\n }\n }\n\n yield* fs.remove(path, { recursive: true });\n if (json) {\n yield* Console.log(JSON.stringify({ profile, reset: true }, null, 2));\n } else {\n yield* Console.log(print(printProfileReset(profile)));\n }\n }),\n);\n"],
5
- "mappings": "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",
6
- "names": ["Capability", "Common", "Plugin", "Command", "Command", "Console", "Effect", "Yaml", "CommandConfig", "ConfigService", "view", "make", "fnUntraced", "config", "ConfigService", "json", "CommandConfig", "log", "JSON", "stringify", "values", "config", "make", "pipe", "withDescription", "withSubcommands", "view", "Command", "Command", "Console", "Effect", "CommandConfig", "print", "ClientService", "DeviceType", "FormBuilder", "Device", "DeviceKind", "DeviceType", "maybeTruncateKey", "key", "truncate", "toHex", "getDeviceTitle", "device", "profile", "label", "platform", "os", "mapDevices", "devices", "truncateKeys", "map", "type", "DeviceType", "deviceKey", "kind", "DeviceKind", "platformVersion", "architecture", "osVersion", "presence", "CURRENT", "Device", "PresenceState", "printDevice", "FormBuilder", "make", "title", "pipe", "set", "build", "printDevices", "handler", "fn", "json", "CommandConfig", "client", "ClientService", "tryPromise", "spaces", "waitUntilReady", "device", "halo", "log", "JSON", "stringify", "error", "deviceKey", "toHex", "profile", "type", "DeviceType", "print", "printDevice", "info", "make", "pipe", "withDescription", "Command", "Console", "Effect", "CommandConfig", "printList", "ClientService", "handler", "fn", "json", "CommandConfig", "client", "ClientService", "tryPromise", "spaces", "waitUntilReady", "devices", "halo", "get", "log", "JSON", "stringify", "mapDevices", "formatted", "printDevices", "printList", "list", "make", "pipe", "withDescription", "Command", "Options", "Console", "Effect", "CommandConfig", "print", "ClientService", "handler", "fn", "label", "json", "CommandConfig", "client", "ClientService", "tryPromise", "spaces", "waitUntilReady", "device", "halo", "log", "JSON", "stringify", "error", "updatedProfile", "profile", "devicesService", "services", "DevicesService", "updatedDevice", "updateDevice", "deviceKey", "toHex", "print", "printDevice", "update", "make", "text", "pipe", "withDescription", "device", "make", "pipe", "withDescription", "withSubcommands", "info", "list", "update", "Command", "Command", "Console", "Effect", "Option", "CommandConfig", "ClientService", "createEdgeIdentity", "getStatus", "gen", "client", "ClientService", "identity", "createEdgeIdentity", "edge", "setIdentity", "status", "tryPromise", "CommandConfig", "isJson", "log", "JSON", "stringify", "problems", "length", "problem", "error", "pipe", "catchSome", "Error", "message", "some", "none", "make", "withDescription", "edge", "make", "pipe", "withDescription", "withSubcommands", "status", "Command", "Command", "Options", "Console", "Effect", "Option", "Common", "Plugin", "CommandConfig", "flushAndSync", "spaceLayer", "print", "ClientService", "invariant", "FormBuilder", "printIdentity", "identity", "FormBuilder", "make", "title", "pipe", "set", "identityKey", "truncate", "profile", "displayName", "build", "handler", "fn", "agent", "displayName", "json", "CommandConfig", "client", "ClientService", "invariant", "halo", "identity", "get", "manager", "Plugin", "Service", "invoke", "capabilities", "Common", "Capability", "OperationInvoker", "ClientOperation", "CreateIdentity", "getOrUndefined", "CreateAgent", "promise", "spaces", "waitUntilReady", "default", "space", "flushAndSync", "indexes", "pipe", "provide", "spaceLayer", "some", "id", "log", "JSON", "stringify", "identityKey", "toHex", "profile", "print", "printIdentity", "create", "make", "boolean", "ifPresent", "withDescription", "text", "optional", "Command", "Args", "Command", "Prompt", "Console", "Effect", "Option", "CommandConfig", "ClientService", "invariant", "schema", "handler", "fn", "credential", "json", "client", "credentialHex", "getOrUndefined", "text", "message", "pipe", "run", "identity", "halo", "log", "JSON", "stringify", "error", "gen", "codec", "getCodecForType", "credentialBytes", "try", "Buffer", "from", "catch", "Error", "verifyError", "protoType", "verify", "fail", "credentialObj", "decode", "tryPromise", "writeCredentials", "success", "catchAll", "String", "add", "make", "name", "withDescription", "optional", "Command", "Options", "Console", "Duration", "Effect", "Option", "CommandConfig", "Common", "FormBuilder", "getSpace", "printList", "spaceIdWithDefault", "ClientService", "mapCredentials", "credentials", "map", "credential", "id", "toHex", "issuer", "subject", "type", "assertion", "printCredential", "FormBuilder", "make", "title", "pipe", "option", "fromNullable", "truncate", "build", "handler", "fn", "spaceId", "timeout", "delay", "json", "CommandConfig", "client", "ClientService", "tryPromise", "spaces", "waitUntilReady", "resolvedSpaceId", "spaceIdWithDefault", "isSome", "space", "getSpace", "internal", "getCredentials", "identity", "halo", "log", "JSON", "stringify", "error", "latch", "makeLatch", "subscription", "subscribe", "creds", "length", "Effect", "runSync", "open", "await", "millis", "catchAll", "void", "ensuring", "sync", "unsubscribe", "sleep", "queryCredentials", "getOrUndefined", "formatted", "printList", "list", "text", "withDescription", "optional", "Common", "integer", "withDefault", "credential", "make", "pipe", "withDescription", "withSubcommands", "add", "list", "Command", "Console", "Effect", "CommandConfig", "print", "ClientService", "handler", "fn", "json", "CommandConfig", "client", "ClientService", "identity", "halo", "get", "log", "JSON", "stringify", "error", "tryPromise", "spaces", "waitUntilReady", "identityKey", "toHex", "displayName", "profile", "print", "printIdentity", "make", "pipe", "withDescription", "Command", "Console", "Effect", "Option", "CommandConfig", "FormBuilder", "print", "ClientService", "handler", "fn", "json", "CommandConfig", "client", "ClientService", "tryPromise", "spaces", "waitUntilReady", "identity", "halo", "get", "device", "log", "JSON", "stringify", "identityKey", "toHex", "deviceKey", "builder", "FormBuilder", "make", "title", "pipe", "option", "fromNullable", "truncate", "print", "build", "keys", "withDescription", "Args", "Command", "Console", "Effect", "CommandConfig", "print", "ClientService", "invariant", "recover", "make", "recoveryCode", "text", "name", "pipe", "withDescription", "fn", "json", "CommandConfig", "client", "ClientService", "invariant", "halo", "identity", "get", "tryPromise", "recoverIdentity", "log", "JSON", "stringify", "identityKey", "toHex", "displayName", "profile", "print", "printIdentity", "Command", "Console", "Effect", "CommandConfig", "ClientService", "handler", "fn", "json", "CommandConfig", "client", "ClientService", "tryPromise", "spaces", "waitUntilReady", "identityService", "services", "IdentityService", "log", "JSON", "stringify", "error", "result", "createRecoveryCredential", "recoveryCode", "seed", "make", "pipe", "withDescription", "Command", "Options", "Console", "Effect", "CommandConfig", "print", "ClientService", "handler", "fn", "displayName", "json", "CommandConfig", "client", "ClientService", "tryPromise", "spaces", "waitUntilReady", "identity", "halo", "get", "log", "JSON", "stringify", "error", "identityService", "services", "IdentityService", "updatedIdentity", "updateProfile", "identityKey", "toHex", "profile", "print", "printIdentity", "update", "make", "text", "pipe", "withDescription", "halo", "make", "pipe", "withDescription", "withSubcommands", "create", "credential", "identity", "keys", "recover", "seed", "update", "Command", "Command", "Options", "FileSystem", "Console", "Effect", "Option", "Record", "CommandConfig", "print", "DX_CONFIG", "getProfilePath", "trim", "FormBuilder", "printProfileCreated", "name", "path", "FormBuilder", "make", "title", "pipe", "set", "build", "printProfileDeleted", "printProfileReset", "profile", "printProfile", "isCurrent", "fullPath", "storagePath", "edge", "TEMPLATES", "default", "trim", "main", "dev", "local", "create", "make", "template", "choice", "keys", "pipe", "withDescription", "withDefault", "name", "text", "optional", "fnUntraced", "json", "CommandConfig", "fs", "FileSystem", "profileName", "getOrElse", "profilePath", "getProfilePath", "DX_CONFIG", "exists", "Error", "writeFileString", "log", "JSON", "stringify", "path", "print", "printProfileCreated", "Command", "Options", "FileSystem", "Console", "Effect", "Option", "CommandConfig", "print", "DX_CONFIG", "getProfilePath", "del", "make", "name", "text", "pipe", "withDescription", "optional", "fnUntraced", "json", "CommandConfig", "fs", "FileSystem", "profileName", "getOrElse", "remove", "getProfilePath", "DX_CONFIG", "log", "JSON", "stringify", "deleted", "print", "printProfileDeleted", "Command", "Options", "Prompt", "FileSystem", "Path", "Console", "Effect", "Option", "CommandConfig", "ConfigService", "log", "handler", "fn", "file", "dataDir", "force", "dataDirValue", "getOrUndefined", "json", "profile", "fs", "path", "config", "createLevel", "createStorageObjects", "importProfileData", "decodeProfileArchive", "promise", "storageConfig", "confirmed", "confirm", "message", "initial", "pipe", "run", "values", "runtime", "client", "storage", "fullPath", "resolve", "persistent", "dataRoot", "exists", "error", "JSON", "stringify", "data", "readFile", "archive", "length", "level", "tryPromise", "try", "catch", "Error", "success", "entries", "importCommand", "make", "text", "withDescription", "withAlias", "optional", "boolean", "ifPresent", "Command", "Options", "FileSystem", "Console", "Effect", "CommandConfig", "FormBuilder", "print", "ProfileArchiveEntryType", "arrayToBuffer", "handler", "fn", "file", "storage", "json", "CommandConfig", "fs", "FileSystem", "decodeProfileArchive", "promise", "data", "readFile", "archive", "log", "JSON", "stringify", "meta", "builder", "FormBuilder", "make", "title", "pipe", "when", "each", "Object", "entries", "key", "value", "set", "String", "build", "print", "entry", "arrayToBuffer", "toString", "slice", "ProfileArchiveEntryType", "type", "inspect", "text", "withDescription", "withAlias", "boolean", "ifPresent", "Command", "FileSystem", "Path", "Console", "Effect", "Yaml", "CommandConfig", "printList", "Config", "DX_CONFIG", "DX_DATA", "getProfilePath", "list", "make", "fnUntraced", "profile", "currentProfile", "CommandConfig", "fs", "FileSystem", "path", "Path", "profileDir", "join", "DX_CONFIG", "files", "readDirectory", "profiles", "forEach", "filename", "ext", "extname", "name", "slice", "length", "fullPath", "configContent", "readFileString", "configValues", "parse", "config", "Config", "isCurrent", "storagePath", "getProfilePath", "runtime", "client", "storage", "dataRoot", "DX_DATA", "edge", "values", "services", "url", "json", "log", "JSON", "stringify", "formatted", "map", "printProfile", "printList", "Command", "Options", "Prompt", "FileSystem", "Console", "Effect", "CommandConfig", "print", "DX_DATA", "getProfilePath", "ConfigService", "reset", "make", "force", "boolean", "ifPresent", "pipe", "withDescription", "fnUntraced", "fs", "FileSystem", "config", "ConfigService", "json", "profile", "CommandConfig", "path", "values", "runtime", "client", "storage", "dataRoot", "getProfilePath", "DX_DATA", "confirmed", "confirm", "message", "initial", "remove", "recursive", "log", "JSON", "stringify", "print", "printProfileReset", "profile", "make", "pipe", "withDescription", "withSubcommands", "create", "del", "importCommand", "inspect", "list", "reset", "ClientPlugin", "Plugin", "define", "meta", "pipe", "addModule", "options", "id", "Capability", "getModuleTag", "Client", "activatesOn", "Common", "ActivationEvent", "Startup", "activatesAfter", "ClientEvents", "ClientReady", "activate", "activatesBefore", "SetupSchema", "SchemaDefs", "addCommandModule", "commands", "config", "device", "edge", "halo", "profile", "addOperationResolverModule", "OperationResolver", "make"]
4
+ "sourcesContent": ["//\n// Copyright 2025 DXOS.org\n//\n\nimport { ActivationEvents, Capability, Plugin } from '@dxos/app-framework';\nimport { AppActivationEvents, AppPlugin } from '@dxos/app-toolkit';\n\nimport { Client, OperationHandler, SchemaDefs } from '#capabilities';\n\nimport { meta } from '#meta';\nimport { ClientEvents } from '#types';\nimport { type ClientPluginOptions } from '#types';\n\nimport { config, device, edge, halo, profile } from './commands';\n\nexport const ClientPlugin = Plugin.define<ClientPluginOptions>(meta).pipe(\n // TODO(wittjosiah): Could some of these commands make use of operations?\n AppPlugin.addCommandModule({ commands: [config, device, edge, halo, profile] }),\n AppPlugin.addOperationHandlerModule({ activate: OperationHandler }),\n Plugin.addModule((options) => ({\n id: Capability.getModuleTag(Client),\n activatesOn: ActivationEvents.Startup,\n activatesAfter: [ClientEvents.ClientReady],\n activate: () => Client(options),\n })),\n Plugin.addModule({\n activatesOn: ClientEvents.ClientReady,\n activatesBefore: [AppActivationEvents.SetupSchema],\n activate: SchemaDefs,\n }),\n Plugin.make,\n);\n", "//\n// Copyright 2025 DXOS.org\n//\n\nimport * as Command from '@effect/cli/Command';\n\nimport { view } from './view';\n\nexport const config = Command.make('config').pipe(\n Command.withDescription('Config commands.'),\n Command.withSubcommands([view]),\n);\n", "//\n// Copyright 2025 DXOS.org\n//\n\nimport * as Command from '@effect/cli/Command';\nimport * as Console from 'effect/Console';\nimport * as Effect from 'effect/Effect';\nimport * as Yaml from 'yaml';\n\nimport { CommandConfig } from '@dxos/cli-util';\nimport { ConfigService } from '@dxos/client';\nimport { DX_CONFIG, getProfileConfigPath } from '@dxos/client-protocol';\n\nexport const view = Command.make(\n 'view',\n {},\n Effect.fnUntraced(function* () {\n const config = yield* ConfigService;\n const { json, profile } = yield* CommandConfig;\n const configPath = getProfileConfigPath(DX_CONFIG, profile);\n\n if (json) {\n yield* Console.log(JSON.stringify(config.values, null, 2));\n } else {\n yield* Console.log(`Path: ${configPath}`);\n yield* Console.log(Yaml.stringify(config.values));\n }\n }),\n);\n", "//\n// Copyright 2025 DXOS.org\n//\n\nimport * as Command from '@effect/cli/Command';\n\nimport { info } from './info';\nimport { list } from './list';\nimport { update } from './update';\n\nexport const device = Command.make('device').pipe(\n Command.withDescription('Manage HALO devices.'),\n Command.withSubcommands([info, list, update]),\n);\n", "//\n// Copyright 2025 DXOS.org\n//\n\nimport * as Command from '@effect/cli/Command';\nimport * as Console from 'effect/Console';\nimport * as Effect from 'effect/Effect';\n\nimport { CommandConfig } from '@dxos/cli-util';\nimport { print } from '@dxos/cli-util';\nimport { ClientService } from '@dxos/client';\nimport { DeviceType } from '@dxos/protocols/proto/dxos/halo/credentials';\n\nimport { printDevice } from '../util';\n\nexport const handler = Effect.fn(function* () {\n const { json } = yield* CommandConfig;\n const client = yield* ClientService;\n const device = client.halo.device;\n if (!device) {\n if (json) {\n yield* Console.log(JSON.stringify({ error: 'No device found' }, null, 2));\n } else {\n yield* Console.log('No device found.');\n }\n return;\n }\n\n if (json) {\n yield* Console.log(\n JSON.stringify(\n {\n deviceKey: device.deviceKey.toHex(),\n profile: {\n ...device.profile,\n type: device.profile?.type ? DeviceType[device.profile?.type] : 'UNKNOWN',\n },\n },\n null,\n 2,\n ),\n );\n } else {\n yield* Console.log(print(printDevice(device)));\n }\n});\n\nexport const info = Command.make('info', {}, handler).pipe(Command.withDescription('Show device info.'));\n", "//\n// Copyright 2025 DXOS.org\n//\n\nimport { FormBuilder } from '@dxos/cli-util';\nimport { Device, DeviceKind, DeviceType } from '@dxos/client/halo';\n\nconst maybeTruncateKey = (key: { toHex(): string; truncate(): string }, truncate = false) =>\n truncate ? key.truncate() : key.toHex();\n\nconst getDeviceTitle = (device: Device): string => {\n if (device.profile?.label) {\n return device.profile.label;\n }\n const platform = device.profile?.platform ?? 'Unknown';\n const os = device.profile?.os ?? 'Unknown';\n return `${platform} on ${os}`;\n};\n\nexport const mapDevices = (devices: Device[], truncateKeys = false) => {\n return devices.map((device) => ({\n label: device.profile?.label,\n type: device.profile?.type ? DeviceType[device.profile?.type] : 'UNKNOWN',\n key: maybeTruncateKey(device.deviceKey, truncateKeys),\n kind: DeviceKind[device.kind],\n platform: device.profile?.platform,\n platformVersion: device.profile?.platformVersion,\n architecture: device.profile?.architecture,\n os: device.profile?.os,\n osVersion: device.profile?.osVersion,\n presence: device?.kind === DeviceKind.CURRENT ? 'THIS DEVICE' : Device.PresenceState[device.presence],\n }));\n};\n\nexport const printDevice = (device: Device) =>\n FormBuilder.make({ title: getDeviceTitle(device) }).pipe(\n FormBuilder.set('deviceKey', device.deviceKey.truncate()),\n FormBuilder.set('label', device.profile?.label ?? '<none>'),\n FormBuilder.set('type', device.profile?.type ? DeviceType[device.profile?.type] : 'UNKNOWN'),\n FormBuilder.set('kind', DeviceKind[device.kind]),\n FormBuilder.set(\n 'presence',\n device?.kind === DeviceKind.CURRENT ? 'THIS DEVICE' : Device.PresenceState[device.presence],\n ),\n FormBuilder.set('platform', device.profile?.platform ?? '<none>'),\n FormBuilder.set('platformVersion', device.profile?.platformVersion ?? '<none>'),\n FormBuilder.set('architecture', device.profile?.architecture ?? '<none>'),\n FormBuilder.set('os', device.profile?.os ?? '<none>'),\n FormBuilder.set('osVersion', device.profile?.osVersion ?? '<none>'),\n FormBuilder.build,\n );\n\nexport const printDevices = (devices: Device[]) => {\n return devices.map(printDevice);\n};\n", "//\n// Copyright 2025 DXOS.org\n//\n\nimport * as Command from '@effect/cli/Command';\nimport * as Console from 'effect/Console';\nimport * as Effect from 'effect/Effect';\n\nimport { CommandConfig } from '@dxos/cli-util';\nimport { printList } from '@dxos/cli-util';\nimport { ClientService } from '@dxos/client';\n\nimport { mapDevices, printDevices } from '../util';\n\nexport const handler = Effect.fn(function* () {\n const { json } = yield* CommandConfig;\n const client = yield* ClientService;\n const devices = client.halo.devices.get();\n\n if (json) {\n yield* Console.log(JSON.stringify(mapDevices(devices), null, 2));\n } else {\n const formatted = printDevices(devices);\n yield* Console.log(printList(formatted));\n }\n});\n\nexport const list = Command.make('list', {}, handler).pipe(Command.withDescription('List devices.'));\n", "//\n// Copyright 2025 DXOS.org\n//\n\nimport * as Command from '@effect/cli/Command';\nimport * as Options from '@effect/cli/Options';\nimport * as Console from 'effect/Console';\nimport * as Effect from 'effect/Effect';\n\nimport { CommandConfig } from '@dxos/cli-util';\nimport { print } from '@dxos/cli-util';\nimport { ClientService } from '@dxos/client';\n\nimport { printDevice } from '../util';\n\nexport const handler = Effect.fn(function* ({ label }: { label: string }) {\n const { json } = yield* CommandConfig;\n const client = yield* ClientService;\n const device = client.halo.device;\n if (!device) {\n if (json) {\n yield* Console.log(JSON.stringify({ error: 'No device found' }, null, 2));\n } else {\n yield* Console.log('No device found.');\n }\n return;\n }\n\n const updatedProfile = {\n ...device.profile,\n label,\n };\n\n const devicesService = client.services.services.DevicesService;\n if (!devicesService) {\n if (json) {\n yield* Console.log(JSON.stringify({ error: 'DevicesService not found' }, null, 2));\n } else {\n yield* Console.log('DevicesService not found.');\n }\n return;\n }\n\n const updatedDevice = yield* Effect.tryPromise(() => devicesService.updateDevice(updatedProfile));\n\n if (json) {\n yield* Console.log(\n JSON.stringify(\n {\n deviceKey: updatedDevice.deviceKey.toHex(),\n profile: updatedDevice.profile,\n },\n null,\n 2,\n ),\n );\n } else {\n yield* Console.log(print(printDevice(updatedDevice)));\n }\n});\n\nexport const update = Command.make(\n 'update',\n {\n label: Options.text('label').pipe(Options.withDescription('The device label.')),\n },\n handler,\n).pipe(Command.withDescription('Update device label.'));\n", "//\n// Copyright 2025 DXOS.org\n//\n\nimport * as Command from '@effect/cli/Command';\n\nimport { status } from './status';\n\nexport const edge = Command.make('edge').pipe(\n Command.withDescription('EDGE commands.'),\n Command.withSubcommands([status]),\n);\n", "//\n// Copyright 2025 DXOS.org\n//\n\nimport * as Command from '@effect/cli/Command';\nimport * as Console from 'effect/Console';\nimport * as Effect from 'effect/Effect';\nimport * as Option from 'effect/Option';\n\nimport { CommandConfig } from '@dxos/cli-util';\nimport { ClientService } from '@dxos/client';\nimport { createEdgeIdentity } from '@dxos/client/edge';\nimport { Context } from '@dxos/context';\n\nexport const getStatus = () =>\n Effect.gen(function* () {\n const client = yield* ClientService;\n const identity = createEdgeIdentity(client);\n client.edge.http.setIdentity(identity);\n const status = yield* Effect.tryPromise(() => client.edge.http.getStatus(Context.default()));\n\n if (yield* CommandConfig.isJson) {\n yield* Console.log(JSON.stringify(status, null, 2));\n } else if (status.problems.length > 0) {\n for (const problem of status.problems) {\n yield* Console.error(problem);\n }\n } else {\n yield* Console.log('No problems found.');\n }\n }).pipe(\n // TODO(wittjosiah): Tagged error.\n Effect.catchSome((error) => {\n if (error instanceof Error && error.message === 'Identity not available') {\n // TODO(wittjosiah): Error coloring for logs.\n return Option.some(Console.error(error.message));\n } else {\n return Option.none();\n }\n }),\n );\n\n// TODO(wittjosiah): Admin functionality to provide to specify an identity.\nexport const status = Command.make('status', {}, getStatus).pipe(\n Command.withDescription('Get the EDGE status for the current identity.'),\n);\n", "//\n// Copyright 2025 DXOS.org\n//\n\nimport * as Command from '@effect/cli/Command';\n\nimport { create } from './create';\nimport { credential } from './credential';\nimport { identity } from './identity';\n// TODO(wittjosiah): Omitted currently due to p2p networking not working in bun.\n// import { join } from './join';\nimport { keys } from './keys';\nimport { recover } from './recover';\nimport { seed } from './seed';\n// import { share } from './share';\nimport { update } from './update';\n\nexport const halo: Command.Command<any, any, any, any> = Command.make('halo').pipe(\n Command.withDescription('Manage HALO identity.'),\n Command.withSubcommands([create, credential, identity, keys, recover, seed, update]),\n);\n", "//\n// Copyright 2025 DXOS.org\n//\n\nimport * as Command from '@effect/cli/Command';\nimport * as Options from '@effect/cli/Options';\nimport * as Console from 'effect/Console';\nimport * as Effect from 'effect/Effect';\nimport * as Option from 'effect/Option';\n\nimport { Capabilities, Plugin } from '@dxos/app-framework';\nimport { CommandConfig, flushAndSync, spaceLayer } from '@dxos/cli-util';\nimport { print } from '@dxos/cli-util';\nimport { ClientService } from '@dxos/client';\nimport { invariant } from '@dxos/invariant';\nimport { EdgeReplicationSetting } from '@dxos/protocols/proto/dxos/echo/metadata';\nimport { MembershipPolicy } from '@dxos/protocols/proto/dxos/halo/credentials';\n\nimport { ClientOperation } from '#operations';\nimport { printIdentity } from '../util';\n\nexport const handler = Effect.fn(function* ({\n agent,\n displayName,\n}: {\n agent: boolean;\n displayName: Option.Option<string>;\n}) {\n const { json } = yield* CommandConfig;\n const client = yield* ClientService;\n // TODO(wittjosiah): How to surface this error to the user cleanly?\n invariant(!client.halo.identity.get(), 'Identity already exists');\n\n const manager = yield* Plugin.Service;\n const { invoke } = manager.capabilities.get(Capabilities.OperationInvoker);\n const identity = yield* invoke(ClientOperation.CreateIdentity, {\n displayName: Option.getOrUndefined(displayName),\n });\n\n if (agent) {\n yield* invoke(ClientOperation.CreateAgent);\n }\n\n // Create personal space for the CLI identity.\n const { PERSONAL_SPACE_TAG, setPersonalSpace } = yield* Effect.tryPromise(() => import('@dxos/app-toolkit'));\n const space = yield* Effect.promise(() =>\n client.spaces.create({}, { tags: [PERSONAL_SPACE_TAG], membershipPolicy: MembershipPolicy.LOCKED }),\n );\n yield* Effect.promise(() => space.waitUntilReady());\n yield* Effect.promise(() => space.internal.setEdgeReplicationPreference(EdgeReplicationSetting.ENABLED));\n setPersonalSpace(space);\n yield* flushAndSync({ indexes: true }).pipe(Effect.provide(spaceLayer(Option.some(space.id))));\n\n if (json) {\n yield* Console.log(\n JSON.stringify(\n {\n identityKey: identity.identityKey.toHex(),\n displayName: identity.profile?.displayName,\n },\n null,\n 2,\n ),\n );\n } else {\n yield* Console.log(print(printIdentity(identity)));\n }\n});\n\nexport const create = Command.make(\n 'create',\n {\n agent: Options.boolean('noAgent', { ifPresent: false }).pipe(\n Options.withDescription('Do not create an EDGE agent for the identity.'),\n ),\n displayName: Options.text('displayName').pipe(\n Options.withDescription('The display name of the identity.'),\n Options.optional,\n ),\n },\n handler,\n).pipe(Command.withDescription('Create a new identity.'));\n", "//\n// Copyright 2025 DXOS.org\n//\n\nimport { FormBuilder } from '@dxos/cli-util';\n\n/**\n * Pretty prints an identity with ANSI colors.\n */\nexport const printIdentity = (identity: {\n identityKey: { toHex(): string; truncate(): string };\n profile?: { displayName?: string };\n}) =>\n FormBuilder.make({ title: 'Identity' }).pipe(\n FormBuilder.set('identityKey', identity.identityKey.truncate()),\n FormBuilder.set('displayName', identity.profile?.displayName ?? '<none>'),\n FormBuilder.build,\n );\n", "//\n// Copyright 2025 DXOS.org\n//\n\nimport * as Command from '@effect/cli/Command';\n\nimport { add } from './add';\nimport { list } from './list';\n\nexport const credential = Command.make('credential').pipe(\n Command.withDescription('Manage HALO credentials.'),\n Command.withSubcommands([add, list]),\n);\n", "//\n// Copyright 2025 DXOS.org\n//\n\nimport * as Args from '@effect/cli/Args';\nimport * as Command from '@effect/cli/Command';\nimport * as Prompt from '@effect/cli/Prompt';\nimport * as Console from 'effect/Console';\nimport * as Effect from 'effect/Effect';\nimport * as Option from 'effect/Option';\n\nimport { CommandConfig } from '@dxos/cli-util';\nimport { ClientService } from '@dxos/client';\nimport { invariant } from '@dxos/invariant';\nimport { schema } from '@dxos/protocols/proto';\n\nexport const handler = Effect.fn(function* ({ credential }: { credential: Option.Option<string> }) {\n const { json } = yield* CommandConfig;\n const client = yield* ClientService;\n\n let credentialHex = Option.getOrUndefined(credential);\n if (!credentialHex) {\n credentialHex = yield* Prompt.text({ message: 'Enter credential (hex string)' }).pipe(Prompt.run);\n }\n\n invariant(credentialHex, 'Invalid credential.');\n\n const identity = client.halo.identity;\n if (!identity) {\n if (json) {\n yield* Console.log(JSON.stringify({ error: 'Profile not initialized' }, null, 2));\n } else {\n yield* Console.log('Profile not initialized.');\n }\n return;\n }\n\n yield* Effect.gen(function* () {\n const codec = schema.getCodecForType('dxos.halo.credentials.Credential');\n const credentialBytes = yield* Effect.try({\n try: () => Buffer.from(credentialHex, 'hex'),\n catch: (error) => new Error(`Failed to parse hex string: ${error}`),\n });\n\n const verifyError = codec.protoType.verify(credentialBytes);\n if (verifyError) {\n yield* Effect.fail(new Error(verifyError));\n }\n\n const credentialObj = yield* Effect.try({\n try: () => codec.decode(credentialBytes),\n catch: (error) => new Error(`Failed to decode credential: ${error}`),\n });\n\n yield* Effect.tryPromise({\n try: () => client.halo.writeCredentials([credentialObj]),\n catch: (error) => new Error(`Failed to write credential: ${error}`),\n });\n\n if (json) {\n yield* Console.log(JSON.stringify({ success: true }, null, 2));\n } else {\n yield* Console.log('Credential added successfully.');\n }\n }).pipe(\n Effect.catchAll((error) =>\n Effect.gen(function* () {\n if (json) {\n yield* Console.log(\n JSON.stringify(\n {\n error: 'Invalid credential',\n message: error instanceof Error ? error.message : String(error),\n },\n null,\n 2,\n ),\n );\n } else {\n yield* Console.log('Invalid credential.');\n }\n yield* Effect.fail(error);\n }),\n ),\n );\n});\n\nexport const add = Command.make(\n 'add',\n {\n credential: Args.text({ name: 'credential' }).pipe(\n Args.withDescription('Credential as hex string.'),\n Args.optional,\n ),\n },\n handler,\n).pipe(Command.withDescription('Import credential into HALO.'));\n", "//\n// Copyright 2025 DXOS.org\n//\n\nimport * as Command from '@effect/cli/Command';\nimport * as Options from '@effect/cli/Options';\nimport * as Console from 'effect/Console';\nimport * as Duration from 'effect/Duration';\nimport * as Effect from 'effect/Effect';\nimport * as Option from 'effect/Option';\n\nimport { CommandConfig, Common, FormBuilder, getSpace, printList } from '@dxos/cli-util';\nimport { ClientService } from '@dxos/client';\nimport type { Credential } from '@dxos/client/halo';\nimport { type Key } from '@dxos/echo';\n\nconst mapCredentials = (credentials: Credential[]) => {\n return credentials.map((credential) => ({\n id: credential.id?.toHex() ?? '<unknown>',\n issuer: credential.issuer?.toHex() ?? '<unknown>',\n subject: credential.subject?.id?.toHex() ?? '<unknown>',\n type: credential.subject.assertion['@type'],\n assertion: credential.subject.assertion,\n }));\n};\n\nconst printCredential = (credential: Credential) => {\n const type = credential.subject.assertion['@type'] ?? '<unknown>';\n return FormBuilder.make({ title: type }).pipe(\n FormBuilder.option('id', Option.fromNullable(credential.id?.truncate())),\n FormBuilder.option('issuer', Option.fromNullable(credential.issuer?.truncate())),\n FormBuilder.option('subject', Option.fromNullable(credential.subject?.id?.truncate())),\n FormBuilder.build,\n );\n};\n\nexport const handler = Effect.fn(function* ({\n type,\n spaceId,\n timeout,\n delay,\n}: {\n type: Option.Option<string>;\n spaceId: Option.Option<Key.SpaceId>;\n timeout: number;\n delay: number;\n}) {\n const { json } = yield* CommandConfig;\n const client = yield* ClientService;\n let credentials: Credential[];\n\n if (Option.isSome(spaceId)) {\n // If space ID was provided, get credentials from that space.\n const space = yield* getSpace(spaceId.value);\n credentials = yield* Effect.tryPromise(() => space.internal.getCredentials());\n } else {\n // Get credentials from HALO\n const identity = client.halo.identity;\n if (!identity) {\n if (json) {\n yield* Console.log(JSON.stringify({ error: 'Profile not initialized' }, null, 2));\n } else {\n yield* Console.log('Profile not initialized.');\n }\n return;\n }\n\n // Wait for at least one credential\n const latch = yield* Effect.makeLatch();\n const subscription = client.halo.credentials.subscribe((creds) => {\n if (creds.length > 0) {\n Effect.runSync(latch.open);\n }\n });\n\n yield* latch.await.pipe(\n Effect.timeout(Duration.millis(timeout)),\n Effect.catchAll(() => Effect.void),\n Effect.ensuring(\n Effect.sync(() => {\n subscription.unsubscribe();\n }),\n ),\n );\n\n // Wait a bit more to ensure all credentials are loaded\n yield* Effect.sleep(Duration.millis(delay));\n\n credentials = client.halo.queryCredentials({ type: Option.getOrUndefined(type) });\n }\n\n if (json) {\n yield* Console.log(JSON.stringify(mapCredentials(credentials), null, 2));\n } else {\n const formatted = credentials.map(printCredential);\n yield* Console.log(printList(formatted));\n }\n});\n\nexport const list = Command.make(\n 'list',\n {\n type: Options.text('type').pipe(Options.withDescription('Filter by credential type.'), Options.optional),\n spaceId: Common.spaceId.pipe(Options.withDescription('Space ID to show credentials from.'), Options.optional),\n timeout: Options.integer('timeout').pipe(\n Options.withDescription('Time in milliseconds to wait for at least one credential before listing.'),\n Options.withDefault(500),\n ),\n delay: Options.integer('delay').pipe(\n Options.withDescription('Delay in milliseconds before listing.'),\n Options.withDefault(250),\n ),\n },\n handler,\n).pipe(Command.withDescription('List HALO credentials.'));\n", "//\n// Copyright 2025 DXOS.org\n//\n\nimport * as Command from '@effect/cli/Command';\nimport * as Console from 'effect/Console';\nimport * as Effect from 'effect/Effect';\n\nimport { CommandConfig } from '@dxos/cli-util';\nimport { print } from '@dxos/cli-util';\nimport { ClientService } from '@dxos/client';\n\nimport { printIdentity } from '../util';\n\nexport const handler = Effect.fn(function* () {\n const { json } = yield* CommandConfig;\n const client = yield* ClientService;\n const identity = client.halo.identity.get();\n if (!identity) {\n if (json) {\n yield* Console.log(JSON.stringify({ error: 'Identity not initialized' }, null, 2));\n } else {\n yield* Console.log('Identity not initialized.');\n }\n } else {\n if (json) {\n yield* Console.log(\n JSON.stringify(\n {\n identityKey: identity.identityKey.toHex(),\n displayName: identity.profile?.displayName,\n },\n null,\n 2,\n ),\n );\n } else {\n yield* Console.log(print(printIdentity(identity)));\n }\n }\n});\n\nexport const identity = Command.make('identity', {}, handler).pipe(\n Command.withDescription('Get the current identity.'),\n);\n", "//\n// Copyright 2025 DXOS.org\n//\n\nimport * as Command from '@effect/cli/Command';\nimport * as Console from 'effect/Console';\nimport * as Effect from 'effect/Effect';\nimport * as Option from 'effect/Option';\n\nimport { CommandConfig } from '@dxos/cli-util';\nimport { FormBuilder, print } from '@dxos/cli-util';\nimport { ClientService } from '@dxos/client';\n\nexport const handler = Effect.fn(function* () {\n const { json } = yield* CommandConfig;\n const client = yield* ClientService;\n const identity = client.halo.identity.get();\n const device = client.halo.device;\n\n if (json) {\n yield* Console.log(\n JSON.stringify(\n {\n identityKey: identity?.identityKey.toHex(),\n deviceKey: device?.deviceKey.toHex(),\n },\n null,\n 2,\n ),\n );\n } else {\n const builder = FormBuilder.make({ title: 'HALO Keys' }).pipe(\n FormBuilder.option('identityKey', Option.fromNullable(identity?.identityKey.truncate())),\n FormBuilder.option('deviceKey', Option.fromNullable(device?.deviceKey.truncate())),\n );\n yield* Console.log(print(FormBuilder.build(builder)));\n }\n});\n\nexport const keys = Command.make('keys', {}, handler).pipe(Command.withDescription('Show HALO keys.'));\n", "//\n// Copyright 2025 DXOS.org\n//\n\nimport * as Args from '@effect/cli/Args';\nimport * as Command from '@effect/cli/Command';\nimport * as Console from 'effect/Console';\nimport * as Effect from 'effect/Effect';\n\nimport { CommandConfig, print } from '@dxos/cli-util';\nimport { ClientService } from '@dxos/client';\nimport { invariant } from '@dxos/invariant';\n\nimport { printIdentity } from '../util';\n\nexport const recover = Command.make(\n 'recover',\n {\n recoveryCode: Args.text({ name: 'recoveryCode' }).pipe(Args.withDescription('The recovery code seed phrase.')),\n },\n Effect.fn(function* ({ recoveryCode }) {\n const { json } = yield* CommandConfig;\n const client = yield* ClientService;\n // TODO(wittjosiah): How to surface this error to the user cleanly?\n invariant(!client.halo.identity.get(), 'Identity already exists');\n\n const identity = yield* Effect.tryPromise(() => client.halo.recoverIdentity({ recoveryCode }));\n if (json) {\n yield* Console.log(\n JSON.stringify(\n {\n identityKey: identity.identityKey.toHex(),\n displayName: identity.profile?.displayName,\n },\n null,\n 2,\n ),\n );\n } else {\n yield* Console.log('Identity recovered successfully');\n yield* Console.log(print(printIdentity(identity)));\n }\n }),\n).pipe(Command.withDescription('Recover an existing identity using a recovery code.'));\n", "//\n// Copyright 2025 DXOS.org\n//\n\nimport * as Command from '@effect/cli/Command';\nimport * as Console from 'effect/Console';\nimport * as Effect from 'effect/Effect';\n\nimport { CommandConfig } from '@dxos/cli-util';\nimport { ClientService } from '@dxos/client';\n\nexport const handler = Effect.fn(function* () {\n const { json } = yield* CommandConfig;\n const client = yield* ClientService;\n const identityService = client.services.services.IdentityService;\n if (!identityService) {\n if (json) {\n yield* Console.log(JSON.stringify({ error: 'IdentityService not found' }, null, 2));\n } else {\n yield* Console.log('IdentityService not found.');\n }\n return;\n }\n\n const result = yield* Effect.tryPromise(() => identityService.createRecoveryCredential({}));\n\n if (json) {\n yield* Console.log(JSON.stringify({ recoveryCode: result.recoveryCode }, null, 2));\n } else {\n yield* Console.log(result.recoveryCode);\n }\n});\n\nexport const seed = Command.make('seed', {}, handler).pipe(\n Command.withDescription('Generate a seedphrase that can be used for identity recovery.'),\n);\n", "//\n// Copyright 2025 DXOS.org\n//\n\nimport * as Command from '@effect/cli/Command';\nimport * as Options from '@effect/cli/Options';\nimport * as Console from 'effect/Console';\nimport * as Effect from 'effect/Effect';\n\nimport { CommandConfig } from '@dxos/cli-util';\nimport { print } from '@dxos/cli-util';\nimport { ClientService } from '@dxos/client';\n\nimport { printIdentity } from '../util';\n\nexport const handler = Effect.fn(function* ({ displayName }: { displayName: string }) {\n const { json } = yield* CommandConfig;\n const client = yield* ClientService;\n const identity = client.halo.identity.get();\n if (!identity) {\n if (json) {\n yield* Console.log(JSON.stringify({ error: 'Identity not initialized' }, null, 2));\n } else {\n yield* Console.log('Identity not initialized.');\n }\n return;\n }\n\n const identityService = client.services.services.IdentityService;\n if (!identityService) {\n if (json) {\n yield* Console.log(JSON.stringify({ error: 'IdentityService not found' }, null, 2));\n } else {\n yield* Console.log('IdentityService not found.');\n }\n return;\n }\n\n const updatedIdentity = yield* Effect.tryPromise(() =>\n identityService.updateProfile({\n displayName,\n }),\n );\n\n if (json) {\n yield* Console.log(\n JSON.stringify(\n {\n identityKey: updatedIdentity.identityKey.toHex(),\n displayName: updatedIdentity.profile?.displayName,\n },\n null,\n 2,\n ),\n );\n } else {\n yield* Console.log(print(printIdentity(updatedIdentity)));\n }\n});\n\nexport const update = Command.make(\n 'update',\n {\n displayName: Options.text('displayName').pipe(Options.withDescription('The display name of the identity.')),\n },\n handler,\n).pipe(Command.withDescription('Update identity profile.'));\n", "//\n// Copyright 2025 DXOS.org\n//\n\nimport * as Command from '@effect/cli/Command';\n\nimport { create } from './create';\nimport { del } from './delete';\nimport { importCommand } from './import';\nimport { inspect } from './inspect';\nimport { list } from './list';\nimport { reset } from './reset';\n\nexport const profile = Command.make('profile').pipe(\n Command.withDescription('Profile commands.'),\n Command.withSubcommands([create, del, importCommand, inspect, list, reset]),\n);\n", "//\n// Copyright 2025 DXOS.org\n//\n\nimport * as Command from '@effect/cli/Command';\nimport * as Options from '@effect/cli/Options';\nimport * as FileSystem from '@effect/platform/FileSystem';\nimport * as Path from '@effect/platform/Path';\nimport * as Console from 'effect/Console';\nimport * as Effect from 'effect/Effect';\nimport * as Option from 'effect/Option';\nimport * as Record from 'effect/Record';\n\nimport { CommandConfig, print } from '@dxos/cli-util';\nimport { DX_CONFIG, getProfileConfigPath } from '@dxos/client-protocol';\nimport { trim } from '@dxos/util';\n\nimport { printProfileCreated } from './util';\n\nconst TEMPLATES = {\n default: trim`\n version: 1\n runtime:\n client:\n storage:\n persistent: true\n services:\n edge:\n url: https://edge-production.dxos.workers.dev\n `,\n main: trim`\n version: 1\n runtime:\n client:\n storage:\n persistent: true\n services:\n edge:\n url: https://edge-main.dxos.workers.dev\n `,\n dev: trim`\n version: 1\n runtime:\n client:\n storage:\n persistent: true\n services:\n edge:\n url: https://edge.dxos.workers.dev\n `,\n local: trim`\n version: 1\n runtime:\n client:\n storage:\n persistent: true\n services:\n edge:\n url: http://localhost:8787\n `,\n} as const;\n\nexport const create = Command.make(\n 'create',\n {\n template: Options.choice('template', Record.keys(TEMPLATES)).pipe(\n Options.withDescription('Template to use'),\n Options.withDefault('default'),\n ),\n name: Options.text('name').pipe(Options.withDescription('Profile name'), Options.optional),\n },\n Effect.fnUntraced(function* ({ template, name }) {\n const { json } = yield* CommandConfig;\n const fs = yield* FileSystem.FileSystem;\n const path = yield* Path.Path;\n const profileName = name.pipe(Option.getOrElse(() => template));\n const configPath = getProfileConfigPath(DX_CONFIG, profileName);\n if (yield* fs.exists(configPath)) {\n throw new Error(`Profile ${profileName} already exists`);\n }\n\n yield* fs.makeDirectory(path.dirname(configPath), { recursive: true });\n yield* fs.writeFileString(configPath, TEMPLATES[template]);\n if (json) {\n yield* Console.log(JSON.stringify({ name: profileName, path: configPath }, null, 2));\n } else {\n yield* Console.log(print(printProfileCreated(profileName, configPath)));\n }\n }),\n);\n", "//\n// Copyright 2025 DXOS.org\n//\n\nimport { FormBuilder } from '@dxos/cli-util';\n\nexport type ProfileInfo = {\n name: string;\n isCurrent: boolean;\n fullPath: string;\n storagePath: string;\n edge?: string;\n};\n\n/**\n * Pretty prints profile creation result with ANSI colors.\n */\nexport const printProfileCreated = (name: string, path: string) =>\n FormBuilder.make({ title: 'Profile created' }).pipe(\n FormBuilder.set('name', name),\n FormBuilder.set('path', path),\n FormBuilder.build,\n );\n\n/**\n * Pretty prints profile deletion result with ANSI colors.\n */\nexport const printProfileDeleted = (name: string) =>\n FormBuilder.make({ title: 'Profile deleted' }).pipe(FormBuilder.set('name', name), FormBuilder.build);\n\n/**\n * Pretty prints profile reset result with ANSI colors.\n */\nexport const printProfileReset = (profile: string) =>\n FormBuilder.make({ title: 'Profile reset' }).pipe(FormBuilder.set('profile', profile), FormBuilder.build);\n\n/**\n * Pretty prints a profile with ANSI colors.\n */\nexport const printProfile = (profile: ProfileInfo) => {\n const title = profile.isCurrent ? `${profile.name} (current)` : profile.name;\n return FormBuilder.make({ title }).pipe(\n FormBuilder.set('fullPath', profile.fullPath),\n FormBuilder.set('storagePath', profile.storagePath),\n FormBuilder.set('edge', profile.edge ?? '<none>'),\n FormBuilder.build,\n );\n};\n", "//\n// Copyright 2025 DXOS.org\n//\n\nimport * as Command from '@effect/cli/Command';\nimport * as Options from '@effect/cli/Options';\nimport * as FileSystem from '@effect/platform/FileSystem';\nimport * as Console from 'effect/Console';\nimport * as Effect from 'effect/Effect';\nimport * as Option from 'effect/Option';\n\nimport { CommandConfig, print } from '@dxos/cli-util';\nimport { DX_CONFIG, getProfileConfigPath } from '@dxos/client-protocol';\n\nimport { printProfileDeleted } from './util';\n\nexport const del = Command.make(\n 'delete',\n {\n name: Options.text('name').pipe(Options.withDescription('Profile name'), Options.optional),\n },\n Effect.fnUntraced(function* ({ name }) {\n const { json } = yield* CommandConfig;\n const fs = yield* FileSystem.FileSystem;\n const profileName = name.pipe(Option.getOrElse(() => 'default'));\n const configPath = getProfileConfigPath(DX_CONFIG, profileName);\n const pluginsPath = `${DX_CONFIG}/plugins/${profileName}.yml`;\n yield* fs.remove(configPath).pipe(Effect.ignore);\n yield* fs.remove(pluginsPath).pipe(Effect.ignore);\n if (json) {\n yield* Console.log(JSON.stringify({ name: profileName, deleted: true }, null, 2));\n } else {\n yield* Console.log(print(printProfileDeleted(profileName)));\n }\n }),\n);\n", "//\n// Copyright 2025 DXOS.org\n//\n\nimport * as Command from '@effect/cli/Command';\nimport * as Options from '@effect/cli/Options';\nimport * as Prompt from '@effect/cli/Prompt';\nimport * as FileSystem from '@effect/platform/FileSystem';\nimport * as Path from '@effect/platform/Path';\nimport * as Console from 'effect/Console';\nimport * as Effect from 'effect/Effect';\nimport * as Option from 'effect/Option';\n\nimport { CommandConfig } from '@dxos/cli-util';\nimport { ConfigService } from '@dxos/config';\nimport { log } from '@dxos/log';\nimport type { Runtime } from '@dxos/protocols/proto/dxos/config';\n\nexport const handler = Effect.fn(function* ({\n file,\n dataDir,\n force,\n}: {\n file: string;\n dataDir: Option.Option<string>;\n force: boolean;\n}) {\n const dataDirValue = Option.getOrUndefined(dataDir);\n const { json, profile } = yield* CommandConfig;\n const fs = yield* FileSystem.FileSystem;\n const path = yield* Path.Path;\n const config = yield* ConfigService;\n\n const { createLevel, createStorageObjects, importProfileData, decodeProfileArchive } = yield* Effect.promise(\n () => import('@dxos/client-services'),\n );\n\n let storageConfig: Runtime.Client.Storage;\n if (!dataDirValue) {\n if (!force) {\n yield* Console.log(`Will overwrite profile: ${profile}`);\n const confirmed = yield* Prompt.confirm({\n message: `Delete all data? (Profile: ${profile})`,\n initial: false,\n }).pipe(Prompt.run);\n if (!confirmed) {\n return;\n }\n }\n storageConfig = config.values.runtime!.client!.storage!;\n } else {\n const fullPath = path.resolve(dataDirValue);\n yield* Console.log(`Importing into: ${fullPath}`);\n storageConfig = {\n persistent: true,\n dataRoot: fullPath,\n };\n }\n\n if (yield* fs.exists(storageConfig.dataRoot!)) {\n log.error('data directory already exists', { path: storageConfig.dataRoot! });\n if (json) {\n yield* Console.log(JSON.stringify({ error: 'Data directory already exists' }, null, 2));\n } else {\n yield* Console.log('Data directory already exists.');\n }\n return;\n }\n\n const data = yield* fs.readFile(file);\n\n const archive = decodeProfileArchive(data);\n yield* Console.log(`Importing archive with ${archive.storage.length} entries`);\n\n const { storage } = createStorageObjects(storageConfig);\n const level = yield* Effect.tryPromise({\n try: () => createLevel(storageConfig),\n catch: (error) => new Error(`Failed to create level: ${error}`),\n });\n\n yield* Console.log('Beginning profile import...');\n yield* Effect.tryPromise({\n try: () => importProfileData({ storage, level }, archive),\n catch: (error) => new Error(`Failed to import profile data: ${error}`),\n });\n yield* Console.log('Profile import complete');\n\n if (json) {\n yield* Console.log(JSON.stringify({ success: true, profile, entries: archive.storage.length }, null, 2));\n }\n});\n\nexport const importCommand = Command.make(\n 'import',\n {\n file: Options.text('file').pipe(Options.withDescription('Archive filename.'), Options.withAlias('f')),\n dataDir: Options.text('data-dir').pipe(Options.withDescription('Storage directory.'), Options.optional),\n force: Options.boolean('force', { ifPresent: true }).pipe(Options.withDescription('Skip confirmation prompt.')),\n },\n handler,\n).pipe(Command.withDescription('Import profile.'));\n", "//\n// Copyright 2025 DXOS.org\n//\n\nimport * as Command from '@effect/cli/Command';\nimport * as Options from '@effect/cli/Options';\nimport * as FileSystem from '@effect/platform/FileSystem';\nimport * as Console from 'effect/Console';\nimport * as Effect from 'effect/Effect';\n\nimport { CommandConfig, FormBuilder, print } from '@dxos/cli-util';\nimport { ProfileArchiveEntryType } from '@dxos/protocols';\nimport { arrayToBuffer } from '@dxos/util';\n\nexport const handler = Effect.fn(function* ({ file, storage }: { file: string; storage: boolean }) {\n const { json } = yield* CommandConfig;\n const fs = yield* FileSystem.FileSystem;\n\n const { decodeProfileArchive } = yield* Effect.promise(() => import('@dxos/client-services'));\n\n const data = yield* fs.readFile(file);\n\n const archive = decodeProfileArchive(data);\n\n if (json) {\n yield* Console.log(\n JSON.stringify(\n {\n meta: archive.meta,\n ...(storage ? { storage: archive.storage } : {}),\n },\n null,\n 2,\n ),\n );\n } else {\n const builder = FormBuilder.make({ title: 'Profile Archive' }).pipe(\n FormBuilder.when(\n archive.meta,\n FormBuilder.each(Object.entries(archive.meta ?? {}), ([key, value]) => FormBuilder.set(key, String(value))),\n ),\n FormBuilder.build,\n );\n yield* Console.log(print(builder));\n\n if (storage) {\n yield* Console.log('\\nStorage entries:\\n');\n for (const entry of archive.storage) {\n const key =\n typeof entry.key === 'string' ? entry.key : JSON.stringify(arrayToBuffer(entry.key).toString()).slice(1, -1);\n yield* Console.log(` ${ProfileArchiveEntryType[entry.type]} ${key}`);\n }\n }\n }\n});\n\nexport const inspect = Command.make(\n 'inspect',\n {\n file: Options.text('file').pipe(Options.withDescription('Archive filename.'), Options.withAlias('f')),\n storage: Options.boolean('storage', { ifPresent: true }).pipe(Options.withDescription('List storage entries.')),\n },\n handler,\n).pipe(Command.withDescription('Inspect profile archive.'));\n", "//\n// Copyright 2025 DXOS.org\n//\n\nimport * as Command from '@effect/cli/Command';\nimport * as FileSystem from '@effect/platform/FileSystem';\nimport * as Path from '@effect/platform/Path';\nimport * as Console from 'effect/Console';\nimport * as Effect from 'effect/Effect';\nimport * as Yaml from 'yaml';\n\nimport { CommandConfig, printList } from '@dxos/cli-util';\nimport { Config } from '@dxos/client';\nimport { DX_CONFIG, DX_DATA, getProfilePath } from '@dxos/client-protocol';\n\nimport { printProfile } from './util';\n\nexport const list = Command.make(\n 'list',\n {},\n Effect.fnUntraced(function* () {\n const { profile: currentProfile } = yield* CommandConfig;\n const fs = yield* FileSystem.FileSystem;\n const path = yield* Path.Path;\n const profileDir = path.join(DX_CONFIG, 'profile');\n const entries = yield* fs.readDirectory(profileDir);\n const profileFiles = entries.filter((entry) => entry.endsWith('.yml'));\n const profiles = yield* Effect.forEach(profileFiles, (filename) =>\n Effect.gen(function* () {\n const name = filename.slice(0, -4);\n const configPath = path.join(profileDir, filename);\n const configContent = yield* fs\n .readFileString(configPath)\n .pipe(Effect.catchTag('SystemError', () => Effect.succeed('{}')));\n const configValues = Yaml.parse(configContent) ?? {};\n const config = new Config(configValues);\n return {\n name,\n isCurrent: name === currentProfile,\n fullPath: configPath,\n storagePath: getProfilePath(configValues?.runtime?.client?.storage?.dataRoot ?? DX_DATA, name),\n edge: config.values.runtime?.services?.edge?.url,\n };\n }),\n );\n\n const { json } = yield* CommandConfig;\n if (json) {\n yield* Console.log(JSON.stringify(profiles, null, 2));\n } else {\n const formatted = profiles.map(printProfile);\n yield* Console.log(printList(formatted));\n }\n }),\n);\n", "//\n// Copyright 2025 DXOS.org\n//\n\nimport * as Command from '@effect/cli/Command';\nimport * as Options from '@effect/cli/Options';\nimport * as Prompt from '@effect/cli/Prompt';\nimport * as FileSystem from '@effect/platform/FileSystem';\nimport * as Console from 'effect/Console';\nimport * as Effect from 'effect/Effect';\n\nimport { CommandConfig, print } from '@dxos/cli-util';\nimport { DX_DATA, getProfilePath } from '@dxos/client-protocol';\nimport { ConfigService } from '@dxos/config';\n\nimport { printProfileReset } from './util';\n\nexport const reset = Command.make(\n 'reset',\n {\n force: Options.boolean('force', { ifPresent: true }).pipe(Options.withDescription('Skip confirmation prompt')),\n },\n Effect.fnUntraced(function* ({ force }) {\n const fs = yield* FileSystem.FileSystem;\n const config = yield* ConfigService;\n const { json, profile } = yield* CommandConfig;\n const path = config.values.runtime?.client?.storage?.dataRoot ?? getProfilePath(DX_DATA, profile);\n if (!force) {\n const confirmed = yield* Prompt.confirm({\n message: `Are you sure you want to reset the profile (${profile})?`,\n initial: false,\n });\n if (!confirmed) {\n return;\n }\n }\n\n yield* fs.remove(path, { recursive: true });\n if (json) {\n yield* Console.log(JSON.stringify({ profile, reset: true }, null, 2));\n } else {\n yield* Console.log(print(printProfileReset(profile)));\n }\n }),\n);\n"],
5
+ "mappings": "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",
6
+ "names": ["ActivationEvents", "Capability", "Plugin", "AppActivationEvents", "AppPlugin", "Client", "OperationHandler", "SchemaDefs", "meta", "ClientEvents", "Command", "Command", "Console", "Effect", "Yaml", "CommandConfig", "ConfigService", "DX_CONFIG", "getProfileConfigPath", "view", "make", "fnUntraced", "config", "ConfigService", "json", "profile", "CommandConfig", "configPath", "getProfileConfigPath", "DX_CONFIG", "log", "JSON", "stringify", "values", "config", "make", "pipe", "withDescription", "withSubcommands", "view", "Command", "Command", "Console", "Effect", "CommandConfig", "print", "ClientService", "DeviceType", "FormBuilder", "Device", "DeviceKind", "DeviceType", "maybeTruncateKey", "key", "truncate", "toHex", "getDeviceTitle", "device", "profile", "label", "platform", "os", "mapDevices", "devices", "truncateKeys", "map", "type", "DeviceType", "deviceKey", "kind", "DeviceKind", "platformVersion", "architecture", "osVersion", "presence", "CURRENT", "Device", "PresenceState", "printDevice", "FormBuilder", "make", "title", "pipe", "set", "build", "printDevices", "handler", "fn", "json", "CommandConfig", "client", "ClientService", "device", "halo", "log", "JSON", "stringify", "error", "deviceKey", "toHex", "profile", "type", "DeviceType", "print", "printDevice", "info", "make", "pipe", "withDescription", "Command", "Console", "Effect", "CommandConfig", "printList", "ClientService", "handler", "fn", "json", "CommandConfig", "client", "ClientService", "devices", "halo", "get", "log", "JSON", "stringify", "mapDevices", "formatted", "printDevices", "printList", "list", "make", "pipe", "withDescription", "Command", "Options", "Console", "Effect", "CommandConfig", "print", "ClientService", "handler", "fn", "label", "json", "CommandConfig", "client", "ClientService", "device", "halo", "log", "JSON", "stringify", "error", "updatedProfile", "profile", "devicesService", "services", "DevicesService", "updatedDevice", "tryPromise", "updateDevice", "deviceKey", "toHex", "print", "printDevice", "update", "make", "text", "pipe", "withDescription", "device", "make", "pipe", "withDescription", "withSubcommands", "info", "list", "update", "Command", "Command", "Console", "Effect", "Option", "CommandConfig", "ClientService", "createEdgeIdentity", "Context", "getStatus", "gen", "client", "identity", "edge", "http", "setIdentity", "status", "tryPromise", "default", "isJson", "log", "JSON", "stringify", "problems", "length", "problem", "error", "pipe", "catchSome", "Error", "message", "some", "none", "make", "withDescription", "edge", "make", "pipe", "withDescription", "withSubcommands", "status", "Command", "Command", "Options", "Console", "Effect", "Option", "Capabilities", "Plugin", "CommandConfig", "flushAndSync", "spaceLayer", "print", "ClientService", "invariant", "EdgeReplicationSetting", "MembershipPolicy", "ClientOperation", "FormBuilder", "printIdentity", "identity", "FormBuilder", "make", "title", "pipe", "set", "identityKey", "truncate", "profile", "displayName", "build", "handler", "fn", "agent", "displayName", "json", "CommandConfig", "client", "ClientService", "invariant", "halo", "identity", "get", "manager", "Plugin", "Service", "invoke", "capabilities", "Capabilities", "OperationInvoker", "ClientOperation", "CreateIdentity", "getOrUndefined", "CreateAgent", "PERSONAL_SPACE_TAG", "setPersonalSpace", "tryPromise", "space", "promise", "spaces", "create", "tags", "membershipPolicy", "MembershipPolicy", "LOCKED", "waitUntilReady", "internal", "setEdgeReplicationPreference", "EdgeReplicationSetting", "ENABLED", "flushAndSync", "indexes", "pipe", "provide", "spaceLayer", "some", "id", "log", "JSON", "stringify", "identityKey", "toHex", "profile", "print", "printIdentity", "make", "boolean", "ifPresent", "withDescription", "text", "optional", "Command", "Args", "Command", "Prompt", "Console", "Effect", "Option", "CommandConfig", "ClientService", "invariant", "schema", "handler", "fn", "credential", "json", "client", "credentialHex", "getOrUndefined", "text", "message", "pipe", "run", "identity", "halo", "log", "JSON", "stringify", "error", "gen", "codec", "getCodecForType", "credentialBytes", "try", "Buffer", "from", "catch", "Error", "verifyError", "protoType", "verify", "fail", "credentialObj", "decode", "tryPromise", "writeCredentials", "success", "catchAll", "String", "add", "make", "name", "withDescription", "optional", "Command", "Options", "Console", "Duration", "Effect", "Option", "CommandConfig", "Common", "FormBuilder", "getSpace", "printList", "ClientService", "mapCredentials", "credentials", "map", "credential", "id", "toHex", "issuer", "subject", "type", "assertion", "printCredential", "FormBuilder", "make", "title", "pipe", "option", "fromNullable", "truncate", "build", "handler", "fn", "spaceId", "timeout", "delay", "json", "CommandConfig", "client", "ClientService", "isSome", "space", "getSpace", "value", "tryPromise", "internal", "getCredentials", "identity", "halo", "log", "JSON", "stringify", "error", "latch", "makeLatch", "subscription", "subscribe", "creds", "length", "Effect", "runSync", "open", "await", "millis", "catchAll", "void", "ensuring", "sync", "unsubscribe", "sleep", "queryCredentials", "getOrUndefined", "formatted", "printList", "list", "text", "withDescription", "optional", "Common", "integer", "withDefault", "credential", "make", "pipe", "withDescription", "withSubcommands", "add", "list", "Command", "Console", "Effect", "CommandConfig", "print", "ClientService", "handler", "fn", "json", "CommandConfig", "client", "ClientService", "identity", "halo", "get", "log", "JSON", "stringify", "error", "identityKey", "toHex", "displayName", "profile", "print", "printIdentity", "make", "pipe", "withDescription", "Command", "Console", "Effect", "Option", "CommandConfig", "FormBuilder", "print", "ClientService", "handler", "fn", "json", "CommandConfig", "client", "ClientService", "identity", "halo", "get", "device", "log", "JSON", "stringify", "identityKey", "toHex", "deviceKey", "builder", "FormBuilder", "make", "title", "pipe", "option", "fromNullable", "truncate", "print", "build", "keys", "withDescription", "Args", "Command", "Console", "Effect", "CommandConfig", "print", "ClientService", "invariant", "recover", "make", "recoveryCode", "text", "name", "pipe", "withDescription", "fn", "json", "CommandConfig", "client", "ClientService", "invariant", "halo", "identity", "get", "tryPromise", "recoverIdentity", "log", "JSON", "stringify", "identityKey", "toHex", "displayName", "profile", "print", "printIdentity", "Command", "Console", "Effect", "CommandConfig", "ClientService", "handler", "fn", "json", "CommandConfig", "client", "ClientService", "identityService", "services", "IdentityService", "log", "JSON", "stringify", "error", "result", "tryPromise", "createRecoveryCredential", "recoveryCode", "seed", "make", "pipe", "withDescription", "Command", "Options", "Console", "Effect", "CommandConfig", "print", "ClientService", "handler", "fn", "displayName", "json", "CommandConfig", "client", "ClientService", "identity", "halo", "get", "log", "JSON", "stringify", "error", "identityService", "services", "IdentityService", "updatedIdentity", "tryPromise", "updateProfile", "identityKey", "toHex", "profile", "print", "printIdentity", "update", "make", "text", "pipe", "withDescription", "halo", "make", "pipe", "withDescription", "withSubcommands", "create", "credential", "identity", "keys", "recover", "seed", "update", "Command", "Command", "Options", "FileSystem", "Path", "Console", "Effect", "Option", "Record", "CommandConfig", "print", "DX_CONFIG", "getProfileConfigPath", "trim", "FormBuilder", "printProfileCreated", "name", "path", "FormBuilder", "make", "title", "pipe", "set", "build", "printProfileDeleted", "printProfileReset", "profile", "printProfile", "isCurrent", "fullPath", "storagePath", "edge", "TEMPLATES", "default", "trim", "main", "dev", "local", "create", "make", "template", "choice", "keys", "pipe", "withDescription", "withDefault", "name", "text", "optional", "fnUntraced", "json", "CommandConfig", "fs", "FileSystem", "path", "Path", "profileName", "getOrElse", "configPath", "getProfileConfigPath", "DX_CONFIG", "exists", "Error", "makeDirectory", "dirname", "recursive", "writeFileString", "log", "JSON", "stringify", "print", "printProfileCreated", "Command", "Options", "FileSystem", "Console", "Effect", "Option", "CommandConfig", "print", "DX_CONFIG", "getProfileConfigPath", "del", "make", "name", "text", "pipe", "withDescription", "optional", "fnUntraced", "json", "CommandConfig", "fs", "FileSystem", "profileName", "getOrElse", "configPath", "getProfileConfigPath", "DX_CONFIG", "pluginsPath", "remove", "ignore", "log", "JSON", "stringify", "deleted", "print", "printProfileDeleted", "Command", "Options", "Prompt", "FileSystem", "Path", "Console", "Effect", "Option", "CommandConfig", "ConfigService", "log", "handler", "fn", "file", "dataDir", "force", "dataDirValue", "getOrUndefined", "json", "profile", "fs", "path", "config", "createLevel", "createStorageObjects", "importProfileData", "decodeProfileArchive", "promise", "storageConfig", "confirmed", "confirm", "message", "initial", "pipe", "run", "values", "runtime", "client", "storage", "fullPath", "resolve", "persistent", "dataRoot", "exists", "error", "JSON", "stringify", "data", "readFile", "archive", "length", "level", "tryPromise", "try", "catch", "Error", "success", "entries", "importCommand", "make", "text", "withDescription", "withAlias", "optional", "boolean", "ifPresent", "Command", "Options", "FileSystem", "Console", "Effect", "CommandConfig", "FormBuilder", "print", "ProfileArchiveEntryType", "arrayToBuffer", "handler", "fn", "file", "storage", "json", "CommandConfig", "fs", "FileSystem", "decodeProfileArchive", "promise", "data", "readFile", "archive", "log", "JSON", "stringify", "meta", "builder", "FormBuilder", "make", "title", "pipe", "when", "each", "Object", "entries", "key", "value", "set", "String", "build", "print", "entry", "arrayToBuffer", "toString", "slice", "ProfileArchiveEntryType", "type", "inspect", "text", "withDescription", "withAlias", "boolean", "ifPresent", "Command", "FileSystem", "Path", "Console", "Effect", "Yaml", "CommandConfig", "printList", "Config", "DX_CONFIG", "DX_DATA", "getProfilePath", "list", "make", "fnUntraced", "profile", "currentProfile", "CommandConfig", "fs", "FileSystem", "path", "Path", "profileDir", "join", "DX_CONFIG", "entries", "readDirectory", "profileFiles", "filter", "entry", "endsWith", "profiles", "forEach", "filename", "gen", "name", "slice", "configPath", "configContent", "readFileString", "pipe", "catchTag", "succeed", "configValues", "parse", "config", "Config", "isCurrent", "fullPath", "storagePath", "getProfilePath", "runtime", "client", "storage", "dataRoot", "DX_DATA", "edge", "values", "services", "url", "json", "log", "JSON", "stringify", "formatted", "map", "printProfile", "printList", "Command", "Options", "Prompt", "FileSystem", "Console", "Effect", "CommandConfig", "print", "DX_DATA", "getProfilePath", "ConfigService", "reset", "make", "force", "boolean", "ifPresent", "pipe", "withDescription", "fnUntraced", "fs", "FileSystem", "config", "ConfigService", "json", "profile", "CommandConfig", "path", "values", "runtime", "client", "storage", "dataRoot", "getProfilePath", "DX_DATA", "confirmed", "confirm", "message", "initial", "remove", "recursive", "log", "JSON", "stringify", "print", "printProfileReset", "profile", "make", "pipe", "withDescription", "withSubcommands", "create", "del", "importCommand", "inspect", "list", "reset", "ClientPlugin", "Plugin", "define", "meta", "pipe", "AppPlugin", "addCommandModule", "commands", "config", "device", "edge", "halo", "profile", "addOperationHandlerModule", "activate", "OperationHandler", "addModule", "options", "id", "Capability", "getModuleTag", "Client", "activatesOn", "ActivationEvents", "Startup", "activatesAfter", "ClientEvents", "ClientReady", "activatesBefore", "AppActivationEvents", "SetupSchema", "SchemaDefs", "make"]
7
7
  }
@@ -0,0 +1,34 @@
1
+ import {
2
+ CreateAgent
3
+ } from "./chunk-M43LJQ5U.mjs";
4
+ import {
5
+ ClientCapabilities
6
+ } from "./chunk-WNJRYPGG.mjs";
7
+ import "./chunk-J5LGTIGS.mjs";
8
+
9
+ // src/operations/create-agent.ts
10
+ import * as Effect from "effect/Effect";
11
+ import { Capability } from "@dxos/app-framework";
12
+ import { invariant } from "@dxos/invariant";
13
+ import { Operation } from "@dxos/operation";
14
+ var __dxlog_file = "/__w/dxos/dxos/packages/plugins/plugin-client/src/operations/create-agent.ts";
15
+ var handler = CreateAgent.pipe(Operation.withHandler(Effect.fnUntraced(function* () {
16
+ const client = yield* Capability.get(ClientCapabilities.Client);
17
+ invariant(client.services.services.EdgeAgentService, "Missing EdgeAgentService", {
18
+ F: __dxlog_file,
19
+ L: 19,
20
+ S: this,
21
+ A: [
22
+ "client.services.services.EdgeAgentService",
23
+ "'Missing EdgeAgentService'"
24
+ ]
25
+ });
26
+ yield* Effect.promise(() => client.services.services.EdgeAgentService.createAgent(void 0, {
27
+ timeout: 1e4
28
+ }));
29
+ })));
30
+ var create_agent_default = handler;
31
+ export {
32
+ create_agent_default as default
33
+ };
34
+ //# sourceMappingURL=create-agent-WXBNGUBQ.mjs.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../src/operations/create-agent.ts"],
4
+ "sourcesContent": ["//\n// Copyright 2025 DXOS.org\n//\n\nimport * as Effect from 'effect/Effect';\n\nimport { Capability } from '@dxos/app-framework';\nimport { invariant } from '@dxos/invariant';\nimport { Operation } from '@dxos/operation';\n\nimport { CreateAgent } from './definitions';\n\nimport { ClientCapabilities } from '../types';\n\nconst handler: Operation.WithHandler<typeof CreateAgent> = CreateAgent.pipe(\n Operation.withHandler(\n Effect.fnUntraced(function* () {\n const client = yield* Capability.get(ClientCapabilities.Client);\n invariant(client.services.services.EdgeAgentService, 'Missing EdgeAgentService');\n yield* Effect.promise(() =>\n client.services.services.EdgeAgentService!.createAgent(undefined, { timeout: 10_000 }),\n );\n }),\n ),\n);\n\nexport default handler;\n"],
5
+ "mappings": ";;;;;;;;;AAIA,YAAYA,YAAY;AAExB,SAASC,kBAAkB;AAC3B,SAASC,iBAAiB;AAC1B,SAASC,iBAAiB;;AAM1B,IAAMC,UAAqDC,YAAYC,KACrEC,UAAUC,YACDC,kBAAW,aAAA;AAChB,QAAMC,SAAS,OAAOC,WAAWC,IAAIC,mBAAmBC,MAAM;AAC9DC,YAAUL,OAAOM,SAASA,SAASC,kBAAkB,4BAAA;;;;;;;;;AACrD,SAAcC,eAAQ,MACpBR,OAAOM,SAASA,SAASC,iBAAkBE,YAAYC,QAAW;IAAEC,SAAS;EAAO,CAAA,CAAA;AAExF,CAAA,CAAA,CAAA;AAIJ,IAAA,uBAAejB;",
6
+ "names": ["Effect", "Capability", "invariant", "Operation", "handler", "CreateAgent", "pipe", "Operation", "withHandler", "fnUntraced", "client", "Capability", "get", "ClientCapabilities", "Client", "invariant", "services", "EdgeAgentService", "promise", "createAgent", "undefined", "timeout"]
7
+ }
@@ -0,0 +1,30 @@
1
+ import {
2
+ CreateIdentity
3
+ } from "./chunk-M43LJQ5U.mjs";
4
+ import {
5
+ ClientCapabilities,
6
+ ClientEvents
7
+ } from "./chunk-WNJRYPGG.mjs";
8
+ import "./chunk-J5LGTIGS.mjs";
9
+
10
+ // src/operations/create-identity.ts
11
+ import * as Effect from "effect/Effect";
12
+ import { Capabilities, Capability } from "@dxos/app-framework";
13
+ import { runAndForwardErrors } from "@dxos/effect";
14
+ import { Operation } from "@dxos/operation";
15
+ import { ObservabilityOperation } from "@dxos/plugin-observability/operations";
16
+ var handler = CreateIdentity.pipe(Operation.withHandler(Effect.fnUntraced(function* (profile) {
17
+ const manager = yield* Capability.get(Capabilities.PluginManager);
18
+ const client = yield* Capability.get(ClientCapabilities.Client);
19
+ const data = yield* Effect.promise(() => client.halo.createIdentity(profile));
20
+ yield* Effect.promise(() => runAndForwardErrors(manager.activate(ClientEvents.IdentityCreated)));
21
+ yield* Operation.schedule(ObservabilityOperation.SendEvent, {
22
+ name: "identity.create"
23
+ });
24
+ return data;
25
+ })));
26
+ var create_identity_default = handler;
27
+ export {
28
+ create_identity_default as default
29
+ };
30
+ //# sourceMappingURL=create-identity-LIE4RCXJ.mjs.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../src/operations/create-identity.ts"],
4
+ "sourcesContent": ["//\n// Copyright 2025 DXOS.org\n//\n\nimport * as Effect from 'effect/Effect';\n\nimport { Capabilities, Capability } from '@dxos/app-framework';\nimport { runAndForwardErrors } from '@dxos/effect';\nimport { Operation } from '@dxos/operation';\nimport { ObservabilityOperation } from '@dxos/plugin-observability/operations';\n\nimport { CreateIdentity } from './definitions';\n\nimport { ClientEvents } from '../types';\nimport { ClientCapabilities } from '../types';\n\nconst handler: Operation.WithHandler<typeof CreateIdentity> = CreateIdentity.pipe(\n Operation.withHandler(\n Effect.fnUntraced(function* (profile) {\n const manager = yield* Capability.get(Capabilities.PluginManager);\n const client = yield* Capability.get(ClientCapabilities.Client);\n const data = yield* Effect.promise(() => client.halo.createIdentity(profile));\n yield* Effect.promise(() => runAndForwardErrors(manager.activate(ClientEvents.IdentityCreated)));\n yield* Operation.schedule(ObservabilityOperation.SendEvent, { name: 'identity.create' });\n return data;\n }),\n ),\n);\n\nexport default handler;\n"],
5
+ "mappings": ";;;;;;;;;;AAIA,YAAYA,YAAY;AAExB,SAASC,cAAcC,kBAAkB;AACzC,SAASC,2BAA2B;AACpC,SAASC,iBAAiB;AAC1B,SAASC,8BAA8B;AAOvC,IAAMC,UAAwDC,eAAeC,KAC3EC,UAAUC,YACDC,kBAAW,WAAWC,SAAO;AAClC,QAAMC,UAAU,OAAOC,WAAWC,IAAIC,aAAaC,aAAa;AAChE,QAAMC,SAAS,OAAOJ,WAAWC,IAAII,mBAAmBC,MAAM;AAC9D,QAAMC,OAAO,OAAcC,eAAQ,MAAMJ,OAAOK,KAAKC,eAAeZ,OAAAA,CAAAA;AACpE,SAAcU,eAAQ,MAAMG,oBAAoBZ,QAAQa,SAASC,aAAaC,eAAe,CAAA,CAAA;AAC7F,SAAOnB,UAAUoB,SAASC,uBAAuBC,WAAW;IAAEC,MAAM;EAAkB,CAAA;AACtF,SAAOX;AACT,CAAA,CAAA,CAAA;AAIJ,IAAA,0BAAef;",
6
+ "names": ["Effect", "Capabilities", "Capability", "runAndForwardErrors", "Operation", "ObservabilityOperation", "handler", "CreateIdentity", "pipe", "Operation", "withHandler", "fnUntraced", "profile", "manager", "Capability", "get", "Capabilities", "PluginManager", "client", "ClientCapabilities", "Client", "data", "promise", "halo", "createIdentity", "runAndForwardErrors", "activate", "ClientEvents", "IdentityCreated", "schedule", "ObservabilityOperation", "SendEvent", "name"]
7
+ }