@dxos/plugin-observability 0.7.5-labs.e27f9b9 → 0.7.5-main.2567c87

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 (100) hide show
  1. package/dist/lib/browser/{chunk-LJICNNK4.mjs → chunk-BAU7OKYM.mjs} +2 -2
  2. package/dist/lib/browser/{chunk-BMBRX6IW.mjs → chunk-BWEAT3RG.mjs} +2 -3
  3. package/dist/lib/browser/{chunk-BMBRX6IW.mjs.map → chunk-BWEAT3RG.mjs.map} +3 -3
  4. package/dist/lib/browser/{chunk-WEVYEGVJ.mjs → chunk-H2SQZM4P.mjs} +2 -2
  5. package/dist/lib/browser/{chunk-VOXXTFUV.mjs → chunk-K2Y64RO7.mjs} +5 -5
  6. package/dist/lib/browser/chunk-K2Y64RO7.mjs.map +7 -0
  7. package/dist/lib/browser/{client-ready-G43SJ5KX.mjs → client-ready-3J4QVJE6.mjs} +7 -6
  8. package/dist/lib/browser/client-ready-3J4QVJE6.mjs.map +7 -0
  9. package/dist/lib/browser/index.mjs +9 -12
  10. package/dist/lib/browser/index.mjs.map +3 -3
  11. package/dist/lib/browser/intents-resolver-P36HTRAG.mjs +55 -0
  12. package/dist/lib/browser/intents-resolver-P36HTRAG.mjs.map +7 -0
  13. package/dist/lib/browser/meta.json +1 -1
  14. package/dist/lib/browser/react-surface-MPOMS7ZD.mjs +26 -0
  15. package/dist/lib/browser/react-surface-MPOMS7ZD.mjs.map +7 -0
  16. package/dist/lib/browser/{settings-3DXJFOJA.mjs → settings-T23OKKWF.mjs} +4 -4
  17. package/dist/lib/browser/{state-LG42JNIS.mjs → state-FQ6WMLXG.mjs} +3 -3
  18. package/dist/lib/browser/types.mjs +2 -2
  19. package/dist/lib/node/{chunk-X7HWBFE2.cjs → chunk-44EFFE6E.cjs} +7 -7
  20. package/dist/lib/node/{chunk-XBDGBB5D.cjs → chunk-GSKCHQV5.cjs} +6 -6
  21. package/dist/lib/node/{chunk-7I7D7NBM.cjs → chunk-HLDDHG6J.cjs} +5 -6
  22. package/dist/lib/node/{chunk-7I7D7NBM.cjs.map → chunk-HLDDHG6J.cjs.map} +3 -3
  23. package/dist/lib/node/{chunk-YHIPA37Q.cjs → chunk-UYLJVCUK.cjs} +9 -9
  24. package/dist/lib/node/chunk-UYLJVCUK.cjs.map +7 -0
  25. package/dist/lib/node/{client-ready-352F6HCO.cjs → client-ready-UQHLLUQI.cjs} +21 -20
  26. package/dist/lib/node/client-ready-UQHLLUQI.cjs.map +7 -0
  27. package/dist/lib/node/index.cjs +23 -26
  28. package/dist/lib/node/index.cjs.map +3 -3
  29. package/dist/lib/node/intents-resolver-E7LSFPS6.cjs +66 -0
  30. package/dist/lib/node/intents-resolver-E7LSFPS6.cjs.map +7 -0
  31. package/dist/lib/node/meta.json +1 -1
  32. package/dist/lib/node/{react-surface-G4DDWTSN.cjs → react-surface-F77LLZIF.cjs} +16 -14
  33. package/dist/lib/node/react-surface-F77LLZIF.cjs.map +7 -0
  34. package/dist/lib/node/{settings-ZFZ4YONA.cjs → settings-BUWSSDPF.cjs} +9 -9
  35. package/dist/lib/node/{state-FNK3OBM7.cjs → state-NL2ZZN3S.cjs} +8 -8
  36. package/dist/lib/node/types.cjs +4 -4
  37. package/dist/lib/node/types.cjs.map +1 -1
  38. package/dist/lib/node-esm/{chunk-DSC5SQ7W.mjs → chunk-DF2CPSQB.mjs} +2 -2
  39. package/dist/lib/node-esm/{chunk-N5NBR55J.mjs → chunk-PZRWMBEG.mjs} +5 -5
  40. package/dist/lib/node-esm/chunk-PZRWMBEG.mjs.map +7 -0
  41. package/dist/lib/node-esm/{chunk-KPH3N6JS.mjs → chunk-SCQR7W6A.mjs} +2 -2
  42. package/dist/lib/node-esm/{chunk-HTL7V6A2.mjs → chunk-YK5MJX7W.mjs} +2 -3
  43. package/dist/lib/node-esm/{chunk-HTL7V6A2.mjs.map → chunk-YK5MJX7W.mjs.map} +3 -3
  44. package/dist/lib/node-esm/{client-ready-NXRLOXLL.mjs → client-ready-LPGIUDS2.mjs} +7 -6
  45. package/dist/lib/node-esm/client-ready-LPGIUDS2.mjs.map +7 -0
  46. package/dist/lib/node-esm/index.mjs +9 -12
  47. package/dist/lib/node-esm/index.mjs.map +3 -3
  48. package/dist/lib/node-esm/intents-resolver-QDAK6TMP.mjs +56 -0
  49. package/dist/lib/node-esm/intents-resolver-QDAK6TMP.mjs.map +7 -0
  50. package/dist/lib/node-esm/meta.json +1 -1
  51. package/dist/lib/node-esm/react-surface-MMGCSPXQ.mjs +27 -0
  52. package/dist/lib/node-esm/react-surface-MMGCSPXQ.mjs.map +7 -0
  53. package/dist/lib/node-esm/{settings-UNFUTWGX.mjs → settings-WWUULM4T.mjs} +4 -4
  54. package/dist/lib/node-esm/{state-UXRA6NQC.mjs → state-AM2ICAXU.mjs} +3 -3
  55. package/dist/lib/node-esm/types.mjs +2 -2
  56. package/dist/types/src/ObservabilityPlugin.d.ts.map +1 -1
  57. package/dist/types/src/capabilities/client-ready.d.ts.map +1 -1
  58. package/dist/types/src/capabilities/index.d.ts +5 -5
  59. package/dist/types/src/capabilities/index.d.ts.map +1 -1
  60. package/dist/types/src/capabilities/intents-resolver.d.ts.map +1 -1
  61. package/dist/types/src/capabilities/react-surface.d.ts.map +1 -1
  62. package/dist/types/src/meta.d.ts +0 -1
  63. package/dist/types/src/meta.d.ts.map +1 -1
  64. package/package.json +19 -20
  65. package/src/ObservabilityPlugin.ts +1 -2
  66. package/src/capabilities/client-ready.ts +3 -2
  67. package/src/capabilities/intents-resolver.ts +33 -42
  68. package/src/capabilities/react-surface.tsx +9 -6
  69. package/src/components/ObservabilitySettings.tsx +3 -3
  70. package/src/meta.ts +0 -1
  71. package/src/translations.ts +1 -1
  72. package/dist/lib/browser/chunk-VOXXTFUV.mjs.map +0 -7
  73. package/dist/lib/browser/client-ready-G43SJ5KX.mjs.map +0 -7
  74. package/dist/lib/browser/intents-resolver-SSLETJX6.mjs +0 -64
  75. package/dist/lib/browser/intents-resolver-SSLETJX6.mjs.map +0 -7
  76. package/dist/lib/browser/react-surface-TRXHCMO5.mjs +0 -24
  77. package/dist/lib/browser/react-surface-TRXHCMO5.mjs.map +0 -7
  78. package/dist/lib/node/chunk-YHIPA37Q.cjs.map +0 -7
  79. package/dist/lib/node/client-ready-352F6HCO.cjs.map +0 -7
  80. package/dist/lib/node/intents-resolver-JZ5PEWEO.cjs +0 -75
  81. package/dist/lib/node/intents-resolver-JZ5PEWEO.cjs.map +0 -7
  82. package/dist/lib/node/react-surface-G4DDWTSN.cjs.map +0 -7
  83. package/dist/lib/node-esm/chunk-N5NBR55J.mjs.map +0 -7
  84. package/dist/lib/node-esm/client-ready-NXRLOXLL.mjs.map +0 -7
  85. package/dist/lib/node-esm/intents-resolver-PZS43GGV.mjs +0 -65
  86. package/dist/lib/node-esm/intents-resolver-PZS43GGV.mjs.map +0 -7
  87. package/dist/lib/node-esm/react-surface-QYURTQNR.mjs +0 -25
  88. package/dist/lib/node-esm/react-surface-QYURTQNR.mjs.map +0 -7
  89. /package/dist/lib/browser/{chunk-LJICNNK4.mjs.map → chunk-BAU7OKYM.mjs.map} +0 -0
  90. /package/dist/lib/browser/{chunk-WEVYEGVJ.mjs.map → chunk-H2SQZM4P.mjs.map} +0 -0
  91. /package/dist/lib/browser/{settings-3DXJFOJA.mjs.map → settings-T23OKKWF.mjs.map} +0 -0
  92. /package/dist/lib/browser/{state-LG42JNIS.mjs.map → state-FQ6WMLXG.mjs.map} +0 -0
  93. /package/dist/lib/node/{chunk-X7HWBFE2.cjs.map → chunk-44EFFE6E.cjs.map} +0 -0
  94. /package/dist/lib/node/{chunk-XBDGBB5D.cjs.map → chunk-GSKCHQV5.cjs.map} +0 -0
  95. /package/dist/lib/node/{settings-ZFZ4YONA.cjs.map → settings-BUWSSDPF.cjs.map} +0 -0
  96. /package/dist/lib/node/{state-FNK3OBM7.cjs.map → state-NL2ZZN3S.cjs.map} +0 -0
  97. /package/dist/lib/node-esm/{chunk-DSC5SQ7W.mjs.map → chunk-DF2CPSQB.mjs.map} +0 -0
  98. /package/dist/lib/node-esm/{chunk-KPH3N6JS.mjs.map → chunk-SCQR7W6A.mjs.map} +0 -0
  99. /package/dist/lib/node-esm/{settings-UNFUTWGX.mjs.map → settings-WWUULM4T.mjs.map} +0 -0
  100. /package/dist/lib/node-esm/{state-UXRA6NQC.mjs.map → state-AM2ICAXU.mjs.map} +0 -0
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../src/capabilities/intents-resolver.ts"],
4
+ "sourcesContent": ["//\n// Copyright 2025 DXOS.org\n//\n\nimport { Capabilities, contributes, createResolver, type PluginsContext } from '@dxos/app-framework';\nimport { getTelemetryIdentifier, storeObservabilityDisabled } from '@dxos/observability';\n\nimport { ClientCapability, ObservabilityCapabilities } from './capabilities';\nimport { type ObservabilitySettingsProps } from '../components';\nimport { OBSERVABILITY_PLUGIN } from '../meta';\nimport { ObservabilityAction } from '../types';\n\nexport default ({ context, namespace }: { context: PluginsContext; namespace: string }) =>\n contributes(Capabilities.IntentResolver, [\n createResolver(ObservabilityAction.Toggle, async ({ state }) => {\n const client = context.requestCapability(ClientCapability);\n const observability = context.requestCapability(ObservabilityCapabilities.Observability);\n const settings = context\n .requestCapability(Capabilities.SettingsStore)\n .getStore<ObservabilitySettingsProps>(OBSERVABILITY_PLUGIN)!.value;\n settings.enabled = state ?? !settings.enabled;\n observability.event({\n identityId: getTelemetryIdentifier(client),\n name: `${namespace}.observability.toggle`,\n properties: {\n enabled: settings.enabled,\n },\n });\n observability.setMode(settings.enabled ? 'basic' : 'disabled');\n await storeObservabilityDisabled(namespace, !settings.enabled);\n return { data: settings.enabled };\n }),\n createResolver(ObservabilityAction.SendEvent, (data) => {\n const client = context.requestCapability(ClientCapability);\n // NOTE: This is to ensure that events fired before observability is ready are still sent.\n // TODO(wittjosiah): If the intent dispatcher supports concurrent actions in the future,\n // then this could awaited still rather than voiding.\n void context.waitForCapability(ObservabilityCapabilities.Observability).then((observability) => {\n const event = {\n identityId: getTelemetryIdentifier(client),\n name: `${namespace}.${data.name}`,\n properties: {\n ...data.properties,\n },\n };\n observability.event(event);\n });\n }),\n createResolver(ObservabilityAction.CaptureUserFeedback, async (data) => {\n const observability = context.requestCapability(ObservabilityCapabilities.Observability);\n observability.captureUserFeedback(data.email, data.name, data.message);\n }),\n ]);\n"],
5
+ "mappings": ";;;;;;;;;;;;;AAIA,SAASA,cAAcC,aAAaC,sBAA2C;AAC/E,SAASC,wBAAwBC,kCAAkC;AAOnE,IAAA,2BAAe,CAAC,EAAEC,SAASC,UAAS,MAClCC,YAAYC,aAAaC,gBAAgB;EACvCC,eAAeC,oBAAoBC,QAAQ,OAAO,EAAEC,MAAK,MAAE;AACzD,UAAMC,SAAST,QAAQU,kBAAkBC,gBAAAA;AACzC,UAAMC,gBAAgBZ,QAAQU,kBAAkBG,0BAA0BC,aAAa;AACvF,UAAMC,WAAWf,QACdU,kBAAkBP,aAAaa,aAAa,EAC5CC,SAAqCC,oBAAAA,EAAuBC;AAC/DJ,aAASK,UAAUZ,SAAS,CAACO,SAASK;AACtCR,kBAAcS,MAAM;MAClBC,YAAYC,uBAAuBd,MAAAA;MACnCe,MAAM,GAAGvB,SAAAA;MACTwB,YAAY;QACVL,SAASL,SAASK;MACpB;IACF,CAAA;AACAR,kBAAcc,QAAQX,SAASK,UAAU,UAAU,UAAA;AACnD,UAAMO,2BAA2B1B,WAAW,CAACc,SAASK,OAAO;AAC7D,WAAO;MAAEQ,MAAMb,SAASK;IAAQ;EAClC,CAAA;EACAf,eAAeC,oBAAoBuB,WAAW,CAACD,SAAAA;AAC7C,UAAMnB,SAAST,QAAQU,kBAAkBC,gBAAAA;AAIzC,SAAKX,QAAQ8B,kBAAkBjB,0BAA0BC,aAAa,EAAEiB,KAAK,CAACnB,kBAAAA;AAC5E,YAAMS,QAAQ;QACZC,YAAYC,uBAAuBd,MAAAA;QACnCe,MAAM,GAAGvB,SAAAA,IAAa2B,KAAKJ,IAAI;QAC/BC,YAAY;UACV,GAAGG,KAAKH;QACV;MACF;AACAb,oBAAcS,MAAMA,KAAAA;IACtB,CAAA;EACF,CAAA;EACAhB,eAAeC,oBAAoB0B,qBAAqB,OAAOJ,SAAAA;AAC7D,UAAMhB,gBAAgBZ,QAAQU,kBAAkBG,0BAA0BC,aAAa;AACvFF,kBAAcqB,oBAAoBL,KAAKM,OAAON,KAAKJ,MAAMI,KAAKO,OAAO;EACvE,CAAA;CACD;",
6
+ "names": ["Capabilities", "contributes", "createResolver", "getTelemetryIdentifier", "storeObservabilityDisabled", "context", "namespace", "contributes", "Capabilities", "IntentResolver", "createResolver", "ObservabilityAction", "Toggle", "state", "client", "requestCapability", "ClientCapability", "observability", "ObservabilityCapabilities", "Observability", "settings", "SettingsStore", "getStore", "OBSERVABILITY_PLUGIN", "value", "enabled", "event", "identityId", "getTelemetryIdentifier", "name", "properties", "setMode", "storeObservabilityDisabled", "data", "SendEvent", "waitForCapability", "then", "CaptureUserFeedback", "captureUserFeedback", "email", "message"]
7
+ }
@@ -1 +1 @@
1
- {"inputs":{"packages/plugins/plugin-observability/src/meta.ts":{"bytes":1140,"imports":[],"format":"esm"},"packages/plugins/plugin-observability/src/capabilities/capabilities.ts":{"bytes":2554,"imports":[{"path":"@dxos/app-framework","kind":"import-statement","external":true},{"path":"packages/plugins/plugin-observability/src/meta.ts","kind":"import-statement","original":"../meta"}],"format":"esm"},"packages/plugins/plugin-observability/src/types.ts":{"bytes":6985,"imports":[{"path":"@dxos/echo-schema","kind":"import-statement","external":true},{"path":"packages/plugins/plugin-observability/src/meta.ts","kind":"import-statement","original":"./meta"}],"format":"esm"},"packages/plugins/plugin-observability/src/capabilities/client-ready.ts":{"bytes":13968,"imports":[{"path":"@dxos/app-framework","kind":"import-statement","external":true},{"path":"@dxos/observability","kind":"import-statement","external":true},{"path":"packages/plugins/plugin-observability/src/capabilities/capabilities.ts","kind":"import-statement","original":"./capabilities"},{"path":"packages/plugins/plugin-observability/src/meta.ts","kind":"import-statement","original":"../meta"},{"path":"packages/plugins/plugin-observability/src/types.ts","kind":"import-statement","original":"../types"}],"format":"esm"},"packages/plugins/plugin-observability/src/capabilities/intents-resolver.ts":{"bytes":9557,"imports":[{"path":"@dxos/app-framework","kind":"import-statement","external":true},{"path":"@dxos/observability","kind":"import-statement","external":true},{"path":"packages/plugins/plugin-observability/src/capabilities/capabilities.ts","kind":"import-statement","original":"./capabilities"},{"path":"packages/plugins/plugin-observability/src/meta.ts","kind":"import-statement","original":"../meta"},{"path":"packages/plugins/plugin-observability/src/types.ts","kind":"import-statement","original":"../types"}],"format":"esm"},"packages/plugins/plugin-observability/src/components/ObservabilitySettings.tsx":{"bytes":5368,"imports":[{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/app-framework","kind":"import-statement","external":true},{"path":"@dxos/echo-schema","kind":"import-statement","external":true},{"path":"@dxos/react-ui","kind":"import-statement","external":true},{"path":"@dxos/react-ui-form","kind":"import-statement","external":true},{"path":"packages/plugins/plugin-observability/src/meta.ts","kind":"import-statement","original":"../meta"},{"path":"packages/plugins/plugin-observability/src/types.ts","kind":"import-statement","original":"../types"}],"format":"esm"},"packages/plugins/plugin-observability/src/components/index.ts":{"bytes":553,"imports":[{"path":"packages/plugins/plugin-observability/src/components/ObservabilitySettings.tsx","kind":"import-statement","original":"./ObservabilitySettings"}],"format":"esm"},"packages/plugins/plugin-observability/src/capabilities/react-surface.tsx":{"bytes":2983,"imports":[{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/app-framework","kind":"import-statement","external":true},{"path":"@dxos/local-storage","kind":"import-statement","external":true},{"path":"packages/plugins/plugin-observability/src/components/index.ts","kind":"import-statement","original":"../components"},{"path":"packages/plugins/plugin-observability/src/meta.ts","kind":"import-statement","original":"../meta"}],"format":"esm"},"packages/plugins/plugin-observability/src/capabilities/settings.ts":{"bytes":2180,"imports":[{"path":"@dxos/app-framework","kind":"import-statement","external":true},{"path":"@dxos/live-object","kind":"import-statement","external":true},{"path":"packages/plugins/plugin-observability/src/components/index.ts","kind":"import-statement","original":"../components"},{"path":"packages/plugins/plugin-observability/src/meta.ts","kind":"import-statement","original":"../meta"}],"format":"esm"},"packages/plugins/plugin-observability/src/capabilities/state.ts":{"bytes":3153,"imports":[{"path":"@dxos/app-framework","kind":"import-statement","external":true},{"path":"@dxos/local-storage","kind":"import-statement","external":true},{"path":"@dxos/observability","kind":"import-statement","external":true},{"path":"packages/plugins/plugin-observability/src/capabilities/capabilities.ts","kind":"import-statement","original":"./capabilities"},{"path":"packages/plugins/plugin-observability/src/meta.ts","kind":"import-statement","original":"../meta"}],"format":"esm"},"packages/plugins/plugin-observability/src/capabilities/index.ts":{"bytes":1944,"imports":[{"path":"@dxos/app-framework","kind":"import-statement","external":true},{"path":"packages/plugins/plugin-observability/src/capabilities/capabilities.ts","kind":"import-statement","original":"./capabilities"},{"path":"packages/plugins/plugin-observability/src/capabilities/client-ready.ts","kind":"dynamic-import","original":"./client-ready"},{"path":"packages/plugins/plugin-observability/src/capabilities/intents-resolver.ts","kind":"dynamic-import","original":"./intents-resolver"},{"path":"packages/plugins/plugin-observability/src/capabilities/react-surface.tsx","kind":"dynamic-import","original":"./react-surface"},{"path":"packages/plugins/plugin-observability/src/capabilities/settings.ts","kind":"dynamic-import","original":"./settings"},{"path":"packages/plugins/plugin-observability/src/capabilities/state.ts","kind":"dynamic-import","original":"./state"}],"format":"esm"},"packages/plugins/plugin-observability/src/events.ts":{"bytes":1845,"imports":[{"path":"@dxos/app-framework","kind":"import-statement","external":true},{"path":"packages/plugins/plugin-observability/src/meta.ts","kind":"import-statement","original":"./meta"}],"format":"esm"},"packages/plugins/plugin-observability/src/translations.ts":{"bytes":3365,"imports":[{"path":"packages/plugins/plugin-observability/src/meta.ts","kind":"import-statement","original":"./meta"}],"format":"esm"},"packages/plugins/plugin-observability/src/ObservabilityPlugin.ts":{"bytes":8357,"imports":[{"path":"@dxos/app-framework","kind":"import-statement","external":true},{"path":"packages/plugins/plugin-observability/src/capabilities/index.ts","kind":"import-statement","original":"./capabilities"},{"path":"packages/plugins/plugin-observability/src/events.ts","kind":"import-statement","original":"./events"},{"path":"packages/plugins/plugin-observability/src/meta.ts","kind":"import-statement","original":"./meta"},{"path":"packages/plugins/plugin-observability/src/translations.ts","kind":"import-statement","original":"./translations"}],"format":"esm"},"packages/plugins/plugin-observability/src/index.ts":{"bytes":1020,"imports":[{"path":"packages/plugins/plugin-observability/src/capabilities/index.ts","kind":"import-statement","original":"./capabilities"},{"path":"packages/plugins/plugin-observability/src/events.ts","kind":"import-statement","original":"./events"},{"path":"packages/plugins/plugin-observability/src/meta.ts","kind":"import-statement","original":"./meta"},{"path":"packages/plugins/plugin-observability/src/ObservabilityPlugin.ts","kind":"import-statement","original":"./ObservabilityPlugin"}],"format":"esm"}},"outputs":{"packages/plugins/plugin-observability/dist/lib/node-esm/index.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":6986},"packages/plugins/plugin-observability/dist/lib/node-esm/index.mjs":{"imports":[{"path":"packages/plugins/plugin-observability/dist/lib/node-esm/chunk-KPH3N6JS.mjs","kind":"import-statement"},{"path":"packages/plugins/plugin-observability/dist/lib/node-esm/chunk-HTL7V6A2.mjs","kind":"import-statement"},{"path":"@dxos/app-framework","kind":"import-statement","external":true},{"path":"packages/plugins/plugin-observability/dist/lib/node-esm/client-ready-NXRLOXLL.mjs","kind":"dynamic-import"},{"path":"packages/plugins/plugin-observability/dist/lib/node-esm/intents-resolver-PZS43GGV.mjs","kind":"dynamic-import"},{"path":"packages/plugins/plugin-observability/dist/lib/node-esm/react-surface-QYURTQNR.mjs","kind":"dynamic-import"},{"path":"packages/plugins/plugin-observability/dist/lib/node-esm/settings-UNFUTWGX.mjs","kind":"dynamic-import"},{"path":"packages/plugins/plugin-observability/dist/lib/node-esm/state-UXRA6NQC.mjs","kind":"dynamic-import"},{"path":"@dxos/app-framework","kind":"import-statement","external":true},{"path":"@dxos/app-framework","kind":"import-statement","external":true}],"exports":["OBSERVABILITY_PLUGIN","ObservabilityCapabilities","ObservabilityEvents","ObservabilityPlugin","meta"],"entryPoint":"packages/plugins/plugin-observability/src/index.ts","inputs":{"packages/plugins/plugin-observability/src/capabilities/index.ts":{"bytesInOutput":404},"packages/plugins/plugin-observability/src/index.ts":{"bytesInOutput":0},"packages/plugins/plugin-observability/src/events.ts":{"bytesInOutput":337},"packages/plugins/plugin-observability/src/ObservabilityPlugin.ts":{"bytesInOutput":1679},"packages/plugins/plugin-observability/src/translations.ts":{"bytesInOutput":1002}},"bytes":4130},"packages/plugins/plugin-observability/dist/lib/node-esm/types.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":93},"packages/plugins/plugin-observability/dist/lib/node-esm/types.mjs":{"imports":[{"path":"packages/plugins/plugin-observability/dist/lib/node-esm/chunk-DSC5SQ7W.mjs","kind":"import-statement"},{"path":"packages/plugins/plugin-observability/dist/lib/node-esm/chunk-HTL7V6A2.mjs","kind":"import-statement"}],"exports":["ObservabilityAction","UserFeedback"],"entryPoint":"packages/plugins/plugin-observability/src/types.ts","inputs":{},"bytes":286},"packages/plugins/plugin-observability/dist/lib/node-esm/client-ready-NXRLOXLL.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":6829},"packages/plugins/plugin-observability/dist/lib/node-esm/client-ready-NXRLOXLL.mjs":{"imports":[{"path":"packages/plugins/plugin-observability/dist/lib/node-esm/chunk-DSC5SQ7W.mjs","kind":"import-statement"},{"path":"packages/plugins/plugin-observability/dist/lib/node-esm/chunk-KPH3N6JS.mjs","kind":"import-statement"},{"path":"packages/plugins/plugin-observability/dist/lib/node-esm/chunk-HTL7V6A2.mjs","kind":"import-statement"},{"path":"@dxos/app-framework","kind":"import-statement","external":true},{"path":"@dxos/observability","kind":"import-statement","external":true}],"exports":["default"],"entryPoint":"packages/plugins/plugin-observability/src/capabilities/client-ready.ts","inputs":{"packages/plugins/plugin-observability/src/capabilities/client-ready.ts":{"bytesInOutput":3289}},"bytes":3766},"packages/plugins/plugin-observability/dist/lib/node-esm/intents-resolver-PZS43GGV.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":4702},"packages/plugins/plugin-observability/dist/lib/node-esm/intents-resolver-PZS43GGV.mjs":{"imports":[{"path":"packages/plugins/plugin-observability/dist/lib/node-esm/chunk-DSC5SQ7W.mjs","kind":"import-statement"},{"path":"packages/plugins/plugin-observability/dist/lib/node-esm/chunk-KPH3N6JS.mjs","kind":"import-statement"},{"path":"packages/plugins/plugin-observability/dist/lib/node-esm/chunk-HTL7V6A2.mjs","kind":"import-statement"},{"path":"@dxos/app-framework","kind":"import-statement","external":true},{"path":"@dxos/observability","kind":"import-statement","external":true}],"exports":["default"],"entryPoint":"packages/plugins/plugin-observability/src/capabilities/intents-resolver.ts","inputs":{"packages/plugins/plugin-observability/src/capabilities/intents-resolver.ts":{"bytesInOutput":1922}},"bytes":2411},"packages/plugins/plugin-observability/dist/lib/node-esm/react-surface-QYURTQNR.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":1531},"packages/plugins/plugin-observability/dist/lib/node-esm/react-surface-QYURTQNR.mjs":{"imports":[{"path":"packages/plugins/plugin-observability/dist/lib/node-esm/chunk-N5NBR55J.mjs","kind":"import-statement"},{"path":"packages/plugins/plugin-observability/dist/lib/node-esm/chunk-DSC5SQ7W.mjs","kind":"import-statement"},{"path":"packages/plugins/plugin-observability/dist/lib/node-esm/chunk-HTL7V6A2.mjs","kind":"import-statement"},{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/app-framework","kind":"import-statement","external":true},{"path":"@dxos/local-storage","kind":"import-statement","external":true}],"exports":["default"],"entryPoint":"packages/plugins/plugin-observability/src/capabilities/react-surface.tsx","inputs":{"packages/plugins/plugin-observability/src/capabilities/react-surface.tsx":{"bytesInOutput":542}},"bytes":968},"packages/plugins/plugin-observability/dist/lib/node-esm/settings-UNFUTWGX.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":1086},"packages/plugins/plugin-observability/dist/lib/node-esm/settings-UNFUTWGX.mjs":{"imports":[{"path":"packages/plugins/plugin-observability/dist/lib/node-esm/chunk-N5NBR55J.mjs","kind":"import-statement"},{"path":"packages/plugins/plugin-observability/dist/lib/node-esm/chunk-DSC5SQ7W.mjs","kind":"import-statement"},{"path":"packages/plugins/plugin-observability/dist/lib/node-esm/chunk-HTL7V6A2.mjs","kind":"import-statement"},{"path":"@dxos/app-framework","kind":"import-statement","external":true},{"path":"@dxos/live-object","kind":"import-statement","external":true}],"exports":["default"],"entryPoint":"packages/plugins/plugin-observability/src/capabilities/settings.ts","inputs":{"packages/plugins/plugin-observability/src/capabilities/settings.ts":{"bytesInOutput":342}},"bytes":758},"packages/plugins/plugin-observability/dist/lib/node-esm/chunk-N5NBR55J.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":2948},"packages/plugins/plugin-observability/dist/lib/node-esm/chunk-N5NBR55J.mjs":{"imports":[{"path":"packages/plugins/plugin-observability/dist/lib/node-esm/chunk-DSC5SQ7W.mjs","kind":"import-statement"},{"path":"packages/plugins/plugin-observability/dist/lib/node-esm/chunk-HTL7V6A2.mjs","kind":"import-statement"},{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/app-framework","kind":"import-statement","external":true},{"path":"@dxos/echo-schema","kind":"import-statement","external":true},{"path":"@dxos/react-ui","kind":"import-statement","external":true},{"path":"@dxos/react-ui-form","kind":"import-statement","external":true}],"exports":["ObservabilitySettings","ObservabilitySettingsSchema"],"inputs":{"packages/plugins/plugin-observability/src/components/ObservabilitySettings.tsx":{"bytesInOutput":1115},"packages/plugins/plugin-observability/src/components/index.ts":{"bytesInOutput":0}},"bytes":1527},"packages/plugins/plugin-observability/dist/lib/node-esm/chunk-DSC5SQ7W.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":3576},"packages/plugins/plugin-observability/dist/lib/node-esm/chunk-DSC5SQ7W.mjs":{"imports":[{"path":"packages/plugins/plugin-observability/dist/lib/node-esm/chunk-HTL7V6A2.mjs","kind":"import-statement"},{"path":"@dxos/echo-schema","kind":"import-statement","external":true}],"exports":["ObservabilityAction","UserFeedback"],"inputs":{"packages/plugins/plugin-observability/src/types.ts":{"bytesInOutput":1658}},"bytes":1963},"packages/plugins/plugin-observability/dist/lib/node-esm/state-UXRA6NQC.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":1587},"packages/plugins/plugin-observability/dist/lib/node-esm/state-UXRA6NQC.mjs":{"imports":[{"path":"packages/plugins/plugin-observability/dist/lib/node-esm/chunk-KPH3N6JS.mjs","kind":"import-statement"},{"path":"packages/plugins/plugin-observability/dist/lib/node-esm/chunk-HTL7V6A2.mjs","kind":"import-statement"},{"path":"@dxos/app-framework","kind":"import-statement","external":true},{"path":"@dxos/local-storage","kind":"import-statement","external":true},{"path":"@dxos/observability","kind":"import-statement","external":true}],"exports":["default"],"entryPoint":"packages/plugins/plugin-observability/src/capabilities/state.ts","inputs":{"packages/plugins/plugin-observability/src/capabilities/state.ts":{"bytesInOutput":544}},"bytes":918},"packages/plugins/plugin-observability/dist/lib/node-esm/chunk-KPH3N6JS.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":1243},"packages/plugins/plugin-observability/dist/lib/node-esm/chunk-KPH3N6JS.mjs":{"imports":[{"path":"packages/plugins/plugin-observability/dist/lib/node-esm/chunk-HTL7V6A2.mjs","kind":"import-statement"},{"path":"@dxos/app-framework","kind":"import-statement","external":true}],"exports":["ClientCapability","ObservabilityCapabilities"],"inputs":{"packages/plugins/plugin-observability/src/capabilities/capabilities.ts":{"bytesInOutput":493}},"bytes":828},"packages/plugins/plugin-observability/dist/lib/node-esm/chunk-HTL7V6A2.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":543},"packages/plugins/plugin-observability/dist/lib/node-esm/chunk-HTL7V6A2.mjs":{"imports":[],"exports":["OBSERVABILITY_PLUGIN","meta"],"inputs":{"packages/plugins/plugin-observability/src/meta.ts":{"bytesInOutput":152}},"bytes":386}}}
1
+ {"inputs":{"packages/plugins/plugin-observability/src/meta.ts":{"bytes":1046,"imports":[],"format":"esm"},"packages/plugins/plugin-observability/src/capabilities/capabilities.ts":{"bytes":2554,"imports":[{"path":"@dxos/app-framework","kind":"import-statement","external":true},{"path":"packages/plugins/plugin-observability/src/meta.ts","kind":"import-statement","original":"../meta"}],"format":"esm"},"packages/plugins/plugin-observability/src/types.ts":{"bytes":6985,"imports":[{"path":"@dxos/echo-schema","kind":"import-statement","external":true},{"path":"packages/plugins/plugin-observability/src/meta.ts","kind":"import-statement","original":"./meta"}],"format":"esm"},"packages/plugins/plugin-observability/src/capabilities/client-ready.ts":{"bytes":14154,"imports":[{"path":"@dxos/app-framework","kind":"import-statement","external":true},{"path":"@dxos/observability","kind":"import-statement","external":true},{"path":"packages/plugins/plugin-observability/src/capabilities/capabilities.ts","kind":"import-statement","original":"./capabilities"},{"path":"packages/plugins/plugin-observability/src/meta.ts","kind":"import-statement","original":"../meta"},{"path":"packages/plugins/plugin-observability/src/types.ts","kind":"import-statement","original":"../types"}],"format":"esm"},"packages/plugins/plugin-observability/src/capabilities/intents-resolver.ts":{"bytes":8838,"imports":[{"path":"@dxos/app-framework","kind":"import-statement","external":true},{"path":"@dxos/observability","kind":"import-statement","external":true},{"path":"packages/plugins/plugin-observability/src/capabilities/capabilities.ts","kind":"import-statement","original":"./capabilities"},{"path":"packages/plugins/plugin-observability/src/meta.ts","kind":"import-statement","original":"../meta"},{"path":"packages/plugins/plugin-observability/src/types.ts","kind":"import-statement","original":"../types"}],"format":"esm"},"packages/plugins/plugin-observability/src/components/ObservabilitySettings.tsx":{"bytes":5178,"imports":[{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/app-framework","kind":"import-statement","external":true},{"path":"@dxos/echo-schema","kind":"import-statement","external":true},{"path":"@dxos/react-ui","kind":"import-statement","external":true},{"path":"@dxos/react-ui-form","kind":"import-statement","external":true},{"path":"packages/plugins/plugin-observability/src/meta.ts","kind":"import-statement","original":"../meta"},{"path":"packages/plugins/plugin-observability/src/types.ts","kind":"import-statement","original":"../types"}],"format":"esm"},"packages/plugins/plugin-observability/src/components/index.ts":{"bytes":553,"imports":[{"path":"packages/plugins/plugin-observability/src/components/ObservabilitySettings.tsx","kind":"import-statement","original":"./ObservabilitySettings"}],"format":"esm"},"packages/plugins/plugin-observability/src/capabilities/react-surface.tsx":{"bytes":3021,"imports":[{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/app-framework","kind":"import-statement","external":true},{"path":"packages/plugins/plugin-observability/src/components/index.ts","kind":"import-statement","original":"../components"},{"path":"packages/plugins/plugin-observability/src/meta.ts","kind":"import-statement","original":"../meta"}],"format":"esm"},"packages/plugins/plugin-observability/src/capabilities/settings.ts":{"bytes":2180,"imports":[{"path":"@dxos/app-framework","kind":"import-statement","external":true},{"path":"@dxos/live-object","kind":"import-statement","external":true},{"path":"packages/plugins/plugin-observability/src/components/index.ts","kind":"import-statement","original":"../components"},{"path":"packages/plugins/plugin-observability/src/meta.ts","kind":"import-statement","original":"../meta"}],"format":"esm"},"packages/plugins/plugin-observability/src/capabilities/state.ts":{"bytes":3153,"imports":[{"path":"@dxos/app-framework","kind":"import-statement","external":true},{"path":"@dxos/local-storage","kind":"import-statement","external":true},{"path":"@dxos/observability","kind":"import-statement","external":true},{"path":"packages/plugins/plugin-observability/src/capabilities/capabilities.ts","kind":"import-statement","original":"./capabilities"},{"path":"packages/plugins/plugin-observability/src/meta.ts","kind":"import-statement","original":"../meta"}],"format":"esm"},"packages/plugins/plugin-observability/src/capabilities/index.ts":{"bytes":1944,"imports":[{"path":"@dxos/app-framework","kind":"import-statement","external":true},{"path":"packages/plugins/plugin-observability/src/capabilities/capabilities.ts","kind":"import-statement","original":"./capabilities"},{"path":"packages/plugins/plugin-observability/src/capabilities/client-ready.ts","kind":"dynamic-import","original":"./client-ready"},{"path":"packages/plugins/plugin-observability/src/capabilities/intents-resolver.ts","kind":"dynamic-import","original":"./intents-resolver"},{"path":"packages/plugins/plugin-observability/src/capabilities/react-surface.tsx","kind":"dynamic-import","original":"./react-surface"},{"path":"packages/plugins/plugin-observability/src/capabilities/settings.ts","kind":"dynamic-import","original":"./settings"},{"path":"packages/plugins/plugin-observability/src/capabilities/state.ts","kind":"dynamic-import","original":"./state"}],"format":"esm"},"packages/plugins/plugin-observability/src/events.ts":{"bytes":1845,"imports":[{"path":"@dxos/app-framework","kind":"import-statement","external":true},{"path":"packages/plugins/plugin-observability/src/meta.ts","kind":"import-statement","original":"./meta"}],"format":"esm"},"packages/plugins/plugin-observability/src/translations.ts":{"bytes":3430,"imports":[{"path":"packages/plugins/plugin-observability/src/meta.ts","kind":"import-statement","original":"./meta"}],"format":"esm"},"packages/plugins/plugin-observability/src/ObservabilityPlugin.ts":{"bytes":8075,"imports":[{"path":"@dxos/app-framework","kind":"import-statement","external":true},{"path":"packages/plugins/plugin-observability/src/capabilities/index.ts","kind":"import-statement","original":"./capabilities"},{"path":"packages/plugins/plugin-observability/src/events.ts","kind":"import-statement","original":"./events"},{"path":"packages/plugins/plugin-observability/src/meta.ts","kind":"import-statement","original":"./meta"},{"path":"packages/plugins/plugin-observability/src/translations.ts","kind":"import-statement","original":"./translations"}],"format":"esm"},"packages/plugins/plugin-observability/src/index.ts":{"bytes":1020,"imports":[{"path":"packages/plugins/plugin-observability/src/capabilities/index.ts","kind":"import-statement","original":"./capabilities"},{"path":"packages/plugins/plugin-observability/src/events.ts","kind":"import-statement","original":"./events"},{"path":"packages/plugins/plugin-observability/src/meta.ts","kind":"import-statement","original":"./meta"},{"path":"packages/plugins/plugin-observability/src/ObservabilityPlugin.ts","kind":"import-statement","original":"./ObservabilityPlugin"}],"format":"esm"}},"outputs":{"packages/plugins/plugin-observability/dist/lib/node-esm/index.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":6880},"packages/plugins/plugin-observability/dist/lib/node-esm/index.mjs":{"imports":[{"path":"packages/plugins/plugin-observability/dist/lib/node-esm/chunk-SCQR7W6A.mjs","kind":"import-statement"},{"path":"packages/plugins/plugin-observability/dist/lib/node-esm/chunk-YK5MJX7W.mjs","kind":"import-statement"},{"path":"@dxos/app-framework","kind":"import-statement","external":true},{"path":"packages/plugins/plugin-observability/dist/lib/node-esm/client-ready-LPGIUDS2.mjs","kind":"dynamic-import"},{"path":"packages/plugins/plugin-observability/dist/lib/node-esm/intents-resolver-QDAK6TMP.mjs","kind":"dynamic-import"},{"path":"packages/plugins/plugin-observability/dist/lib/node-esm/react-surface-MMGCSPXQ.mjs","kind":"dynamic-import"},{"path":"packages/plugins/plugin-observability/dist/lib/node-esm/settings-WWUULM4T.mjs","kind":"dynamic-import"},{"path":"packages/plugins/plugin-observability/dist/lib/node-esm/state-AM2ICAXU.mjs","kind":"dynamic-import"},{"path":"@dxos/app-framework","kind":"import-statement","external":true},{"path":"@dxos/app-framework","kind":"import-statement","external":true}],"exports":["OBSERVABILITY_PLUGIN","ObservabilityCapabilities","ObservabilityEvents","ObservabilityPlugin","meta"],"entryPoint":"packages/plugins/plugin-observability/src/index.ts","inputs":{"packages/plugins/plugin-observability/src/capabilities/index.ts":{"bytesInOutput":404},"packages/plugins/plugin-observability/src/index.ts":{"bytesInOutput":0},"packages/plugins/plugin-observability/src/events.ts":{"bytesInOutput":337},"packages/plugins/plugin-observability/src/ObservabilityPlugin.ts":{"bytesInOutput":1607},"packages/plugins/plugin-observability/src/translations.ts":{"bytesInOutput":1031}},"bytes":4087},"packages/plugins/plugin-observability/dist/lib/node-esm/types.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":93},"packages/plugins/plugin-observability/dist/lib/node-esm/types.mjs":{"imports":[{"path":"packages/plugins/plugin-observability/dist/lib/node-esm/chunk-DF2CPSQB.mjs","kind":"import-statement"},{"path":"packages/plugins/plugin-observability/dist/lib/node-esm/chunk-YK5MJX7W.mjs","kind":"import-statement"}],"exports":["ObservabilityAction","UserFeedback"],"entryPoint":"packages/plugins/plugin-observability/src/types.ts","inputs":{},"bytes":286},"packages/plugins/plugin-observability/dist/lib/node-esm/client-ready-LPGIUDS2.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":6901},"packages/plugins/plugin-observability/dist/lib/node-esm/client-ready-LPGIUDS2.mjs":{"imports":[{"path":"packages/plugins/plugin-observability/dist/lib/node-esm/chunk-DF2CPSQB.mjs","kind":"import-statement"},{"path":"packages/plugins/plugin-observability/dist/lib/node-esm/chunk-SCQR7W6A.mjs","kind":"import-statement"},{"path":"packages/plugins/plugin-observability/dist/lib/node-esm/chunk-YK5MJX7W.mjs","kind":"import-statement"},{"path":"@dxos/app-framework","kind":"import-statement","external":true},{"path":"@dxos/observability","kind":"import-statement","external":true}],"exports":["default"],"entryPoint":"packages/plugins/plugin-observability/src/capabilities/client-ready.ts","inputs":{"packages/plugins/plugin-observability/src/capabilities/client-ready.ts":{"bytesInOutput":3353}},"bytes":3830},"packages/plugins/plugin-observability/dist/lib/node-esm/intents-resolver-QDAK6TMP.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":4416},"packages/plugins/plugin-observability/dist/lib/node-esm/intents-resolver-QDAK6TMP.mjs":{"imports":[{"path":"packages/plugins/plugin-observability/dist/lib/node-esm/chunk-DF2CPSQB.mjs","kind":"import-statement"},{"path":"packages/plugins/plugin-observability/dist/lib/node-esm/chunk-SCQR7W6A.mjs","kind":"import-statement"},{"path":"packages/plugins/plugin-observability/dist/lib/node-esm/chunk-YK5MJX7W.mjs","kind":"import-statement"},{"path":"@dxos/app-framework","kind":"import-statement","external":true},{"path":"@dxos/observability","kind":"import-statement","external":true}],"exports":["default"],"entryPoint":"packages/plugins/plugin-observability/src/capabilities/intents-resolver.ts","inputs":{"packages/plugins/plugin-observability/src/capabilities/intents-resolver.ts":{"bytesInOutput":1765}},"bytes":2254},"packages/plugins/plugin-observability/dist/lib/node-esm/react-surface-MMGCSPXQ.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":1555},"packages/plugins/plugin-observability/dist/lib/node-esm/react-surface-MMGCSPXQ.mjs":{"imports":[{"path":"packages/plugins/plugin-observability/dist/lib/node-esm/chunk-PZRWMBEG.mjs","kind":"import-statement"},{"path":"packages/plugins/plugin-observability/dist/lib/node-esm/chunk-DF2CPSQB.mjs","kind":"import-statement"},{"path":"packages/plugins/plugin-observability/dist/lib/node-esm/chunk-YK5MJX7W.mjs","kind":"import-statement"},{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/app-framework","kind":"import-statement","external":true}],"exports":["default"],"entryPoint":"packages/plugins/plugin-observability/src/capabilities/react-surface.tsx","inputs":{"packages/plugins/plugin-observability/src/capabilities/react-surface.tsx":{"bytesInOutput":544}},"bytes":970},"packages/plugins/plugin-observability/dist/lib/node-esm/settings-WWUULM4T.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":1086},"packages/plugins/plugin-observability/dist/lib/node-esm/settings-WWUULM4T.mjs":{"imports":[{"path":"packages/plugins/plugin-observability/dist/lib/node-esm/chunk-PZRWMBEG.mjs","kind":"import-statement"},{"path":"packages/plugins/plugin-observability/dist/lib/node-esm/chunk-DF2CPSQB.mjs","kind":"import-statement"},{"path":"packages/plugins/plugin-observability/dist/lib/node-esm/chunk-YK5MJX7W.mjs","kind":"import-statement"},{"path":"@dxos/app-framework","kind":"import-statement","external":true},{"path":"@dxos/live-object","kind":"import-statement","external":true}],"exports":["default"],"entryPoint":"packages/plugins/plugin-observability/src/capabilities/settings.ts","inputs":{"packages/plugins/plugin-observability/src/capabilities/settings.ts":{"bytesInOutput":342}},"bytes":758},"packages/plugins/plugin-observability/dist/lib/node-esm/chunk-PZRWMBEG.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":2817},"packages/plugins/plugin-observability/dist/lib/node-esm/chunk-PZRWMBEG.mjs":{"imports":[{"path":"packages/plugins/plugin-observability/dist/lib/node-esm/chunk-DF2CPSQB.mjs","kind":"import-statement"},{"path":"packages/plugins/plugin-observability/dist/lib/node-esm/chunk-YK5MJX7W.mjs","kind":"import-statement"},{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/app-framework","kind":"import-statement","external":true},{"path":"@dxos/echo-schema","kind":"import-statement","external":true},{"path":"@dxos/react-ui","kind":"import-statement","external":true},{"path":"@dxos/react-ui-form","kind":"import-statement","external":true}],"exports":["ObservabilitySettings","ObservabilitySettingsSchema"],"inputs":{"packages/plugins/plugin-observability/src/components/ObservabilitySettings.tsx":{"bytesInOutput":1081},"packages/plugins/plugin-observability/src/components/index.ts":{"bytesInOutput":0}},"bytes":1493},"packages/plugins/plugin-observability/dist/lib/node-esm/chunk-DF2CPSQB.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":3576},"packages/plugins/plugin-observability/dist/lib/node-esm/chunk-DF2CPSQB.mjs":{"imports":[{"path":"packages/plugins/plugin-observability/dist/lib/node-esm/chunk-YK5MJX7W.mjs","kind":"import-statement"},{"path":"@dxos/echo-schema","kind":"import-statement","external":true}],"exports":["ObservabilityAction","UserFeedback"],"inputs":{"packages/plugins/plugin-observability/src/types.ts":{"bytesInOutput":1658}},"bytes":1963},"packages/plugins/plugin-observability/dist/lib/node-esm/state-AM2ICAXU.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":1587},"packages/plugins/plugin-observability/dist/lib/node-esm/state-AM2ICAXU.mjs":{"imports":[{"path":"packages/plugins/plugin-observability/dist/lib/node-esm/chunk-SCQR7W6A.mjs","kind":"import-statement"},{"path":"packages/plugins/plugin-observability/dist/lib/node-esm/chunk-YK5MJX7W.mjs","kind":"import-statement"},{"path":"@dxos/app-framework","kind":"import-statement","external":true},{"path":"@dxos/local-storage","kind":"import-statement","external":true},{"path":"@dxos/observability","kind":"import-statement","external":true}],"exports":["default"],"entryPoint":"packages/plugins/plugin-observability/src/capabilities/state.ts","inputs":{"packages/plugins/plugin-observability/src/capabilities/state.ts":{"bytesInOutput":544}},"bytes":918},"packages/plugins/plugin-observability/dist/lib/node-esm/chunk-SCQR7W6A.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":1243},"packages/plugins/plugin-observability/dist/lib/node-esm/chunk-SCQR7W6A.mjs":{"imports":[{"path":"packages/plugins/plugin-observability/dist/lib/node-esm/chunk-YK5MJX7W.mjs","kind":"import-statement"},{"path":"@dxos/app-framework","kind":"import-statement","external":true}],"exports":["ClientCapability","ObservabilityCapabilities"],"inputs":{"packages/plugins/plugin-observability/src/capabilities/capabilities.ts":{"bytesInOutput":493}},"bytes":828},"packages/plugins/plugin-observability/dist/lib/node-esm/chunk-YK5MJX7W.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":495},"packages/plugins/plugin-observability/dist/lib/node-esm/chunk-YK5MJX7W.mjs":{"imports":[],"exports":["OBSERVABILITY_PLUGIN","meta"],"inputs":{"packages/plugins/plugin-observability/src/meta.ts":{"bytesInOutput":124}},"bytes":358}}}
@@ -0,0 +1,27 @@
1
+ import { createRequire } from 'node:module';const require = createRequire(import.meta.url);
2
+ import {
3
+ ObservabilitySettings
4
+ } from "./chunk-PZRWMBEG.mjs";
5
+ import "./chunk-DF2CPSQB.mjs";
6
+ import {
7
+ OBSERVABILITY_PLUGIN
8
+ } from "./chunk-YK5MJX7W.mjs";
9
+
10
+ // packages/plugins/plugin-observability/src/capabilities/react-surface.tsx
11
+ import React from "react";
12
+ import { contributes, useCapability, Capabilities, createSurface } from "@dxos/app-framework";
13
+ var react_surface_default = () => contributes(Capabilities.ReactSurface, createSurface({
14
+ id: OBSERVABILITY_PLUGIN,
15
+ role: "settings",
16
+ filter: (data) => data.subject === OBSERVABILITY_PLUGIN,
17
+ component: () => {
18
+ const settings = useCapability(Capabilities.SettingsStore).getStore(OBSERVABILITY_PLUGIN).value;
19
+ return /* @__PURE__ */ React.createElement(ObservabilitySettings, {
20
+ settings
21
+ });
22
+ }
23
+ }));
24
+ export {
25
+ react_surface_default as default
26
+ };
27
+ //# sourceMappingURL=react-surface-MMGCSPXQ.mjs.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../src/capabilities/react-surface.tsx"],
4
+ "sourcesContent": ["//\n// Copyright 2025 DXOS.org\n//\n\nimport React from 'react';\n\nimport { contributes, useCapability, Capabilities, createSurface } from '@dxos/app-framework';\n\nimport { ObservabilitySettings, type ObservabilitySettingsProps } from '../components';\nimport { OBSERVABILITY_PLUGIN } from '../meta';\n\nexport default () =>\n contributes(\n Capabilities.ReactSurface,\n createSurface({\n id: OBSERVABILITY_PLUGIN,\n role: 'settings',\n filter: (data): data is any => data.subject === OBSERVABILITY_PLUGIN,\n component: () => {\n const settings = useCapability(Capabilities.SettingsStore).getStore<ObservabilitySettingsProps>(\n OBSERVABILITY_PLUGIN,\n )!.value;\n return <ObservabilitySettings settings={settings} />;\n },\n }),\n );\n"],
5
+ "mappings": ";;;;;;;;;;AAIA,OAAOA,WAAW;AAElB,SAASC,aAAaC,eAAeC,cAAcC,qBAAqB;AAKxE,IAAA,wBAAe,MACbC,YACEC,aAAaC,cACbC,cAAc;EACZC,IAAIC;EACJC,MAAM;EACNC,QAAQ,CAACC,SAAsBA,KAAKC,YAAYJ;EAChDK,WAAW,MAAA;AACT,UAAMC,WAAWC,cAAcX,aAAaY,aAAa,EAAEC,SACzDT,oBAAAA,EACCU;AACH,WAAO,sBAAA,cAACC,uBAAAA;MAAsBL;;EAChC;AACF,CAAA,CAAA;",
6
+ "names": ["React", "contributes", "useCapability", "Capabilities", "createSurface", "contributes", "Capabilities", "ReactSurface", "createSurface", "id", "OBSERVABILITY_PLUGIN", "role", "filter", "data", "subject", "component", "settings", "useCapability", "SettingsStore", "getStore", "value", "ObservabilitySettings"]
7
+ }
@@ -1,11 +1,11 @@
1
1
  import { createRequire } from 'node:module';const require = createRequire(import.meta.url);
