@dxos/plugin-client 0.8.4-main.21d9917 → 0.8.4-main.2244d791bb

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (104) hide show
  1. package/dist/lib/browser/{app-graph-builder-3FGBMLTF.mjs → app-graph-builder-DTETNB5U.mjs} +4 -3
  2. package/dist/lib/browser/app-graph-builder-DTETNB5U.mjs.map +7 -0
  3. package/dist/lib/browser/{chunk-F7H2Y3Z2.mjs → chunk-MY6BJCB6.mjs} +4 -4
  4. package/dist/lib/browser/cli/index.mjs +22 -21
  5. package/dist/lib/browser/cli/index.mjs.map +3 -3
  6. package/dist/lib/browser/{client-IX5LMWV4.mjs → client-XOQQ5POJ.mjs} +3 -3
  7. package/dist/lib/browser/client-XOQQ5POJ.mjs.map +7 -0
  8. package/dist/lib/browser/index.mjs +20 -19
  9. package/dist/lib/browser/index.mjs.map +3 -3
  10. package/dist/lib/browser/meta.json +1 -1
  11. package/dist/lib/browser/{migrations-3EBTAW3N.mjs → migrations-YNQ7L5GT.mjs} +4 -4
  12. package/dist/lib/browser/migrations-YNQ7L5GT.mjs.map +7 -0
  13. package/dist/lib/browser/{operation-resolver-2NT3ISVP.mjs → operation-resolver-N4YCJ4KS.mjs} +18 -17
  14. package/dist/lib/browser/operation-resolver-N4YCJ4KS.mjs.map +7 -0
  15. package/dist/lib/browser/{react-context-4UABG3GP.mjs → react-context-FDXHIBZL.mjs} +4 -4
  16. package/dist/lib/browser/react-context-FDXHIBZL.mjs.map +7 -0
  17. package/dist/lib/browser/{react-surface-RSQ74XCT.mjs → react-surface-ZP3FLVRS.mjs} +50 -49
  18. package/dist/lib/browser/react-surface-ZP3FLVRS.mjs.map +7 -0
  19. package/dist/lib/browser/{schema-defs-O7VLP745.mjs → schema-defs-AYXOYD2M.mjs} +6 -5
  20. package/dist/lib/browser/schema-defs-AYXOYD2M.mjs.map +7 -0
  21. package/dist/lib/node-esm/{app-graph-builder-2PIYVUNC.mjs → app-graph-builder-PFKVFRXI.mjs} +4 -3
  22. package/dist/lib/node-esm/app-graph-builder-PFKVFRXI.mjs.map +7 -0
  23. package/dist/lib/node-esm/{chunk-BCELGXRI.mjs → chunk-MUOMX53G.mjs} +4 -4
  24. package/dist/lib/node-esm/cli/index.mjs +22 -21
  25. package/dist/lib/node-esm/cli/index.mjs.map +3 -3
  26. package/dist/lib/node-esm/{client-FFPK5UFP.mjs → client-3YIMWKR7.mjs} +3 -3
  27. package/dist/lib/node-esm/client-3YIMWKR7.mjs.map +7 -0
  28. package/dist/lib/node-esm/index.mjs +20 -19
  29. package/dist/lib/node-esm/index.mjs.map +3 -3
  30. package/dist/lib/node-esm/meta.json +1 -1
  31. package/dist/lib/node-esm/{migrations-WSZSFGDK.mjs → migrations-ZH5GNG4U.mjs} +4 -4
  32. package/dist/lib/node-esm/migrations-ZH5GNG4U.mjs.map +7 -0
  33. package/dist/lib/node-esm/{operation-resolver-VW5R2BE4.mjs → operation-resolver-CHGWI5P2.mjs} +18 -17
  34. package/dist/lib/node-esm/operation-resolver-CHGWI5P2.mjs.map +7 -0
  35. package/dist/lib/node-esm/{react-context-UVXMGPW4.mjs → react-context-7Z2TVUTV.mjs} +4 -4
  36. package/dist/lib/node-esm/react-context-7Z2TVUTV.mjs.map +7 -0
  37. package/dist/lib/node-esm/{react-surface-KBHANGGC.mjs → react-surface-BHJMHIMH.mjs} +50 -49
  38. package/dist/lib/node-esm/react-surface-BHJMHIMH.mjs.map +7 -0
  39. package/dist/lib/node-esm/{schema-defs-QLRGBIKY.mjs → schema-defs-TV2SCKSH.mjs} +6 -5
  40. package/dist/lib/node-esm/schema-defs-TV2SCKSH.mjs.map +7 -0
  41. package/dist/types/src/ClientPlugin.d.ts.map +1 -1
  42. package/dist/types/src/capabilities/app-graph-builder/app-graph-builder.d.ts.map +1 -1
  43. package/dist/types/src/capabilities/client/client.d.ts.map +1 -1
  44. package/dist/types/src/capabilities/client/index.d.ts +1 -0
  45. package/dist/types/src/capabilities/client/index.d.ts.map +1 -1
  46. package/dist/types/src/capabilities/migrations/migrations.d.ts.map +1 -1
  47. package/dist/types/src/capabilities/operation-resolver/index.d.ts +1 -1
  48. package/dist/types/src/capabilities/operation-resolver/index.d.ts.map +1 -1
  49. package/dist/types/src/capabilities/operation-resolver/operation-resolver.d.ts +2 -2
  50. package/dist/types/src/capabilities/operation-resolver/operation-resolver.d.ts.map +1 -1
  51. package/dist/types/src/capabilities/react-context/react-context.d.ts.map +1 -1
  52. package/dist/types/src/capabilities/react-surface/index.d.ts +1 -1
  53. package/dist/types/src/capabilities/react-surface/index.d.ts.map +1 -1
  54. package/dist/types/src/capabilities/react-surface/react-surface.d.ts +2 -2
  55. package/dist/types/src/capabilities/react-surface/react-surface.d.ts.map +1 -1
  56. package/dist/types/src/capabilities/schema-defs/schema-defs.d.ts.map +1 -1
  57. package/dist/types/src/cli/commands/halo/create/create.d.ts.map +1 -1
  58. package/dist/types/src/cli/plugin.d.ts.map +1 -1
  59. package/dist/types/src/components/DevicesContainer.d.ts.map +1 -1
  60. package/dist/types/src/components/DevicesContainer.stories.d.ts +1 -1
  61. package/dist/types/src/components/DevicesContainer.stories.d.ts.map +1 -1
  62. package/dist/types/src/components/ProfileContainer.d.ts.map +1 -1
  63. package/dist/types/src/components/ResetDialog.d.ts.map +1 -1
  64. package/dist/types/src/components/ResetDialog.stories.d.ts +1 -1
  65. package/dist/types/src/components/ResetDialog.stories.d.ts.map +1 -1
  66. package/dist/types/tsconfig.tsbuildinfo +1 -1
  67. package/package.json +35 -34
  68. package/src/ClientPlugin.ts +9 -8
  69. package/src/capabilities/app-graph-builder/app-graph-builder.ts +3 -2
  70. package/src/capabilities/client/client.ts +2 -2
  71. package/src/capabilities/migrations/migrations.ts +3 -3
  72. package/src/capabilities/operation-resolver/operation-resolver.ts +10 -9
  73. package/src/capabilities/react-context/react-context.tsx +3 -3
  74. package/src/capabilities/react-surface/react-surface.tsx +9 -8
  75. package/src/capabilities/schema-defs/schema-defs.ts +5 -4
  76. package/src/cli/commands/halo/create/create.ts +2 -2
  77. package/src/cli/plugin.ts +7 -6
  78. package/src/components/DevicesContainer.stories.tsx +3 -2
  79. package/src/components/DevicesContainer.tsx +26 -36
  80. package/src/components/JoinDialog.tsx +3 -3
  81. package/src/components/ProfileContainer.stories.tsx +1 -1
  82. package/src/components/ProfileContainer.tsx +17 -25
  83. package/src/components/RecoveryCodeDialog.stories.tsx +1 -1
  84. package/src/components/RecoveryCredentialsContainer.stories.tsx +1 -1
  85. package/src/components/RecoveryCredentialsContainer.tsx +14 -14
  86. package/src/components/ResetDialog.stories.tsx +22 -10
  87. package/src/components/ResetDialog.tsx +11 -8
  88. package/src/translations.ts +1 -1
  89. package/dist/lib/browser/app-graph-builder-3FGBMLTF.mjs.map +0 -7
  90. package/dist/lib/browser/client-IX5LMWV4.mjs.map +0 -7
  91. package/dist/lib/browser/migrations-3EBTAW3N.mjs.map +0 -7
  92. package/dist/lib/browser/operation-resolver-2NT3ISVP.mjs.map +0 -7
  93. package/dist/lib/browser/react-context-4UABG3GP.mjs.map +0 -7
  94. package/dist/lib/browser/react-surface-RSQ74XCT.mjs.map +0 -7
  95. package/dist/lib/browser/schema-defs-O7VLP745.mjs.map +0 -7
  96. package/dist/lib/node-esm/app-graph-builder-2PIYVUNC.mjs.map +0 -7
  97. package/dist/lib/node-esm/client-FFPK5UFP.mjs.map +0 -7
  98. package/dist/lib/node-esm/migrations-WSZSFGDK.mjs.map +0 -7
  99. package/dist/lib/node-esm/operation-resolver-VW5R2BE4.mjs.map +0 -7
  100. package/dist/lib/node-esm/react-context-UVXMGPW4.mjs.map +0 -7
  101. package/dist/lib/node-esm/react-surface-KBHANGGC.mjs.map +0 -7
  102. package/dist/lib/node-esm/schema-defs-QLRGBIKY.mjs.map +0 -7
  103. /package/dist/lib/browser/{chunk-F7H2Y3Z2.mjs.map → chunk-MY6BJCB6.mjs.map} +0 -0
  104. /package/dist/lib/node-esm/{chunk-BCELGXRI.mjs.map → chunk-MUOMX53G.mjs.map} +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\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 // TODO(wittjosiah): Could some of these commands make use of operations?\n AppPlugin.addCommandModule({ commands: [config, device, edge, halo, profile] }),\n AppPlugin.addOperationResolverModule({ activate: () => OperationResolver() }),\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';\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 { 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';\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(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 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": ["ActivationEvents", "Capability", "Plugin", "AppActivationEvents", "AppPlugin", "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", "Capabilities", "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", "Capabilities", "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", "AppPlugin", "addCommandModule", "commands", "config", "device", "edge", "halo", "profile", "addOperationResolverModule", "activate", "OperationResolver", "addModule", "options", "id", "Capability", "getModuleTag", "Client", "activatesOn", "ActivationEvents", "Startup", "activatesAfter", "ClientEvents", "ClientReady", "activatesBefore", "AppActivationEvents", "SetupSchema", "SchemaDefs", "make"]
