@dxos/client-services 0.1.57-main.e87098f → 0.1.57

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 (40) hide show
  1. package/dist/lib/browser/{chunk-WYYB3FSH.mjs → chunk-ZOFA377V.mjs} +222 -133
  2. package/dist/lib/browser/chunk-ZOFA377V.mjs.map +7 -0
  3. package/dist/lib/browser/index.mjs +17 -17
  4. package/dist/lib/browser/index.mjs.map +3 -3
  5. package/dist/lib/browser/meta.json +1 -1
  6. package/dist/lib/browser/packlets/testing/index.mjs +2 -2
  7. package/dist/lib/node/index.cjs +251 -162
  8. package/dist/lib/node/index.cjs.map +3 -3
  9. package/dist/lib/node/meta.json +1 -1
  10. package/dist/lib/node/packlets/testing/index.cjs +235 -146
  11. package/dist/lib/node/packlets/testing/index.cjs.map +3 -3
  12. package/dist/types/src/packlets/devtools/network.d.ts.map +1 -1
  13. package/dist/types/src/packlets/identity/identity-manager.d.ts +1 -1
  14. package/dist/types/src/packlets/identity/identity-manager.d.ts.map +1 -1
  15. package/dist/types/src/packlets/services/service-context.d.ts.map +1 -1
  16. package/dist/types/src/packlets/services/service-host.d.ts +1 -0
  17. package/dist/types/src/packlets/services/service-host.d.ts.map +1 -1
  18. package/dist/types/src/packlets/spaces/data-space-manager.d.ts.map +1 -1
  19. package/dist/types/src/packlets/spaces/data-space.d.ts +1 -0
  20. package/dist/types/src/packlets/spaces/data-space.d.ts.map +1 -1
  21. package/dist/types/src/packlets/spaces/spaces-service.d.ts.map +1 -1
  22. package/dist/types/src/packlets/vault/worker-runtime.d.ts +2 -2
  23. package/dist/types/src/packlets/vault/worker-runtime.d.ts.map +1 -1
  24. package/dist/types/src/version.d.ts +1 -1
  25. package/dist/types/src/version.d.ts.map +1 -1
  26. package/package.json +35 -34
  27. package/src/packlets/devtools/network.ts +5 -1
  28. package/src/packlets/identity/identity-manager.test.ts +4 -0
  29. package/src/packlets/identity/identity-manager.ts +5 -3
  30. package/src/packlets/services/service-context.test.ts +2 -2
  31. package/src/packlets/services/service-context.ts +3 -0
  32. package/src/packlets/services/service-host.ts +18 -2
  33. package/src/packlets/spaces/data-space-manager.ts +11 -8
  34. package/src/packlets/spaces/data-space.ts +41 -23
  35. package/src/packlets/spaces/spaces-service.ts +5 -3
  36. package/src/packlets/vault/iframe-host-runtime.ts +2 -2
  37. package/src/packlets/vault/iframe-proxy-runtime.ts +2 -2
  38. package/src/packlets/vault/worker-runtime.ts +9 -9
  39. package/src/version.ts +5 -1
  40. package/dist/lib/browser/chunk-WYYB3FSH.mjs.map +0 -7