2
2
  import {
3
3
  ObservabilitySettingsSchema
4
- } from "./chunk-N5NBR55J.mjs";
5
- import "./chunk-DSC5SQ7W.mjs";
4
+ } from "./chunk-PZRWMBEG.mjs";
5
+ import "./chunk-DF2CPSQB.mjs";
6
6
  import {
7
7
  OBSERVABILITY_PLUGIN
8
- } from "./chunk-HTL7V6A2.mjs";
8
+ } from "./chunk-YK5MJX7W.mjs";
9
9
 
10
10
  // packages/plugins/plugin-observability/src/capabilities/settings.ts
11
11
  import { Capabilities, contributes } from "@dxos/app-framework";
@@ -23,4 +23,4 @@ var settings_default = () => {
23
23
  export {
24
24
  settings_default as default
25
25
  };
26
- //# sourceMappingURL=settings-UNFUTWGX.mjs.map
26
+ //# sourceMappingURL=settings-WWUULM4T.mjs.map
@@ -1,10 +1,10 @@
1
1
  import { createRequire } from 'node:module';const require = createRequire(import.meta.url);
2
2
  import {
3
3
  ObservabilityCapabilities
4
- } from "./chunk-KPH3N6JS.mjs";
4
+ } from "./chunk-SCQR7W6A.mjs";
5
5
  import {
6
6
  OBSERVABILITY_PLUGIN
7
- } from "./chunk-HTL7V6A2.mjs";
7
+ } from "./chunk-YK5MJX7W.mjs";
8
8
 