7
7
  }
@@ -6,7 +6,7 @@ import {
6
6
 
7
7
  // src/capabilities/client/client.ts
8
8
  import * as Effect from "effect/Effect";
9
- import { Capability, Common, Plugin } from "@dxos/app-framework";
9
+ import { Capabilities, Capability, Plugin } from "@dxos/app-framework";
10
10
  import { Client, ClientService } from "@dxos/client";
11
11
  import { runAndForwardErrors } from "@dxos/effect";
12
12
  import { log } from "@dxos/log";
@@ -78,10 +78,10 @@ var client_default = Capability.makeModule(Effect.fnUntraced(function* (props) {
78
78
  subscription.unsubscribe();
79
79
  yield* Effect.tryPromise(() => client.destroy());
80
80
  })),
81
- Capability.contributes(Common.Capability.Layer, ClientService.fromClient(client))
81
+ Capability.contributes(Capabilities.Layer, ClientService.fromClient(client))
82
82
  ];
83
83
  }));
84
84
  export {
85
85
  client_default as default
86
86
  };
87
- //# sourceMappingURL=client-FFPK5UFP.mjs.map
87
+ //# sourceMappingURL=client-3YIMWKR7.mjs.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../src/capabilities/client/client.ts"],
4
+ "sourcesContent": ["//\n// Copyright 2025 DXOS.org\n//\n\nimport * as Effect from 'effect/Effect';\n\nimport { Capabilities, Capability, Plugin } from '@dxos/app-framework';\nimport { Client, ClientService } from '@dxos/client';\nimport { runAndForwardErrors } from '@dxos/effect';\nimport { log } from '@dxos/log';\n\nimport { ClientEvents } from '../../types';\nimport { ClientCapabilities, type ClientPluginOptions } from '../../types';\n\ntype ClientCapabilityOptions = Omit<ClientPluginOptions, 'appKey' | 'invitationUrl' | 'invitationParam' | 'onReset'>;\n\nexport default Capability.makeModule(\n Effect.fnUntraced(function* (props?: ClientCapabilityOptions) {\n const { onClientInitialized, onSpacesReady, ...options } = props!;\n const capabilityManager = yield* Capability.Service;\n const pluginManager = yield* Plugin.Service;\n\n log('creating client');\n const client = new Client(options);\n log('initializing client');\n yield* Effect.tryPromise(() => client.initialize());\n log('initialized client');\n if (onClientInitialized) {\n yield* onClientInitialized({ client }).pipe(\n Effect.provideService(Capability.Service, capabilityManager),\n Effect.provideService(Plugin.Service, pluginManager),\n );\n }\n log('called client initialized callback');\n\n // TODO(wittjosiah): Remove. This is a hack to get the app to boot with the new identity after a reset.\n client.reloaded.on(() => {\n client.halo.identity.subscribe(async (identity) => {\n if (identity) {\n window.location.href = window.location.origin;\n }\n });\n });\n\n // TODO(burdon): The callback isn't called?\n const subscription = client.spaces.isReady.subscribe(async (ready) => {\n if (ready) {\n await Effect.gen(function* () {\n yield* Plugin.activate(ClientEvents.SpacesReady);\n if (onSpacesReady) {\n yield* onSpacesReady({ client });\n }\n }).pipe(\n Effect.provideService(Capability.Service, capabilityManager),\n Effect.provideService(Plugin.Service, pluginManager),\n runAndForwardErrors,\n );\n }\n });\n\n log('client capability ready');\n\n return [\n // TODO(wittjosiah): Try to remove and prefer layer?\n // Perhaps move to using layer has source of truth and add a getter capability for the client.\n Capability.contributes(ClientCapabilities.Client, client, () =>\n Effect.gen(function* () {\n subscription.unsubscribe();\n yield* Effect.tryPromise(() => client.destroy());\n }),\n ),\n Capability.contributes(Capabilities.Layer, ClientService.fromClient(client)),\n ];\n }),\n);\n"],
5
+ "mappings": ";;;;;;;AAIA,YAAYA,YAAY;AAExB,SAASC,cAAcC,YAAYC,cAAc;AACjD,SAASC,QAAQC,qBAAqB;AACtC,SAASC,2BAA2B;AACpC,SAASC,WAAW;;AAOpB,IAAA,iBAAeC,WAAWC,WACjBC,kBAAW,WAAWC,OAA+B;AAC1D,QAAM,EAAEC,qBAAqBC,eAAe,GAAGC,QAAAA,IAAYH;AAC3D,QAAMI,oBAAoB,OAAOP,WAAWQ;AAC5C,QAAMC,gBAAgB,OAAOC,OAAOF;AAEpCG,MAAI,mBAAA,QAAA;;;;;;AACJ,QAAMC,SAAS,IAAIC,OAAOP,OAAAA;AAC1BK,MAAI,uBAAA,QAAA;;;;;;AACJ,SAAcG,kBAAW,MAAMF,OAAOG,WAAU,CAAA;AAChDJ,MAAI,sBAAA,QAAA;;;;;;AACJ,MAAIP,qBAAqB;AACvB,WAAOA,oBAAoB;MAAEQ;IAAO,CAAA,EAAGI,KAC9BC,sBAAejB,WAAWQ,SAASD,iBAAAA,GACnCU,sBAAeP,OAAOF,SAASC,aAAAA,CAAAA;EAE1C;AACAE,MAAI,sCAAA,QAAA;;;;;;AAGJC,SAAOM,SAASC,GAAG,MAAA;AACjBP,WAAOQ,KAAKC,SAASC,UAAU,OAAOD,aAAAA;AACpC,UAAIA,UAAU;AACZE,eAAOC,SAASC,OAAOF,OAAOC,SAASE;MACzC;IACF,CAAA;EACF,CAAA;AAGA,QAAMC,eAAef,OAAOgB,OAAOC,QAAQP,UAAU,OAAOQ,UAAAA;AAC1D,QAAIA,OAAO;AACT,YAAaC,WAAI,aAAA;AACf,eAAOrB,OAAOsB,SAASC,aAAaC,WAAW;AAC/C,YAAI7B,eAAe;AACjB,iBAAOA,cAAc;YAAEO;UAAO,CAAA;QAChC;MACF,CAAA,EAAGI,KACMC,sBAAejB,WAAWQ,SAASD,iBAAAA,GACnCU,sBAAeP,OAAOF,SAASC,aAAAA,GACtC0B,mBAAAA;IAEJ;EACF,CAAA;AAEAxB,MAAI,2BAAA,QAAA;;;;;;AAEJ,SAAO;;;IAGLX,WAAWoC,YAAYC,mBAAmBxB,QAAQD,QAAQ,MACjDmB,WAAI,aAAA;AACTJ,mBAAaW,YAAW;AACxB,aAAcxB,kBAAW,MAAMF,OAAO2B,QAAO,CAAA;IAC/C,CAAA,CAAA;IAEFvC,WAAWoC,YAAYI,aAAaC,OAAOC,cAAcC,WAAW/B,MAAAA,CAAAA;;AAExE,CAAA,CAAA;",
6
+ "names": ["Effect", "Capabilities", "Capability", "Plugin", "Client", "ClientService", "runAndForwardErrors", "log", "Capability", "makeModule", "fnUntraced", "props", "onClientInitialized", "onSpacesReady", "options", "capabilityManager", "Service", "pluginManager", "Plugin", "log", "client", "Client", "tryPromise", "initialize", "pipe", "provideService", "reloaded", "on", "halo", "identity", "subscribe", "window", "location", "href", "origin", "subscription", "spaces", "isReady", "ready", "gen", "activate", "ClientEvents", "SpacesReady", "runAndForwardErrors", "contributes", "ClientCapabilities", "unsubscribe", "destroy", "Capabilities", "Layer", "ClientService", "fromClient"]
7
+ }
@@ -3,7 +3,7 @@ import {
3
3
  Client,
4
4
  OperationResolver,
5
5
  SchemaDefs
6
- } from "./chunk-BCELGXRI.mjs";
6
+ } from "./chunk-MUOMX53G.mjs";
7
7
  import {
8
8
  Account,
9
9
  ClientAction,
@@ -14,23 +14,24 @@ import {
14
14
  } from "./chunk-JAF64TFQ.mjs";
15
15
 
16
16
  // src/ClientPlugin.ts
17
- import { ActivationEvent, Capability as Capability5, Common, Plugin } from "@dxos/app-framework";
17
+ import { ActivationEvent, ActivationEvents, Capability as Capability5, Plugin } from "@dxos/app-framework";
18
+ import { AppActivationEvents, AppPlugin } from "@dxos/app-toolkit";
18
19
 
19
20
  // src/capabilities/app-graph-builder/index.ts
20
21
  import { Capability } from "@dxos/app-framework";
21
- var AppGraphBuilder = Capability.lazy("AppGraphBuilder", () => import("./app-graph-builder-2PIYVUNC.mjs"));
22
+ var AppGraphBuilder = Capability.lazy("AppGraphBuilder", () => import("./app-graph-builder-PFKVFRXI.mjs"));
22
23
 
23
24
  // src/capabilities/migrations/index.ts
24
25
  import { Capability as Capability2 } from "@dxos/app-framework";
25
- var Migrations = Capability2.lazy("Migrations", () => import("./migrations-WSZSFGDK.mjs"));
26
+ var Migrations = Capability2.lazy("Migrations", () => import("./migrations-ZH5GNG4U.mjs"));
26
27
 
27
28
  // src/capabilities/react-context/index.ts
28
29
  import { Capability as Capability3 } from "@dxos/app-framework";
29
- var ReactContext = Capability3.lazy("ReactContext", () => import("./react-context-UVXMGPW4.mjs"));
30
+ var ReactContext = Capability3.lazy("ReactContext", () => import("./react-context-7Z2TVUTV.mjs"));
30
31
 
31
32
  // src/capabilities/react-surface/index.ts
32
33
  import { Capability as Capability4 } from "@dxos/app-framework";
33
- var ReactSurface = Capability4.lazy("ReactSurface", () => import("./react-surface-KBHANGGC.mjs"));
34
+ var ReactSurface = Capability4.lazy("ReactSurface", () => import("./react-surface-BHJMHIMH.mjs"));
34
35
 
35
36
  // src/translations.ts
36
37
  import { translations as shellTranslations } from "@dxos/shell/react";
@@ -57,7 +58,7 @@ var pluginTranslations = [
57
58
  "display name description": "Your name as it appears in the app.",
58
59
  "display name input placeholder": "Enter a name",
59
60
  "icon label": "Avatar",
60
- "icon description": "The emoji used to represent you in the app.",
61
+ "icon description": "The emoji used to represent the user.",
61
62
  "hue label": "Color",
62
63
  "hue description": "The color used to represent you in the app, including as your avatar\u2019s background, your cursor as it appears to others, and the messages you send in group threads.",
63
64
  "did label": "DID",
@@ -91,10 +92,18 @@ var translations = [
91
92
  ];
92
93
 
93
94
  // src/ClientPlugin.ts
94
- var ClientPlugin = Plugin.define(meta).pipe(Plugin.addModule((options) => {
95
+ var ClientPlugin = Plugin.define(meta).pipe(AppPlugin.addAppGraphModule({
96
+ activate: AppGraphBuilder
97
+ }), AppPlugin.addOperationResolverModule({
98
+ activate: OperationResolver
99
+ }), AppPlugin.addReactContextModule({
100
+ activate: ReactContext
101
+ }), AppPlugin.addTranslationsModule({
102
+ translations
103
+ }), Plugin.addModule((options) => {
95
104
  return {
96
105
  id: Capability5.getModuleTag(Client),
97
- activatesOn: ActivationEvent.oneOf(Common.ActivationEvent.Startup, Common.ActivationEvent.SetupAppGraph),
106
+ activatesOn: ActivationEvent.oneOf(ActivationEvents.Startup, AppActivationEvents.SetupAppGraph),
98
107
  activatesAfter: [
99
108
  ClientEvents.ClientReady
100
109
  ],
@@ -103,7 +112,7 @@ var ClientPlugin = Plugin.define(meta).pipe(Plugin.addModule((options) => {
103
112
  }), Plugin.addModule({
104
113
  activatesOn: ClientEvents.ClientReady,
105
114
  activatesBefore: [
106
- Common.ActivationEvent.SetupSchema
115
+ AppActivationEvents.SetupSchema
107
116
  ],
108
117
  activate: SchemaDefs
109
118
  }), Plugin.addModule({
@@ -112,8 +121,6 @@ var ClientPlugin = Plugin.define(meta).pipe(Plugin.addModule((options) => {
112
121
  ClientEvents.SetupMigration
113
122
  ],
114
123
  activate: Migrations
115
- }), Common.Plugin.addReactContextModule({
116
- activate: ReactContext
117
124
  }), Plugin.addModule(({ invitationUrl = window.location.origin, invitationProp = "deviceInvitationCode", onReset }) => {
118
125
  const createInvitationUrl = (invitationCode) => {
119
126
  const baseUrl = new URL(invitationUrl);
@@ -122,18 +129,12 @@ var ClientPlugin = Plugin.define(meta).pipe(Plugin.addModule((options) => {
122
129
  };
123
130
  return {
124
131
  id: Capability5.getModuleTag(ReactSurface),
125
- activatesOn: Common.ActivationEvent.SetupReactSurface,
132
+ activatesOn: ActivationEvents.SetupReactSurface,
126
133
  activate: () => ReactSurface({
127
134
  createInvitationUrl,
128
135
  onReset
129
136
  })
130
137
  };
131
- }), Common.Plugin.addAppGraphModule({
132
- activate: AppGraphBuilder
133
- }), Common.Plugin.addOperationResolverModule({
134
- activate: OperationResolver
135
- }), Common.Plugin.addTranslationsModule({
136
- translations
137
138
  }), Plugin.make);
138
139
  export {
139
140
  Account,