@dxos/plugin-observability 0.8.4-main.ead640a → 0.8.4-main.effb148878

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 (201) hide show
  1. package/LICENSE +102 -5
  2. package/README.md +1 -1
  3. package/dist/lib/neutral/ObservabilityPlugin.mjs +60 -0
  4. package/dist/lib/neutral/ObservabilityPlugin.mjs.map +7 -0
  5. package/dist/lib/neutral/ObservabilityPlugin.node.mjs +22 -0
  6. package/dist/lib/neutral/ObservabilityPlugin.node.mjs.map +7 -0
  7. package/dist/lib/neutral/ObservabilityPlugin.workerd.mjs +22 -0
  8. package/dist/lib/neutral/ObservabilityPlugin.workerd.mjs.map +7 -0
  9. package/dist/lib/neutral/ObservabilitySettings-H6UKYDDT.mjs +27 -0
  10. package/dist/lib/neutral/ObservabilitySettings-H6UKYDDT.mjs.map +7 -0
  11. package/dist/lib/neutral/capabilities/index.mjs +17 -0
  12. package/dist/lib/neutral/capabilities/index.mjs.map +7 -0
  13. package/dist/lib/neutral/chunk-6QCY3Z6O.mjs +8 -0
  14. package/dist/lib/neutral/chunk-6QCY3Z6O.mjs.map +7 -0
  15. package/dist/lib/neutral/chunk-J5LGTIGS.mjs +10 -0
  16. package/dist/lib/neutral/chunk-RPFT4FVC.mjs +20 -0
  17. package/dist/lib/neutral/chunk-RPFT4FVC.mjs.map +7 -0
  18. package/dist/lib/neutral/chunk-ZFVQL2JB.mjs +108 -0
  19. package/dist/lib/neutral/chunk-ZFVQL2JB.mjs.map +7 -0
  20. package/dist/lib/neutral/client-ready-TM7VE6CH.mjs +116 -0
  21. package/dist/lib/neutral/client-ready-TM7VE6CH.mjs.map +7 -0
  22. package/dist/lib/neutral/components/index.mjs +9 -0
  23. package/dist/lib/neutral/components/index.mjs.map +7 -0
  24. package/dist/lib/neutral/index.mjs +18 -0
  25. package/dist/lib/neutral/meta.json +1 -0
  26. package/dist/lib/neutral/meta.mjs +8 -0
  27. package/dist/lib/neutral/meta.mjs.map +7 -0
  28. package/dist/lib/neutral/operation-handler-4WWRXOHR.mjs +13 -0
  29. package/dist/lib/neutral/operation-handler-4WWRXOHR.mjs.map +7 -0
  30. package/dist/lib/neutral/operations/index.mjs +8 -0
  31. package/dist/lib/neutral/operations/index.mjs.map +7 -0
  32. package/dist/lib/neutral/plugin.mjs +16 -0
  33. package/dist/lib/neutral/plugin.mjs.map +7 -0
  34. package/dist/lib/neutral/react-surface-SHB2SLRK.mjs +35 -0
  35. package/dist/lib/neutral/react-surface-SHB2SLRK.mjs.map +7 -0
  36. package/dist/lib/neutral/send-event-NUMOCKDO.mjs +20 -0
  37. package/dist/lib/neutral/send-event-NUMOCKDO.mjs.map +7 -0
  38. package/dist/lib/neutral/settings-MZYK2WQR.mjs +30 -0
  39. package/dist/lib/neutral/settings-MZYK2WQR.mjs.map +7 -0
  40. package/dist/lib/neutral/state-5COCK3KV.mjs +27 -0
  41. package/dist/lib/neutral/state-5COCK3KV.mjs.map +7 -0
  42. package/dist/lib/neutral/toggle-RESKOU6L.mjs +45 -0
  43. package/dist/lib/neutral/toggle-RESKOU6L.mjs.map +7 -0
  44. package/dist/lib/neutral/translations.mjs +26 -0
  45. package/dist/lib/neutral/translations.mjs.map +7 -0
  46. package/dist/lib/neutral/types/index.mjs +14 -0
  47. package/dist/lib/neutral/types/index.mjs.map +7 -0
  48. package/dist/types/src/ObservabilityPlugin.d.ts +9 -2
  49. package/dist/types/src/ObservabilityPlugin.d.ts.map +1 -1
  50. package/dist/types/src/ObservabilityPlugin.node.d.ts +4 -0
  51. package/dist/types/src/ObservabilityPlugin.node.d.ts.map +1 -0
  52. package/dist/types/src/ObservabilityPlugin.test.d.ts +2 -0
  53. package/dist/types/src/ObservabilityPlugin.test.d.ts.map +1 -0
  54. package/dist/types/src/ObservabilityPlugin.workerd.d.ts +4 -0
  55. package/dist/types/src/ObservabilityPlugin.workerd.d.ts.map +1 -0
  56. package/dist/types/src/capabilities/client-ready.d.ts +5 -5
  57. package/dist/types/src/capabilities/client-ready.d.ts.map +1 -1
  58. package/dist/types/src/capabilities/index.d.ts +15 -15
  59. package/dist/types/src/capabilities/index.d.ts.map +1 -1
  60. package/dist/types/src/capabilities/operation-handler.d.ts +6 -0
  61. package/dist/types/src/capabilities/operation-handler.d.ts.map +1 -0
  62. package/dist/types/src/capabilities/react-surface.d.ts +3 -2
  63. package/dist/types/src/capabilities/react-surface.d.ts.map +1 -1
  64. package/dist/types/src/capabilities/settings.d.ts +5 -2
  65. package/dist/types/src/capabilities/settings.d.ts.map +1 -1
  66. package/dist/types/src/capabilities/state.d.ts +10 -3
  67. package/dist/types/src/capabilities/state.d.ts.map +1 -1
  68. package/dist/types/src/components/ObservabilitySettings/ObservabilitySettings.d.ts +6 -0
  69. package/dist/types/src/components/ObservabilitySettings/ObservabilitySettings.d.ts.map +1 -0
  70. package/dist/types/src/components/ObservabilitySettings/ObservabilitySettings.stories.d.ts +29 -0
  71. package/dist/types/src/components/ObservabilitySettings/ObservabilitySettings.stories.d.ts.map +1 -0
  72. package/dist/types/src/components/ObservabilitySettings/index.d.ts +2 -0
  73. package/dist/types/src/components/ObservabilitySettings/index.d.ts.map +1 -0
  74. package/dist/types/src/components/index.d.ts +2 -3
  75. package/dist/types/src/components/index.d.ts.map +1 -1
  76. package/dist/types/src/index.d.ts +1 -4
  77. package/dist/types/src/index.d.ts.map +1 -1
  78. package/dist/types/src/meta.d.ts +2 -2
  79. package/dist/types/src/meta.d.ts.map +1 -1
  80. package/dist/types/src/operations/index.d.ts +3 -0
  81. package/dist/types/src/operations/index.d.ts.map +1 -0
  82. package/dist/types/src/operations/send-event.d.ts +5 -0
  83. package/dist/types/src/operations/send-event.d.ts.map +1 -0
  84. package/dist/types/src/operations/toggle.d.ts +5 -0
  85. package/dist/types/src/operations/toggle.d.ts.map +1 -0
  86. package/dist/types/src/plugin.d.ts +4 -0
  87. package/dist/types/src/plugin.d.ts.map +1 -0
  88. package/dist/types/src/translations.d.ts +10 -17
  89. package/dist/types/src/translations.d.ts.map +1 -1
  90. package/dist/types/src/types/ObservabilityCapabilities.d.ts +28 -0
  91. package/dist/types/src/types/ObservabilityCapabilities.d.ts.map +1 -0
  92. package/dist/types/src/types/ObservabilityEvents.d.ts +4 -0
  93. package/dist/types/src/types/ObservabilityEvents.d.ts.map +1 -0
  94. package/dist/types/src/types/ObservabilityOperation.d.ts +10 -0
  95. package/dist/types/src/types/ObservabilityOperation.d.ts.map +1 -0
  96. package/dist/types/src/types/Settings.d.ts +7 -0
  97. package/dist/types/src/types/Settings.d.ts.map +1 -0
  98. package/dist/types/src/types/index.d.ts +4 -1
  99. package/dist/types/src/types/index.d.ts.map +1 -1
  100. package/dist/types/tsconfig.tsbuildinfo +1 -1
  101. package/package.json +97 -49
  102. package/src/ObservabilityPlugin.node.ts +33 -0
  103. package/src/ObservabilityPlugin.test.ts +25 -0
  104. package/src/ObservabilityPlugin.ts +64 -56
  105. package/src/ObservabilityPlugin.workerd.ts +32 -0
  106. package/src/capabilities/client-ready.ts +87 -79
  107. package/src/capabilities/index.ts +11 -8
  108. package/src/capabilities/operation-handler.ts +16 -0
  109. package/src/capabilities/react-surface.tsx +27 -19
  110. package/src/capabilities/settings.ts +26 -14
  111. package/src/capabilities/state.ts +20 -13
  112. package/src/components/ObservabilitySettings/ObservabilitySettings.stories.tsx +34 -0
  113. package/src/components/ObservabilitySettings/ObservabilitySettings.tsx +34 -0
  114. package/src/components/ObservabilitySettings/index.ts +5 -0
  115. package/src/components/index.ts +3 -3
  116. package/src/index.ts +1 -4
  117. package/src/meta.ts +10 -3
  118. package/src/operations/index.ts +10 -0
  119. package/src/operations/send-event.ts +23 -0
  120. package/src/operations/toggle.ts +46 -0
  121. package/src/plugin.ts +11 -0
  122. package/src/translations.ts +10 -17
  123. package/src/types/ObservabilityCapabilities.ts +42 -0
  124. package/src/types/ObservabilityEvents.ts +15 -0
  125. package/src/types/ObservabilityOperation.ts +43 -0
  126. package/src/types/Settings.ts +22 -0
  127. package/src/types/index.ts +4 -1
  128. package/dist/lib/browser/app-graph-builder-MBPI6TGN.mjs +0 -44
  129. package/dist/lib/browser/app-graph-builder-MBPI6TGN.mjs.map +0 -7
  130. package/dist/lib/browser/chunk-5VM6D2EF.mjs +0 -179
  131. package/dist/lib/browser/chunk-5VM6D2EF.mjs.map +0 -7
  132. package/dist/lib/browser/chunk-G754T676.mjs +0 -18
  133. package/dist/lib/browser/chunk-G754T676.mjs.map +0 -7
  134. package/dist/lib/browser/chunk-RS66U4WR.mjs +0 -191
  135. package/dist/lib/browser/chunk-RS66U4WR.mjs.map +0 -7
  136. package/dist/lib/browser/chunk-SCJ3DALL.mjs +0 -11
  137. package/dist/lib/browser/chunk-SCJ3DALL.mjs.map +0 -7
  138. package/dist/lib/browser/client-ready-IV2NFN4M.mjs +0 -102
  139. package/dist/lib/browser/client-ready-IV2NFN4M.mjs.map +0 -7
  140. package/dist/lib/browser/index.mjs +0 -128
  141. package/dist/lib/browser/index.mjs.map +0 -7
  142. package/dist/lib/browser/intent-resolver-IZTKLP6N.mjs +0 -77
  143. package/dist/lib/browser/intent-resolver-IZTKLP6N.mjs.map +0 -7
  144. package/dist/lib/browser/meta.json +0 -1
  145. package/dist/lib/browser/react-surface-N7WRUNJ2.mjs +0 -32
  146. package/dist/lib/browser/react-surface-N7WRUNJ2.mjs.map +0 -7
  147. package/dist/lib/browser/settings-JOZ5BZDO.mjs +0 -25
  148. package/dist/lib/browser/settings-JOZ5BZDO.mjs.map +0 -7
  149. package/dist/lib/browser/state-OVWHPB7K.mjs +0 -26
  150. package/dist/lib/browser/state-OVWHPB7K.mjs.map +0 -7
  151. package/dist/lib/browser/types/index.mjs +0 -10
  152. package/dist/lib/node-esm/app-graph-builder-LHLEY5QQ.mjs +0 -45
  153. package/dist/lib/node-esm/app-graph-builder-LHLEY5QQ.mjs.map +0 -7
  154. package/dist/lib/node-esm/chunk-4SMSG2RN.mjs +0 -13
  155. package/dist/lib/node-esm/chunk-4SMSG2RN.mjs.map +0 -7
  156. package/dist/lib/node-esm/chunk-H3QRVOIY.mjs +0 -180
  157. package/dist/lib/node-esm/chunk-H3QRVOIY.mjs.map +0 -7
  158. package/dist/lib/node-esm/chunk-SCOMEIPJ.mjs +0 -192
  159. package/dist/lib/node-esm/chunk-SCOMEIPJ.mjs.map +0 -7
  160. package/dist/lib/node-esm/chunk-ZS4YMD63.mjs +0 -19
  161. package/dist/lib/node-esm/chunk-ZS4YMD63.mjs.map +0 -7
  162. package/dist/lib/node-esm/client-ready-SL6BA2IP.mjs +0 -103
  163. package/dist/lib/node-esm/client-ready-SL6BA2IP.mjs.map +0 -7
  164. package/dist/lib/node-esm/index.mjs +0 -129
  165. package/dist/lib/node-esm/index.mjs.map +0 -7
  166. package/dist/lib/node-esm/intent-resolver-VW7XPMBG.mjs +0 -78
  167. package/dist/lib/node-esm/intent-resolver-VW7XPMBG.mjs.map +0 -7
  168. package/dist/lib/node-esm/meta.json +0 -1
  169. package/dist/lib/node-esm/react-surface-3PNZVMXB.mjs +0 -33
  170. package/dist/lib/node-esm/react-surface-3PNZVMXB.mjs.map +0 -7
  171. package/dist/lib/node-esm/settings-2AOUWDQY.mjs +0 -26
  172. package/dist/lib/node-esm/settings-2AOUWDQY.mjs.map +0 -7
  173. package/dist/lib/node-esm/state-5UHYHOJV.mjs +0 -27
  174. package/dist/lib/node-esm/state-5UHYHOJV.mjs.map +0 -7
  175. package/dist/lib/node-esm/types/index.mjs +0 -11
  176. package/dist/types/src/capabilities/app-graph-builder.d.ts +0 -4
  177. package/dist/types/src/capabilities/app-graph-builder.d.ts.map +0 -1
  178. package/dist/types/src/capabilities/capabilities.d.ts +0 -12
  179. package/dist/types/src/capabilities/capabilities.d.ts.map +0 -1
  180. package/dist/types/src/capabilities/intent-resolver.d.ts +0 -7
  181. package/dist/types/src/capabilities/intent-resolver.d.ts.map +0 -1
  182. package/dist/types/src/components/FeedbackForm.d.ts +0 -6
  183. package/dist/types/src/components/FeedbackForm.d.ts.map +0 -1
  184. package/dist/types/src/components/HelpContainer.d.ts +0 -3
  185. package/dist/types/src/components/HelpContainer.d.ts.map +0 -1
  186. package/dist/types/src/components/ObservabilitySettings.d.ts +0 -10
  187. package/dist/types/src/components/ObservabilitySettings.d.ts.map +0 -1
  188. package/dist/types/src/events.d.ts +0 -5
  189. package/dist/types/src/events.d.ts.map +0 -1
  190. package/dist/types/src/types/schema.d.ts +0 -313
  191. package/dist/types/src/types/schema.d.ts.map +0 -1
  192. package/src/capabilities/app-graph-builder.ts +0 -47
  193. package/src/capabilities/capabilities.ts +0 -23
  194. package/src/capabilities/intent-resolver.ts +0 -69
  195. package/src/components/FeedbackForm.tsx +0 -82
  196. package/src/components/HelpContainer.tsx +0 -41
  197. package/src/components/ObservabilitySettings.tsx +0 -48
  198. package/src/events.ts +0 -14
  199. package/src/types/schema.ts +0 -216
  200. /package/dist/lib/{browser/types/index.mjs.map → neutral/chunk-J5LGTIGS.mjs.map} +0 -0
  201. /package/dist/lib/{node-esm/types → neutral}/index.mjs.map +0 -0