9
9
  // packages/plugins/plugin-observability/src/capabilities/state.ts
10
10
  import { contributes } from "@dxos/app-framework";
@@ -24,4 +24,4 @@ var state_default = async ({ namespace }) => {
24
24
  export {
25
25
  state_default as default
26
26
  };
27
- //# sourceMappingURL=state-UXRA6NQC.mjs.map
27
+ //# sourceMappingURL=state-AM2ICAXU.mjs.map
@@ -2,8 +2,8 @@ import { createRequire } from 'node:module';const require = createRequire(import
2
2
  import {
3
3
  ObservabilityAction,
4
4
  UserFeedback
5
- } from "./chunk-DSC5SQ7W.mjs";
6
- import "./chunk-HTL7V6A2.mjs";
5
+ } from "./chunk-DF2CPSQB.mjs";
6
+ import "./chunk-YK5MJX7W.mjs";
7
7
  export {
8
8
  ObservabilityAction,
9
9
  UserFeedback
@@ -1 +1 @@
1
- {"version":3,"file":"ObservabilityPlugin.d.ts","sourceRoot":"","sources":["../../../src/ObservabilityPlugin.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,KAAK,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAczD,eAAO,MAAM,mBAAmB,YAAa;IAAE,SAAS,EAAE,MAAM,CAAC;IAAC,aAAa,EAAE,MAAM,OAAO,CAAC,aAAa,CAAC,CAAA;CAAE,yCAyC3G,CAAC"}
1
+ {"version":3,"file":"ObservabilityPlugin.d.ts","sourceRoot":"","sources":["../../../src/ObservabilityPlugin.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,KAAK,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAczD,eAAO,MAAM,mBAAmB,YAAa;IAAE,SAAS,EAAE,MAAM,CAAC;IAAC,aAAa,EAAE,MAAM,OAAO,CAAC,aAAa,CAAC,CAAA;CAAE,yCAwC3G,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"client-ready.d.ts","sourceRoot":"","sources":["../../../../src/capabilities/client-ready.ts"],"names":[],"mappings":"AAIA,OAAO,EAML,KAAK,cAAc,EACpB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAA2B,KAAK,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAMlF,KAAK,kBAAkB,GAAG;IACxB,OAAO,EAAE,cAAc,CAAC;IACxB,SAAS,EAAE,MAAM,CAAC;IAClB,aAAa,EAAE,aAAa,CAAC;CAC9B,CAAC;gEAE2D,kBAAkB;AAA/E,wBAyEE"}
1
+ {"version":3,"file":"client-ready.d.ts","sourceRoot":"","sources":["../../../../src/capabilities/client-ready.ts"],"names":[],"mappings":"AAIA,OAAO,EAML,KAAK,cAAc,EACpB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAA2B,KAAK,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAMlF,KAAK,kBAAkB,GAAG;IACxB,OAAO,EAAE,cAAc,CAAC;IACxB,SAAS,EAAE,MAAM,CAAC;IAClB,aAAa,EAAE,aAAa,CAAC;CAC9B,CAAC;gEAE2D,kBAAkB;AAA/E,wBA0EE"}
@@ -2,15 +2,15 @@ export declare const ClientReady: (props?: {
2
2
  context: import("@dxos/app-framework").PluginsContext;
3
3
  namespace: string;
4
4
  observability: import("packages/sdk/observability/dist/types/src").Observability;
5
- } | undefined) => Promise<() => Promise<import("@dxos/app-framework").Capability<import("packages/sdk/observability/dist/types/src").Observability> | import("@dxos/app-framework").AnyCapability[]>>;
5
+ } | undefined) => Promise<import("@dxos/app-framework").Capability<import("packages/sdk/observability/dist/types/src").Observability>>;
6
6
  export declare const IntentResolver: (props?: {
7
7
  context: import("@dxos/app-framework").PluginsContext;
8
8
  namespace: string;
9
- } | undefined) => Promise<() => Promise<import("@dxos/app-framework").Capability<import("@dxos/app-framework").Capabilities.IntentResolver> | import("@dxos/app-framework").AnyCapability[]>>;
10
- export declare const ReactSurface: (props?: unknown) => Promise<() => Promise<import("@dxos/app-framework").Capability<import("@dxos/app-framework").Capabilities.ReactSurface> | import("@dxos/app-framework").AnyCapability[]>>;
11
- export declare const ObservabilitySettings: (props?: unknown) => Promise<() => Promise<import("@dxos/app-framework").Capability<import("@dxos/app-framework").Capabilities.Settings> | import("@dxos/app-framework").AnyCapability[]>>;
9
+ } | undefined) => Promise<import("@dxos/app-framework").Capability<import("@dxos/app-framework").Capabilities.IntentResolver>>;
10
+ export declare const ReactSurface: (props?: unknown) => Promise<import("@dxos/app-framework").Capability<import("@dxos/app-framework").Capabilities.ReactSurface>>;
11
+ export declare const ObservabilitySettings: (props?: unknown) => Promise<import("@dxos/app-framework").Capability<import("@dxos/app-framework").Capabilities.Settings>>;
12
12
  export declare const ObservabilityState: (props?: {
13
13
  namespace: string;
14
- } | undefined) => Promise<() => Promise<import("@dxos/app-framework").Capability<import("packages/core/echo/live-object/dist/types/src").ReactiveObject<import("./capabilities").ObservabilityCapabilities.State>> | import("@dxos/app-framework").AnyCapability[]>>;
14
+ } | undefined) => Promise<import("@dxos/app-framework").Capability<import("packages/core/echo/live-object/dist/types/src").ReactiveObject<import("./capabilities").ObservabilityCapabilities.State>>>;
15
15
  export * from './capabilities';
