@dxos/client-services 0.4.10-main.d3d33d7 → 0.4.10-main.d4766e5

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 (48) hide show
  1. package/dist/lib/browser/{chunk-F647VGTE.mjs → chunk-DXJJOAJI.mjs} +643 -499
  2. package/dist/lib/browser/chunk-DXJJOAJI.mjs.map +7 -0
  3. package/dist/lib/browser/index.mjs +9 -1
  4. package/dist/lib/browser/index.mjs.map +1 -1
  5. package/dist/lib/browser/meta.json +1 -1
  6. package/dist/lib/browser/packlets/testing/index.mjs +1 -1
  7. package/dist/lib/node/{chunk-LYFRWNBG.cjs → chunk-54K33CLU.cjs} +590 -528
  8. package/dist/lib/node/chunk-54K33CLU.cjs.map +7 -0
  9. package/dist/lib/node/index.cjs +46 -38
  10. package/dist/lib/node/index.cjs.map +1 -1
  11. package/dist/lib/node/meta.json +1 -1
  12. package/dist/lib/node/packlets/testing/index.cjs +6 -6
  13. package/dist/types/src/index.d.ts +1 -0
  14. package/dist/types/src/index.d.ts.map +1 -1
  15. package/dist/types/src/packlets/diagnostics/browser-diagnostics-broadcast.d.ts +5 -0
  16. package/dist/types/src/packlets/diagnostics/browser-diagnostics-broadcast.d.ts.map +1 -0
  17. package/dist/types/src/packlets/diagnostics/diagnostics-broadcast.d.ts +5 -0
  18. package/dist/types/src/packlets/diagnostics/diagnostics-broadcast.d.ts.map +1 -0
  19. package/dist/types/src/packlets/diagnostics/diagnostics-collector.d.ts +15 -0
  20. package/dist/types/src/packlets/diagnostics/diagnostics-collector.d.ts.map +1 -0
  21. package/dist/types/src/packlets/{services → diagnostics}/diagnostics.d.ts +1 -1
  22. package/dist/types/src/packlets/diagnostics/diagnostics.d.ts.map +1 -0
  23. package/dist/types/src/packlets/diagnostics/index.d.ts +4 -0
  24. package/dist/types/src/packlets/diagnostics/index.d.ts.map +1 -0
  25. package/dist/types/src/packlets/services/index.d.ts +1 -1
  26. package/dist/types/src/packlets/services/index.d.ts.map +1 -1
  27. package/dist/types/src/packlets/services/service-host.d.ts +1 -0
  28. package/dist/types/src/packlets/services/service-host.d.ts.map +1 -1
  29. package/dist/types/src/packlets/services/util.d.ts +1 -0
  30. package/dist/types/src/packlets/services/util.d.ts.map +1 -1
  31. package/dist/types/src/packlets/system/system-service.d.ts +1 -1
  32. package/dist/types/src/packlets/system/system-service.d.ts.map +1 -1
  33. package/dist/types/src/version.d.ts +1 -1
  34. package/package.json +35 -34
  35. package/src/index.ts +1 -0
  36. package/src/packlets/diagnostics/browser-diagnostics-broadcast.ts +94 -0
  37. package/src/packlets/diagnostics/diagnostics-broadcast.ts +20 -0
  38. package/src/packlets/diagnostics/diagnostics-collector.ts +65 -0
  39. package/src/packlets/{services → diagnostics}/diagnostics.ts +2 -2
  40. package/src/packlets/diagnostics/index.ts +7 -0
  41. package/src/packlets/services/index.ts +1 -1
  42. package/src/packlets/services/service-host.ts +9 -1
  43. package/src/packlets/services/util.ts +2 -0
  44. package/src/packlets/system/system-service.ts +1 -1
  45. package/src/version.ts +1 -1
  46. package/dist/lib/browser/chunk-F647VGTE.mjs.map +0 -7
  47. package/dist/lib/node/chunk-LYFRWNBG.cjs.map +0 -7
  48. package/dist/types/src/packlets/services/diagnostics.d.ts.map +0 -1