@@ -107,6 +107,7 @@ var subscribeToSignal = ({ signalManager }) => new Stream2(({ next }) => {
107
107
  signalManager.swarmEvent.on(ctx, (swarmEvent) => {
108
108
  next({
109
109
  swarmEvent: swarmEvent.swarmEvent,
110
+ topic: swarmEvent.topic.asUint8Array(),
110
111
  receivedAt: /* @__PURE__ */ new Date()
111
112
  });
112
113
  });
@@ -343,7 +344,7 @@ import { Context as Context2 } from "@dxos/context";
343
344
  import { verifyCredential } from "@dxos/credentials";
344
345
  import { log } from "@dxos/log";
345
346
  import { schema } from "@dxos/protocols";
346
- var __dxlog_file = "/home/runner/work/dxos/dxos/packages/sdk/client-services/src/packlets/identity/authenticator.ts";
347
+ var __dxlog_file = "/mnt/ramdisk/work/packages/sdk/client-services/src/packlets/identity/authenticator.ts";
347
348
  var Credential = schema.getCodecForType("dxos.halo.credentials.Credential");
348
349
  var createAuthProvider = (signer) => async (nonce) => {
349
350
  const credential = await signer.createCredential({
@@ -473,7 +474,7 @@ function _ts_decorate(decorators, target, key, desc) {
473
474
  r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
474
475
  return c > 3 && r && Object.defineProperty(target, key, r), r;
475
476
  }
476
- var __dxlog_file2 = "/home/runner/work/dxos/dxos/packages/sdk/client-services/src/packlets/identity/identity.ts";
477
+ var __dxlog_file2 = "/mnt/ramdisk/work/packages/sdk/client-services/src/packlets/identity/identity.ts";
477
478
  var Identity = class Identity2 {
478
479
  constructor({ space, signer, identityKey, deviceKey }) {
479
480
  this.stateUpdate = new Event();
@@ -646,7 +647,7 @@ function _ts_decorate2(decorators, target, key, desc) {
646
647
  r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
647
648
  return c > 3 && r && Object.defineProperty(target, key, r), r;
648
649
  }
649
- var __dxlog_file3 = "/home/runner/work/dxos/dxos/packages/sdk/client-services/src/packlets/identity/identity-manager.ts";
650
+ var __dxlog_file3 = "/mnt/ramdisk/work/packages/sdk/client-services/src/packlets/identity/identity-manager.ts";
650
651
  var IdentityManager = class IdentityManager2 {
651
652
  // TODO(burdon): IdentityManagerParams.
652
653
  // TODO(dmaretskyi): Perhaps this should take/generate the peerKey outside of an initialized identity.
@@ -670,13 +671,12 @@ var IdentityManager = class IdentityManager2 {
670
671
  S: this,
671
672
  C: (f, a) => f(...a)
672
673
  });
673
- await this._metadataStore.load();
674
674
  const identityRecord = this._metadataStore.getIdentityRecord();
675
675
  log3("identity record", {
676
676
  identityRecord
677
677
  }, {
678
678
  F: __dxlog_file3,
679
- L: 77,
679
+ L: 76,
680
680
  S: this,
681
681
  C: (f, a) => f(...a)
682
682
  });
@@ -689,7 +689,7 @@ var IdentityManager = class IdentityManager2 {
689
689
  displayName: this._identity.profileDocument?.displayName
690
690
  }, {
691
691
  F: __dxlog_file3,
692
- L: 82,
692
+ L: 81,
693
693
  S: this,
694
694
  C: (f, a) => f(...a)
695
695
  });
@@ -699,7 +699,7 @@ var IdentityManager = class IdentityManager2 {
699
699
  id: traceId
700
700
  }), {
701
701
  F: __dxlog_file3,
702
- L: 88,
702
+ L: 87,
703
703
  S: this,
704
704
  C: (f, a) => f(...a)
705
705
  });
@@ -710,7 +710,7 @@ var IdentityManager = class IdentityManager2 {
710
710
  async createIdentity({ displayName } = {}) {
711
711
  invariant2(!this._identity, "Identity already exists.", {
712
712
  F: __dxlog_file3,
713
- L: 96,
713
+ L: 95,
714
714
  S: this,
715
715
  A: [
716
716
  "!this._identity",
@@ -719,7 +719,7 @@ var IdentityManager = class IdentityManager2 {
719
719
  });
720
720
  log3("creating identity...", void 0, {
721
721
  F: __dxlog_file3,
722
- L: 97,
722
+ L: 96,
723
723
  S: this,
724
724
  C: (f, a) => f(...a)
725
725
  });
@@ -740,7 +740,7 @@ var IdentityManager = class IdentityManager2 {
740
740
  const generator = new CredentialGenerator(this._keyring, identityRecord.identityKey, identityRecord.deviceKey);
741
741
  invariant2(identityRecord.haloSpace.genesisFeedKey, "Genesis feed key is required.", {
742
742
  F: __dxlog_file3,
743
- L: 116,
743
+ L: 115,
744
744
  S: this,
745
745
  A: [
746
746
  "identityRecord.haloSpace.genesisFeedKey",
@@ -749,7 +749,7 @@ var IdentityManager = class IdentityManager2 {
749
749
  });
750
750
  invariant2(identityRecord.haloSpace.dataFeedKey, "Data feed key is required.", {
751
751
  F: __dxlog_file3,
752
- L: 117,
752
+ L: 116,
753
753
  S: this,
754
754
  A: [
755
755
  "identityRecord.haloSpace.dataFeedKey",
@@ -784,7 +784,7 @@ var IdentityManager = class IdentityManager2 {
784
784
  displayName: this._identity.profileDocument?.displayName
785
785
  }, {
786
786
  F: __dxlog_file3,
787
- L: 152,
787
+ L: 151,
788
788
  S: this,
789
789
  C: (f, a) => f(...a)
790
790
  });
@@ -794,7 +794,7 @@ var IdentityManager = class IdentityManager2 {
794
794
  deviceKey: identity.deviceKey
795
795
  }, {
796
796
  F: __dxlog_file3,
797
- L: 158,
797
+ L: 157,
798
798
  S: this,
799
799
  C: (f, a) => f(...a)
800
800
  });
@@ -808,13 +808,13 @@ var IdentityManager = class IdentityManager2 {
808
808
  params
809
809
  }, {
810
810
  F: __dxlog_file3,
811
- L: 166,
811
+ L: 165,
812
812
  S: this,
813
813
  C: (f, a) => f(...a)
814
814
  });
815
815
  invariant2(!this._identity, "Identity already exists.", {
816
816
  F: __dxlog_file3,
817
- L: 167,
817
+ L: 166,
818
818
  S: this,
819
819
  A: [
820
820
  "!this._identity",
@@ -842,7 +842,7 @@ var IdentityManager = class IdentityManager2 {
842
842
  displayName: this._identity.profileDocument?.displayName
843
843
  }, {
844
844
  F: __dxlog_file3,
845
- L: 186,
845
+ L: 185,
846
846
  S: this,
847
847
  C: (f, a) => f(...a)
848
848
  });
@@ -852,7 +852,7 @@ var IdentityManager = class IdentityManager2 {
852
852
  deviceKey: identity.deviceKey
853
853
  }, {
854
854
  F: __dxlog_file3,
855
- L: 192,
855
+ L: 191,
856
856
  S: this,
857
857
  C: (f, a) => f(...a)
858
858
  });
@@ -864,7 +864,7 @@ var IdentityManager = class IdentityManager2 {
864
864
  async updateProfile(profile) {
865
865
  invariant2(this._identity, "Identity not initialized.", {
866
866
  F: __dxlog_file3,
867
- L: 200,
867
+ L: 199,
868
868
  S: this,
869
869
  A: [
870
870
  "this._identity",
@@ -889,11 +889,13 @@ var IdentityManager = class IdentityManager2 {
889
889
  receipt.seq
890
890
  ]
891
891
  ]));
892
+ this.stateUpdate.emit();
893
+ return profile;
892
894
  }
893
895
  async _constructIdentity(identityRecord) {
894
896
  invariant2(!this._identity, void 0, {
895
897
  F: __dxlog_file3,
896
- L: 214,
898
+ L: 216,
897
899
  S: this,
898
900
  A: [
899
901
  "!this._identity",
@@ -904,13 +906,13 @@ var IdentityManager = class IdentityManager2 {
904
906
  identityRecord
905
907
  }, {
906
908
  F: __dxlog_file3,
907
- L: 215,
909
+ L: 217,
908
910
  S: this,
909
911
  C: (f, a) => f(...a)
910
912
  });
911
913
  invariant2(identityRecord.haloSpace.controlFeedKey, void 0, {
912
914
  F: __dxlog_file3,
913
- L: 218,
915
+ L: 220,
914
916
  S: this,
915
917
  A: [
916
918
  "identityRecord.haloSpace.controlFeedKey",
@@ -922,7 +924,7 @@ var IdentityManager = class IdentityManager2 {
922
924
  });
923
925
  invariant2(identityRecord.haloSpace.dataFeedKey, void 0, {
924
926
  F: __dxlog_file3,
925
- L: 222,
927
+ L: 224,
926
928
  S: this,
927
929
  A: [
928
930
  "identityRecord.haloSpace.dataFeedKey",
@@ -954,7 +956,7 @@ var IdentityManager = class IdentityManager2 {
954
956
  identityKey: identityRecord.identityKey
955
957
  }, {
956
958
  F: __dxlog_file3,
957
- L: 246,
959
+ L: 248,
958
960
  S: this,
959
961
  C: (f, a) => f(...a)
960
962
  });
@@ -975,7 +977,7 @@ var IdentityManager = class IdentityManager2 {
975
977
  onAuthFailure: () => {
976
978
  log3.warn("auth failure", void 0, {
977
979
  F: __dxlog_file3,
978
- L: 265,
980
+ L: 267,
979
981
  S: this,
980
982
  C: (f, a) => f(...a)
981
983
  });
@@ -985,7 +987,9 @@ var IdentityManager = class IdentityManager2 {
985
987
  }
986
988
  };
987
989
  _ts_decorate2([
988
- Trace.span()
990
+ Trace.span({
991
+ showInBrowserTimeline: true
992
+ })
989
993
  ], IdentityManager.prototype, "open", null);
990
994
  IdentityManager = _ts_decorate2([
991
995
  Trace.resource()
@@ -996,7 +1000,7 @@ import { Stream as Stream7 } from "@dxos/codec-protobuf";
996
1000
  import { signPresentation } from "@dxos/credentials";
997
1001
  import { todo } from "@dxos/debug";
998
1002
  import { invariant as invariant3 } from "@dxos/invariant";
999
- var __dxlog_file4 = "/home/runner/work/dxos/dxos/packages/sdk/client-services/src/packlets/identity/identity-service.ts";
1003
+ var __dxlog_file4 = "/mnt/ramdisk/work/packages/sdk/client-services/src/packlets/identity/identity-service.ts";
1000
1004
  var IdentityServiceImpl = class {
1001
1005
  constructor(_createIdentity, _identityManager, _keyring) {
1002
1006
  this._createIdentity = _createIdentity;
@@ -1065,7 +1069,7 @@ var IdentityServiceImpl = class {
1065
1069
  // packages/sdk/client-services/src/packlets/invitations/device-invitation-protocol.ts
1066
1070
  import { invariant as invariant4 } from "@dxos/invariant";
1067
1071
  import { Invitation } from "@dxos/protocols/proto/dxos/client/services";
1068
- var __dxlog_file5 = "/home/runner/work/dxos/dxos/packages/sdk/client-services/src/packlets/invitations/device-invitation-protocol.ts";
1072
+ var __dxlog_file5 = "/mnt/ramdisk/work/packages/sdk/client-services/src/packlets/invitations/device-invitation-protocol.ts";
1069
1073
  var DeviceInvitationProtocol = class {
1070
1074
  constructor(_keyring, _getIdentity, _acceptIdentity) {
1071
1075
  this._keyring = _keyring;
@@ -1177,7 +1181,7 @@ import { schema as schema2, trace as trace3 } from "@dxos/protocols";
1177
1181
  import { Invitation as Invitation2 } from "@dxos/protocols/proto/dxos/client/services";
1178
1182
  import { AuthenticationResponse, Options } from "@dxos/protocols/proto/dxos/halo/invitations";
1179
1183
  import { RpcExtension } from "@dxos/teleport";
1180
- var __dxlog_file6 = "/home/runner/work/dxos/dxos/packages/sdk/client-services/src/packlets/invitations/invitation-extension.ts";
1184
+ var __dxlog_file6 = "/mnt/ramdisk/work/packages/sdk/client-services/src/packlets/invitations/invitation-extension.ts";
1181
1185
  var OPTIONS_TIMEOUT = 1e4;
1182
1186
  var MAX_OTP_ATTEMPTS = 3;
1183
1187
  var InvitationHostExtension = class extends RpcExtension {
@@ -1508,7 +1512,7 @@ var InvitationGuestExtension = class extends RpcExtension {
1508
1512
  var isAuthenticationRequired = (invitation) => invitation.authMethod !== Invitation2.AuthMethod.NONE;
1509
1513
 
1510
1514
  // packages/sdk/client-services/src/packlets/invitations/invitations-handler.ts
1511
- var __dxlog_file7 = "/home/runner/work/dxos/dxos/packages/sdk/client-services/src/packlets/invitations/invitations-handler.ts";
1515
+ var __dxlog_file7 = "/mnt/ramdisk/work/packages/sdk/client-services/src/packlets/invitations/invitations-handler.ts";
1512
1516
  var InvitationsHandler = class {
1513
1517
  /**
1514
1518
  * @internal
@@ -2067,7 +2071,7 @@ import { Stream as Stream8 } from "@dxos/codec-protobuf";
2067
2071
  import { invariant as invariant7 } from "@dxos/invariant";
2068
2072
  import { log as log6 } from "@dxos/log";
2069
2073
  import { QueryInvitationsResponse } from "@dxos/protocols/proto/dxos/client/services";
2070
- var __dxlog_file8 = "/home/runner/work/dxos/dxos/packages/sdk/client-services/src/packlets/invitations/invitations-service.ts";
2074
+ var __dxlog_file8 = "/mnt/ramdisk/work/packages/sdk/client-services/src/packlets/invitations/invitations-service.ts";
2071
2075
  var InvitationsServiceImpl = class {
2072
2076
  constructor(_invitationsHandler, _getHandler) {
2073
2077
  this._invitationsHandler = _invitationsHandler;
@@ -2252,7 +2256,7 @@ import { writeMessages as writeMessages2 } from "@dxos/feed-store";
2252
2256
  import { invariant as invariant8 } from "@dxos/invariant";
2253
2257
  import { log as log7 } from "@dxos/log";
2254
2258
  import { Invitation as Invitation4 } from "@dxos/protocols/proto/dxos/client/services";
2255
- var __dxlog_file9 = "/home/runner/work/dxos/dxos/packages/sdk/client-services/src/packlets/invitations/space-invitation-protocol.ts";
2259
+ var __dxlog_file9 = "/mnt/ramdisk/work/packages/sdk/client-services/src/packlets/invitations/space-invitation-protocol.ts";
2256
2260
  var SpaceInvitationProtocol = class {
2257
2261
  constructor(_spaceManager, _signingContext, _keyring, _spaceKey) {
2258
2262
  this._spaceManager = _spaceManager;
@@ -2463,7 +2467,7 @@ import { STORAGE_VERSION } from "@dxos/protocols";
2463
2467
  import { SpaceMember } from "@dxos/protocols/proto/dxos/client/services";
2464
2468
 
2465
2469
  // packages/sdk/client-services/src/version.ts
2466
- var DXOS_VERSION = "0.1.57-main.e87098f";
2470
+ var DXOS_VERSION = "0.1.57";
2467
2471
 
2468
2472
  // packages/sdk/client-services/src/packlets/services/platform.ts
2469
2473
  var getPlatform = () => {
@@ -2494,7 +2498,7 @@ var getPlatform = () => {
2494
2498
  };
2495
2499
 
2496
2500
  // packages/sdk/client-services/src/packlets/services/diagnostics.ts
2497
- var __dxlog_file10 = "/home/runner/work/dxos/dxos/packages/sdk/client-services/src/packlets/services/diagnostics.ts";
2501
+ var __dxlog_file10 = "/mnt/ramdisk/work/packages/sdk/client-services/src/packlets/services/diagnostics.ts";
2498
2502
  var DEFAULT_TIMEOUT = 1e3;
2499
2503
  var createDiagnostics = async (clientServices, serviceContext, config) => {
2500
2504
  const diagnostics = {
@@ -2612,7 +2616,7 @@ var getSpaceStats = async (space) => {
2612
2616
  };
2613
2617
 
2614
2618
  // packages/sdk/client-services/src/packlets/spaces/data-space.ts
2615
- import { Event as Event5, scheduleTask as scheduleTask4, synchronized, trackLeaks } from "@dxos/async";
2619
+ import { Event as Event5, scheduleTask as scheduleTask4, sleep as sleep2, synchronized, trackLeaks } from "@dxos/async";
2616
2620
  import { AUTH_TIMEOUT as AUTH_TIMEOUT2 } from "@dxos/client-protocol";
2617
2621
  import { cancelWithContext as cancelWithContext2, Context as Context7 } from "@dxos/context";
2618
2622
  import { timed } from "@dxos/debug";
@@ -2623,6 +2627,7 @@ import { log as log10 } from "@dxos/log";
2623
2627
  import { SpaceState } from "@dxos/protocols/proto/dxos/client/services";
2624
2628
  import { AdmittedFeed as AdmittedFeed3 } from "@dxos/protocols/proto/dxos/halo/credentials";
2625
2629
  import { Timeframe as Timeframe2 } from "@dxos/timeframe";
2630
+ import { trace as trace5 } from "@dxos/tracing";
2626
2631
  import { ComplexSet as ComplexSet2 } from "@dxos/util";
2627
2632
 
2628
2633
  // packages/sdk/client-services/src/packlets/spaces/notarization-plugin.ts
@@ -2634,7 +2639,7 @@ import { log as log9 } from "@dxos/log";
2634
2639
  import { schema as schema3 } from "@dxos/protocols";
2635
2640
  import { RpcExtension as RpcExtension2 } from "@dxos/teleport";
2636
2641
  import { ComplexMap as ComplexMap2, ComplexSet, entry } from "@dxos/util";
2637
- var __dxlog_file11 = "/home/runner/work/dxos/dxos/packages/sdk/client-services/src/packlets/spaces/notarization-plugin.ts";
2642
+ var __dxlog_file11 = "/mnt/ramdisk/work/packages/sdk/client-services/src/packlets/spaces/notarization-plugin.ts";
2638
2643
  var DEFAULT_RETRY_TIMEOUT = 1e3;
2639
2644
  var DEFAULT_SUCCESS_DELAY = 1e3;
2640
2645
  var DEFAULT_NOTARIZE_TIMEOUT = 1e4;
@@ -2904,7 +2909,7 @@ function _ts_decorate3(decorators, target, key, desc) {
2904
2909
  r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
2905
2910
  return c > 3 && r && Object.defineProperty(target, key, r), r;
2906
2911
  }
2907
- var __dxlog_file12 = "/home/runner/work/dxos/dxos/packages/sdk/client-services/src/packlets/spaces/data-space.ts";
2912
+ var __dxlog_file12 = "/mnt/ramdisk/work/packages/sdk/client-services/src/packlets/spaces/data-space.ts";
2908
2913
  var ENABLE_FEED_PURGE = false;
2909
2914
  var DataSpace = class DataSpace2 {
2910
2915
  constructor(params) {
@@ -2933,6 +2938,14 @@ var DataSpace = class DataSpace2 {
2933
2938
  });
2934
2939
  this._cache = params.cache;
2935
2940
  this._state = params.initialState;
2941
+ log10("new state", {
2942
+ state: SpaceState[this._state]
2943
+ }, {
2944
+ F: __dxlog_file12,
2945
+ L: 112,
2946
+ S: this,
2947
+ C: (f, a) => f(...a)
2948
+ });
2936
2949
  }
2937
2950
  get key() {
2938
2951
  return this._inner.key;
@@ -2967,6 +2980,14 @@ var DataSpace = class DataSpace2 {
2967
2980
  await this._inner.spaceState.addCredentialProcessor(this._notarizationPlugin);
2968
2981
  await this._inner.open(new Context7());
2969
2982
  this._state = SpaceState.CONTROL_ONLY;
2983
+ log10("new state", {
2984
+ state: SpaceState[this._state]
2985
+ }, {
2986
+ F: __dxlog_file12,
2987
+ L: 158,
2988
+ S: this,
2989
+ C: (f, a) => f(...a)
2990
+ });
2970
2991
  this.stateUpdate.emit();
2971
2992
  this.metrics = {};
2972
2993
  this.metrics.open = /* @__PURE__ */ new Date();
@@ -2977,6 +2998,14 @@ var DataSpace = class DataSpace2 {
2977
2998
  async _close() {
2978
2999
  await this._callbacks.beforeClose?.();
2979
3000
  this._state = SpaceState.CLOSED;
3001
+ log10("new state", {
3002
+ state: SpaceState[this._state]
3003
+ }, {
3004
+ F: __dxlog_file12,
3005
+ L: 172,
3006
+ S: this,
3007
+ C: (f, a) => f(...a)
3008
+ });
2980
3009
  await this._ctx.dispose();
2981
3010
  this._ctx = new Context7();
2982
3011
  await this.authVerifier.close();
@@ -3003,7 +3032,7 @@ var DataSpace = class DataSpace2 {
3003
3032
  if (err instanceof CancelledError) {
3004
3033
  log10("data pipeline initialization cancelled", err, {
3005
3034
  F: __dxlog_file12,
3006
- L: 199,
3035
+ L: 203,
3007
3036
  S: this,
3008
3037
  C: (f, a) => f(...a)
3009
3038
  });
@@ -3011,11 +3040,19 @@ var DataSpace = class DataSpace2 {
3011
3040
  }
3012
3041
  log10.error("Error initializing data pipeline", err, {
3013
3042
  F: __dxlog_file12,
3014
- L: 203,
3043
+ L: 207,
3015
3044
  S: this,
3016
3045
  C: (f, a) => f(...a)
3017
3046
  });
3018
3047
  this._state = SpaceState.ERROR;
3048
+ log10("new state", {
3049
+ state: SpaceState[this._state]
3050
+ }, {
3051
+ F: __dxlog_file12,
3052
+ L: 209,
3053
+ S: this,
3054
+ C: (f, a) => f(...a)
3055
+ });
3019
3056
  this.error = err;
3020
3057
  this.stateUpdate.emit();
3021
3058
  } finally {
@@ -3028,32 +3065,22 @@ var DataSpace = class DataSpace2 {
3028
3065
  throw new SystemError("Invalid operation");
3029
3066
  }
3030
3067
  this._state = SpaceState.INITIALIZING;
3031
- await this._inner.controlPipeline.state.waitUntilReachedTargetTimeframe({
3032
- ctx: this._ctx,
3033
- breakOnStall: false
3034
- });
3035
- this.metrics.controlPipelineReady = /* @__PURE__ */ new Date();
3036
- await this._createWritableFeeds();
3037
- log10("writable feeds created", void 0, {
3068
+ log10("new state", {
3069
+ state: SpaceState[this._state]
3070
+ }, {
3038
3071
  F: __dxlog_file12,
3039
- L: 227,
3072
+ L: 225,
3040
3073
  S: this,
3041
3074
  C: (f, a) => f(...a)
3042
3075
  });
3043
- this.stateUpdate.emit();
3044
- if (!this.notarizationPlugin.hasWriter) {
3045
- this.notarizationPlugin.setWriter(createMappedFeedWriter((credential) => ({
3046
- credential: {
3047
- credential
3048
- }
3049
- }), this._inner.controlPipeline.writer));
3050
- }
3076
+ await this._initializeAndReadControlPipeline();
3077
+ await sleep2(1);
3051
3078
  await this._inner.initializeDataPipeline();
3052
3079
  this.metrics.dataPipelineOpen = /* @__PURE__ */ new Date();
3053
3080
  await cancelWithContext2(this._ctx, this._inner.dataPipeline.ensureEpochInitialized());
3054
3081
  log10("waiting for data pipeline to reach target timeframe", void 0, {
3055
3082
  F: __dxlog_file12,
3056
- L: 248,
3083
+ L: 239,
3057
3084
  S: this,
3058
3085
  C: (f, a) => f(...a)
3059
3086
  });
@@ -3064,15 +3091,45 @@ var DataSpace = class DataSpace2 {
3064
3091
  this.metrics.dataPipelineReady = /* @__PURE__ */ new Date();
3065
3092
  log10("data pipeline ready", void 0, {
3066
3093
  F: __dxlog_file12,
3067
- L: 257,
3094
+ L: 248,
3068
3095
  S: this,
3069
3096
  C: (f, a) => f(...a)
3070
3097
  });
3071
3098
  await this._callbacks.beforeReady?.();
3072
3099
  this._state = SpaceState.READY;
3100
+ log10("new state", {
3101
+ state: SpaceState[this._state]
3102
+ }, {
3103
+ F: __dxlog_file12,
3104
+ L: 252,
3105
+ S: this,
3106
+ C: (f, a) => f(...a)
3107
+ });
3073
3108
  this.stateUpdate.emit();
3074
3109
  await this._callbacks.afterReady?.();
3075
3110
  }
3111
+ async _initializeAndReadControlPipeline() {
3112
+ await this._inner.controlPipeline.state.waitUntilReachedTargetTimeframe({
3113
+ ctx: this._ctx,
3114
+ breakOnStall: false
3115
+ });
3116
+ this.metrics.controlPipelineReady = /* @__PURE__ */ new Date();
3117
+ await this._createWritableFeeds();
3118
+ log10("writable feeds created", void 0, {
3119
+ F: __dxlog_file12,
3120
+ L: 268,
3121
+ S: this,
3122
+ C: (f, a) => f(...a)
3123
+ });
3124
+ this.stateUpdate.emit();
3125
+ if (!this.notarizationPlugin.hasWriter) {
3126
+ this.notarizationPlugin.setWriter(createMappedFeedWriter((credential) => ({
3127
+ credential: {
3128
+ credential
3129
+ }
3130
+ }), this._inner.controlPipeline.writer));
3131
+ }
3132
+ }
3076
3133
  async _createWritableFeeds() {
3077
3134
  const credentials = [];
3078
3135
  if (!this.inner.controlFeedKey) {
@@ -3114,8 +3171,8 @@ var DataSpace = class DataSpace2 {
3114
3171
  credentials,
3115
3172
  timeout: 0
3116
3173
  });
3174
+ await this._metadataStore.setWritableFeedKeys(this.key, this.inner.controlFeedKey, this.inner.dataFeedKey);
3117
3175
  }
3118
- await this._metadataStore.setWritableFeedKeys(this.key, this.inner.controlFeedKey, this.inner.dataFeedKey);
3119
3176
  }
3120
3177
  async createEpoch() {
3121
3178
  const epoch = await this.dataPipeline.createEpoch();
@@ -3161,6 +3218,14 @@ var DataSpace = class DataSpace2 {
3161
3218
  await this._metadataStore.setSpaceState(this.key, SpaceState.INACTIVE);
3162
3219
  await this._close();
3163
3220
  this._state = SpaceState.INACTIVE;
3221
+ log10("new state", {
3222
+ state: SpaceState[this._state]
3223
+ }, {
3224
+ F: __dxlog_file12,
3225
+ L: 384,
3226
+ S: this,
3227
+ C: (f, a) => f(...a)
3228
+ });
3164
3229
  this.stateUpdate.emit();
3165
3230
  }
3166
3231
  };
@@ -3170,6 +3235,16 @@ _ts_decorate3([
3170
3235
  _ts_decorate3([
3171
3236
  synchronized
3172
3237
  ], DataSpace.prototype, "close", null);
3238
+ _ts_decorate3([
3239
+ trace5.span({
3240
+ showInBrowserTimeline: true
3241
+ })
3242
+ ], DataSpace.prototype, "initializeDataPipeline", null);
3243
+ _ts_decorate3([
3244
+ trace5.span({
3245
+ showInBrowserTimeline: true
3246
+ })
3247
+ ], DataSpace.prototype, "_initializeAndReadControlPipeline", null);
3173
3248
  _ts_decorate3([
3174
3249
  timed(1e4)
3175
3250
  ], DataSpace.prototype, "_createWritableFeeds", null);
@@ -3190,10 +3265,10 @@ import { getCredentialAssertion as getCredentialAssertion2 } from "@dxos/credent
3190
3265
  import { invariant as invariant11 } from "@dxos/invariant";
3191
3266
  import { PublicKey as PublicKey8 } from "@dxos/keys";
3192
3267
  import { log as log11 } from "@dxos/log";
3193
- import { trace as trace5 } from "@dxos/protocols";
3268
+ import { trace as trace6 } from "@dxos/protocols";
3194
3269
  import { SpaceState as SpaceState2 } from "@dxos/protocols/proto/dxos/client/services";
3195
3270
  import { Gossip, Presence } from "@dxos/teleport-extension-gossip";
3196
- import { ComplexMap as ComplexMap3, deferFunction as deferFunction2 } from "@dxos/util";
3271
+ import { ComplexMap as ComplexMap3, deferFunction as deferFunction2, forEachAsync } from "@dxos/util";
3197
3272
 
3198
3273
  // packages/sdk/client-services/src/packlets/spaces/genesis.ts
3199
3274
  import { createCredential } from "@dxos/credentials";
@@ -3275,7 +3350,7 @@ function _ts_decorate4(decorators, target, key, desc) {
3275
3350
  r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
3276
3351
  return c > 3 && r && Object.defineProperty(target, key, r), r;
3277
3352
  }
3278
- var __dxlog_file13 = "/home/runner/work/dxos/dxos/packages/sdk/client-services/src/packlets/spaces/data-space-manager.ts";
3353
+ var __dxlog_file13 = "/mnt/ramdisk/work/packages/sdk/client-services/src/packlets/spaces/data-space-manager.ts";
3279
3354
  var DataSpaceManager = class DataSpaceManager2 {
3280
3355
  constructor(_spaceManager, _metadataStore, _dataServiceSubscriptions, _keyring, _signingContext, _feedStore) {
3281
3356
  this._spaceManager = _spaceManager;
@@ -3301,7 +3376,7 @@ var DataSpaceManager = class DataSpaceManager2 {
3301
3376
  S: this,
3302
3377
  C: (f, a) => f(...a)
3303
3378
  });
3304
- log11.trace("dxos.echo.data-space-manager.open", trace5.begin({
3379
+ log11.trace("dxos.echo.data-space-manager.open", trace6.begin({
3305
3380
  id: this._instanceId
3306
3381
  }), {
3307
3382
  F: __dxlog_file13,
@@ -3309,48 +3384,49 @@ var DataSpaceManager = class DataSpaceManager2 {
3309
3384
  S: this,
3310
3385
  C: (f, a) => f(...a)
3311
3386
  });
3312
- await this._metadataStore.load();
3313
3387
  log11("metadata loaded", {
3314
3388
  spaces: this._metadataStore.spaces.length
3315
3389
  }, {
3316
3390
  F: __dxlog_file13,
3317
- L: 82,
3391
+ L: 81,
3318
3392
  S: this,
3319
3393
  C: (f, a) => f(...a)
3320
3394
  });
3321
- for (const spaceMetadata of this._metadataStore.spaces) {
3395
+ await forEachAsync(this._metadataStore.spaces, async (spaceMetadata) => {
3322
3396
  try {
3323
3397
  log11("load space", {
3324
3398
  spaceMetadata
3325
3399
  }, {
3326
3400
  F: __dxlog_file13,
3327
- L: 86,
3401
+ L: 85,
3328
3402
  S: this,
3329
3403
  C: (f, a) => f(...a)
3330
3404
  });
3331
- const space = await this._constructSpace(spaceMetadata);
3332
- if (spaceMetadata.state !== SpaceState2.INACTIVE) {
3333
- space.initializeDataPipelineAsync();
3334
- }
3405
+ await this._constructSpace(spaceMetadata);
3335
3406
  } catch (err) {
3336
3407
  log11.error("Error loading space", {
3337
3408
  spaceMetadata,
3338
3409
  err
3339
3410
  }, {
3340
3411
  F: __dxlog_file13,
3341
- L: 92,
3412
+ L: 88,
3342
3413
  S: this,
3343
3414
  C: (f, a) => f(...a)
3344
3415
  });
3345
3416
  }
3346
- }
3417
+ });
3347
3418
  this._isOpen = true;
3348
3419
  this.updated.emit();
3349
- log11.trace("dxos.echo.data-space-manager.open", trace5.end({
3420
+ for (const space of this._spaces.values()) {
3421
+ if (space.state !== SpaceState2.INACTIVE) {
3422
+ space.initializeDataPipelineAsync();
3423
+ }
3424
+ }
3425
+ log11.trace("dxos.echo.data-space-manager.open", trace6.end({
3350
3426
  id: this._instanceId
3351
3427
  }), {
3352
3428
  F: __dxlog_file13,
3353
- L: 98,
3429
+ L: 101,
3354
3430
  S: this,
3355
3431
  C: (f, a) => f(...a)
3356
3432
  });
@@ -3358,7 +3434,7 @@ var DataSpaceManager = class DataSpaceManager2 {
3358
3434
  async close() {
3359
3435
  log11("close", void 0, {
3360
3436
  F: __dxlog_file13,
3361
- L: 103,
3437
+ L: 106,
3362
3438
  S: this,
3363
3439
  C: (f, a) => f(...a)
3364
3440
  });
@@ -3374,7 +3450,7 @@ var DataSpaceManager = class DataSpaceManager2 {
3374
3450
  async createSpace() {
3375
3451
  invariant11(this._isOpen, "Not open.", {
3376
3452
  F: __dxlog_file13,
3377
- L: 116,
3453
+ L: 119,
3378
3454
  S: this,
3379
3455
  A: [
3380
3456
  "this._isOpen",
@@ -3395,7 +3471,7 @@ var DataSpaceManager = class DataSpaceManager2 {
3395
3471
  spaceKey
3396
3472
  }, {
3397
3473
  F: __dxlog_file13,
3398
- L: 128,
3474
+ L: 131,
3399
3475
  S: this,
3400
3476
  C: (f, a) => f(...a)
3401
3477
  });
@@ -3405,7 +3481,7 @@ var DataSpaceManager = class DataSpaceManager2 {
3405
3481
  const memberCredential = credentials[1];
3406
3482
  invariant11(getCredentialAssertion2(memberCredential)["@type"] === "dxos.halo.credentials.SpaceMember", void 0, {
3407
3483
  F: __dxlog_file13,
3408
- L: 135,
3484
+ L: 138,
3409
3485
  S: this,
3410
3486
  A: [
3411
3487
  "getCredentialAssertion(memberCredential)['@type'] === 'dxos.halo.credentials.SpaceMember'",
@@ -3423,13 +3499,13 @@ var DataSpaceManager = class DataSpaceManager2 {
3423
3499
  opts
3424
3500
  }, {
3425
3501
  F: __dxlog_file13,
3426
- L: 147,
3502
+ L: 150,
3427
3503
  S: this,
3428
3504
  C: (f, a) => f(...a)
3429
3505
  });
3430
3506
  invariant11(this._isOpen, "Not open.", {
3431
3507
  F: __dxlog_file13,
3432
- L: 148,
3508
+ L: 151,
3433
3509
  S: this,
3434
3510
  A: [
3435
3511
  "this._isOpen",
@@ -3438,7 +3514,7 @@ var DataSpaceManager = class DataSpaceManager2 {
3438
3514
  });
3439
3515
  invariant11(!this._spaces.has(opts.spaceKey), "Space already exists.", {
3440
3516
  F: __dxlog_file13,
3441
- L: 149,
3517
+ L: 152,
3442
3518
  S: this,
3443
3519
  A: [
3444
3520
  "!this._spaces.has(opts.spaceKey)",
@@ -3473,7 +3549,7 @@ var DataSpaceManager = class DataSpaceManager2 {
3473
3549
  metadata
3474
3550
  }, {
3475
3551
  F: __dxlog_file13,
3476
- L: 182,
3552
+ L: 185,
3477
3553
  S: this,
3478
3554
  C: (f, a) => f(...a)
3479
3555
  });
@@ -3509,7 +3585,7 @@ var DataSpaceManager = class DataSpaceManager2 {
3509
3585
  onAuthFailure: () => {
3510
3586
  log11.warn("auth failure", void 0, {
3511
3587
  F: __dxlog_file13,
3512
- L: 217,
3588
+ L: 220,
3513
3589
  S: this,
3514
3590
  C: (f, a) => f(...a)
3515
3591
  });
@@ -3533,7 +3609,7 @@ var DataSpaceManager = class DataSpaceManager2 {
3533
3609
  space: space.key
3534
3610
  }, {
3535
3611
  F: __dxlog_file13,
3536
- L: 235,
3612
+ L: 238,
3537
3613
  S: this,
3538
3614
  C: (f, a) => f(...a)
3539
3615
  });
@@ -3545,7 +3621,7 @@ var DataSpaceManager = class DataSpaceManager2 {
3545
3621
  open: this._isOpen
3546
3622
  }, {
3547
3623
  F: __dxlog_file13,
3548
- L: 242,
3624
+ L: 245,
3549
3625
  S: this,
3550
3626
  C: (f, a) => f(...a)
3551
3627
  });
@@ -3558,7 +3634,7 @@ var DataSpaceManager = class DataSpaceManager2 {
3558
3634
  space: space.key
3559
3635
  }, {
3560
3636
  F: __dxlog_file13,
3561
- L: 248,
3637
+ L: 251,
3562
3638
  S: this,
3563
3639
  C: (f, a) => f(...a)
3564
3640
  });
@@ -3605,8 +3681,7 @@ import { ApiError } from "@dxos/errors";
3605
3681
  import { log as log12 } from "@dxos/log";
3606
3682
  import { encodeError } from "@dxos/protocols";
3607
3683
  import { SpaceMember as SpaceMember3, SpaceState as SpaceState3 } from "@dxos/protocols/proto/dxos/client/services";
3608
- import { humanize } from "@dxos/util";
3609
- var __dxlog_file14 = "/home/runner/work/dxos/dxos/packages/sdk/client-services/src/packlets/spaces/spaces-service.ts";
3684
+ var __dxlog_file14 = "/mnt/ramdisk/work/packages/sdk/client-services/src/packlets/spaces/spaces-service.ts";
3610
3685
  var SpacesServiceImpl = class {
3611
3686
  constructor(_identityManager, _spaceManager, _dataServiceSubscriptions, _getDataSpaceManager) {
3612
3687
  this._identityManager = _identityManager;
@@ -3664,7 +3739,7 @@ var SpacesServiceImpl = class {
3664
3739
  const subscribeSpaces = () => {
3665
3740
  subscriptions.clear();
3666
3741
  for (const space of dataSpaceManager.spaces.values()) {
3667
- subscriptions.add(space.stateUpdate.on(ctx, () => scheduler.trigger()));
3742
+ subscriptions.add(space.stateUpdate.on(ctx, () => scheduler.forceTrigger()));
3668
3743
  subscriptions.add(space.presence.updated.on(ctx, () => scheduler.trigger()));
3669
3744
  subscriptions.add(space.dataPipeline.onNewEpoch.on(ctx, () => scheduler.trigger()));
3670
3745
  space.inner.controlPipeline.state.timeframeUpdate.on(ctx, () => scheduler.trigger());
@@ -3759,7 +3834,7 @@ var SpacesServiceImpl = class {
3759
3834
  identity: {
3760
3835
  identityKey: member.key,
3761
3836
  profile: {
3762
- displayName: member.assertion.profile?.displayName ?? humanize(member.key)
3837
+ displayName: member.assertion.profile?.displayName
3763
3838
  }
3764
3839
  },
3765
3840
  presence: isMe || peers.length > 0 ? SpaceMember3.PresenceState.ONLINE : SpaceMember3.PresenceState.OFFLINE,
@@ -3785,7 +3860,7 @@ import { invariant as invariant12 } from "@dxos/invariant";
3785
3860
  import { Keyring } from "@dxos/keyring";
3786
3861
  import { PublicKey as PublicKey9 } from "@dxos/keys";
3787
3862
  import { log as log13 } from "@dxos/log";
3788
- import { STORAGE_VERSION as STORAGE_VERSION2, trace as trace6 } from "@dxos/protocols";
3863
+ import { STORAGE_VERSION as STORAGE_VERSION2, trace as trace7 } from "@dxos/protocols";
3789
3864
  import { Invitation as Invitation5 } from "@dxos/protocols/proto/dxos/client/services";
3790
3865
  import { BlobStore } from "@dxos/teleport-extension-object-sync";
3791
3866
  import { trace as Trace2 } from "@dxos/tracing";
@@ -3800,7 +3875,7 @@ function _ts_decorate5(decorators, target, key, desc) {
3800
3875
  r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
3801
3876
  return c > 3 && r && Object.defineProperty(target, key, r), r;
3802
3877
  }
3803
- var __dxlog_file15 = "/home/runner/work/dxos/dxos/packages/sdk/client-services/src/packlets/services/service-context.ts";
3878
+ var __dxlog_file15 = "/mnt/ramdisk/work/packages/sdk/client-services/src/packlets/services/service-context.ts";
3804
3879
  var ServiceContext = class ServiceContext2 {
3805
3880
  // prettier-ignore
3806
3881
  constructor(storage, networkManager, signalManager, modelFactory) {
@@ -3846,7 +3921,7 @@ var ServiceContext = class ServiceContext2 {
3846
3921
  S: this,
3847
3922
  C: (f, a) => f(...a)
3848
3923
  });
3849
- log13.trace("dxos.sdk.service-context.open", trace6.begin({
3924
+ log13.trace("dxos.sdk.service-context.open", trace7.begin({
3850
3925
  id: this._instanceId
3851
3926
  }), {
3852
3927
  F: __dxlog_file15,
@@ -3856,22 +3931,23 @@ var ServiceContext = class ServiceContext2 {
3856
3931
  });
3857
3932
  await this.signalManager.open();
3858
3933
  await this.networkManager.open();
3934
+ await this.metadataStore.load();
3859
3935
  await this.spaceManager.open();
3860
3936
  await this.identityManager.open(ctx);
3861
3937
  if (this.identityManager.identity) {
3862
3938
  await this._initialize(ctx);
3863
3939
  }
3864
- log13.trace("dxos.sdk.service-context.open", trace6.end({
3940
+ log13.trace("dxos.sdk.service-context.open", trace7.end({
3865
3941
  id: this._instanceId
3866
3942
  }), {
3867
3943
  F: __dxlog_file15,
3868
- L: 144,
3944
+ L: 146,
3869
3945
  S: this,
3870
3946
  C: (f, a) => f(...a)
3871
3947
  });
3872
3948
  log13("opened", void 0, {
3873
3949
  F: __dxlog_file15,
3874
- L: 145,
3950
+ L: 147,
3875
3951
  S: this,
3876
3952
  C: (f, a) => f(...a)
3877
3953
  });
@@ -3879,7 +3955,7 @@ var ServiceContext = class ServiceContext2 {
3879
3955
  async close() {
3880
3956
  log13("closing...", void 0, {
3881
3957
  F: __dxlog_file15,
3882
- L: 149,
3958
+ L: 151,
3883
3959
  S: this,
3884
3960
  C: (f, a) => f(...a)
3885
3961
  });
@@ -3893,9 +3969,10 @@ var ServiceContext = class ServiceContext2 {
3893
3969
  await this.networkManager.close();
3894
3970
  await this.signalManager.close();
3895
3971
  this.dataServiceSubscriptions.clear();
3972
+ await this.metadataStore.close();
3896
3973
  log13("closed", void 0, {
3897
3974
  F: __dxlog_file15,
3898
- L: 160,
3975
+ L: 163,
3899
3976
  S: this,
3900
3977
  C: (f, a) => f(...a)
3901
3978
  });
@@ -3909,7 +3986,7 @@ var ServiceContext = class ServiceContext2 {
3909
3986
  const factory = this._handlerFactories.get(invitation.kind);
3910
3987
  invariant12(factory, `Unknown invitation kind: ${invitation.kind}`, {
3911
3988
  F: __dxlog_file15,
3912
- L: 171,
3989
+ L: 174,
3913
3990
  S: this,
3914
3991
  A: [
3915
3992
  "factory",
@@ -3933,7 +4010,7 @@ var ServiceContext = class ServiceContext2 {
3933
4010
  async _initialize(ctx) {
3934
4011
  log13("initializing spaces...", void 0, {
3935
4012
  F: __dxlog_file15,
3936
- L: 192,
4013
+ L: 195,
3937
4014
  S: this,
3938
4015
  C: (f, a) => f(...a)
3939
4016
  });
@@ -3956,7 +4033,7 @@ var ServiceContext = class ServiceContext2 {
3956
4033
  this._handlerFactories.set(Invitation5.Kind.SPACE, (invitation) => {
3957
4034
  invariant12(this.dataSpaceManager, "dataSpaceManager not initialized yet", {
3958
4035
  F: __dxlog_file15,
3959
- L: 215,
4036
+ L: 218,
3960
4037
  S: this,
3961
4038
  A: [
3962
4039
  "this.dataSpaceManager",
@@ -3980,7 +4057,7 @@ var ServiceContext = class ServiceContext2 {
3980
4057
  details: assertion
3981
4058
  }, {
3982
4059
  F: __dxlog_file15,
3983
- L: 231,
4060
+ L: 234,
3984
4061
  S: this,
3985
4062
  C: (f, a) => f(...a)
3986
4063
  });
@@ -3991,7 +4068,7 @@ var ServiceContext = class ServiceContext2 {
3991
4068
  details: assertion
3992
4069
  }, {
3993
4070
  F: __dxlog_file15,
3994
- L: 235,
4071
+ L: 238,
3995
4072
  S: this,
3996
4073
  C: (f, a) => f(...a)
3997
4074
  });
@@ -4002,7 +4079,7 @@ var ServiceContext = class ServiceContext2 {
4002
4079
  details: assertion
4003
4080
  }, {
4004
4081
  F: __dxlog_file15,
4005
- L: 240,
4082
+ L: 243,
4006
4083
  S: this,
4007
4084
  C: (f, a) => f(...a)
4008
4085
  });
@@ -4013,7 +4090,7 @@ var ServiceContext = class ServiceContext2 {
4013
4090
  } catch (err) {
4014
4091
  log13.catch(err, void 0, {
4015
4092
  F: __dxlog_file15,
4016
- L: 246,
4093
+ L: 249,
4017
4094
  S: this,
4018
4095
  C: (f, a) => f(...a)
4019
4096
  });
@@ -4048,7 +4125,7 @@ function _ts_decorate6(decorators, target, key, desc) {
4048
4125
  r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
4049
4126
  return c > 3 && r && Object.defineProperty(target, key, r), r;
4050
4127
  }
4051
- var __dxlog_file16 = "/home/runner/work/dxos/dxos/packages/sdk/client-services/src/packlets/locks/browser.ts";
4128
+ var __dxlog_file16 = "/mnt/ramdisk/work/packages/sdk/client-services/src/packlets/locks/browser.ts";
4052
4129
  var Message;
4053
4130
  (function(Message2) {
4054
4131
  Message2["ACQUIRING"] = "acquiring";
@@ -4242,11 +4319,12 @@ import { PublicKey as PublicKey10 } from "@dxos/keys";
4242
4319
  import { log as log16 } from "@dxos/log";
4243
4320
  import { WebsocketSignalManager } from "@dxos/messaging";
4244
4321
  import { ModelFactory } from "@dxos/model-factory";
4245
- import { createWebRTCTransportFactory, NetworkManager } from "@dxos/network-manager";
4246
- import { trace as trace7 } from "@dxos/protocols";
4322
+ import { createSimplePeerTransportFactory, NetworkManager } from "@dxos/network-manager";
4323
+ import { trace as trace8 } from "@dxos/protocols";
4247
4324
  import { SystemStatus } from "@dxos/protocols/proto/dxos/client/services";
4248
4325
  import { TextModel } from "@dxos/text-model";
4249
4326
  import { TRACE_PROCESSOR, trace as Trace3 } from "@dxos/tracing";
4327
+ import { WebsocketRpcClient } from "@dxos/websocket-rpc";
4250
4328
 
4251
4329
  // packages/sdk/client-services/src/packlets/devices/devices-service.ts
4252
4330
  import { EventSubscriptions as EventSubscriptions3 } from "@dxos/async";
@@ -4505,7 +4583,7 @@ function _ts_decorate7(decorators, target, key, desc) {
4505
4583
  r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
4506
4584
  return c > 3 && r && Object.defineProperty(target, key, r), r;
4507
4585
  }
4508
- var __dxlog_file17 = "/home/runner/work/dxos/dxos/packages/sdk/client-services/src/packlets/services/service-host.ts";
4586
+ var __dxlog_file17 = "/mnt/ramdisk/work/packages/sdk/client-services/src/packlets/services/service-host.ts";
4509
4587
  var createDefaultModelFactory = () => {
4510
4588
  return new ModelFactory().registerModel(DocumentModel2).registerModel(TextModel);
4511
4589
  };
@@ -4595,7 +4673,7 @@ var ClientServicesHost = class ClientServicesHost2 {
4595
4673
  initialize({ config, ...options }) {
4596
4674
  invariant13(!this._open, "service host is open", {
4597
4675
  F: __dxlog_file17,
4598
- L: 181,
4676
+ L: 184,
4599
4677
  S: this,
4600
4678
  A: [
4601
4679
  "!this._open",
@@ -4604,14 +4682,14 @@ var ClientServicesHost = class ClientServicesHost2 {
4604
4682
  });
4605
4683
  log16("initializing...", void 0, {
4606
4684
  F: __dxlog_file17,
4607
- L: 182,
4685
+ L: 185,
4608
4686
  S: this,
4609
4687
  C: (f, a) => f(...a)
4610
4688
  });
4611
4689
  if (config) {
4612
4690
  invariant13(!this._config, "config already set", {
4613
4691
  F: __dxlog_file17,
4614
- L: 185,
4692
+ L: 188,
4615
4693
  S: this,
4616
4694
  A: [
4617
4695
  "!this._config",
@@ -4623,13 +4701,13 @@ var ClientServicesHost = class ClientServicesHost2 {
4623
4701
  this._storage = createStorageObjects(config.get("runtime.client.storage", {})).storage;
4624
4702
  }
4625
4703
  }
4626
- const { connectionLog = true, transportFactory = createWebRTCTransportFactory({
4704
+ const { connectionLog = true, transportFactory = createSimplePeerTransportFactory({
4627
4705
  iceServers: this._config?.get("runtime.services.ice")
4628
4706
  }), signalManager = new WebsocketSignalManager(this._config?.get("runtime.services.signaling") ?? []) } = options;
4629
4707
  this._signalManager = signalManager;
4630
4708
  invariant13(!this._networkManager, "network manager already set", {
4631
4709
  F: __dxlog_file17,
4632
- L: 201,
4710
+ L: 204,
4633
4711
  S: this,
4634
4712
  A: [
4635
4713
  "!this._networkManager",
@@ -4643,7 +4721,7 @@ var ClientServicesHost = class ClientServicesHost2 {
4643
4721
  });
4644
4722
  log16("initialized", void 0, {
4645
4723
  F: __dxlog_file17,
4646
- L: 208,
4724
+ L: 211,
4647
4725
  S: this,
4648
4726
  C: (f, a) => f(...a)
4649
4727
  });
@@ -4653,17 +4731,17 @@ var ClientServicesHost = class ClientServicesHost2 {
4653
4731
  return;
4654
4732
  }
4655
4733
  const traceId = PublicKey10.random().toHex();
4656
- log16.trace("dxos.client-services.host.open", trace7.begin({
4734
+ log16.trace("dxos.client-services.host.open", trace8.begin({
4657
4735
  id: traceId
4658
4736
  }), {
4659
4737
  F: __dxlog_file17,
4660
- L: 219,
4738
+ L: 222,
4661
4739
  S: this,
4662
4740
  C: (f, a) => f(...a)
4663
4741
  });
4664
4742
  invariant13(this._config, "config not set", {
4665
4743
  F: __dxlog_file17,
4666
- L: 221,
4744
+ L: 224,
4667
4745
  S: this,
4668
4746
  A: [
4669
4747
  "this._config",
@@ -4672,7 +4750,7 @@ var ClientServicesHost = class ClientServicesHost2 {
4672
4750
  });
4673
4751
  invariant13(this._storage, "storage not set", {
4674
4752
  F: __dxlog_file17,
4675
- L: 222,
4753
+ L: 225,
4676
4754
  S: this,
4677
4755
  A: [
4678
4756
  "this._storage",
@@ -4681,7 +4759,7 @@ var ClientServicesHost = class ClientServicesHost2 {
4681
4759
  });
4682
4760
  invariant13(this._signalManager, "signal manager not set", {
4683
4761
  F: __dxlog_file17,
4684
- L: 223,
4762
+ L: 226,
4685
4763
  S: this,
4686
4764
  A: [
4687
4765
  "this._signalManager",
@@ -4690,7 +4768,7 @@ var ClientServicesHost = class ClientServicesHost2 {
4690
4768
  });
4691
4769
  invariant13(this._networkManager, "network manager not set", {
4692
4770
  F: __dxlog_file17,
4693
- L: 224,
4771
+ L: 227,
4694
4772
  S: this,
4695
4773
  A: [
4696
4774
  "this._networkManager",
@@ -4702,7 +4780,7 @@ var ClientServicesHost = class ClientServicesHost2 {
4702
4780
  lockKey: this._resourceLock?.lockKey
4703
4781
  }, {
4704
4782
  F: __dxlog_file17,
4705
- L: 227,
4783
+ L: 230,
4706
4784
  S: this,
4707
4785
  C: (f, a) => f(...a)
4708
4786
  });
@@ -4730,6 +4808,16 @@ var ClientServicesHost = class ClientServicesHost2 {
4730
4808
  })
4731
4809
  });
4732
4810
  await this._serviceContext.open(ctx);
4811
+ const devtoolsProxy = this._config?.get("runtime.client.devtoolsProxy");
4812
+ if (devtoolsProxy) {
4813
+ this._devtoolsProxy = new WebsocketRpcClient({
4814
+ url: devtoolsProxy,
4815
+ requested: {},
4816
+ exposed: clientServiceBundle,
4817
+ handlers: this.services
4818
+ });
4819
+ void this._devtoolsProxy.open();
4820
+ }
4733
4821
  this._opening = false;
4734
4822
  this._open = true;
4735
4823
  this._statusUpdate.emit();
@@ -4738,15 +4826,15 @@ var ClientServicesHost = class ClientServicesHost2 {
4738
4826
  deviceKey
4739
4827
  }, {
4740
4828
  F: __dxlog_file17,
4741
- L: 284,
4829
+ L: 299,
4742
4830
  S: this,
4743
4831
  C: (f, a) => f(...a)
4744
4832
  });
4745
- log16.trace("dxos.client-services.host.open", trace7.end({
4833
+ log16.trace("dxos.client-services.host.open", trace8.end({
4746
4834
  id: traceId
4747
4835
  }), {
4748
4836
  F: __dxlog_file17,
4749
- L: 285,
4837
+ L: 300,
4750
4838
  S: this,
4751
4839
  C: (f, a) => f(...a)
4752
4840
  });
@@ -4760,10 +4848,11 @@ var ClientServicesHost = class ClientServicesHost2 {
4760
4848
  deviceKey
4761
4849
  }, {
4762
4850
  F: __dxlog_file17,
4763
- L: 296,
4851
+ L: 311,
4764
4852
  S: this,
4765
4853
  C: (f, a) => f(...a)
4766
4854
  });
4855
+ await this._devtoolsProxy?.close();
4767
4856
  this._serviceRegistry.setServices({
4768
4857
  SystemService: this._systemService
4769
4858
  });
@@ -4775,24 +4864,24 @@ var ClientServicesHost = class ClientServicesHost2 {
4775
4864
  deviceKey
4776
4865
  }, {
4777
4866
  F: __dxlog_file17,
4778
- L: 302,
4867
+ L: 318,
4779
4868
  S: this,
4780
4869
  C: (f, a) => f(...a)
4781
4870
  });
4782
4871
  }
4783
4872
  async reset() {
4784
4873
  const traceId = PublicKey10.random().toHex();
4785
- log16.trace("dxos.sdk.client-services-host.reset", trace7.begin({
4874
+ log16.trace("dxos.sdk.client-services-host.reset", trace8.begin({
4786
4875
  id: traceId
4787
4876
  }), {
4788
4877
  F: __dxlog_file17,
4789
- L: 307,
4878
+ L: 323,
4790
4879
  S: this,
4791
4880
  C: (f, a) => f(...a)
4792
4881
  });
4793
4882
  log16("resetting...", void 0, {
4794
4883
  F: __dxlog_file17,
4795
- L: 309,
4884
+ L: 325,
4796
4885
  S: this,
4797
4886
  C: (f, a) => f(...a)
4798
4887
  });
@@ -4800,15 +4889,15 @@ var ClientServicesHost = class ClientServicesHost2 {
4800
4889
  await this._storage.reset();
4801
4890
  log16("reset", void 0, {
4802
4891
  F: __dxlog_file17,
4803
- L: 312,
4892
+ L: 328,
4804
4893
  S: this,
4805
4894
  C: (f, a) => f(...a)
4806
4895
  });
4807
- log16.trace("dxos.sdk.client-services-host.reset", trace7.end({
4896
+ log16.trace("dxos.sdk.client-services-host.reset", trace8.end({
4808
4897
  id: traceId
4809
4898
  }), {
4810
4899
  F: __dxlog_file17,
4811
- L: 313,
4900
+ L: 329,
4812
4901
  S: this,
4813
4902
  C: (f, a) => f(...a)
4814
4903
  });
@@ -4866,4 +4955,4 @@ export {
4866
4955
  createDefaultModelFactory,
4867
4956
  ClientServicesHost
4868
4957
  };
4869
- //# sourceMappingURL=chunk-WYYB3FSH.mjs.map
4958
+ //# sourceMappingURL=chunk-ZOFA377V.mjs.map