16
16
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/capabilities/index.ts"],"names":[],"mappings":"AAMA,eAAO,MAAM,WAAW;;;;qMAAuC,CAAC;AAChE,eAAO,MAAM,cAAc;;;6LAA2C,CAAC;AACvE,eAAO,MAAM,YAAY,gMAAwC,CAAC;AAClE,eAAO,MAAM,qBAAqB,4LAAmC,CAAC;AACtE,eAAO,MAAM,kBAAkB;;oQAAgC,CAAC;AAEhE,cAAc,gBAAgB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/capabilities/index.ts"],"names":[],"mappings":"AAMA,eAAO,MAAM,WAAW;;;;sIAAuC,CAAC;AAChE,eAAO,MAAM,cAAc;;;8HAA2C,CAAC;AACvE,eAAO,MAAM,YAAY,iIAAwC,CAAC;AAClE,eAAO,MAAM,qBAAqB,6HAAmC,CAAC;AACtE,eAAO,MAAM,kBAAkB;;qMAAgC,CAAC;AAEhE,cAAc,gBAAgB,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"intents-resolver.d.ts","sourceRoot":"","sources":["../../../../src/capabilities/intents-resolver.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,YAAY,EAA+B,KAAK,cAAc,EAAE,MAAM,qBAAqB,CAAC;iDAQ7D;IAAE,OAAO,EAAE,cAAc,CAAC;IAAC,SAAS,EAAE,MAAM,CAAA;CAAE;AAAtF,wBAiDK"}
1
+ {"version":3,"file":"intents-resolver.d.ts","sourceRoot":"","sources":["../../../../src/capabilities/intents-resolver.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,YAAY,EAA+B,KAAK,cAAc,EAAE,MAAM,qBAAqB,CAAC;iDAQ7D;IAAE,OAAO,EAAE,cAAc,CAAC;IAAC,SAAS,EAAE,MAAM,CAAA;CAAE;AAAtF,wBAwCK"}
@@ -1 +1 @@
1
- {"version":3,"file":"react-surface.d.ts","sourceRoot":"","sources":["../../../../src/capabilities/react-surface.tsx"],"names":[],"mappings":"AAMA,OAAO,EAAe,YAAY,EAAiB,MAAM,qBAAqB,CAAC;;AAM/E,wBAUI"}
1
+ {"version":3,"file":"react-surface.d.ts","sourceRoot":"","sources":["../../../../src/capabilities/react-surface.tsx"],"names":[],"mappings":"AAMA,OAAO,EAA8B,YAAY,EAAiB,MAAM,qBAAqB,CAAC;;AAK9F,wBAcI"}
@@ -2,6 +2,5 @@ export declare const OBSERVABILITY_PLUGIN = "dxos.org/plugin/observability";
2
2
  export declare const meta: {
3
3
  id: string;
4
4
  name: string;
5
- icon: string;
6
5
  };
7
6
  //# sourceMappingURL=meta.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"meta.d.ts","sourceRoot":"","sources":["../../../src/meta.ts"],"names":[],"mappings":"AAMA,eAAO,MAAM,oBAAoB,kCAAkC,CAAC;AAEpE,eAAO,MAAM,IAAI;;;;CAIK,CAAC"}
1
+ {"version":3,"file":"meta.d.ts","sourceRoot":"","sources":["../../../src/meta.ts"],"names":[],"mappings":"AAMA,eAAO,MAAM,oBAAoB,kCAAkC,CAAC;AAEpE,eAAO,MAAM,IAAI;;;CAGK,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@dxos/plugin-observability",
3
- "version": "0.7.5-labs.e27f9b9",
3
+ "version": "0.7.5-main.2567c87",
4
4
  "description": "DXOS app framework plugin for hooking up app observability",
5
5
  "homepage": "https://dxos.org",
6
6
  "bugs": "https://github.com/dxos/dxos/issues",
@@ -34,35 +34,34 @@
34
34
  "dependencies": {
35
35
  "@preact/signals-core": "^1.6.0",
36
36
  "localforage": "^1.10.0",
37
- "@dxos/app-framework": "0.7.5-labs.e27f9b9",
38
- "@dxos/async": "0.7.5-labs.e27f9b9",
39
- "@dxos/context": "0.7.5-labs.e27f9b9",
40
- "@dxos/echo-schema": "0.7.5-labs.e27f9b9",
41
- "@dxos/local-storage": "0.7.5-labs.e27f9b9",
42
- "@dxos/live-object": "0.7.5-labs.e27f9b9",
43
- "@dxos/log": "0.7.5-labs.e27f9b9",
44
- "@dxos/observability": "0.7.5-labs.e27f9b9",
45
- "@dxos/react-client": "0.7.5-labs.e27f9b9",
46
- "@dxos/invariant": "0.7.5-labs.e27f9b9",
47
- "@dxos/protocols": "0.7.5-labs.e27f9b9",
48
- "@dxos/react-ui-form": "0.7.5-labs.e27f9b9",
49
- "@dxos/react-ui-stack": "0.7.5-labs.e27f9b9",
50
- "@dxos/util": "0.7.5-labs.e27f9b9"
37
+ "@dxos/app-framework": "0.7.5-main.2567c87",
38
+ "@dxos/echo-schema": "0.7.5-main.2567c87",
39
+ "@dxos/async": "0.7.5-main.2567c87",
40
+ "@dxos/context": "0.7.5-main.2567c87",
41
+ "@dxos/invariant": "0.7.5-main.2567c87",
42
+ "@dxos/live-object": "0.7.5-main.2567c87",
43
+ "@dxos/local-storage": "0.7.5-main.2567c87",
44
+ "@dxos/log": "0.7.5-main.2567c87",
45
+ "@dxos/protocols": "0.7.5-main.2567c87",
46
+ "@dxos/observability": "0.7.5-main.2567c87",
47
+ "@dxos/react-client": "0.7.5-main.2567c87",
48
+ "@dxos/react-ui-form": "0.7.5-main.2567c87",
49
+ "@dxos/util": "0.7.5-main.2567c87"
51
50
  },
52
51
  "devDependencies": {
53
52
  "@phosphor-icons/react": "^2.1.5",
54
53
  "@types/react": "~18.2.0",
55
54
  "react": "~18.2.0",
56
55
  "vite": "5.4.7",
57
- "@dxos/react-ui-theme": "0.7.5-labs.e27f9b9",
58
- "@dxos/react-ui": "0.7.5-labs.e27f9b9",
59
- "@dxos/storybook-utils": "0.7.5-labs.e27f9b9"
56
+ "@dxos/react-ui-theme": "0.7.5-main.2567c87",
57
+ "@dxos/storybook-utils": "0.7.5-main.2567c87",
58
+ "@dxos/react-ui": "0.7.5-main.2567c87"
60
59
  },
61
60
  "peerDependencies": {
62
61
  "@phosphor-icons/react": "^2.1.5",
63
62
  "react": "~18.2.0",
64
- "@dxos/react-ui": "0.7.5-labs.e27f9b9",
65
- "@dxos/react-ui-theme": "0.7.5-labs.e27f9b9"
63
+ "@dxos/react-ui": "0.7.5-main.2567c87",
64
+ "@dxos/react-ui-theme": "0.7.5-main.2567c87"
66
65
  },
67
66
  "publishConfig": {
68
67
  "access": "public"
@@ -32,7 +32,6 @@ export const ObservabilityPlugin = (options: { namespace: string; observability:
32
32
  defineModule({
33
33
  id: `${meta.id}/module/state`,
34
34
  activatesOn: Events.Startup,
35
- activatesAfter: [ObservabilityEvents.StateReady],
36
35
  activate: () => ObservabilityState({ namespace: options.namespace }),
37
36
  }),
38
37
  defineModule({
@@ -47,7 +46,7 @@ export const ObservabilityPlugin = (options: { namespace: string; observability:
47
46
  }),
48
47
  defineModule({
49
48
  id: `${meta.id}/module/react-surface`,
50
- activatesOn: Events.SetupSurfaces,
49
+ activatesOn: Events.Startup,
51
50
  activate: ReactSurface,
52
51
  }),
53
52
  defineModule({
@@ -34,10 +34,11 @@ export default async ({ context, namespace, observability }: ClientReadyOptions)
34
34
  environment && environment !== 'ci' && !environment.endsWith('.local') && !environment.endsWith('.lan');
35
35
  if (!state.notified && notify) {
36
36
  await dispatch(
37
- createIntent(LayoutAction.AddToast, {
38
- part: 'toast',
37
+ createIntent(LayoutAction.SetLayout, {
38
+ element: 'toast',
39
39
  subject: {
40
40
  id: `${OBSERVABILITY_PLUGIN}/notice`,
41
+ // TODO(wittjosiah): Non-react translation utils.
41
42
  title: ['observability toast label', { ns: OBSERVABILITY_PLUGIN }],
42
43
  description: ['observability toast description', { ns: OBSERVABILITY_PLUGIN }],
43
44
  duration: Infinity,
@@ -12,51 +12,42 @@ import { ObservabilityAction } from '../types';
12
12
 
13
13
  export default ({ context, namespace }: { context: PluginsContext; namespace: string }) =>
14
14
  contributes(Capabilities.IntentResolver, [
15
- createResolver({
16
- intent: ObservabilityAction.Toggle,
17
- resolve: async ({ state }) => {
18
- const client = context.requestCapability(ClientCapability);
19
- const observability = context.requestCapability(ObservabilityCapabilities.Observability);
20
- const settings = context
21
- .requestCapability(Capabilities.SettingsStore)
22
- .getStore<ObservabilitySettingsProps>(OBSERVABILITY_PLUGIN)!.value;
23
- settings.enabled = state ?? !settings.enabled;
24
- observability.event({
15
+ createResolver(ObservabilityAction.Toggle, async ({ state }) => {
16
+ const client = context.requestCapability(ClientCapability);
17
+ const observability = context.requestCapability(ObservabilityCapabilities.Observability);
18
+ const settings = context
19
+ .requestCapability(Capabilities.SettingsStore)
20
+ .getStore<ObservabilitySettingsProps>(OBSERVABILITY_PLUGIN)!.value;
21
+ settings.enabled = state ?? !settings.enabled;
22
+ observability.event({
23
+ identityId: getTelemetryIdentifier(client),
24
+ name: `${namespace}.observability.toggle`,
25
+ properties: {
26
+ enabled: settings.enabled,
27
+ },
28
+ });
29
+ observability.setMode(settings.enabled ? 'basic' : 'disabled');
30
+ await storeObservabilityDisabled(namespace, !settings.enabled);
31
+ return { data: settings.enabled };
32
+ }),
33
+ createResolver(ObservabilityAction.SendEvent, (data) => {
34
+ const client = context.requestCapability(ClientCapability);
35
+ // NOTE: This is to ensure that events fired before observability is ready are still sent.
36
+ // TODO(wittjosiah): If the intent dispatcher supports concurrent actions in the future,
37
+ // then this could awaited still rather than voiding.
38
+ void context.waitForCapability(ObservabilityCapabilities.Observability).then((observability) => {
39
+ const event = {
25
40
  identityId: getTelemetryIdentifier(client),
26
- name: `${namespace}.observability.toggle`,
41
+ name: `${namespace}.${data.name}`,
27
42
  properties: {
28
- enabled: settings.enabled,
43
+ ...data.properties,
29
44
  },
30
- });
31
- observability.setMode(settings.enabled ? 'basic' : 'disabled');
32
- await storeObservabilityDisabled(namespace, !settings.enabled);
33
- return { data: settings.enabled };
34
- },
35
- }),
36
- createResolver({
37
- intent: ObservabilityAction.SendEvent,
38
- resolve: (data) => {
39
- const client = context.requestCapability(ClientCapability);
40
- // NOTE: This is to ensure that events fired before observability is ready are still sent.
41
- // TODO(wittjosiah): If the intent dispatcher supports concurrent actions in the future,
42
- // then this could awaited still rather than voiding.
43
- void context.waitForCapability(ObservabilityCapabilities.Observability).then((observability) => {
44
- const event = {
45
- identityId: getTelemetryIdentifier(client),
46
- name: `${namespace}.${data.name}`,
47
- properties: {
48
- ...data.properties,
49
- },
50
- };
51
- observability.event(event);
52
- });
53
- },
45
+ };
46
+ observability.event(event);
47
+ });
54
48
  }),
55
- createResolver({
56
- intent: ObservabilityAction.CaptureUserFeedback,
57
- resolve: async (data) => {
58
- const observability = context.requestCapability(ObservabilityCapabilities.Observability);
59
- observability.captureUserFeedback(data.email, data.name, data.message);
60
- },
49
+ createResolver(ObservabilityAction.CaptureUserFeedback, async (data) => {
50
+ const observability = context.requestCapability(ObservabilityCapabilities.Observability);
51
+ observability.captureUserFeedback(data.email, data.name, data.message);
61
52
  }),
62
53
  ]);
@@ -4,8 +4,7 @@
4
4
 
5
5
  import React from 'react';
6
6
 
7
- import { contributes, Capabilities, createSurface } from '@dxos/app-framework';
8
- import { SettingsStore } from '@dxos/local-storage';
7
+ import { contributes, useCapability, Capabilities, createSurface } from '@dxos/app-framework';
9
8
 
10
9
  import { ObservabilitySettings, type ObservabilitySettingsProps } from '../components';
11
10
  import { OBSERVABILITY_PLUGIN } from '../meta';
@@ -15,9 +14,13 @@ export default () =>
15
14
  Capabilities.ReactSurface,
16
15
  createSurface({
17
16
  id: OBSERVABILITY_PLUGIN,
18
- role: 'article',
19
- filter: (data): data is { subject: SettingsStore<ObservabilitySettingsProps> } =>
20
- data.subject instanceof SettingsStore && data.subject.prefix === OBSERVABILITY_PLUGIN,
21
- component: ({ data: { subject } }) => <ObservabilitySettings settings={subject.value} />,
17
+ role: 'settings',
18
+ filter: (data): data is any => data.subject === OBSERVABILITY_PLUGIN,
19
+ component: () => {
20
+ const settings = useCapability(Capabilities.SettingsStore).getStore<ObservabilitySettingsProps>(
21
+ OBSERVABILITY_PLUGIN,
22
+ )!.value;
23
+ return <ObservabilitySettings settings={settings} />;
24
+ },
22
25
  }),
23
26
  );
@@ -7,7 +7,7 @@ import React from 'react';
7
7
  import { createIntent, useIntentDispatcher } from '@dxos/app-framework';
8
8
  import { S } from '@dxos/echo-schema';
9
9
  import { Input, Message, useTranslation } from '@dxos/react-ui';
10
- import { DeprecatedFormContainer, DeprecatedFormInput } from '@dxos/react-ui-form';
10
+ import { DeprecatedFormInput } from '@dxos/react-ui-form';
11
11
 
12
12
  import { OBSERVABILITY_PLUGIN } from '../meta';
13
13
  import { ObservabilityAction } from '../types';
@@ -29,7 +29,7 @@ export const ObservabilitySettings = ({ settings }: { settings: ObservabilitySet
29
29
  const { dispatchPromise: dispatch } = useIntentDispatcher();
30
30
 
31
31
  return (
32
- <DeprecatedFormContainer>
32
+ <>
33
33
  <DeprecatedFormInput
34
34
  label={t('observability enabled label')}
35
35
  secondary={
@@ -43,6 +43,6 @@ export const ObservabilitySettings = ({ settings }: { settings: ObservabilitySet
43
43
  onCheckedChange={(checked) => dispatch(createIntent(ObservabilityAction.Toggle, { state: !!checked }))}
44
44
  />
45
45
  </DeprecatedFormInput>
46
- </DeprecatedFormContainer>
46
+ </>
47
47
  );
48
48
  };
package/src/meta.ts CHANGED
@@ -9,5 +9,4 @@ export const OBSERVABILITY_PLUGIN = 'dxos.org/plugin/observability';
9
9
  export const meta = {
10
10
  id: OBSERVABILITY_PLUGIN,
11
11
  name: 'Telemetry',
12
- icon: 'ph--eye--regular',
13
12
  } satisfies PluginMeta;
@@ -18,7 +18,7 @@ export default [
18
18
  'observability enabled label': 'Enable telemetry',
19
19
  // TODO: Add link about telemetry privacy. Make it clearer that user data is not collected.
20
20
  'observability description':
21
- 'When enabled, basic usage data will used to improve the product. This may include performance metrics, error logs, and usage data. No personally identifiable information, other than your public key, is included with this data and no private data ever leaves your devices.',
21
+ 'When enabled, basic usage data will be sent to the DXOS team in order to improve the product. This may include performance metrics, error logs, and usage data. No personally identifiable information, other than your public key, is included with this data and no private data ever leaves your devices.',
22
22
  },
23
23
  },
24
24
  },
@@ -1,7 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../../../src/components/ObservabilitySettings.tsx"],
4
- "sourcesContent": ["//\n// Copyright 2023 DXOS.org\n//\n\nimport React from 'react';\n\nimport { createIntent, useIntentDispatcher } from '@dxos/app-framework';\nimport { S } from '@dxos/echo-schema';\nimport { Input, Message, useTranslation } from '@dxos/react-ui';\nimport { DeprecatedFormContainer, DeprecatedFormInput } from '@dxos/react-ui-form';\n\nimport { OBSERVABILITY_PLUGIN } from '../meta';\nimport { ObservabilityAction } from '../types';\n\nexport const ObservabilitySettingsSchema = S.mutable(\n S.Struct({\n enabled: S.Boolean,\n // TODO(wittjosiah): Separate settings for each observability feature.\n // metrics?: boolean;\n // telemetry?: boolean;\n // errors?: boolean;\n }),\n);\n\nexport type ObservabilitySettingsProps = S.Schema.Type<typeof ObservabilitySettingsSchema>;\n\nexport const ObservabilitySettings = ({ settings }: { settings: ObservabilitySettingsProps }) => {\n const { t } = useTranslation(OBSERVABILITY_PLUGIN);\n const { dispatchPromise: dispatch } = useIntentDispatcher();\n\n return (\n <DeprecatedFormContainer>\n <DeprecatedFormInput\n label={t('observability enabled label')}\n secondary={\n <Message.Root valence='info'>\n <Message.Body>{t('observability description')}</Message.Body>\n </Message.Root>\n }\n >\n <Input.Switch\n checked={settings.enabled}\n onCheckedChange={(checked) => dispatch(createIntent(ObservabilityAction.Toggle, { state: !!checked }))}\n />\n </DeprecatedFormInput>\n </DeprecatedFormContainer>\n );\n};\n"],
5
- "mappings": ";;;;;;;;AAIA,OAAOA,WAAW;AAElB,SAASC,cAAcC,2BAA2B;AAClD,SAASC,SAAS;AAClB,SAASC,OAAOC,SAASC,sBAAsB;AAC/C,SAASC,yBAAyBC,2BAA2B;AAKtD,IAAMC,8BAA8BC,EAAEC,QAC3CD,EAAEE,OAAO;EACPC,SAASH,EAAEI;AAKb,CAAA,CAAA;AAKK,IAAMC,wBAAwB,CAAC,EAAEC,SAAQ,MAA4C;AAC1F,QAAM,EAAEC,EAAC,IAAKC,eAAeC,oBAAAA;AAC7B,QAAM,EAAEC,iBAAiBC,SAAQ,IAAKC,oBAAAA;AAEtC,SACE,sBAAA,cAACC,yBAAAA,MACC,sBAAA,cAACC,qBAAAA;IACCC,OAAOR,EAAE,6BAAA;IACTS,WACE,sBAAA,cAACC,QAAQC,MAAI;MAACC,SAAQ;OACpB,sBAAA,cAACF,QAAQG,MAAI,MAAEb,EAAE,2BAAA,CAAA,CAAA;KAIrB,sBAAA,cAACc,MAAMC,QAAM;IACXC,SAASjB,SAASH;IAClBqB,iBAAiB,CAACD,YAAYZ,SAASc,aAAaC,oBAAoBC,QAAQ;MAAEC,OAAO,CAAC,CAACL;IAAQ,CAAA,CAAA;;AAK7G;",
6
- "names": ["React", "createIntent", "useIntentDispatcher", "S", "Input", "Message", "useTranslation", "DeprecatedFormContainer", "DeprecatedFormInput", "ObservabilitySettingsSchema", "S", "mutable", "Struct", "enabled", "Boolean", "ObservabilitySettings", "settings", "t", "useTranslation", "OBSERVABILITY_PLUGIN", "dispatchPromise", "dispatch", "useIntentDispatcher", "DeprecatedFormContainer", "DeprecatedFormInput", "label", "secondary", "Message", "Root", "valence", "Body", "Input", "Switch", "checked", "onCheckedChange", "createIntent", "ObservabilityAction", "Toggle", "state"]
7
- }
@@ -1,7 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../../../src/capabilities/client-ready.ts"],
4
- "sourcesContent": ["//\n// Copyright 2025 DXOS.org\n//\n\nimport {\n Capabilities,\n contributes,\n createIntent,\n LayoutAction,\n SettingsAction,\n type PluginsContext,\n} from '@dxos/app-framework';\nimport { setupTelemetryListeners, type Observability } from '@dxos/observability';\n\nimport { ClientCapability, ObservabilityCapabilities } from './capabilities';\nimport { OBSERVABILITY_PLUGIN } from '../meta';\nimport { ObservabilityAction } from '../types';\n\ntype ClientReadyOptions = {\n context: PluginsContext;\n namespace: string;\n observability: Observability;\n};\n\nexport default async ({ context, namespace, observability }: ClientReadyOptions) => {\n const manager = context.requestCapability(Capabilities.PluginManager);\n const { dispatchPromise: dispatch } = context.requestCapability(Capabilities.IntentDispatcher);\n const state = context.requestCapability(ObservabilityCapabilities.State);\n const client = context.requestCapability(ClientCapability);\n\n const sendPrivacyNotice = async () => {\n const environment = client?.config?.values.runtime?.app?.env?.DX_ENVIRONMENT;\n const notify =\n environment && environment !== 'ci' && !environment.endsWith('.local') && !environment.endsWith('.lan');\n if (!state.notified && notify) {\n await dispatch(\n createIntent(LayoutAction.AddToast, {\n part: 'toast',\n subject: {\n id: `${OBSERVABILITY_PLUGIN}/notice`,\n title: ['observability toast label', { ns: OBSERVABILITY_PLUGIN }],\n description: ['observability toast description', { ns: OBSERVABILITY_PLUGIN }],\n duration: Infinity,\n icon: 'ph--info--regular',\n actionLabel: ['observability toast action label', { ns: OBSERVABILITY_PLUGIN }],\n actionAlt: ['observability toast action alt', { ns: OBSERVABILITY_PLUGIN }],\n closeLabel: ['observability toast close label', { ns: OBSERVABILITY_PLUGIN }],\n onAction: () => dispatch(createIntent(SettingsAction.Open, { plugin: OBSERVABILITY_PLUGIN })),\n },\n }),\n );\n\n state.notified = true;\n }\n };\n\n // Ensure errors are tagged with enabled plugins to help with reproductions.\n manager.enabled.map((plugin) => observability?.setTag(`pluginEnabled-${plugin}`, 'true', 'errors'));\n\n await dispatch(\n createIntent(ObservabilityAction.SendEvent, {\n name: 'page.load',\n properties: {\n href: window.location.href,\n // TODO(wittjosiah): These apis are deprecated. Is there a better way to find this information?\n loadDuration: window.performance.timing.loadEventEnd - window.performance.timing.loadEventStart,\n },\n }),\n );\n\n // Start client observability (i.e. not running as shared worker)\n // TODO(nf): how to prevent multiple instances for single shared worker?\n const cleanup = setupTelemetryListeners(namespace, client, observability);\n\n await Promise.all([\n observability.setIdentityTags(client.services.services),\n observability.startRuntimeMetrics(client),\n observability.startNetworkMetrics(client.services.services),\n observability.startSpacesMetrics(client, namespace),\n ]);\n\n if (client.halo.identity.get()) {\n await sendPrivacyNotice();\n } else {\n const subscription = client.halo.identity.subscribe(async (identity) => {\n if (identity && observability) {\n await sendPrivacyNotice();\n await observability.setIdentityTags(client.services.services);\n subscription.unsubscribe();\n }\n });\n }\n\n return contributes(ObservabilityCapabilities.Observability, observability, async () => {\n cleanup();\n await observability.close();\n });\n};\n"],
5
- "mappings": ";;;;;;;;;;;;AAIA,SACEA,cACAC,aACAC,cACAC,cACAC,sBAEK;AACP,SAASC,+BAAmD;AAY5D,IAAA,uBAAe,OAAO,EAAEC,SAASC,WAAWC,cAAa,MAAsB;AAC7E,QAAMC,UAAUH,QAAQI,kBAAkBC,aAAaC,aAAa;AACpE,QAAM,EAAEC,iBAAiBC,SAAQ,IAAKR,QAAQI,kBAAkBC,aAAaI,gBAAgB;AAC7F,QAAMC,QAAQV,QAAQI,kBAAkBO,0BAA0BC,KAAK;AACvE,QAAMC,SAASb,QAAQI,kBAAkBU,gBAAAA;AAEzC,QAAMC,oBAAoB,YAAA;AACxB,UAAMC,cAAcH,QAAQI,QAAQC,OAAOC,SAASC,KAAKC,KAAKC;AAC9D,UAAMC,SACJP,eAAeA,gBAAgB,QAAQ,CAACA,YAAYQ,SAAS,QAAA,KAAa,CAACR,YAAYQ,SAAS,MAAA;AAClG,QAAI,CAACd,MAAMe,YAAYF,QAAQ;AAC7B,YAAMf,SACJkB,aAAaC,aAAaC,UAAU;QAClCC,MAAM;QACNC,SAAS;UACPC,IAAI,GAAGC,oBAAAA;UACPC,OAAO;YAAC;YAA6B;cAAEC,IAAIF;YAAqB;;UAChEG,aAAa;YAAC;YAAmC;cAAED,IAAIF;YAAqB;;UAC5EI,UAAUC;UACVC,MAAM;UACNC,aAAa;YAAC;YAAoC;cAAEL,IAAIF;YAAqB;;UAC7EQ,WAAW;YAAC;YAAkC;cAAEN,IAAIF;YAAqB;;UACzES,YAAY;YAAC;YAAmC;cAAEP,IAAIF;YAAqB;;UAC3EU,UAAU,MAAMlC,SAASkB,aAAaiB,eAAeC,MAAM;YAAEC,QAAQb;UAAqB,CAAA,CAAA;QAC5F;MACF,CAAA,CAAA;AAGFtB,YAAMe,WAAW;IACnB;EACF;AAGAtB,UAAQ2C,QAAQC,IAAI,CAACF,WAAW3C,eAAe8C,OAAO,iBAAiBH,MAAAA,IAAU,QAAQ,QAAA,CAAA;AAEzF,QAAMrC,SACJkB,aAAauB,oBAAoBC,WAAW;IAC1CC,MAAM;IACNC,YAAY;MACVC,MAAMC,OAAOC,SAASF;;MAEtBG,cAAcF,OAAOG,YAAYC,OAAOC,eAAeL,OAAOG,YAAYC,OAAOE;IACnF;EACF,CAAA,CAAA;AAKF,QAAMC,UAAUC,wBAAwB7D,WAAWY,QAAQX,aAAAA;AAE3D,QAAM6D,QAAQC,IAAI;IAChB9D,cAAc+D,gBAAgBpD,OAAOqD,SAASA,QAAQ;IACtDhE,cAAciE,oBAAoBtD,MAAAA;IAClCX,cAAckE,oBAAoBvD,OAAOqD,SAASA,QAAQ;IAC1DhE,cAAcmE,mBAAmBxD,QAAQZ,SAAAA;GAC1C;AAED,MAAIY,OAAOyD,KAAKC,SAASC,IAAG,GAAI;AAC9B,UAAMzD,kBAAAA;EACR,OAAO;AACL,UAAM0D,eAAe5D,OAAOyD,KAAKC,SAASG,UAAU,OAAOH,aAAAA;AACzD,UAAIA,YAAYrE,eAAe;AAC7B,cAAMa,kBAAAA;AACN,cAAMb,cAAc+D,gBAAgBpD,OAAOqD,SAASA,QAAQ;AAC5DO,qBAAaE,YAAW;MAC1B;IACF,CAAA;EACF;AAEA,SAAOC,YAAYjE,0BAA0BkE,eAAe3E,eAAe,YAAA;AACzE2D,YAAAA;AACA,UAAM3D,cAAc4E,MAAK;EAC3B,CAAA;AACF;",
6
- "names": ["Capabilities", "contributes", "createIntent", "LayoutAction", "SettingsAction", "setupTelemetryListeners", "context", "namespace", "observability", "manager", "requestCapability", "Capabilities", "PluginManager", "dispatchPromise", "dispatch", "IntentDispatcher", "state", "ObservabilityCapabilities", "State", "client", "ClientCapability", "sendPrivacyNotice", "environment", "config", "values", "runtime", "app", "env", "DX_ENVIRONMENT", "notify", "endsWith", "notified", "createIntent", "LayoutAction", "AddToast", "part", "subject", "id", "OBSERVABILITY_PLUGIN", "title", "ns", "description", "duration", "Infinity", "icon", "actionLabel", "actionAlt", "closeLabel", "onAction", "SettingsAction", "Open", "plugin", "enabled", "map", "setTag", "ObservabilityAction", "SendEvent", "name", "properties", "href", "window", "location", "loadDuration", "performance", "timing", "loadEventEnd", "loadEventStart", "cleanup", "setupTelemetryListeners", "Promise", "all", "setIdentityTags", "services", "startRuntimeMetrics", "startNetworkMetrics", "startSpacesMetrics", "halo", "identity", "get", "subscription", "subscribe", "unsubscribe", "contributes", "Observability", "close"]
7
- }