@@ -0,0 +1 @@
1
+ {"version":3,"file":"diagnostics-broadcast.d.ts","sourceRoot":"","sources":["../../../../../src/packlets/diagnostics/diagnostics-broadcast.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,KAAK,aAAa,EAAE,MAAM,4CAA4C,CAAC;AAEhF,OAAO,EACL,KAAK,iCAAiC,EACtC,KAAK,kCAAkC,EACxC,MAAM,yBAAyB,CAAC;AAEjC,eAAO,MAAM,uCAAuC,QAAO,iCAE1D,CAAC;AAEF,eAAO,MAAM,wCAAwC,MAAO,aAAa,KAAG,kCAK3E,CAAC"}
@@ -0,0 +1,15 @@
1
+ import { type ClientServicesProvider } from '@dxos/client-protocol';
2
+ import { type Config } from '@dxos/config';
3
+ import { type JsonKeyOptions } from '@dxos/util';
4
+ export interface CollectDiagnosticsBroadcastSender {
5
+ broadcastDiagnosticsRequest(): any;
6
+ }
7
+ export interface CollectDiagnosticsBroadcastHandler {
8
+ start(): void;
9
+ stop(): void;
10
+ }
11
+ export declare class DiagnosticsCollector {
12
+ private static broadcastSender;
13
+ static collect(config?: Config | Config[], services?: ClientServicesProvider | null, options?: JsonKeyOptions): Promise<any>;
14
+ }
15
+ //# sourceMappingURL=diagnostics-collector.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"diagnostics-collector.d.ts","sourceRoot":"","sources":["../../../../../src/packlets/diagnostics/diagnostics-collector.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,KAAK,sBAAsB,EAAE,MAAM,uBAAuB,CAAC;AACpE,OAAO,EAAE,KAAK,MAAM,EAAkB,MAAM,cAAc,CAAC;AAG3D,OAAO,EAAE,KAAK,cAAc,EAAgC,MAAM,YAAY,CAAC;AAK/E,MAAM,WAAW,iCAAiC;IAChD,2BAA2B,IAAI,GAAG,CAAC;CACpC;AAED,MAAM,WAAW,kCAAkC;IACjD,KAAK,IAAI,IAAI,CAAC;IACd,IAAI,IAAI,IAAI,CAAC;CACd;AAED,qBAAa,oBAAoB;IAC/B,OAAO,CAAC,MAAM,CAAC,eAAe,CAA6C;WAEvD,OAAO,CACzB,MAAM,GAAE,MAAM,GAAG,MAAM,EAAkB,EACzC,QAAQ,GAAE,sBAAsB,GAAG,IAAkC,EACrE,OAAO,GAAE,cAAmB,GAC3B,OAAO,CAAC,GAAG,CAAC;CAwBhB"}
@@ -6,7 +6,7 @@ import { type SubscribeToFeedsResponse } from '@dxos/protocols/proto/dxos/devtoo
6
6
  import { type SwarmInfo } from '@dxos/protocols/proto/dxos/devtools/swarm';
7
7
  import { type Epoch } from '@dxos/protocols/proto/dxos/halo/credentials';
8
8
  import { type Resource, type Span } from '@dxos/protocols/proto/dxos/tracing';
9
- import { type ServiceContext } from './service-context';
9
+ import { type ServiceContext } from '../services';
10
10
  export type Diagnostics = {
11
11
  client: {
12
12
  config: ConfigProto;
@@ -0,0 +1 @@
1
+ {"version":3,"file":"diagnostics.d.ts","sourceRoot":"","sources":["../../../../../src/packlets/diagnostics/diagnostics.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,KAAK,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAE5D,OAAO,EAAE,KAAK,MAAM,EAAE,KAAK,WAAW,EAAE,MAAM,cAAc,CAAC;AAG7D,OAAO,EAAE,KAAK,SAAS,EAAE,MAAM,YAAY,CAAC;AAE5C,OAAO,EACL,WAAW,EACX,KAAK,MAAM,EACX,KAAK,QAAQ,EACb,KAAK,QAAQ,EACb,KAAK,OAAO,EACZ,KAAK,aAAa,EAClB,KAAK,QAAQ,EACb,KAAK,KAAK,IAAI,UAAU,EACzB,MAAM,4CAA4C,CAAC;AACpD,OAAO,EAAE,KAAK,wBAAwB,EAAE,MAAM,0CAA0C,CAAC;AACzF,OAAO,EAAE,KAAK,SAAS,EAAE,MAAM,2CAA2C,CAAC;AAC3E,OAAO,EAAE,KAAK,KAAK,EAAE,MAAM,6CAA6C,CAAC;AACzE,OAAO,EAAE,KAAK,QAAQ,EAAE,KAAK,IAAI,EAAE,MAAM,oCAAoC,CAAC;AAI9E,OAAO,EAAE,KAAK,cAAc,EAAE,MAAM,aAAa,CAAC;AAMlD,MAAM,MAAM,WAAW,GAAG;IACxB,MAAM,EAAE;QACN,MAAM,EAAE,WAAW,CAAC;QACpB,KAAK,EAAE,eAAe,CAAC;KACxB,CAAC;IACF,QAAQ,EAAE;QACR,KAAK,EAAE,eAAe,CAAC;QACvB,OAAO,EAAE,MAAM,CAAC;QAChB,QAAQ,EAAE,QAAQ,CAAC;QACnB,MAAM,CAAC,EAAE,WAAW,CAAC;QACrB,MAAM,EAAE;YACN,OAAO,EAAE,MAAM,CAAC;YAChB,OAAO,EAAE;gBACP,OAAO,EAAE,MAAM,CAAC;aACjB,CAAC;SACH,CAAC;QACF,QAAQ,CAAC,EAAE,QAAQ,CAAC;QACpB,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;QACnB,MAAM,CAAC,EAAE,UAAU,EAAE,CAAC;QACtB,aAAa,CAAC,EAAE,aAAa,CAAC;QAC9B,MAAM,CAAC,EAAE,SAAS,EAAE,CAAC;QACrB,KAAK,CAAC,EAAE,OAAO,CAAC,wBAAwB,CAAC,IAAI,CAAC,EAAE,CAAC;QACjD,OAAO,CAAC,EAAE,OAAO,CAAC;QAClB,OAAO,CAAC,EAAE;YAAE,IAAI,EAAE,MAAM,CAAC;YAAC,KAAK,EAAE,MAAM,CAAA;SAAE,EAAE,CAAC;KAC7C,CAAC;CACH,CAAC;AAEF,MAAM,MAAM,eAAe,GAAG;IAC5B,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;IACpC,KAAK,EAAE,IAAI,EAAE,CAAC;IACd,IAAI,EAAE,QAAQ,EAAE,CAAC;CAClB,CAAC;AAGF,MAAM,MAAM,UAAU,GAAG;IACvB,GAAG,EAAE,SAAS,CAAC;IACf,UAAU,CAAC,EAAE;QACX,IAAI,EAAE,MAAM,CAAC;KACd,CAAC;IACF,EAAE,CAAC,EAAE;QACH,OAAO,EAAE,MAAM,CAAC;KACjB,CAAC;IACF,OAAO,CAAC,EAAE,UAAU,CAAC,OAAO,GAAG;QAC7B,WAAW,CAAC,EAAE,MAAM,CAAC;KACtB,CAAC;IACF,MAAM,CAAC,EAAE,CAAC,KAAK,GAAG;QAAE,EAAE,CAAC,EAAE,SAAS,CAAA;KAAE,CAAC,EAAE,CAAC;IACxC,OAAO,CAAC,EAAE,WAAW,EAAE,CAAC;IACxB,QAAQ,CAAC,EAAE,UAAU,CAAC,aAAa,CAAC;CACrC,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,iBAAiB,mBACZ,QAAQ,cAAc,CAAC,kBACvB,cAAc,UACtB,MAAM,KACb,QAAQ,WAAW,CAAC,UAAU,CAAC,CAsFjC,CAAC"}
@@ -0,0 +1,4 @@
1
+ export * from './diagnostics';
2
+ export * from './diagnostics-collector';
3
+ export * from './diagnostics-broadcast';
4
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/packlets/diagnostics/index.ts"],"names":[],"mappings":"AAIA,cAAc,eAAe,CAAC;AAC9B,cAAc,yBAAyB,CAAC;AACxC,cAAc,yBAAyB,CAAC"}
@@ -1,6 +1,6 @@
1
1
  export * from './client-rpc-server';
2
- export * from './diagnostics';
3
2
  export * from './service-context';
4
3
  export * from './service-host';
5
4
  export * from './service-registry';
5
+ export { ClientServicesProviderResource } from './util';
6
6
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/packlets/services/index.ts"],"names":[],"mappings":"AAIA,cAAc,qBAAqB,CAAC;AACpC,cAAc,eAAe,CAAC;AAC9B,cAAc,mBAAmB,CAAC;AAClC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,oBAAoB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/packlets/services/index.ts"],"names":[],"mappings":"AAIA,cAAc,qBAAqB,CAAC;AACpC,cAAc,mBAAmB,CAAC;AAClC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,oBAAoB,CAAC;AACnC,OAAO,EAAE,8BAA8B,EAAE,MAAM,QAAQ,CAAC"}
@@ -47,6 +47,7 @@ export declare class ClientServicesHost {
47
47
  private _devtoolsProxy?;
48
48
  private _serviceContext;
49
49
  private readonly _runtimeParams?;
50
+ private diagnosticsBroadcastHandler;
50
51
  private _opening;
51
52
  private _open;
52
53
  constructor({ config, transportFactory, signalManager, storage, lockKey, callbacks, runtimeParams, }?: ClientServicesHostParams);
@@ -1 +1 @@
1
- {"version":3,"file":"service-host.d.ts","sourceRoot":"","sources":["../../../../../src/packlets/services/service-host.ts"],"names":[],"mappings":"AAOA,OAAO,EAAmC,KAAK,cAAc,EAAc,MAAM,uBAAuB,CAAC;AACzG,OAAO,EAAE,KAAK,MAAM,EAAE,MAAM,cAAc,CAAC;AAC3C,OAAO,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AAOxC,OAAO,EAA0B,KAAK,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAC7E,OAAO,EAAoD,KAAK,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAGhH,OAAO,EAAE,KAAK,OAAO,EAAE,MAAM,6BAA6B,CAAC;AAM3D,OAAO,EAAE,cAAc,EAAE,KAAK,2BAA2B,EAAE,MAAM,mBAAmB,CAAC;AACrF,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAYrD,MAAM,MAAM,wBAAwB,GAAG;IACrC;;OAEG;IACH,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,gBAAgB,CAAC,EAAE,gBAAgB,CAAC;IACpC,aAAa,CAAC,EAAE,aAAa,CAAC;IAC9B,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,SAAS,CAAC,EAAE,2BAA2B,CAAC;IACxC,aAAa,CAAC,EAAE,2BAA2B,CAAC;CAC7C,CAAC;AAEF,MAAM,MAAM,2BAA2B,GAAG;IACxC,OAAO,CAAC,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;CAC/B,CAAC;AAEF,MAAM,MAAM,iBAAiB,GAAG;IAC9B,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,gBAAgB,CAAC,EAAE,gBAAgB,CAAC;IACpC,aAAa,CAAC,EAAE,aAAa,CAAC;IAC9B,aAAa,CAAC,EAAE,OAAO,CAAC;CACzB,CAAC;AAEF;;GAEG;AACH,qBACa,kBAAkB;IAC7B,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAe;IAC9C,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAkC;IACnE,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAoB;IACnD,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAqB;IACrD,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAuC;IAEvE,OAAO,CAAC,OAAO,CAAC,CAAS;IACzB,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAqB;IACnD,OAAO,CAAC,cAAc,CAAC,CAAgB;IACvC,OAAO,CAAC,eAAe,CAAC,CAAiB;IACzC,OAAO,CAAC,QAAQ,CAAC,CAAU;IAC3B,OAAO,CAAC,MAAM,CAAC,CAAwB;IACvC,OAAO,CAAC,UAAU,CAAC,CAA8B;IACjD,OAAO,CAAC,cAAc,CAAC,CAAyC;IAEhE,OAAO,CAAC,eAAe,CAAkB;IACzC,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAC,CAA8B;IAG9D,OAAO,CAAC,QAAQ,CAAS;IAGzB,OAAO,CAAC,KAAK,CAAS;gBAEV,EACV,MAAM,EACN,gBAAgB,EAChB,aAAa,EACb,OAAO,EAEP,OAAO,EACP,SAAS,EACT,aAAa,GACd,GAAE,wBAA6B;IAiDhC,IAAI,MAAM,YAET;IAED,IAAI,MAAM,uBAET;IAED,IAAI,OAAO,mBAEV;IAED,IAAI,eAAe,oCAElB;IAED,IAAI,WAAW,sDAEd;IAED,IAAI,QAAQ,4BAEX;IAED;;;;OAIG;IACH,UAAU,CAAC,EAAE,MAAM,EAAE,GAAG,OAAO,EAAE,EAAE,iBAAiB;IAoC9C,IAAI,CAAC,GAAG,EAAE,OAAO;IA0GjB,KAAK;IAiBL,KAAK;YAYG,eAAe;CAiC9B"}
1
+ {"version":3,"file":"service-host.d.ts","sourceRoot":"","sources":["../../../../../src/packlets/services/service-host.ts"],"names":[],"mappings":"AAOA,OAAO,EAAmC,KAAK,cAAc,EAAc,MAAM,uBAAuB,CAAC;AACzG,OAAO,EAAE,KAAK,MAAM,EAAE,MAAM,cAAc,CAAC;AAC3C,OAAO,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AAOxC,OAAO,EAA0B,KAAK,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAC7E,OAAO,EAAoD,KAAK,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAGhH,OAAO,EAAE,KAAK,OAAO,EAAE,MAAM,6BAA6B,CAAC;AAK3D,OAAO,EAAE,cAAc,EAAE,KAAK,2BAA2B,EAAE,MAAM,mBAAmB,CAAC;AACrF,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAiBrD,MAAM,MAAM,wBAAwB,GAAG;IACrC;;OAEG;IACH,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,gBAAgB,CAAC,EAAE,gBAAgB,CAAC;IACpC,aAAa,CAAC,EAAE,aAAa,CAAC;IAC9B,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,SAAS,CAAC,EAAE,2BAA2B,CAAC;IACxC,aAAa,CAAC,EAAE,2BAA2B,CAAC;CAC7C,CAAC;AAEF,MAAM,MAAM,2BAA2B,GAAG;IACxC,OAAO,CAAC,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;CAC/B,CAAC;AAEF,MAAM,MAAM,iBAAiB,GAAG;IAC9B,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,gBAAgB,CAAC,EAAE,gBAAgB,CAAC;IACpC,aAAa,CAAC,EAAE,aAAa,CAAC;IAC9B,aAAa,CAAC,EAAE,OAAO,CAAC;CACzB,CAAC;AAEF;;GAEG;AACH,qBACa,kBAAkB;IAC7B,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAe;IAC9C,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAkC;IACnE,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAoB;IACnD,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAqB;IACrD,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAuC;IAEvE,OAAO,CAAC,OAAO,CAAC,CAAS;IACzB,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAqB;IACnD,OAAO,CAAC,cAAc,CAAC,CAAgB;IACvC,OAAO,CAAC,eAAe,CAAC,CAAiB;IACzC,OAAO,CAAC,QAAQ,CAAC,CAAU;IAC3B,OAAO,CAAC,MAAM,CAAC,CAAwB;IACvC,OAAO,CAAC,UAAU,CAAC,CAA8B;IACjD,OAAO,CAAC,cAAc,CAAC,CAAyC;IAEhE,OAAO,CAAC,eAAe,CAAkB;IACzC,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAC,CAA8B;IAC9D,OAAO,CAAC,2BAA2B,CAAqC;IAGxE,OAAO,CAAC,QAAQ,CAAS;IAGzB,OAAO,CAAC,KAAK,CAAS;gBAEV,EACV,MAAM,EACN,gBAAgB,EAChB,aAAa,EACb,OAAO,EAEP,OAAO,EACP,SAAS,EACT,aAAa,GACd,GAAE,wBAA6B;IAkDhC,IAAI,MAAM,YAET;IAED,IAAI,MAAM,uBAET;IAED,IAAI,OAAO,mBAEV;IAED,IAAI,eAAe,oCAElB;IAED,IAAI,WAAW,sDAEd;IAED,IAAI,QAAQ,4BAEX;IAED;;;;OAIG;IACH,UAAU,CAAC,EAAE,MAAM,EAAE,GAAG,OAAO,EAAE,EAAE,iBAAiB;IAoC9C,IAAI,CAAC,GAAG,EAAE,OAAO;IA2GjB,KAAK;IAkBL,KAAK;YAYG,eAAe;CAiC9B"}
@@ -1,3 +1,4 @@
1
+ export declare const ClientServicesProviderResource: unique symbol;
1
2
  export type JsonStringifyOptions = {
2
3
  truncate?: boolean;
3
4
  humanize?: boolean;
@@ -1 +1 @@
1
- {"version":3,"file":"util.d.ts","sourceRoot":"","sources":["../../../../../src/packlets/services/util.ts"],"names":[],"mappings":"AASA,MAAM,MAAM,oBAAoB,GAAG;IACjC,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB,CAAC;AAEF,eAAO,MAAM,aAAa,wBAAyB,oBAAoB,QAMtE,CAAC"}
1
+ {"version":3,"file":"util.d.ts","sourceRoot":"","sources":["../../../../../src/packlets/services/util.ts"],"names":[],"mappings":"AAOA,eAAO,MAAM,8BAA8B,eAA6C,CAAC;AAIzF,MAAM,MAAM,oBAAoB,GAAG;IACjC,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB,CAAC;AAEF,eAAO,MAAM,aAAa,wBAAyB,oBAAoB,QAMtE,CAAC"}
@@ -3,7 +3,7 @@ import { Stream } from '@dxos/codec-protobuf';
3
3
  import { type Config } from '@dxos/config';
4
4
  import { GetDiagnosticsRequest, type SystemService, type SystemStatus, type UpdateStatusRequest, type QueryStatusRequest, type QueryStatusResponse, type Platform } from '@dxos/protocols/proto/dxos/client/services';
5
5
  import { type MaybePromise } from '@dxos/util';
6
- import { type Diagnostics } from '../services';
6
+ import { type Diagnostics } from '../diagnostics';
7
7
  export type SystemServiceOptions = {
8
8
  config?: () => MaybePromise<Config | undefined>;
9
9
  statusUpdate: Event<void>;
@@ -1 +1 @@
1
- {"version":3,"file":"system-service.d.ts","sourceRoot":"","sources":["../../../../../src/packlets/system/system-service.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,KAAK,KAAK,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAC;AAC9C,OAAO,EAAE,KAAK,MAAM,EAAE,MAAM,cAAc,CAAC;AAC3C,OAAO,EACL,qBAAqB,EACrB,KAAK,aAAa,EAClB,KAAK,YAAY,EACjB,KAAK,mBAAmB,EACxB,KAAK,kBAAkB,EACvB,KAAK,mBAAmB,EACxB,KAAK,QAAQ,EACd,MAAM,4CAA4C,CAAC;AACpD,OAAO,EAAmB,KAAK,YAAY,EAAE,MAAM,YAAY,CAAC;AAEhE,OAAO,EAAE,KAAK,WAAW,EAAE,MAAM,aAAa,CAAC;AAG/C,MAAM,MAAM,oBAAoB,GAAG;IACjC,MAAM,CAAC,EAAE,MAAM,YAAY,CAAC,MAAM,GAAG,SAAS,CAAC,CAAC;IAChD,YAAY,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC;IAC1B,gBAAgB,EAAE,MAAM,YAAY,CAAC;IACrC,cAAc,EAAE,MAAM,OAAO,CAAC,OAAO,CAAC,WAAW,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;IAChE,cAAc,EAAE,CAAC,MAAM,EAAE,YAAY,KAAK,YAAY,CAAC,IAAI,CAAC,CAAC;IAC7D,OAAO,EAAE,MAAM,YAAY,CAAC,IAAI,CAAC,CAAC;CACnC,CAAC;AAEF,qBAAa,iBAAkB,YAAW,aAAa;IACrD,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAiC;IAC1D,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAuC;IACrE,OAAO,CAAC,QAAQ,CAAC,iBAAiB,CAA2C;IAC7E,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAyC;IACzE,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAkC;IAC3D,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAyC;gBAE7D,EACV,MAAM,EACN,YAAY,EACZ,cAAc,EACd,cAAc,EACd,gBAAgB,EAChB,OAAO,GACR,EAAE,oBAAoB;IASjB,SAAS;IAIf;;OAEG;IACG,cAAc,CAAC,EAAE,IAAI,EAAE,GAAE,qBAA0B;;;;IAgBnD,WAAW,IAAI,OAAO,CAAC,QAAQ,CAAC;IAIhC,YAAY,CAAC,EAAE,MAAM,EAAE,EAAE,mBAAmB;IAKlD,WAAW,CAAC,EAAE,QAAgB,EAAE,GAAE,kBAAuB,GAAG,MAAM,CAAC,mBAAmB,CAAC;IAgBjF,KAAK;CAGZ"}
1
+ {"version":3,"file":"system-service.d.ts","sourceRoot":"","sources":["../../../../../src/packlets/system/system-service.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,KAAK,KAAK,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAC;AAC9C,OAAO,EAAE,KAAK,MAAM,EAAE,MAAM,cAAc,CAAC;AAC3C,OAAO,EACL,qBAAqB,EACrB,KAAK,aAAa,EAClB,KAAK,YAAY,EACjB,KAAK,mBAAmB,EACxB,KAAK,kBAAkB,EACvB,KAAK,mBAAmB,EACxB,KAAK,QAAQ,EACd,MAAM,4CAA4C,CAAC;AACpD,OAAO,EAAmB,KAAK,YAAY,EAAE,MAAM,YAAY,CAAC;AAEhE,OAAO,EAAE,KAAK,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAGlD,MAAM,MAAM,oBAAoB,GAAG;IACjC,MAAM,CAAC,EAAE,MAAM,YAAY,CAAC,MAAM,GAAG,SAAS,CAAC,CAAC;IAChD,YAAY,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC;IAC1B,gBAAgB,EAAE,MAAM,YAAY,CAAC;IACrC,cAAc,EAAE,MAAM,OAAO,CAAC,OAAO,CAAC,WAAW,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;IAChE,cAAc,EAAE,CAAC,MAAM,EAAE,YAAY,KAAK,YAAY,CAAC,IAAI,CAAC,CAAC;IAC7D,OAAO,EAAE,MAAM,YAAY,CAAC,IAAI,CAAC,CAAC;CACnC,CAAC;AAEF,qBAAa,iBAAkB,YAAW,aAAa;IACrD,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAiC;IAC1D,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAuC;IACrE,OAAO,CAAC,QAAQ,CAAC,iBAAiB,CAA2C;IAC7E,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAyC;IACzE,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAkC;IAC3D,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAyC;gBAE7D,EACV,MAAM,EACN,YAAY,EACZ,cAAc,EACd,cAAc,EACd,gBAAgB,EAChB,OAAO,GACR,EAAE,oBAAoB;IASjB,SAAS;IAIf;;OAEG;IACG,cAAc,CAAC,EAAE,IAAI,EAAE,GAAE,qBAA0B;;;;IAgBnD,WAAW,IAAI,OAAO,CAAC,QAAQ,CAAC;IAIhC,YAAY,CAAC,EAAE,MAAM,EAAE,EAAE,mBAAmB;IAKlD,WAAW,CAAC,EAAE,QAAgB,EAAE,GAAE,kBAAuB,GAAG,MAAM,CAAC,mBAAmB,CAAC;IAgBjF,KAAK;CAGZ"}
@@ -1,2 +1,2 @@
1
- export declare const DXOS_VERSION = "0.4.10-main.d3d33d7";
1
+ export declare const DXOS_VERSION = "0.4.10-main.d4766e5";
2
2
  //# sourceMappingURL=version.d.ts.map
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@dxos/client-services",
3
- "version": "0.4.10-main.d3d33d7",
3
+ "version": "0.4.10-main.d4766e5",
4
4
  "description": "DXOS client services implementation",
5
5
  "homepage": "https://dxos.org",
6
6
  "bugs": "https://github.com/dxos/dxos/issues",
@@ -10,6 +10,7 @@
10
10
  "browser": {
11
11
  "jsondown": false,
12
12
  "./src/packlets/locks/node.ts": "./src/packlets/locks/browser.ts",
13
+ "./src/packlets/diagnostics/diagnostics-broadcast.ts": "./src/packlets/diagnostics/browser-diagnostics-broadcast.ts",
13
14
  "./dist/lib/node/index.cjs": "./dist/lib/browser/index.mjs",
14
15
  "./testing.js": "./dist/lib/browser/packlets/testing/index.mjs"
15
16
  },
@@ -23,43 +24,43 @@
23
24
  "dependencies": {
24
25
  "level": "^8.0.1",
25
26
  "platform": "^1.3.6",
26
- "@dxos/async": "0.4.10-main.d3d33d7",
27
- "@dxos/client-protocol": "0.4.10-main.d3d33d7",
28
- "@dxos/config": "0.4.10-main.d3d33d7",
29
- "@dxos/codec-protobuf": "0.4.10-main.d3d33d7",
30
- "@dxos/automerge": "0.4.10-main.d3d33d7",
31
- "@dxos/context": "0.4.10-main.d3d33d7",
32
- "@dxos/crypto": "0.4.10-main.d3d33d7",
33
- "@dxos/echo-db": "0.4.10-main.d3d33d7",
34
- "@dxos/credentials": "0.4.10-main.d3d33d7",
35
- "@dxos/debug": "0.4.10-main.d3d33d7",
36
- "@dxos/echo-pipeline": "0.4.10-main.d3d33d7",
37
- "@dxos/feed-store": "0.4.10-main.d3d33d7",
38
- "@dxos/indexing": "0.4.10-main.d3d33d7",
39
- "@dxos/echo-schema": "0.4.10-main.d3d33d7",
40
- "@dxos/keyring": "0.4.10-main.d3d33d7",
41
- "@dxos/invariant": "0.4.10-main.d3d33d7",
42
- "@dxos/keys": "0.4.10-main.d3d33d7",
43
- "@dxos/lock-file": "0.4.10-main.d3d33d7",
44
- "@dxos/log": "0.4.10-main.d3d33d7",
45
- "@dxos/messaging": "0.4.10-main.d3d33d7",
46
- "@dxos/network-manager": "0.4.10-main.d3d33d7",
47
- "@dxos/node-std": "0.4.10-main.d3d33d7",
48
- "@dxos/rpc": "0.4.10-main.d3d33d7",
49
- "@dxos/protocols": "0.4.10-main.d3d33d7",
50
- "@dxos/random-access-storage": "0.4.10-main.d3d33d7",
51
- "@dxos/teleport-extension-gossip": "0.4.10-main.d3d33d7",
52
- "@dxos/teleport-extension-object-sync": "0.4.10-main.d3d33d7",
53
- "@dxos/teleport": "0.4.10-main.d3d33d7",
54
- "@dxos/tracing": "0.4.10-main.d3d33d7",
55
- "@dxos/util": "0.4.10-main.d3d33d7",
56
- "@dxos/timeframe": "0.4.10-main.d3d33d7",
57
- "@dxos/websocket-rpc": "0.4.10-main.d3d33d7"
27
+ "@dxos/async": "0.4.10-main.d4766e5",
28
+ "@dxos/config": "0.4.10-main.d4766e5",
29
+ "@dxos/automerge": "0.4.10-main.d4766e5",
30
+ "@dxos/codec-protobuf": "0.4.10-main.d4766e5",
31
+ "@dxos/context": "0.4.10-main.d4766e5",
32
+ "@dxos/client-protocol": "0.4.10-main.d4766e5",
33
+ "@dxos/credentials": "0.4.10-main.d4766e5",
34
+ "@dxos/crypto": "0.4.10-main.d4766e5",
35
+ "@dxos/debug": "0.4.10-main.d4766e5",
36
+ "@dxos/echo-db": "0.4.10-main.d4766e5",
37
+ "@dxos/echo-pipeline": "0.4.10-main.d4766e5",
38
+ "@dxos/echo-schema": "0.4.10-main.d4766e5",
39
+ "@dxos/feed-store": "0.4.10-main.d4766e5",
40
+ "@dxos/indexing": "0.4.10-main.d4766e5",
41
+ "@dxos/invariant": "0.4.10-main.d4766e5",
42
+ "@dxos/keyring": "0.4.10-main.d4766e5",
43
+ "@dxos/lock-file": "0.4.10-main.d4766e5",
44
+ "@dxos/log": "0.4.10-main.d4766e5",
45
+ "@dxos/keys": "0.4.10-main.d4766e5",
46
+ "@dxos/messaging": "0.4.10-main.d4766e5",
47
+ "@dxos/network-manager": "0.4.10-main.d4766e5",
48
+ "@dxos/node-std": "0.4.10-main.d4766e5",
49
+ "@dxos/protocols": "0.4.10-main.d4766e5",
50
+ "@dxos/random-access-storage": "0.4.10-main.d4766e5",
51
+ "@dxos/teleport": "0.4.10-main.d4766e5",
52
+ "@dxos/rpc": "0.4.10-main.d4766e5",
53
+ "@dxos/teleport-extension-object-sync": "0.4.10-main.d4766e5",
54
+ "@dxos/teleport-extension-gossip": "0.4.10-main.d4766e5",
55
+ "@dxos/tracing": "0.4.10-main.d4766e5",
56
+ "@dxos/timeframe": "0.4.10-main.d4766e5",
57
+ "@dxos/util": "0.4.10-main.d4766e5",
58
+ "@dxos/websocket-rpc": "0.4.10-main.d4766e5"
58
59
  },
59
60
  "devDependencies": {
60
61
  "@types/platform": "^1.3.4",
61
62
  "@types/readable-stream": "^2.3.9",
62
- "@dxos/signal": "0.4.10-main.d3d33d7"
63
+ "@dxos/signal": "0.4.10-main.d4766e5"
63
64
  },
64
65
  "publishConfig": {
65
66
  "access": "public"
package/src/index.ts CHANGED
@@ -10,3 +10,4 @@ export * from './packlets/spaces';
10
10
  export * from './packlets/storage';
11
11
  export * from './packlets/vault';
12
12
  export * from './packlets/locks';
13
+ export * from './packlets/diagnostics';
@@ -0,0 +1,94 @@
1
+ //
2
+ // Copyright 2024 DXOS.org
3
+ //
4
+
5
+ import { Trigger } from '@dxos/async';
6
+ import { log } from '@dxos/log';
7
+ import { type SystemService } from '@dxos/protocols/proto/dxos/client/services';
8
+
9
+ import {
10
+ type CollectDiagnosticsBroadcastSender,
11
+ type CollectDiagnosticsBroadcastHandler,
12
+ } from './diagnostics-collector';
13
+
14
+ const CHANNEL_NAME = 'dxos.diagnostics.broadcast';
15
+
16
+ enum MessageType {
17
+ PROBE = 'probe',
18
+ PROBE_ACK = 'probe-ack',
19
+ REQUEST_DIAGNOSTICS = 'request-diagnostics',
20
+ RECEIVE_DIAGNOSTICS = 'receive-diagnostics',
21
+ }
22
+
23
+ interface Message {
24
+ type: MessageType;
25
+ payload?: any;
26
+ }
27
+
28
+ export const createCollectDiagnosticsBroadcastSender = (): CollectDiagnosticsBroadcastSender => {
29
+ return {
30
+ broadcastDiagnosticsRequest: async () => {
31
+ let expectedResponse = MessageType.PROBE_ACK;
32
+ let channel: BroadcastChannel | undefined;
33
+ try {
34
+ const trigger = new Trigger<Message>();
35
+ channel = new BroadcastChannel(CHANNEL_NAME);
36
+ channel.onmessage = (msg) => {
37
+ if (expectedResponse === msg.data.type) {
38
+ trigger.wake(msg.data);
39
+ }
40
+ };
41
+ channel.postMessage({ type: MessageType.PROBE });
42
+ await trigger.wait({ timeout: 200 });
43
+ expectedResponse = MessageType.RECEIVE_DIAGNOSTICS;
44
+ trigger.reset();
45
+ channel.postMessage({ type: MessageType.REQUEST_DIAGNOSTICS });
46
+ const diagnostics = await trigger.wait({ timeout: 5000 });
47
+ return diagnostics.payload;
48
+ } catch (e) {
49
+ const errorDescription = e instanceof Error ? e.message : JSON.stringify(e);
50
+ return { expectedResponse, errorDescription };
51
+ } finally {
52
+ safeClose(channel);
53
+ }
54
+ },
55
+ };
56
+ };
57
+
58
+ export const createCollectDiagnosticsBroadcastHandler = (
59
+ systemService: SystemService,
60
+ ): CollectDiagnosticsBroadcastHandler => {
61
+ let channel: BroadcastChannel | undefined;
62
+ return {
63
+ start: () => {
64
+ channel = new BroadcastChannel(CHANNEL_NAME);
65
+ channel.onmessage = async (message) => {
66
+ try {
67
+ if (message.data.type === MessageType.PROBE) {
68
+ channel?.postMessage({ type: MessageType.PROBE_ACK });
69
+ } else if (message.data.type === MessageType.REQUEST_DIAGNOSTICS) {
70
+ const diagnostics = await systemService.getDiagnostics({});
71
+ channel?.postMessage({
72
+ type: MessageType.RECEIVE_DIAGNOSTICS,
73
+ payload: diagnostics,
74
+ });
75
+ }
76
+ } catch (error) {
77
+ log.catch(error);
78
+ }
79
+ };
80
+ },
81
+ stop: () => {
82
+ safeClose(channel);
83
+ channel = undefined;
84
+ },
85
+ };
86
+ };
87
+
88
+ const safeClose = (channel?: BroadcastChannel) => {
89
+ try {
90
+ channel?.close();
91
+ } catch (e) {
92
+ // ignored
93
+ }
94
+ };
@@ -0,0 +1,20 @@
1
+ //
2
+ // Copyright 2024 DXOS.org
3
+ //
4
+ import { type SystemService } from '@dxos/protocols/proto/dxos/client/services';
5
+
6
+ import {
7
+ type CollectDiagnosticsBroadcastSender,
8
+ type CollectDiagnosticsBroadcastHandler,
9
+ } from './diagnostics-collector';
10
+
11
+ export const createCollectDiagnosticsBroadcastSender = (): CollectDiagnosticsBroadcastSender => {
12
+ return { broadcastDiagnosticsRequest: async () => undefined };
13
+ };
14
+
15
+ export const createCollectDiagnosticsBroadcastHandler = (_: SystemService): CollectDiagnosticsBroadcastHandler => {
16
+ return {
17
+ start: () => {},
18
+ stop: () => {},
19
+ };
20
+ };
@@ -0,0 +1,65 @@
1
+ //
2
+ // Copyright 2024 DXOS.org
3
+ //
4
+
5
+ import { type ClientServicesProvider } from '@dxos/client-protocol';
6
+ import { type Config, ConfigResource } from '@dxos/config';
7
+ import { GetDiagnosticsRequest } from '@dxos/protocols/proto/dxos/client/services';
8
+ import { TRACE_PROCESSOR } from '@dxos/tracing';
9
+ import { type JsonKeyOptions, jsonKeyReplacer, nonNullable } from '@dxos/util';
10
+
11
+ import { createCollectDiagnosticsBroadcastSender } from './diagnostics-broadcast';
12
+ import { ClientServicesProviderResource } from '../services';
13
+
14
+ export interface CollectDiagnosticsBroadcastSender {
15
+ broadcastDiagnosticsRequest(): any;
16
+ }
17
+
18
+ export interface CollectDiagnosticsBroadcastHandler {
19
+ start(): void;
20
+ stop(): void;
21
+ }
22
+
23
+ export class DiagnosticsCollector {
24
+ private static broadcastSender = createCollectDiagnosticsBroadcastSender();
25
+
26
+ public static async collect(
27
+ config: Config | Config[] = findConfigs(),
28
+ services: ClientServicesProvider | null = findSystemServiceProvider(),
29
+ options: JsonKeyOptions = {},
30
+ ): Promise<any> {
31
+ const serviceDiagnostics = await services?.services?.SystemService?.getDiagnostics({
32
+ keys: options.humanize
33
+ ? GetDiagnosticsRequest.KEY_OPTION.HUMANIZE
34
+ : options.truncate
35
+ ? GetDiagnosticsRequest.KEY_OPTION.TRUNCATE
36
+ : undefined,
37
+ });
38
+
39
+ const clientDiagnostics = {
40
+ config,
41
+ trace: TRACE_PROCESSOR.getDiagnostics(),
42
+ };
43
+
44
+ const diagnostics =
45
+ serviceDiagnostics != null
46
+ ? { client: clientDiagnostics, services: serviceDiagnostics }
47
+ : {
48
+ client: clientDiagnostics,
49
+ broadcast: await this.broadcastSender.broadcastDiagnosticsRequest(),
50
+ };
51
+
52
+ return JSON.parse(JSON.stringify(diagnostics, jsonKeyReplacer(options)));
53
+ }
54
+ }
55
+
56
+ const findSystemServiceProvider = (): ClientServicesProvider | null => {
57
+ const serviceProviders = TRACE_PROCESSOR.findByAnnotation(ClientServicesProviderResource);
58
+ const providerResource = serviceProviders.find((r) => r.instance.deref()?.services?.SystemService != null);
59
+ return providerResource?.instance?.deref() ?? null;
60
+ };
61
+
62
+ const findConfigs = (): Config[] => {
63
+ const configs = TRACE_PROCESSOR.findByAnnotation(ConfigResource);
64
+ return configs.map((r) => r.instance.deref()).filter(nonNullable);
65
+ };
@@ -25,9 +25,9 @@ import { type Epoch } from '@dxos/protocols/proto/dxos/halo/credentials';
25
25
  import { type Resource, type Span } from '@dxos/protocols/proto/dxos/tracing';
26
26
  import { TRACE_PROCESSOR } from '@dxos/tracing';
27
27
 
28
- import { getPlatform } from './platform';
29
- import { type ServiceContext } from './service-context';
30
28
  import { DXOS_VERSION } from '../../version';
29
+ import { type ServiceContext } from '../services';
30
+ import { getPlatform } from '../services/platform';
31
31
  import { type DataSpace } from '../spaces';
32
32
 
33
33
  const DEFAULT_TIMEOUT = 1_000;
@@ -0,0 +1,7 @@
1
+ //
2
+ // Copyright 2024 DXOS.org
3
+ //
4
+
5
+ export * from './diagnostics';
6
+ export * from './diagnostics-collector';
7
+ export * from './diagnostics-broadcast';
@@ -3,7 +3,7 @@
3
3
  //
4
4
 
5
5
  export * from './client-rpc-server';
6
- export * from './diagnostics';
7
6
  export * from './service-context';
8
7
  export * from './service-host';
9
8
  export * from './service-registry';
9
+ export { ClientServicesProviderResource } from './util';
@@ -23,11 +23,15 @@ import { TRACE_PROCESSOR, trace as Trace } from '@dxos/tracing';
23
23
  import { assignDeep } from '@dxos/util';
24
24
  import { WebsocketRpcClient } from '@dxos/websocket-rpc';
25
25
 
26
- import { createDiagnostics } from './diagnostics';
27
26
  import { ServiceContext, type ServiceContextRuntimeParams } from './service-context';
28
27
  import { ServiceRegistry } from './service-registry';
29
28
  import { DevicesServiceImpl } from '../devices';
30
29
  import { DevtoolsHostEvents, DevtoolsServiceImpl } from '../devtools';
30
+ import {
31
+ type CollectDiagnosticsBroadcastHandler,
32
+ createCollectDiagnosticsBroadcastHandler,
33
+ createDiagnostics,
34
+ } from '../diagnostics';
31
35
  import { IdentityServiceImpl, type CreateIdentityOptions } from '../identity';
32
36
  import { InvitationsServiceImpl } from '../invitations';
33
37
  import { Lock, type ResourceLock } from '../locks';
@@ -84,6 +88,7 @@ export class ClientServicesHost {
84
88
 
85
89
  private _serviceContext!: ServiceContext;
86
90
  private readonly _runtimeParams?: ServiceContextRuntimeParams;
91
+ private diagnosticsBroadcastHandler: CollectDiagnosticsBroadcastHandler;
87
92
 
88
93
  @Trace.info()
89
94
  private _opening = false;
@@ -141,6 +146,7 @@ export class ClientServicesHost {
141
146
  },
142
147
  });
143
148
 
149
+ this.diagnosticsBroadcastHandler = createCollectDiagnosticsBroadcastHandler(this._systemService);
144
150
  this._loggingService = new LoggingServiceImpl();
145
151
 
146
152
  this._serviceRegistry = new ServiceRegistry<ClientServices>(clientServiceBundle, {
@@ -309,6 +315,7 @@ export class ClientServicesHost {
309
315
  });
310
316
  void this._devtoolsProxy.open();
311
317
  }
318
+ this.diagnosticsBroadcastHandler.start();
312
319
 
313
320
  this._opening = false;
314
321
  this._open = true;
@@ -327,6 +334,7 @@ export class ClientServicesHost {
327
334
 
328
335
  const deviceKey = this._serviceContext.identityManager.identity?.deviceKey;
329
336
  log('closing...', { deviceKey });
337
+ this.diagnosticsBroadcastHandler.stop();
330
338
  await this._devtoolsProxy?.close();
331
339
  this._serviceRegistry.setServices({ SystemService: this._systemService });
332
340
  await this._loggingService.close();
@@ -5,6 +5,8 @@
5
5
  import { PublicKey } from '@dxos/keys';
6
6
  import { humanize } from '@dxos/util';
7
7
 
8
+ export const ClientServicesProviderResource = Symbol.for('dxos.resource.ClientServices');
9
+
8
10
  // TODO(burdon): Move to util.
9
11
 
10
12
  export type JsonStringifyOptions = {
@@ -16,7 +16,7 @@ import {
16
16
  } from '@dxos/protocols/proto/dxos/client/services';
17
17
  import { jsonKeyReplacer, type MaybePromise } from '@dxos/util';
18
18
 
19
- import { type Diagnostics } from '../services';
19
+ import { type Diagnostics } from '../diagnostics';
20
20
  import { getPlatform } from '../services/platform';
21
21
 
22
22
  export type SystemServiceOptions = {
package/src/version.ts CHANGED
@@ -1 +1 @@
1
- export const DXOS_VERSION = "0.4.10-main.d3d33d7";
1
+ export const DXOS_VERSION = "0.4.10-main.d4766e5";