@@ -0,0 +1,116 @@
1
+ import "./chunk-J5LGTIGS.mjs";
2
+
3
+ // src/capabilities/client-ready.ts
4
+ import * as Effect from "effect/Effect";
5
+ import { Capabilities, Capability } from "@dxos/app-framework";
6
+ import { LayoutOperation, SettingsOperation } from "@dxos/app-toolkit";
7
+ import { log } from "@dxos/log";
8
+ import { ObservabilityProvider } from "@dxos/observability";
9
+ import { meta } from "#meta";
10
+ import { ObservabilityCapabilities, ObservabilityOperation } from "#types";
11
+ var __dxlog_file = "/__w/dxos/dxos/packages/plugins/plugin-observability/src/capabilities/client-ready.ts";
12
+ var client_ready_default = Capability.makeModule(Effect.fnUntraced(function* ({ observability }) {
13
+ const manager = yield* Capability.get(Capabilities.PluginManager);
14
+ const { invokePromise } = yield* Capability.get(Capabilities.OperationInvoker);
15
+ const registry = yield* Capability.get(Capabilities.AtomRegistry);
16
+ const stateAtom = yield* Capability.get(ObservabilityCapabilities.State);
17
+ const client = yield* Capability.get(ObservabilityCapabilities.ClientCapability);
18
+ const sendPrivacyNotice = async () => {
19
+ const environment = client?.config?.values.runtime?.app?.env?.DX_ENVIRONMENT;
20
+ const notify = environment && environment !== "ci" && !environment.endsWith(".local") && !environment.endsWith(".lan");
21
+ const state = registry.get(stateAtom);
22
+ if (!state.notified && notify) {
23
+ await invokePromise(LayoutOperation.AddToast, {
24
+ id: `${meta.id}.notice`,
25
+ title: [
26
+ "observability-toast.label",
27
+ {
28
+ ns: meta.id
29
+ }
30
+ ],
31
+ description: [
32
+ "observability-toast.description",
33
+ {
34
+ ns: meta.id
35
+ }
36
+ ],
37
+ duration: Infinity,
38
+ icon: "ph--info--regular",
39
+ actionLabel: [
40
+ "observability-toast-action.label",
41
+ {
42
+ ns: meta.id
43
+ }
44
+ ],
45
+ actionAlt: [
46
+ "observability-toast-action.alt",
47
+ {
48
+ ns: meta.id
49
+ }
50
+ ],
51
+ closeLabel: [
52
+ "observability-toast-close.label",
53
+ {
54
+ ns: meta.id
55
+ }
56
+ ],
57
+ onAction: () => invokePromise(SettingsOperation.Open, {
58
+ plugin: meta.id
59
+ })
60
+ });
61
+ registry.set(stateAtom, {
62
+ ...registry.get(stateAtom),
63
+ notified: true
64
+ });
65
+ }
66
+ };
67
+ const enabledPlugins = manager.getEnabled();
68
+ log("client-ready: tagging enabled plugins", {
69
+ count: enabledPlugins.length
70
+ }, { "~LogMeta": "~LogMeta", F: __dxlog_file, L: 68, S: this });
71
+ for (const plugin of enabledPlugins) {
72
+ observability.setTags({
73
+ [`pluginEnabled-${plugin}`]: "true"
74
+ }, "errors");
75
+ }
76
+ log("client-ready: sending page.load event", void 0, { "~LogMeta": "~LogMeta", F: __dxlog_file, L: 76, S: this });
77
+ yield* Effect.tryPromise(() => invokePromise(ObservabilityOperation.SendEvent, {
78
+ name: "page.load",
79
+ properties: {
80
+ // TODO(wittjosiah): These apis are deprecated. Is there a better way to find this information?
81
+ loadDuration: window.performance.timing.loadEventEnd - window.performance.timing.loadEventStart
82
+ }
83
+ }));
84
+ log("client-ready: page.load event sent", void 0, { "~LogMeta": "~LogMeta", F: __dxlog_file, L: 84, S: this });
85
+ log("client-ready: adding identity data provider", void 0, { "~LogMeta": "~LogMeta", F: __dxlog_file, L: 89, S: this });
86
+ yield* observability.addDataProvider(ObservabilityProvider.Client.identityProvider(client.services.services));
87
+ log("client-ready: identity data provider added", void 0, { "~LogMeta": "~LogMeta", F: __dxlog_file, L: 91, S: this });
88
+ log("client-ready: adding network metrics data provider", void 0, { "~LogMeta": "~LogMeta", F: __dxlog_file, L: 92, S: this });
89
+ yield* observability.addDataProvider(ObservabilityProvider.Client.networkMetricsProvider(client.services.services));
90
+ log("client-ready: network metrics data provider added", void 0, { "~LogMeta": "~LogMeta", F: __dxlog_file, L: 94, S: this });
91
+ log("client-ready: adding runtime metrics data provider", void 0, { "~LogMeta": "~LogMeta", F: __dxlog_file, L: 95, S: this });
92
+ yield* observability.addDataProvider(ObservabilityProvider.Client.runtimeMetricsProvider(client.services.services));
93
+ log("client-ready: runtime metrics data provider added", void 0, { "~LogMeta": "~LogMeta", F: __dxlog_file, L: 97, S: this });
94
+ log("client-ready: adding space metrics data provider", void 0, { "~LogMeta": "~LogMeta", F: __dxlog_file, L: 98, S: this });
95
+ yield* observability.addDataProvider(ObservabilityProvider.Client.spacesMetricsProvider(client));
96
+ log("client-ready: space metrics data provider added", void 0, { "~LogMeta": "~LogMeta", F: __dxlog_file, L: 100, S: this });
97
+ if (client.halo.identity.get()) {
98
+ log("client-ready: identity present, sending privacy notice", void 0, { "~LogMeta": "~LogMeta", F: __dxlog_file, L: 102, S: this });
99
+ yield* Effect.tryPromise(() => sendPrivacyNotice());
100
+ log("client-ready: privacy notice sent", void 0, { "~LogMeta": "~LogMeta", F: __dxlog_file, L: 104, S: this });
101
+ } else {
102
+ log("client-ready: no identity, deferring privacy notice", void 0, { "~LogMeta": "~LogMeta", F: __dxlog_file, L: 106, S: this });
103
+ const subscription = client.halo.identity.subscribe(async (identity) => {
104
+ if (identity && observability) {
105
+ await sendPrivacyNotice();
106
+ subscription.unsubscribe();
107
+ }
108
+ });
109
+ }
110
+ log("client-ready: contributing observability capability", void 0, { "~LogMeta": "~LogMeta", F: __dxlog_file, L: 114, S: this });
111
+ return Capability.contributes(ObservabilityCapabilities.Observability, observability, () => observability.close());
112
+ }));
113
+ export {
114
+ client_ready_default as default
115
+ };
116
+ //# sourceMappingURL=client-ready-TM7VE6CH.mjs.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../src/capabilities/client-ready.ts"],
4
+ "sourcesContent": ["//\n// Copyright 2025 DXOS.org\n//\n\nimport * as Effect from 'effect/Effect';\n\nimport { Capabilities, Capability } from '@dxos/app-framework';\nimport { LayoutOperation, SettingsOperation } from '@dxos/app-toolkit';\nimport { log } from '@dxos/log';\nimport { type Observability, ObservabilityProvider } from '@dxos/observability';\n\nimport { meta } from '#meta';\nimport { ObservabilityCapabilities, ObservabilityOperation } from '#types';\n\nexport type ClientReadyOptions = {\n namespace: string;\n observability: Observability.Observability;\n};\n\nexport default Capability.makeModule(\n Effect.fnUntraced(function* ({ observability }: ClientReadyOptions) {\n const manager = yield* Capability.get(Capabilities.PluginManager);\n const { invokePromise } = yield* Capability.get(Capabilities.OperationInvoker);\n const registry = yield* Capability.get(Capabilities.AtomRegistry);\n const stateAtom = yield* Capability.get(ObservabilityCapabilities.State);\n const client = yield* Capability.get(ObservabilityCapabilities.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 const state = registry.get(stateAtom);\n if (!state.notified && notify) {\n await invokePromise(LayoutOperation.AddToast, {\n id: `${meta.id}.notice`,\n title: ['observability-toast.label', { ns: meta.id }],\n description: ['observability-toast.description', { ns: meta.id }],\n duration: Infinity,\n icon: 'ph--info--regular',\n actionLabel: ['observability-toast-action.label', { ns: meta.id }],\n actionAlt: ['observability-toast-action.alt', { ns: meta.id }],\n closeLabel: ['observability-toast-close.label', { ns: meta.id }],\n onAction: () => invokePromise(SettingsOperation.Open, { plugin: meta.id }),\n });\n\n registry.set(stateAtom, { ...registry.get(stateAtom), notified: true });\n }\n };\n\n // Ensure errors are tagged with enabled plugins to help with reproductions.\n const enabledPlugins = manager.getEnabled();\n log('client-ready: tagging enabled plugins', { count: enabledPlugins.length });\n for (const plugin of enabledPlugins) {\n observability.setTags({ [`pluginEnabled-${plugin}`]: 'true' }, 'errors');\n }\n\n log('client-ready: sending page.load event');\n yield* Effect.tryPromise(() =>\n invokePromise(ObservabilityOperation.SendEvent, {\n name: 'page.load',\n properties: {\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 log('client-ready: page.load event sent');\n\n // Each provider is logged individually because some provider setups perform\n // RPC calls (e.g. runtimeMetricsProvider awaits SystemService.getPlatform());\n // a hung worker pipe surfaces as a missing \"added\" log, so the last\n // \"adding ...\" line points to the stall.\n log('client-ready: adding identity data provider');\n yield* observability.addDataProvider(ObservabilityProvider.Client.identityProvider(client.services.services));\n log('client-ready: identity data provider added');\n\n log('client-ready: adding network metrics data provider');\n yield* observability.addDataProvider(ObservabilityProvider.Client.networkMetricsProvider(client.services.services));\n log('client-ready: network metrics data provider added');\n\n log('client-ready: adding runtime metrics data provider');\n yield* observability.addDataProvider(ObservabilityProvider.Client.runtimeMetricsProvider(client.services.services));\n log('client-ready: runtime metrics data provider added');\n\n log('client-ready: adding space metrics data provider');\n yield* observability.addDataProvider(ObservabilityProvider.Client.spacesMetricsProvider(client));\n log('client-ready: space metrics data provider added');\n\n if (client.halo.identity.get()) {\n log('client-ready: identity present, sending privacy notice');\n yield* Effect.tryPromise(() => sendPrivacyNotice());\n log('client-ready: privacy notice sent');\n } else {\n log('client-ready: no identity, deferring privacy notice');\n const subscription = client.halo.identity.subscribe(async (identity) => {\n if (identity && observability) {\n await sendPrivacyNotice();\n subscription.unsubscribe();\n }\n });\n }\n\n log('client-ready: contributing observability capability');\n return Capability.contributes(ObservabilityCapabilities.Observability, observability, () => observability.close());\n }),\n);\n"],
5
+ "mappings": ";;;AAIA,YAAYA,YAAY;AAExB,SAASC,cAAcC,kBAAkB;AACzC,SAASC,iBAAiBC,yBAAyB;AACnD,SAASC,WAAW;AACpB,SAA6BC,6BAA6B;AAE1D,SAASC,YAAY;AACrB,SAASC,2BAA2BC,8BAA8B;AAOlE,IAAA,eAAeP;IAGX,uBAAQQ,WAAa,WAAYR,kBAAeD,WAAaU,EAAAA,cAAgB,GAAA;AAC7E,QAAMC,UAAAA,OAAW,WAAOV,IAAc,aAACD,aAAyB;AAChE,QAAMY,EAAAA,cAAY,IAAOX,OAAAA,WAAeM,IAAAA,aAAAA,gBAA+B;AACvE,QAAMM,WAAS,OAAOZ,WAAWa,IAAIP,aAAAA,YAA0BQ;AAE/D,QAAMC,YAAAA,OAAAA,WAAoB,IAAA,0BAAA,KAAA;QACxB,SAAMC,OAAAA,WAAsBC,IAAAA,0BAA6BC,gBAAKC;QAC9D,oBACEH,YAAeA;AACjB,UAAMI,cAAQV,QAAaC,QAAAA,OAAAA,SAAAA,KAAAA,KAAAA;AAC3B,UAAKS,SAAMC,eAAYC,gBAAQ,QAAA,CAAA,YAAA,SAAA,QAAA,KAAA,CAAA,YAAA,SAAA,MAAA;UAC7B,QAAMd,SAAAA,IAAcP,SAAAA;eAClBsB,YAAe,QAAQ;YACvBC,cAAO,gBAAA,UAAA;YAAC,GAAA,KAAA,EAAA;eAA6B;;UAAc;YAAE,IAAA,KAAA;UACrDC;;qBAAiD;;UAAc;YAAE,IAAA,KAAA;UACjEC;QACAC;QACAC,UAAAA;cAAc;qBAAoC;;UAAc;YAAE,IAAA,KAAA;UAClEC;;mBAA8C;;UAAc;YAAE,IAAA,KAAA;UAC9DC;;oBAAgD;;UAAc;YAAE,IAAA,KAAA;UAChEC;;kBAAwE,MAAA,cAAA,kBAAA,MAAA;UAC1E,QAAA,KAAA;QAEArB,CAASsB;;eAA6CX,IAAAA,WAAU;QAAK,GAAA,SAAA,IAAA,SAAA;QACvE,UAAA;MACF,CAAA;IAEA;EACA;QAC+CY,iBAAOC,QAAeC,WAAM;AAAC,MAAA,yCAAA;IAC5E,OAAWC,eAAUF;mBACnBG,YAAqB,GAAC,cAAA,GAAA,IAAA,GAAA,KAAA,CAAA;aAAI,UAAA,gBAAyB;AAAS,kBAAG,QAAA;MACjE,CAAA,iBAAA,MAAA,EAAA,GAAA;IAEI,GAAA,QAAA;EACJ;+CAEU,QAAA,EAAA,YAAA,YAAA,GAAA,cAAA,GAAA,IAAA,GAAA,KAAA,CAAA;SACNC,kBAAY,MAAA,cAAA,uBAAA,WAAA;UACV;gBACAC;;MAEJ,cAAA,OAAA,YAAA,OAAA,eAAA,OAAA,YAAA,OAAA;IAEE;EAEJ,CAAA,CAAA;AACA,MAAA,sCAAA,QAAA,EAAA,YAAA,YAAA,GAAA,cAA8E,GAAA,IAAA,GAAA,KAAA,CAAA;AAK9EpC,MAAI,+CAAA,QAAA,EAAA,YAAA,YAAA,GAAA,cAAA,GAAA,IAAA,GAAA,KAAA,CAAA;AAEJA,SAAI,cAAA,gBAAA,sBAAA,OAAA,iBAAA,OAAA,SAAA,QAAA,CAAA;AACJ,MAAA,8CAAqCC,QAAAA,EAAAA,YAA6BoC,YAAAA,GAAAA,cAAuB5B,GAAO6B,IAAAA,GAAAA,KAASA,CAAAA;AACzGtC,MAAI,sDAAA,QAAA,EAAA,YAAA,YAAA,GAAA,cAAA,GAAA,IAAA,GAAA,KAAA,CAAA;AAEJA,SAAI,cAAA,gBAAA,sBAAA,OAAA,uBAAA,OAAA,SAAA,QAAA,CAAA;AACJ,MAAA,qDAAqCC,QAAsBsC,EAAAA,YAAOC,YAAAA,GAAsB,cAAQF,GAAAA,IAASA,GAAAA,KAAAA,CAAQ;AACjHtC,MAAI,sDAAA,QAAA,EAAA,YAAA,YAAA,GAAA,cAAA,GAAA,IAAA,GAAA,KAAA,CAAA;AAEJA,SAAI,cAAA,gBAAA,sBAAA,OAAA,uBAAA,OAAA,SAAA,QAAA,CAAA;AACJ,MAAA,qDAAqCC,QAAsBsC,EAAAA,YAAOE,YAAAA,GAAsBhC,cAAAA,GAAAA,IAAAA,GAAAA,KAAAA,CAAAA;AACxFT,MAAI,oDAAA,QAAA,EAAA,YAAA,YAAA,GAAA,cAAA,GAAA,IAAA,GAAA,KAAA,CAAA;AAEJ,SAAIS,cAAYiC,gBAAgB,sBAAA,OAAA,sBAAA,MAAA,CAAA;MAC9B1C,mDAAI,QAAA,EAAA,YAAA,YAAA,GAAA,cAAA,GAAA,KAAA,GAAA,KAAA,CAAA;MACJ,OAAOL,KAAAA,SAAOgD,IAAW,GAAA;AACzB3C,QAAI,0DAAA,QAAA,EAAA,YAAA,YAAA,GAAA,cAAA,GAAA,KAAA,GAAA,KAAA,CAAA;AACN,WAAO,kBAAA,MAAA,kBAAA,CAAA;AACLA,QAAI,qCAAA,QAAA,EAAA,YAAA,YAAA,GAAA,cAAA,GAAA,KAAA,GAAA,KAAA,CAAA;SACJ;QACE,uDAA+B,QAAA,EAAA,YAAA,YAAA,GAAA,cAAA,GAAA,KAAA,GAAA,KAAA,CAAA;yBACvBY,OAAAA,KAAAA,SAAAA,UAAAA,OAAAA,aAAAA;UACNgC,YAAAA,eAAwB;AAC1B,cAAA,kBAAA;AACF,qBAAA,YAAA;MACF;IAEI,CAAA;EACJ;AAEF,MAAA,uDAAA,QAAA,EAAA,YAAA,YAAA,GAAA,cAAA,GAAA,KAAA,GAAA,KAAA,CAAA;;;",
6
+ "names": ["Effect", "Capabilities", "Capability", "LayoutOperation", "SettingsOperation", "log", "ObservabilityProvider", "meta", "ObservabilityCapabilities", "ObservabilityOperation", "invokePromise", "OperationInvoker", "registry", "stateAtom", "client", "get", "ClientCapability", "sendPrivacyNotice", "environment", "config", "env", "DX_ENVIRONMENT", "state", "notified", "notify", "id", "title", "description", "duration", "icon", "actionLabel", "actionAlt", "closeLabel", "onAction", "set", "count", "enabledPlugins", "length", "plugin", "observability", "properties", "loadDuration", "networkMetricsProvider", "services", "Client", "runtimeMetricsProvider", "spacesMetricsProvider", "identity", "tryPromise", "subscription"]
7
+ }
@@ -0,0 +1,9 @@
1
+ import "../chunk-J5LGTIGS.mjs";
2
+
3
+ // src/components/index.ts
4
+ import { lazy } from "react";
5
+ var ObservabilitySettings = lazy(() => import("../ObservabilitySettings-H6UKYDDT.mjs"));
6
+ export {
7
+ ObservabilitySettings
8
+ };
9
+ //# sourceMappingURL=index.mjs.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../../src/components/index.ts"],
4
+ "sourcesContent": ["//\n// Copyright 2023 DXOS.org\n//\n\nimport { type ComponentType, lazy } from 'react';\n\nexport const ObservabilitySettings: ComponentType<any> = lazy(() => import('./ObservabilitySettings'));\n"],
5
+ "mappings": ";;;AAIA,SAA6BA,YAAY;AAElC,IAAMC,wBAA4CD,KAAK,MAAM,OAAO,uCAAA,CAAA;",
6
+ "names": ["lazy", "ObservabilitySettings"]
7
+ }
@@ -0,0 +1,18 @@
1
+ import {
2
+ ObservabilityCapabilities_exports,
3
+ ObservabilityEvents_exports,
4
+ ObservabilityOperation_exports,
5
+ Settings_exports
6
+ } from "./chunk-ZFVQL2JB.mjs";
7
+ import {
8
+ meta
9
+ } from "./chunk-RPFT4FVC.mjs";
10
+ import "./chunk-J5LGTIGS.mjs";
11
+ export {
12
+ ObservabilityCapabilities_exports as ObservabilityCapabilities,
13
+ ObservabilityEvents_exports as ObservabilityEvents,
14
+ ObservabilityOperation_exports as ObservabilityOperation,
15
+ Settings_exports as Settings,
16
+ meta
17
+ };
18
+ //# sourceMappingURL=index.mjs.map
@@ -0,0 +1 @@
1
+ {"inputs":{"src/meta.ts":{"bytes":1608,"imports":[{"path":"@dxos/util","kind":"import-statement","external":true}],"format":"esm"},"src/types/ObservabilityCapabilities.ts":{"bytes":4560,"imports":[{"path":"effect/Schema","kind":"import-statement","external":true},{"path":"@dxos/app-framework","kind":"import-statement","external":true},{"path":"#meta","kind":"import-statement","external":true}],"format":"esm"},"src/types/ObservabilityEvents.ts":{"bytes":1789,"imports":[{"path":"@dxos/app-framework","kind":"import-statement","external":true},{"path":"@dxos/app-toolkit","kind":"import-statement","external":true},{"path":"#meta","kind":"import-statement","external":true}],"format":"esm"},"src/types/ObservabilityOperation.ts":{"bytes":4448,"imports":[{"path":"effect/Schema","kind":"import-statement","external":true},{"path":"@dxos/app-framework","kind":"import-statement","external":true},{"path":"@dxos/compute","kind":"import-statement","external":true},{"path":"#meta","kind":"import-statement","external":true}],"format":"esm"},"src/types/Settings.ts":{"bytes":1691,"imports":[{"path":"effect/Schema","kind":"import-statement","external":true}],"format":"esm"},"src/types/index.ts":{"bytes":1164,"imports":[{"path":"src/types/ObservabilityCapabilities.ts","kind":"import-statement","original":"./ObservabilityCapabilities"},{"path":"src/types/ObservabilityEvents.ts","kind":"import-statement","original":"./ObservabilityEvents"},{"path":"src/types/ObservabilityOperation.ts","kind":"import-statement","original":"./ObservabilityOperation"},{"path":"src/types/Settings.ts","kind":"import-statement","original":"./Settings"}],"format":"esm"},"src/index.ts":{"bytes":449,"imports":[{"path":"src/meta.ts","kind":"import-statement","original":"./meta"},{"path":"src/types/index.ts","kind":"import-statement","original":"./types"}],"format":"esm"},"src/ObservabilityPlugin.ts":{"bytes":10165,"imports":[{"path":"effect/Effect","kind":"import-statement","external":true},{"path":"@dxos/app-framework","kind":"import-statement","external":true},{"path":"@dxos/app-toolkit","kind":"import-statement","external":true},{"path":"#capabilities","kind":"import-statement","external":true},{"path":"#meta","kind":"import-statement","external":true},{"path":"#translations","kind":"import-statement","external":true},{"path":"#types","kind":"import-statement","external":true}],"format":"esm"},"src/ObservabilityPlugin.node.ts":{"bytes":3710,"imports":[{"path":"effect/Effect","kind":"import-statement","external":true},{"path":"@dxos/app-framework","kind":"import-statement","external":true},{"path":"@dxos/app-toolkit","kind":"import-statement","external":true},{"path":"@dxos/compute","kind":"import-statement","external":true},{"path":"#meta","kind":"import-statement","external":true},{"path":"#types","kind":"import-statement","external":true}],"format":"esm"},"src/ObservabilityPlugin.workerd.ts":{"bytes":3624,"imports":[{"path":"effect/Effect","kind":"import-statement","external":true},{"path":"@dxos/app-framework","kind":"import-statement","external":true},{"path":"@dxos/app-toolkit","kind":"import-statement","external":true},{"path":"@dxos/compute","kind":"import-statement","external":true},{"path":"#meta","kind":"import-statement","external":true},{"path":"#types","kind":"import-statement","external":true}],"format":"esm"},"src/capabilities/client-ready.ts":{"bytes":18219,"imports":[{"path":"effect/Effect","kind":"import-statement","external":true},{"path":"@dxos/app-framework","kind":"import-statement","external":true},{"path":"@dxos/app-toolkit","kind":"import-statement","external":true},{"path":"@dxos/log","kind":"import-statement","external":true},{"path":"@dxos/observability","kind":"import-statement","external":true},{"path":"#meta","kind":"import-statement","external":true},{"path":"#types","kind":"import-statement","external":true}],"format":"esm"},"src/capabilities/operation-handler.ts":{"bytes":1703,"imports":[{"path":"effect/Effect","kind":"import-statement","external":true},{"path":"@dxos/app-framework","kind":"import-statement","external":true},{"path":"#operations","kind":"import-statement","external":true}],"format":"esm"},"src/capabilities/react-surface.tsx":{"bytes":4854,"imports":[{"path":"effect/Effect","kind":"import-statement","external":true},{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/app-framework","kind":"import-statement","external":true},{"path":"@dxos/app-framework/ui","kind":"import-statement","external":true},{"path":"@dxos/app-toolkit/ui","kind":"import-statement","external":true},{"path":"#components","kind":"import-statement","external":true},{"path":"#meta","kind":"import-statement","external":true},{"path":"#types","kind":"import-statement","external":true}],"format":"esm"},"src/capabilities/settings.ts":{"bytes":3215,"imports":[{"path":"effect/Effect","kind":"import-statement","external":true},{"path":"@dxos/app-framework","kind":"import-statement","external":true},{"path":"@dxos/app-toolkit","kind":"import-statement","external":true},{"path":"@dxos/effect","kind":"import-statement","external":true},{"path":"#meta","kind":"import-statement","external":true},{"path":"#types","kind":"import-statement","external":true}],"format":"esm"},"src/capabilities/state.ts":{"bytes":3720,"imports":[{"path":"effect/Effect","kind":"import-statement","external":true},{"path":"@dxos/app-framework","kind":"import-statement","external":true},{"path":"@dxos/effect","kind":"import-statement","external":true},{"path":"@dxos/observability","kind":"import-statement","external":true},{"path":"#meta","kind":"import-statement","external":true},{"path":"#types","kind":"import-statement","external":true}],"format":"esm"},"src/capabilities/index.ts":{"bytes":2452,"imports":[{"path":"@dxos/app-framework","kind":"import-statement","external":true},{"path":"src/capabilities/client-ready.ts","kind":"dynamic-import","original":"./client-ready"},{"path":"src/capabilities/operation-handler.ts","kind":"dynamic-import","original":"./operation-handler"},{"path":"src/capabilities/react-surface.tsx","kind":"dynamic-import","original":"./react-surface"},{"path":"src/capabilities/settings.ts","kind":"dynamic-import","original":"./settings"},{"path":"src/capabilities/state.ts","kind":"dynamic-import","original":"./state"}],"format":"esm"},"src/components/ObservabilitySettings/ObservabilitySettings.tsx":{"bytes":3793,"imports":[{"path":"react","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":"#meta","kind":"import-statement","external":true},{"path":"#types","kind":"import-statement","external":true}],"format":"esm"},"src/components/ObservabilitySettings/index.ts":{"bytes":560,"imports":[{"path":"src/components/ObservabilitySettings/ObservabilitySettings.tsx","kind":"import-statement","original":"./ObservabilitySettings"}],"format":"esm"},"src/components/index.ts":{"bytes":756,"imports":[{"path":"react","kind":"import-statement","external":true},{"path":"src/components/ObservabilitySettings/index.ts","kind":"dynamic-import","original":"./ObservabilitySettings"}],"format":"esm"},"src/operations/send-event.ts":{"bytes":2822,"imports":[{"path":"effect/Effect","kind":"import-statement","external":true},{"path":"@dxos/app-framework","kind":"import-statement","external":true},{"path":"@dxos/compute","kind":"import-statement","external":true},{"path":"src/types/index.ts","kind":"import-statement","original":"../types"}],"format":"esm"},"src/operations/toggle.ts":{"bytes":6264,"imports":[{"path":"effect/Effect","kind":"import-statement","external":true},{"path":"@dxos/app-framework","kind":"import-statement","external":true},{"path":"@dxos/app-toolkit","kind":"import-statement","external":true},{"path":"@dxos/compute","kind":"import-statement","external":true},{"path":"@dxos/observability","kind":"import-statement","external":true},{"path":"#meta","kind":"import-statement","external":true},{"path":"src/types/index.ts","kind":"import-statement","original":"../types"}],"format":"esm"},"src/operations/index.ts":{"bytes":967,"imports":[{"path":"@dxos/compute","kind":"import-statement","external":true},{"path":"src/operations/send-event.ts","kind":"dynamic-import","original":"./send-event"},{"path":"src/operations/toggle.ts","kind":"dynamic-import","original":"./toggle"}],"format":"esm"},"src/plugin.ts":{"bytes":1123,"imports":[{"path":"@dxos/app-framework","kind":"import-statement","external":true},{"path":"src/meta.ts","kind":"import-statement","original":"./meta"},{"path":"src/operations/index.ts","kind":"import-statement","original":"./operations"},{"path":"#plugin","kind":"dynamic-import","external":true}],"format":"esm"},"src/translations.ts":{"bytes":3379,"imports":[{"path":"#meta","kind":"import-statement","external":true}],"format":"esm"}},"outputs":{"dist/lib/neutral/ObservabilitySettings-H6UKYDDT.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":2100},"dist/lib/neutral/ObservabilitySettings-H6UKYDDT.mjs":{"imports":[{"path":"dist/lib/neutral/chunk-J5LGTIGS.mjs","kind":"import-statement"},{"path":"react","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":"#meta","kind":"import-statement","external":true},{"path":"#types","kind":"import-statement","external":true}],"exports":["default"],"entryPoint":"src/components/ObservabilitySettings/index.ts","inputs":{"src/components/ObservabilitySettings/ObservabilitySettings.tsx":{"bytesInOutput":912},"src/components/ObservabilitySettings/index.ts":{"bytesInOutput":0}},"bytes":1117},"dist/lib/neutral/send-event-NUMOCKDO.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":1516},"dist/lib/neutral/send-event-NUMOCKDO.mjs":{"imports":[{"path":"dist/lib/neutral/chunk-ZFVQL2JB.mjs","kind":"import-statement"},{"path":"dist/lib/neutral/chunk-J5LGTIGS.mjs","kind":"import-statement"},{"path":"effect/Effect","kind":"import-statement","external":true},{"path":"@dxos/app-framework","kind":"import-statement","external":true},{"path":"@dxos/compute","kind":"import-statement","external":true}],"exports":["default"],"entryPoint":"src/operations/send-event.ts","inputs":{"src/operations/send-event.ts":{"bytesInOutput":500}},"bytes":767},"dist/lib/neutral/toggle-RESKOU6L.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":3450},"dist/lib/neutral/toggle-RESKOU6L.mjs":{"imports":[{"path":"dist/lib/neutral/chunk-ZFVQL2JB.mjs","kind":"import-statement"},{"path":"dist/lib/neutral/chunk-J5LGTIGS.mjs","kind":"import-statement"},{"path":"effect/Effect","kind":"import-statement","external":true},{"path":"@dxos/app-framework","kind":"import-statement","external":true},{"path":"@dxos/app-toolkit","kind":"import-statement","external":true},{"path":"@dxos/compute","kind":"import-statement","external":true},{"path":"@dxos/observability","kind":"import-statement","external":true},{"path":"#meta","kind":"import-statement","external":true}],"exports":["default"],"entryPoint":"src/operations/toggle.ts","inputs":{"src/operations/toggle.ts":{"bytesInOutput":1421}},"bytes":1676},"dist/lib/neutral/plugin.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":527},"dist/lib/neutral/plugin.mjs":{"imports":[{"path":"dist/lib/neutral/chunk-RPFT4FVC.mjs","kind":"import-statement"},{"path":"dist/lib/neutral/chunk-6QCY3Z6O.mjs","kind":"import-statement"},{"path":"dist/lib/neutral/chunk-J5LGTIGS.mjs","kind":"import-statement"},{"path":"@dxos/app-framework","kind":"import-statement","external":true},{"path":"#plugin","kind":"dynamic-import","external":true}],"exports":["ObservabilityOperationHandlerSet","ObservabilityPlugin"],"entryPoint":"src/plugin.ts","inputs":{"src/plugin.ts":{"bytesInOutput":116}},"bytes":393},"dist/lib/neutral/translations.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":1564},"dist/lib/neutral/translations.mjs":{"imports":[{"path":"dist/lib/neutral/chunk-J5LGTIGS.mjs","kind":"import-statement"},{"path":"#meta","kind":"import-statement","external":true}],"exports":["translations"],"entryPoint":"src/translations.ts","inputs":{"src/translations.ts":{"bytesInOutput":1034}},"bytes":1158},"dist/lib/neutral/types/index.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":93},"dist/lib/neutral/types/index.mjs":{"imports":[{"path":"dist/lib/neutral/chunk-ZFVQL2JB.mjs","kind":"import-statement"},{"path":"dist/lib/neutral/chunk-J5LGTIGS.mjs","kind":"import-statement"}],"exports":["ObservabilityCapabilities","ObservabilityEvents","ObservabilityOperation","Settings"],"entryPoint":"src/types/index.ts","inputs":{},"bytes":452},"dist/lib/neutral/client-ready-TM7VE6CH.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":8650},"dist/lib/neutral/client-ready-TM7VE6CH.mjs":{"imports":[{"path":"dist/lib/neutral/chunk-J5LGTIGS.mjs","kind":"import-statement"},{"path":"effect/Effect","kind":"import-statement","external":true},{"path":"@dxos/app-framework","kind":"import-statement","external":true},{"path":"@dxos/app-toolkit","kind":"import-statement","external":true},{"path":"@dxos/log","kind":"import-statement","external":true},{"path":"@dxos/observability","kind":"import-statement","external":true},{"path":"#meta","kind":"import-statement","external":true},{"path":"#types","kind":"import-statement","external":true}],"exports":["default"],"entryPoint":"src/capabilities/client-ready.ts","inputs":{"src/capabilities/client-ready.ts":{"bytesInOutput":5610}},"bytes":5775},"dist/lib/neutral/operation-handler-4WWRXOHR.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":949},"dist/lib/neutral/operation-handler-4WWRXOHR.mjs":{"imports":[{"path":"dist/lib/neutral/chunk-J5LGTIGS.mjs","kind":"import-statement"},{"path":"effect/Effect","kind":"import-statement","external":true},{"path":"@dxos/app-framework","kind":"import-statement","external":true},{"path":"#operations","kind":"import-statement","external":true}],"exports":["default"],"entryPoint":"src/capabilities/operation-handler.ts","inputs":{"src/capabilities/operation-handler.ts":{"bytesInOutput":359}},"bytes":539},"dist/lib/neutral/react-surface-SHB2SLRK.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":2530},"dist/lib/neutral/react-surface-SHB2SLRK.mjs":{"imports":[{"path":"dist/lib/neutral/chunk-J5LGTIGS.mjs","kind":"import-statement"},{"path":"effect/Effect","kind":"import-statement","external":true},{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/app-framework","kind":"import-statement","external":true},{"path":"@dxos/app-framework/ui","kind":"import-statement","external":true},{"path":"@dxos/app-toolkit/ui","kind":"import-statement","external":true},{"path":"#components","kind":"import-statement","external":true},{"path":"#meta","kind":"import-statement","external":true},{"path":"#types","kind":"import-statement","external":true}],"exports":["default"],"entryPoint":"src/capabilities/react-surface.tsx","inputs":{"src/capabilities/react-surface.tsx":{"bytesInOutput":1139}},"bytes":1308},"dist/lib/neutral/settings-MZYK2WQR.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":1636},"dist/lib/neutral/settings-MZYK2WQR.mjs":{"imports":[{"path":"dist/lib/neutral/chunk-J5LGTIGS.mjs","kind":"import-statement"},{"path":"effect/Effect","kind":"import-statement","external":true},{"path":"@dxos/app-framework","kind":"import-statement","external":true},{"path":"@dxos/app-toolkit","kind":"import-statement","external":true},{"path":"@dxos/effect","kind":"import-statement","external":true},{"path":"#meta","kind":"import-statement","external":true},{"path":"#types","kind":"import-statement","external":true}],"exports":["default"],"entryPoint":"src/capabilities/settings.ts","inputs":{"src/capabilities/settings.ts":{"bytesInOutput":745}},"bytes":898},"dist/lib/neutral/state-5COCK3KV.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":1971},"dist/lib/neutral/state-5COCK3KV.mjs":{"imports":[{"path":"dist/lib/neutral/chunk-J5LGTIGS.mjs","kind":"import-statement"},{"path":"effect/Effect","kind":"import-statement","external":true},{"path":"@dxos/app-framework","kind":"import-statement","external":true},{"path":"@dxos/effect","kind":"import-statement","external":true},{"path":"@dxos/observability","kind":"import-statement","external":true},{"path":"#meta","kind":"import-statement","external":true},{"path":"#types","kind":"import-statement","external":true}],"exports":["default"],"entryPoint":"src/capabilities/state.ts","inputs":{"src/capabilities/state.ts":{"bytesInOutput":839}},"bytes":983},"dist/lib/neutral/index.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":93},"dist/lib/neutral/index.mjs":{"imports":[{"path":"dist/lib/neutral/chunk-ZFVQL2JB.mjs","kind":"import-statement"},{"path":"dist/lib/neutral/chunk-RPFT4FVC.mjs","kind":"import-statement"},{"path":"dist/lib/neutral/chunk-J5LGTIGS.mjs","kind":"import-statement"}],"exports":["ObservabilityCapabilities","ObservabilityEvents","ObservabilityOperation","Settings","meta"],"entryPoint":"src/index.ts","inputs":{"src/index.ts":{"bytesInOutput":0}},"bytes":505},"dist/lib/neutral/chunk-ZFVQL2JB.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":6291},"dist/lib/neutral/chunk-ZFVQL2JB.mjs":{"imports":[{"path":"dist/lib/neutral/chunk-J5LGTIGS.mjs","kind":"import-statement"},{"path":"effect/Schema","kind":"import-statement","external":true},{"path":"@dxos/app-framework","kind":"import-statement","external":true},{"path":"#meta","kind":"import-statement","external":true},{"path":"@dxos/app-framework","kind":"import-statement","external":true},{"path":"@dxos/app-toolkit","kind":"import-statement","external":true},{"path":"#meta","kind":"import-statement","external":true},{"path":"effect/Schema","kind":"import-statement","external":true},{"path":"@dxos/app-framework","kind":"import-statement","external":true},{"path":"@dxos/compute","kind":"import-statement","external":true},{"path":"#meta","kind":"import-statement","external":true},{"path":"effect/Schema","kind":"import-statement","external":true}],"exports":["ObservabilityCapabilities_exports","ObservabilityEvents_exports","ObservabilityOperation_exports","Settings_exports"],"inputs":{"src/types/ObservabilityCapabilities.ts":{"bytesInOutput":1018},"src/types/index.ts":{"bytesInOutput":0},"src/types/ObservabilityEvents.ts":{"bytesInOutput":463},"src/types/ObservabilityOperation.ts":{"bytesInOutput":1246},"src/types/Settings.ts":{"bytesInOutput":351}},"bytes":3453},"dist/lib/neutral/ObservabilityPlugin.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":5384},"dist/lib/neutral/ObservabilityPlugin.mjs":{"imports":[{"path":"dist/lib/neutral/chunk-J5LGTIGS.mjs","kind":"import-statement"},{"path":"effect/Effect","kind":"import-statement","external":true},{"path":"@dxos/app-framework","kind":"import-statement","external":true},{"path":"@dxos/app-toolkit","kind":"import-statement","external":true},{"path":"#capabilities","kind":"import-statement","external":true},{"path":"#meta","kind":"import-statement","external":true},{"path":"#translations","kind":"import-statement","external":true},{"path":"#types","kind":"import-statement","external":true}],"exports":["ObservabilityPlugin","default"],"entryPoint":"src/ObservabilityPlugin.ts","inputs":{"src/ObservabilityPlugin.ts":{"bytesInOutput":2356}},"bytes":2543},"dist/lib/neutral/ObservabilityPlugin.node.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":1988},"dist/lib/neutral/ObservabilityPlugin.node.mjs":{"imports":[{"path":"dist/lib/neutral/chunk-J5LGTIGS.mjs","kind":"import-statement"},{"path":"effect/Effect","kind":"import-statement","external":true},{"path":"@dxos/app-framework","kind":"import-statement","external":true},{"path":"@dxos/app-toolkit","kind":"import-statement","external":true},{"path":"@dxos/compute","kind":"import-statement","external":true},{"path":"#meta","kind":"import-statement","external":true},{"path":"#types","kind":"import-statement","external":true}],"exports":["ObservabilityPlugin","default"],"entryPoint":"src/ObservabilityPlugin.node.ts","inputs":{"src/ObservabilityPlugin.node.ts":{"bytesInOutput":794}},"bytes":996},"dist/lib/neutral/ObservabilityPlugin.workerd.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":1960},"dist/lib/neutral/ObservabilityPlugin.workerd.mjs":{"imports":[{"path":"dist/lib/neutral/chunk-J5LGTIGS.mjs","kind":"import-statement"},{"path":"effect/Effect","kind":"import-statement","external":true},{"path":"@dxos/app-framework","kind":"import-statement","external":true},{"path":"@dxos/app-toolkit","kind":"import-statement","external":true},{"path":"@dxos/compute","kind":"import-statement","external":true},{"path":"#meta","kind":"import-statement","external":true},{"path":"#types","kind":"import-statement","external":true}],"exports":["ObservabilityPlugin","default"],"entryPoint":"src/ObservabilityPlugin.workerd.ts","inputs":{"src/ObservabilityPlugin.workerd.ts":{"bytesInOutput":797}},"bytes":1008},"dist/lib/neutral/capabilities/index.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":1340},"dist/lib/neutral/capabilities/index.mjs":{"imports":[{"path":"dist/lib/neutral/chunk-J5LGTIGS.mjs","kind":"import-statement"},{"path":"@dxos/app-framework","kind":"import-statement","external":true},{"path":"dist/lib/neutral/client-ready-TM7VE6CH.mjs","kind":"dynamic-import"},{"path":"dist/lib/neutral/operation-handler-4WWRXOHR.mjs","kind":"dynamic-import"},{"path":"dist/lib/neutral/react-surface-SHB2SLRK.mjs","kind":"dynamic-import"},{"path":"dist/lib/neutral/settings-MZYK2WQR.mjs","kind":"dynamic-import"},{"path":"dist/lib/neutral/state-5COCK3KV.mjs","kind":"dynamic-import"}],"exports":["ClientReady","ObservabilitySettings","ObservabilityState","OperationHandler","ReactSurface"],"entryPoint":"src/capabilities/index.ts","inputs":{"src/capabilities/index.ts":{"bytesInOutput":571}},"bytes":777},"dist/lib/neutral/components/index.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":425},"dist/lib/neutral/components/index.mjs":{"imports":[{"path":"dist/lib/neutral/chunk-J5LGTIGS.mjs","kind":"import-statement"},{"path":"react","kind":"import-statement","external":true},{"path":"dist/lib/neutral/ObservabilitySettings-H6UKYDDT.mjs","kind":"dynamic-import"}],"exports":["ObservabilitySettings"],"entryPoint":"src/components/index.ts","inputs":{"src/components/index.ts":{"bytesInOutput":119}},"bytes":250},"dist/lib/neutral/meta.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":93},"dist/lib/neutral/meta.mjs":{"imports":[{"path":"dist/lib/neutral/chunk-RPFT4FVC.mjs","kind":"import-statement"},{"path":"dist/lib/neutral/chunk-J5LGTIGS.mjs","kind":"import-statement"}],"exports":["meta"],"entryPoint":"src/meta.ts","inputs":{},"bytes":131},"dist/lib/neutral/chunk-RPFT4FVC.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":802},"dist/lib/neutral/chunk-RPFT4FVC.mjs":{"imports":[{"path":"@dxos/util","kind":"import-statement","external":true}],"exports":["meta"],"inputs":{"src/meta.ts":{"bytesInOutput":381}},"bytes":460},"dist/lib/neutral/operations/index.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":93},"dist/lib/neutral/operations/index.mjs":{"imports":[{"path":"dist/lib/neutral/chunk-6QCY3Z6O.mjs","kind":"import-statement"},{"path":"dist/lib/neutral/chunk-J5LGTIGS.mjs","kind":"import-statement"}],"exports":["ObservabilityOperationHandlerSet"],"entryPoint":"src/operations/index.ts","inputs":{},"bytes":190},"dist/lib/neutral/chunk-6QCY3Z6O.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":524},"dist/lib/neutral/chunk-6QCY3Z6O.mjs":{"imports":[{"path":"@dxos/compute","kind":"import-statement","external":true},{"path":"dist/lib/neutral/send-event-NUMOCKDO.mjs","kind":"dynamic-import"},{"path":"dist/lib/neutral/toggle-RESKOU6L.mjs","kind":"dynamic-import"}],"exports":["ObservabilityOperationHandlerSet"],"inputs":{"src/operations/index.ts":{"bytesInOutput":200}},"bytes":319},"dist/lib/neutral/chunk-J5LGTIGS.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":93},"dist/lib/neutral/chunk-J5LGTIGS.mjs":{"imports":[],"exports":["__export"],"inputs":{},"bytes":235}}}
@@ -0,0 +1,8 @@
1
+ import {
2
+ meta
3
+ } from "./chunk-RPFT4FVC.mjs";
4
+ import "./chunk-J5LGTIGS.mjs";
5
+ export {
6
+ meta
7
+ };
8
+ //# sourceMappingURL=meta.mjs.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": [],
4
+ "sourcesContent": [],
5
+ "mappings": "",
6
+ "names": []
7
+ }
@@ -0,0 +1,13 @@
1
+ import "./chunk-J5LGTIGS.mjs";
2
+
3
+ // src/capabilities/operation-handler.ts
4
+ import * as Effect from "effect/Effect";
5
+ import { Capabilities, Capability } from "@dxos/app-framework";
6
+ import { ObservabilityOperationHandlerSet } from "#operations";
7
+ var operation_handler_default = Capability.makeModule(Effect.fnUntraced(function* () {
8
+ return Capability.contributes(Capabilities.OperationHandler, ObservabilityOperationHandlerSet);
9
+ }));
10
+ export {
11
+ operation_handler_default as default
12
+ };
13
+ //# sourceMappingURL=operation-handler-4WWRXOHR.mjs.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../src/capabilities/operation-handler.ts"],
4
+ "sourcesContent": ["//\n// Copyright 2025 DXOS.org\n//\n\nimport * as Effect from 'effect/Effect';\n\nimport { Capabilities, Capability } from '@dxos/app-framework';\nimport type { OperationHandlerSet } from '@dxos/compute';\n\nimport { ObservabilityOperationHandlerSet } from '#operations';\n\nexport default Capability.makeModule<OperationHandlerSet.OperationHandlerSet>(\n Effect.fnUntraced(function* () {\n return Capability.contributes(Capabilities.OperationHandler, ObservabilityOperationHandlerSet);\n }),\n);\n"],
5
+ "mappings": ";;;AAIA,YAAYA,YAAY;AAExB,SAASC,cAAcC,kBAAkB;AAGzC,SAASC,wCAAwC;AAEjD,IAAA,4BAAeD,WAAWE,WACjBC,kBAAW,aAAA;AAChB,SAAOH,WAAWI,YAAYL,aAAaM,kBAAkBJ,gCAAAA;AAC/D,CAAA,CAAA;",
6
+ "names": ["Effect", "Capabilities", "Capability", "ObservabilityOperationHandlerSet", "makeModule", "fnUntraced", "contributes", "OperationHandler"]
7
+ }
@@ -0,0 +1,8 @@
1
+ import {
2
+ ObservabilityOperationHandlerSet
3
+ } from "../chunk-6QCY3Z6O.mjs";
4
+ import "../chunk-J5LGTIGS.mjs";
5
+ export {
6
+ ObservabilityOperationHandlerSet
7
+ };
8
+ //# sourceMappingURL=index.mjs.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": [],
4
+ "sourcesContent": [],
5
+ "mappings": "",
6
+ "names": []
7
+ }
@@ -0,0 +1,16 @@
1
+ import {
2
+ meta
3
+ } from "./chunk-RPFT4FVC.mjs";
4
+ import {
5
+ ObservabilityOperationHandlerSet
6
+ } from "./chunk-6QCY3Z6O.mjs";
7
+ import "./chunk-J5LGTIGS.mjs";
8
+
9
+ // src/plugin.ts
10
+ import { Plugin } from "@dxos/app-framework";
11
+ var ObservabilityPlugin = Plugin.lazy(meta, () => import("#plugin"));
12
+ export {
13
+ ObservabilityOperationHandlerSet,
14
+ ObservabilityPlugin
15
+ };
16
+ //# sourceMappingURL=plugin.mjs.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../src/plugin.ts"],
4
+ "sourcesContent": ["//\n// Copyright 2023 DXOS.org\n//\n\nimport { Plugin } from '@dxos/app-framework';\n\nimport { meta } from './meta';\n\nexport const ObservabilityPlugin = Plugin.lazy(meta, () => import('#plugin'));\n\nexport { ObservabilityOperationHandlerSet } from './operations';\n"],
5
+ "mappings": ";;;;;;;;;AAIA,SAASA,cAAc;AAIhB,IAAMC,sBAAsBC,OAAOC,KAAKC,MAAM,MAAM,OAAO,SAAA,CAAA;",
6
+ "names": ["Plugin", "ObservabilityPlugin", "Plugin", "lazy", "meta"]
7
+ }
@@ -0,0 +1,35 @@
1
+ import "./chunk-J5LGTIGS.mjs";
2
+
3
+ // src/capabilities/react-surface.tsx
4
+ import * as Effect from "effect/Effect";
5
+ import React from "react";
6
+ import { Capabilities, Capability } from "@dxos/app-framework";
7
+ import { Surface, useOperationInvoker, useSettingsState } from "@dxos/app-framework/ui";
8
+ import { AppSurface } from "@dxos/app-toolkit/ui";
9
+ import { ObservabilitySettings } from "#components";
10
+ import { meta } from "#meta";
11
+ import { ObservabilityOperation } from "#types";
12
+ var react_surface_default = Capability.makeModule(() => Effect.succeed(Capability.contributes(Capabilities.ReactSurface, [
13
+ Surface.create({
14
+ id: "root",
15
+ filter: AppSurface.settings(AppSurface.Article, meta.id),
16
+ component: ({ data: { subject } }) => {
17
+ const { settings } = useSettingsState(subject.atom);
18
+ const { invokePromise } = useOperationInvoker();
19
+ const handleSettingsChange = (cb) => {
20
+ const next = cb(settings);
21
+ void invokePromise(ObservabilityOperation.Toggle, {
22
+ state: next.enabled
23
+ });
24
+ };
25
+ return /* @__PURE__ */ React.createElement(ObservabilitySettings, {
26
+ settings,
27
+ onSettingsChange: handleSettingsChange
28
+ });
29
+ }
30
+ })
31
+ ])));
32
+ export {
33
+ react_surface_default as default
34
+ };
35
+ //# sourceMappingURL=react-surface-SHB2SLRK.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 * as Effect from 'effect/Effect';\nimport React from 'react';\n\nimport { Capabilities, Capability } from '@dxos/app-framework';\nimport { Surface, useOperationInvoker, useSettingsState } from '@dxos/app-framework/ui';\nimport { AppSurface } from '@dxos/app-toolkit/ui';\n\nimport { ObservabilitySettings } from '#components';\nimport { meta } from '#meta';\nimport { ObservabilityOperation } from '#types';\nimport { type Settings } from '#types';\n\nexport default Capability.makeModule(() =>\n Effect.succeed(\n Capability.contributes(Capabilities.ReactSurface, [\n Surface.create({\n id: 'root',\n filter: AppSurface.settings(AppSurface.Article, meta.id),\n component: ({ data: { subject } }) => {\n const { settings } = useSettingsState<Settings.Settings>(subject.atom);\n const { invokePromise } = useOperationInvoker();\n const handleSettingsChange = (cb: (current: Settings.Settings) => Settings.Settings) => {\n const next = cb(settings);\n void invokePromise(ObservabilityOperation.Toggle, { state: next.enabled });\n };\n return <ObservabilitySettings settings={settings} onSettingsChange={handleSettingsChange} />;\n },\n }),\n ]),\n ),\n);\n"],
5
+ "mappings": ";;;AAIA,YAAYA,YAAY;AACxB,OAAOC,WAAW;AAElB,SAASC,cAAcC,kBAAkB;AACzC,SAASC,SAASC,qBAAqBC,wBAAwB;AAC/D,SAASC,kBAAkB;AAE3B,SAASC,6BAA6B;AACtC,SAASC,YAAY;AACrB,SAASC,8BAA8B;AAGvC,IAAA,wBAAeP,WAAWQ,WAAW,MAC5BC,eACLT,WAAWU,YAAYX,aAAaY,cAAc;EAChDV,QAAQW,OAAO;IACbC,IAAI;IACJC,QAAQV,WAAWW,SAASX,WAAWY,SAASV,KAAKO,EAAE;IACvDI,WAAW,CAAC,EAAEC,MAAM,EAAEC,QAAO,EAAE,MAAE;AAC/B,YAAM,EAAEJ,SAAQ,IAAKZ,iBAAoCgB,QAAQC,IAAI;AACrE,YAAM,EAAEC,cAAa,IAAKnB,oBAAAA;AAC1B,YAAMoB,uBAAuB,CAACC,OAAAA;AAC5B,cAAMC,OAAOD,GAAGR,QAAAA;AAChB,aAAKM,cAAcd,uBAAuBkB,QAAQ;UAAEC,OAAOF,KAAKG;QAAQ,CAAA;MAC1E;AACA,aAAO,sBAAA,cAACtB,uBAAAA;QAAsBU;QAAoBa,kBAAkBN;;IACtE;EACF,CAAA;CACD,CAAA,CAAA;",
6
+ "names": ["Effect", "React", "Capabilities", "Capability", "Surface", "useOperationInvoker", "useSettingsState", "AppSurface", "ObservabilitySettings", "meta", "ObservabilityOperation", "makeModule", "succeed", "contributes", "ReactSurface", "create", "id", "filter", "settings", "Article", "component", "data", "subject", "atom", "invokePromise", "handleSettingsChange", "cb", "next", "Toggle", "state", "enabled", "onSettingsChange"]
7
+ }
@@ -0,0 +1,20 @@
1
+ import {
2
+ ObservabilityCapabilities_exports,
3
+ ObservabilityOperation_exports
4
+ } from "./chunk-ZFVQL2JB.mjs";
5
+ import "./chunk-J5LGTIGS.mjs";
6
+
7
+ // src/operations/send-event.ts
8
+ import * as Effect from "effect/Effect";
9
+ import { Capability } from "@dxos/app-framework";
10
+ import { Operation } from "@dxos/compute";
11
+ var handler = ObservabilityOperation_exports.SendEvent.pipe(Operation.withHandler(Effect.fnUntraced(function* (input) {
12
+ const observability = yield* Capability.waitFor(ObservabilityCapabilities_exports.Observability);
13
+ const properties = input.properties ?? {};
14
+ observability.events.captureEvent(input.name, properties);
15
+ })));
16
+ var send_event_default = handler;
17
+ export {
18
+ send_event_default as default
19
+ };
20
+ //# sourceMappingURL=send-event-NUMOCKDO.mjs.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../src/operations/send-event.ts"],
4
+ "sourcesContent": ["//\n// Copyright 2025 DXOS.org\n//\n\nimport * as Effect from 'effect/Effect';\n\nimport { Capability } from '@dxos/app-framework';\nimport { Operation } from '@dxos/compute';\n\nimport { ObservabilityCapabilities, ObservabilityOperation } from '../types';\n\nconst handler: Operation.WithHandler<typeof ObservabilityOperation.SendEvent> = ObservabilityOperation.SendEvent.pipe(\n Operation.withHandler(\n Effect.fnUntraced(function* (input) {\n // NOTE: This is to ensure that events fired before observability is ready are still sent.\n const observability = yield* Capability.waitFor(ObservabilityCapabilities.Observability);\n const properties = input.properties ?? {};\n observability.events.captureEvent(input.name, properties);\n }),\n ),\n);\n\nexport default handler;\n"],
5
+ "mappings": ";;;;;;;AAIA,YAAYA,YAAY;AAExB,SAASC,kBAAkB;AAC3B,SAASC,iBAAiB;AAI1B,IAAMC,UAA0EC,+BAAuBC,UAAUC,KAC/GC,UAAUC,YACDC,kBAAW,WAAWC,OAAK;AAEhC,QAAMC,gBAAgB,OAAOC,WAAWC,QAAQC,kCAA0BC,aAAa;AACvF,QAAMC,aAAaN,MAAMM,cAAc,CAAC;AACxCL,gBAAcM,OAAOC,aAAaR,MAAMS,MAAMH,UAAAA;AAChD,CAAA,CAAA,CAAA;AAIJ,IAAA,qBAAeb;",
6
+ "names": ["Effect", "Capability", "Operation", "handler", "ObservabilityOperation", "SendEvent", "pipe", "Operation", "withHandler", "fnUntraced", "input", "observability", "Capability", "waitFor", "ObservabilityCapabilities", "Observability", "properties", "events", "captureEvent", "name"]
7
+ }
@@ -0,0 +1,30 @@
1
+ import "./chunk-J5LGTIGS.mjs";
2
+
3
+ // src/capabilities/settings.ts
4
+ import * as Effect from "effect/Effect";
5
+ import { Capability } from "@dxos/app-framework";
6
+ import { AppCapabilities } from "@dxos/app-toolkit";
7
+ import { createKvsStore } from "@dxos/effect";
8
+ import { meta } from "#meta";
9
+ import { ObservabilityCapabilities, Settings } from "#types";
10
+ var settings_default = Capability.makeModule(() => Effect.sync(() => {
11
+ const settingsAtom = createKvsStore({
12
+ key: meta.id,
13
+ schema: Settings.Settings,
14
+ defaultValue: () => ({
15
+ enabled: true
16
+ })
17
+ });
18
+ return [
19
+ Capability.contributes(ObservabilityCapabilities.Settings, settingsAtom),
20
+ Capability.contributes(AppCapabilities.Settings, {
21
+ prefix: meta.id,
22
+ schema: Settings.Settings,
23
+ atom: settingsAtom
24
+ })
25
+ ];
26
+ }));
27
+ export {
28
+ settings_default as default
29
+ };
30
+ //# sourceMappingURL=settings-MZYK2WQR.mjs.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../src/capabilities/settings.ts"],
4
+ "sourcesContent": ["//\n// Copyright 2025 DXOS.org\n//\n\nimport * as Effect from 'effect/Effect';\n\nimport { Capability } from '@dxos/app-framework';\nimport { AppCapabilities } from '@dxos/app-toolkit';\nimport { createKvsStore } from '@dxos/effect';\n\nimport { meta } from '#meta';\nimport { ObservabilityCapabilities, Settings } from '#types';\n\nexport default Capability.makeModule(() =>\n Effect.sync(() => {\n const settingsAtom = createKvsStore({\n key: meta.id,\n schema: Settings.Settings,\n defaultValue: () => ({\n enabled: true,\n }),\n });\n\n return [\n Capability.contributes(ObservabilityCapabilities.Settings, settingsAtom),\n Capability.contributes(AppCapabilities.Settings, {\n prefix: meta.id,\n schema: Settings.Settings,\n atom: settingsAtom,\n }),\n ];\n }),\n);\n"],
5
+ "mappings": ";;;AAIA,YAAYA,YAAY;AAExB,SAASC,kBAAkB;AAC3B,SAASC,uBAAuB;AAChC,SAASC,sBAAsB;AAE/B,SAASC,YAAY;AACrB,SAASC,2BAA2BC,gBAAgB;AAEpD,IAAA,mBAAeL,WAAWM,WAAW,MAC5BC,YAAK,MAAA;AACV,QAAMC,eAAeN,eAAe;IAClCO,KAAKN,KAAKO;IACVC,QAAQN,SAASA;IACjBO,cAAc,OAAO;MACnBC,SAAS;IACX;EACF,CAAA;AAEA,SAAO;IACLb,WAAWc,YAAYV,0BAA0BC,UAAUG,YAAAA;IAC3DR,WAAWc,YAAYb,gBAAgBI,UAAU;MAC/CU,QAAQZ,KAAKO;MACbC,QAAQN,SAASA;MACjBW,MAAMR;IACR,CAAA;;AAEJ,CAAA,CAAA;",
6
+ "names": ["Effect", "Capability", "AppCapabilities", "createKvsStore", "meta", "ObservabilityCapabilities", "Settings", "makeModule", "sync", "settingsAtom", "key", "id", "schema", "defaultValue", "enabled", "contributes", "prefix", "atom"]
7
+ }
@@ -0,0 +1,27 @@
1
+ import "./chunk-J5LGTIGS.mjs";
2
+
3
+ // src/capabilities/state.ts
4
+ import * as Effect from "effect/Effect";
5
+ import { Capabilities, Capability } from "@dxos/app-framework";
6
+ import { createKvsStore } from "@dxos/effect";
7
+ import { Observability } from "@dxos/observability";
8
+ import { meta } from "#meta";
9
+ import { ObservabilityCapabilities } from "#types";
10
+ var state_default = Capability.makeModule(Effect.fnUntraced(function* ({ namespace }) {
11
+ const stateAtom = createKvsStore({
12
+ key: meta.id,
13
+ schema: ObservabilityCapabilities.StateSchema,
14
+ defaultValue: () => ({})
15
+ });
16
+ const group = yield* Effect.tryPromise(() => Observability.getObservabilityGroup(namespace));
17
+ const registry = yield* Capability.get(Capabilities.AtomRegistry);
18
+ registry.set(stateAtom, {
19
+ ...registry.get(stateAtom),
20
+ group
21
+ });
22
+ return Capability.contributes(ObservabilityCapabilities.State, stateAtom);
23
+ }));
24
+ export {
25
+ state_default as default
26
+ };
27
+ //# sourceMappingURL=state-5COCK3KV.mjs.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../src/capabilities/state.ts"],
4
+ "sourcesContent": ["//\n// Copyright 2025 DXOS.org\n//\n\nimport * as Effect from 'effect/Effect';\n\nimport { Capabilities, Capability } from '@dxos/app-framework';\nimport { createKvsStore } from '@dxos/effect';\nimport { Observability } from '@dxos/observability';\n\nimport { meta } from '#meta';\nimport { ObservabilityCapabilities } from '#types';\n\nexport default Capability.makeModule(\n Effect.fnUntraced(function* ({ namespace }: { namespace: string }) {\n const stateAtom = createKvsStore({\n key: meta.id,\n schema: ObservabilityCapabilities.StateSchema,\n defaultValue: () => ({}),\n });\n\n // NOTE: Group is set at runtime, not persisted.\n const group = yield* Effect.tryPromise(() => Observability.getObservabilityGroup(namespace));\n const registry = yield* Capability.get(Capabilities.AtomRegistry);\n registry.set(stateAtom, { ...registry.get(stateAtom), group });\n\n return Capability.contributes(ObservabilityCapabilities.State, stateAtom);\n }),\n);\n"],
5
+ "mappings": ";;;AAIA,YAAYA,YAAY;AAExB,SAASC,cAAcC,kBAAkB;AACzC,SAASC,sBAAsB;AAC/B,SAASC,qBAAqB;AAE9B,SAASC,YAAY;AACrB,SAASC,iCAAiC;AAE1C,IAAA,gBAAeJ,WAAWK,WACjBC,kBAAW,WAAW,EAAEC,UAAS,GAAyB;AAC/D,QAAMC,YAAYP,eAAe;IAC/BQ,KAAKN,KAAKO;IACVC,QAAQP,0BAA0BQ;IAClCC,cAAc,OAAO,CAAC;EACxB,CAAA;AAGA,QAAMC,QAAQ,OAAcC,kBAAW,MAAMb,cAAcc,sBAAsBT,SAAAA,CAAAA;AACjF,QAAMU,WAAW,OAAOjB,WAAWkB,IAAInB,aAAaoB,YAAY;AAChEF,WAASG,IAAIZ,WAAW;IAAE,GAAGS,SAASC,IAAIV,SAAAA;IAAYM;EAAM,CAAA;AAE5D,SAAOd,WAAWqB,YAAYjB,0BAA0BkB,OAAOd,SAAAA;AACjE,CAAA,CAAA;",
6
+ "names": ["Effect", "Capabilities", "Capability", "createKvsStore", "Observability", "meta", "ObservabilityCapabilities", "makeModule", "fnUntraced", "namespace", "stateAtom", "key", "id", "schema", "StateSchema", "defaultValue", "group", "tryPromise", "getObservabilityGroup", "registry", "get", "AtomRegistry", "set", "contributes", "State"]
7
+ }
@@ -0,0 +1,45 @@
1
+ import {
2
+ ObservabilityCapabilities_exports,
3
+ ObservabilityOperation_exports
4
+ } from "./chunk-ZFVQL2JB.mjs";
5
+ import "./chunk-J5LGTIGS.mjs";
6
+
7
+ // src/operations/toggle.ts
8
+ import * as Effect from "effect/Effect";
9
+ import { Capabilities, Capability } from "@dxos/app-framework";
10
+ import { AppCapabilities } from "@dxos/app-toolkit";
11
+ import { Operation } from "@dxos/compute";
12
+ import { Observability } from "@dxos/observability";
13
+ import { meta } from "#meta";
14
+ var handler = ObservabilityOperation_exports.Toggle.pipe(Operation.withHandler(Effect.fnUntraced(function* (input) {
15
+ const namespace = yield* Capability.get(ObservabilityCapabilities_exports.Namespace);
16
+ const observability = yield* Capability.get(ObservabilityCapabilities_exports.Observability);
17
+ const capabilities = yield* Capability.Service;
18
+ const registry = capabilities.get(Capabilities.AtomRegistry);
19
+ const allSettings = capabilities.getAll(AppCapabilities.Settings);
20
+ const settingsObj = allSettings.find((s) => s.prefix === meta.id);
21
+ if (!settingsObj) {
22
+ return false;
23
+ }
24
+ const settings = registry.get(settingsObj.atom);
25
+ const newEnabled = input.state ?? !settings.enabled;
26
+ registry.set(settingsObj.atom, {
27
+ ...settings,
28
+ enabled: newEnabled
29
+ });
30
+ observability.events.captureEvent("observability.toggle", {
31
+ enabled: newEnabled
32
+ });
33
+ if (newEnabled) {
34
+ yield* observability.enable();
35
+ } else {
36
+ yield* observability.disable();
37
+ }
38
+ yield* Effect.promise(() => Observability.storeObservabilityDisabled(namespace, !newEnabled));
39
+ return newEnabled;
40
+ })));
41
+ var toggle_default = handler;
42
+ export {
43
+ toggle_default as default
44
+ };
45
+ //# sourceMappingURL=toggle-RESKOU6L.mjs.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../src/operations/toggle.ts"],
4
+ "sourcesContent": ["//\n// Copyright 2025 DXOS.org\n//\n\nimport * as Effect from 'effect/Effect';\n\nimport { Capabilities, Capability } from '@dxos/app-framework';\nimport { AppCapabilities } from '@dxos/app-toolkit';\nimport { Operation } from '@dxos/compute';\nimport { Observability } from '@dxos/observability';\n\nimport { meta } from '#meta';\n\nimport { ObservabilityCapabilities, ObservabilityOperation, type Settings } from '../types';\n\nconst handler: Operation.WithHandler<typeof ObservabilityOperation.Toggle> = ObservabilityOperation.Toggle.pipe(\n Operation.withHandler(\n Effect.fnUntraced(function* (input) {\n const namespace = yield* Capability.get(ObservabilityCapabilities.Namespace);\n const observability = yield* Capability.get(ObservabilityCapabilities.Observability);\n const capabilities = yield* Capability.Service;\n const registry = capabilities.get(Capabilities.AtomRegistry);\n const allSettings = capabilities.getAll(AppCapabilities.Settings);\n const settingsObj = allSettings.find((s: AppCapabilities.Settings) => s.prefix === meta.id);\n if (!settingsObj) {\n return false;\n }\n const settings = registry.get(settingsObj.atom) as Settings.Settings;\n const newEnabled = input.state ?? !settings.enabled;\n registry.set(settingsObj.atom, { ...settings, enabled: newEnabled });\n observability.events.captureEvent('observability.toggle', {\n enabled: newEnabled,\n });\n\n if (newEnabled) {\n yield* observability.enable();\n } else {\n yield* observability.disable();\n }\n yield* Effect.promise(() => Observability.storeObservabilityDisabled(namespace, !newEnabled));\n return newEnabled;\n }),\n ),\n);\n\nexport default handler;\n"],
5
+ "mappings": ";;;;;;;AAIA,YAAYA,YAAY;AAExB,SAASC,cAAcC,kBAAkB;AACzC,SAASC,uBAAuB;AAChC,SAASC,iBAAiB;AAC1B,SAASC,qBAAqB;AAE9B,SAASC,YAAY;AAIrB,IAAMC,UAAuEC,+BAAuBC,OAAOC,KACzGC,UAAUC,YACDC,kBAAW,WAAWC,OAAK;AAChC,QAAMC,YAAY,OAAOC,WAAWC,IAAIC,kCAA0BC,SAAS;AAC3E,QAAMC,gBAAgB,OAAOJ,WAAWC,IAAIC,kCAA0BG,aAAa;AACnF,QAAMC,eAAe,OAAON,WAAWO;AACvC,QAAMC,WAAWF,aAAaL,IAAIQ,aAAaC,YAAY;AAC3D,QAAMC,cAAcL,aAAaM,OAAOC,gBAAgBC,QAAQ;AAChE,QAAMC,cAAcJ,YAAYK,KAAK,CAACC,MAAgCA,EAAEC,WAAWC,KAAKC,EAAE;AAC1F,MAAI,CAACL,aAAa;AAChB,WAAO;EACT;AACA,QAAMM,WAAWb,SAASP,IAAIc,YAAYO,IAAI;AAC9C,QAAMC,aAAazB,MAAM0B,SAAS,CAACH,SAASI;AAC5CjB,WAASkB,IAAIX,YAAYO,MAAM;IAAE,GAAGD;IAAUI,SAASF;EAAW,CAAA;AAClEnB,gBAAcuB,OAAOC,aAAa,wBAAwB;IACxDH,SAASF;EACX,CAAA;AAEA,MAAIA,YAAY;AACd,WAAOnB,cAAcyB,OAAM;EAC7B,OAAO;AACL,WAAOzB,cAAc0B,QAAO;EAC9B;AACA,SAAcC,eAAQ,MAAM1B,cAAc2B,2BAA2BjC,WAAW,CAACwB,UAAAA,CAAAA;AACjF,SAAOA;AACT,CAAA,CAAA,CAAA;AAIJ,IAAA,iBAAehC;",
6
+ "names": ["Effect", "Capabilities", "Capability", "AppCapabilities", "Operation", "Observability", "meta", "handler", "ObservabilityOperation", "Toggle", "pipe", "Operation", "withHandler", "fnUntraced", "input", "namespace", "Capability", "get", "ObservabilityCapabilities", "Namespace", "observability", "Observability", "capabilities", "Service", "registry", "Capabilities", "AtomRegistry", "allSettings", "getAll", "AppCapabilities", "Settings", "settingsObj", "find", "s", "prefix", "meta", "id", "settings", "atom", "newEnabled", "state", "enabled", "set", "events", "captureEvent", "enable", "disable", "promise", "storeObservabilityDisabled"]
7
+ }
@@ -0,0 +1,26 @@
1
+ import "./chunk-J5LGTIGS.mjs";
2
+
3
+ // src/translations.ts
4
+ import { meta } from "#meta";
5
+ var translations = [
6
+ {
7
+ "en-US": {
8
+ [meta.id]: {
9
+ "plugin.name": "Telemetry",
10
+ "help.label": "Feedback",
11
+ "settings.title": "Telemetry settings",
12
+ "observability-toast.label": "Privacy Notice",
13
+ "observability-toast.description": "Composer collects usage and performance metrics to improve the product. No user data is collected.",
14
+ "observability-toast-action.label": "Settings",
15
+ "observability-toast-action.alt": "Open settings to learn more or to disable.",
16
+ "observability-toast-close.label": "Okay",
17
+ // TODO: Add link about telemetry privacy. Make it clearer that user data is not collected.
18
+ "observability.description": "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."
19
+ }
20
+ }
21
+ }
22
+ ];
23
+ export {
24
+ translations
25
+ };
26
+ //# sourceMappingURL=translations.mjs.map