@dxos/plugin-observability 0.8.4-main.70d3990 → 0.8.4-main.74a063c4e0

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 (207) hide show
  1. package/dist/lib/browser/ObservabilitySettings-EM7ABGCA.mjs +31 -0
  2. package/dist/lib/browser/ObservabilitySettings-EM7ABGCA.mjs.map +7 -0
  3. package/dist/lib/browser/capture-user-feedback-4HGXJGJL.mjs +25 -0
  4. package/dist/lib/browser/capture-user-feedback-4HGXJGJL.mjs.map +7 -0
  5. package/dist/lib/browser/chunk-J5LGTIGS.mjs +10 -0
  6. package/dist/lib/browser/chunk-J5LGTIGS.mjs.map +7 -0
  7. package/dist/lib/browser/chunk-J6DPYEFZ.mjs +49 -0
  8. package/dist/lib/browser/chunk-J6DPYEFZ.mjs.map +7 -0
  9. package/dist/lib/browser/chunk-K33HLC3Z.mjs +33 -0
  10. package/dist/lib/browser/chunk-K33HLC3Z.mjs.map +7 -0
  11. package/dist/lib/browser/chunk-VZR3FNBD.mjs +85 -0
  12. package/dist/lib/browser/chunk-VZR3FNBD.mjs.map +7 -0
  13. package/dist/lib/browser/cli/index.mjs +20 -0
  14. package/dist/lib/browser/cli/index.mjs.map +7 -0
  15. package/dist/lib/browser/index.mjs +93 -111
  16. package/dist/lib/browser/index.mjs.map +4 -4
  17. package/dist/lib/browser/meta.json +1 -1
  18. package/dist/lib/browser/operations/index.mjs +16 -0
  19. package/dist/lib/browser/operations/index.mjs.map +7 -0
  20. package/dist/lib/browser/send-event-VV2I6QYY.mjs +23 -0
  21. package/dist/lib/browser/send-event-VV2I6QYY.mjs.map +7 -0
  22. package/dist/lib/browser/toggle-H2GX3A6G.mjs +48 -0
  23. package/dist/lib/browser/toggle-H2GX3A6G.mjs.map +7 -0
  24. package/dist/lib/browser/types/index.mjs +12 -6
  25. package/dist/lib/node-esm/ObservabilitySettings-VP4A362Z.mjs +32 -0
  26. package/dist/lib/node-esm/ObservabilitySettings-VP4A362Z.mjs.map +7 -0
  27. package/dist/lib/node-esm/capture-user-feedback-SDQA2VYI.mjs +26 -0
  28. package/dist/lib/node-esm/capture-user-feedback-SDQA2VYI.mjs.map +7 -0
  29. package/dist/lib/node-esm/chunk-FZRJBWSE.mjs +86 -0
  30. package/dist/lib/node-esm/chunk-FZRJBWSE.mjs.map +7 -0
  31. package/dist/lib/node-esm/chunk-HSLMI22Q.mjs +11 -0
  32. package/dist/lib/node-esm/chunk-HSLMI22Q.mjs.map +7 -0
  33. package/dist/lib/node-esm/chunk-JGHMP7UL.mjs +35 -0
  34. package/dist/lib/node-esm/chunk-JGHMP7UL.mjs.map +7 -0
  35. package/dist/lib/node-esm/chunk-K7WZOJZF.mjs +50 -0
  36. package/dist/lib/node-esm/chunk-K7WZOJZF.mjs.map +7 -0
  37. package/dist/lib/node-esm/cli/index.mjs +21 -0
  38. package/dist/lib/node-esm/cli/index.mjs.map +7 -0
  39. package/dist/lib/node-esm/index.mjs +93 -111
  40. package/dist/lib/node-esm/index.mjs.map +4 -4
  41. package/dist/lib/node-esm/meta.json +1 -1
  42. package/dist/lib/node-esm/operations/index.mjs +17 -0
  43. package/dist/lib/node-esm/operations/index.mjs.map +7 -0
  44. package/dist/lib/node-esm/send-event-EMV3VHAA.mjs +24 -0
  45. package/dist/lib/node-esm/send-event-EMV3VHAA.mjs.map +7 -0
  46. package/dist/lib/node-esm/toggle-XRNGEYNP.mjs +49 -0
  47. package/dist/lib/node-esm/toggle-XRNGEYNP.mjs.map +7 -0
  48. package/dist/lib/node-esm/types/index.mjs +12 -6
  49. package/dist/types/src/ObservabilityPlugin.d.ts +3 -2
  50. package/dist/types/src/ObservabilityPlugin.d.ts.map +1 -1
  51. package/dist/types/src/capabilities/app-graph-builder.d.ts +4 -2
  52. package/dist/types/src/capabilities/app-graph-builder.d.ts.map +1 -1
  53. package/dist/types/src/capabilities/client-ready.d.ts +5 -5
  54. package/dist/types/src/capabilities/client-ready.d.ts.map +1 -1
  55. package/dist/types/src/capabilities/index.d.ts +20 -15
  56. package/dist/types/src/capabilities/index.d.ts.map +1 -1
  57. package/dist/types/src/capabilities/operation-handler.d.ts +6 -0
  58. package/dist/types/src/capabilities/operation-handler.d.ts.map +1 -0
  59. package/dist/types/src/capabilities/react-surface.d.ts +3 -2
  60. package/dist/types/src/capabilities/react-surface.d.ts.map +1 -1
  61. package/dist/types/src/capabilities/settings.d.ts +8 -2
  62. package/dist/types/src/capabilities/settings.d.ts.map +1 -1
  63. package/dist/types/src/capabilities/state.d.ts +10 -3
  64. package/dist/types/src/capabilities/state.d.ts.map +1 -1
  65. package/dist/types/src/cli/index.d.ts +2 -0
  66. package/dist/types/src/cli/index.d.ts.map +1 -0
  67. package/dist/types/src/cli/plugin.d.ts +3 -0
  68. package/dist/types/src/cli/plugin.d.ts.map +1 -0
  69. package/dist/types/src/components/FeedbackForm/FeedbackForm.d.ts +6 -0
  70. package/dist/types/src/components/FeedbackForm/FeedbackForm.d.ts.map +1 -0
  71. package/dist/types/src/components/FeedbackForm/FeedbackForm.stories.d.ts +36 -0
  72. package/dist/types/src/components/FeedbackForm/FeedbackForm.stories.d.ts.map +1 -0
  73. package/dist/types/src/components/FeedbackForm/index.d.ts +2 -0
  74. package/dist/types/src/components/FeedbackForm/index.d.ts.map +1 -0
  75. package/dist/types/src/components/ObservabilitySettings/ObservabilitySettings.d.ts +6 -0
  76. package/dist/types/src/components/ObservabilitySettings/ObservabilitySettings.d.ts.map +1 -0
  77. package/dist/types/src/components/ObservabilitySettings/ObservabilitySettings.stories.d.ts +37 -0
  78. package/dist/types/src/components/ObservabilitySettings/ObservabilitySettings.stories.d.ts.map +1 -0
  79. package/dist/types/src/components/ObservabilitySettings/index.d.ts +2 -0
  80. package/dist/types/src/components/ObservabilitySettings/index.d.ts.map +1 -0
  81. package/dist/types/src/components/index.d.ts +2 -2
  82. package/dist/types/src/components/index.d.ts.map +1 -1
  83. package/dist/types/src/containers/HelpContainer/HelpContainer.d.ts +4 -0
  84. package/dist/types/src/containers/HelpContainer/HelpContainer.d.ts.map +1 -0
  85. package/dist/types/src/containers/HelpContainer/index.d.ts +2 -0
  86. package/dist/types/src/containers/HelpContainer/index.d.ts.map +1 -0
  87. package/dist/types/src/containers/index.d.ts +3 -0
  88. package/dist/types/src/containers/index.d.ts.map +1 -0
  89. package/dist/types/src/index.d.ts +2 -2
  90. package/dist/types/src/index.d.ts.map +1 -1
  91. package/dist/types/src/meta.d.ts +2 -2
  92. package/dist/types/src/meta.d.ts.map +1 -1
  93. package/dist/types/src/operations/capture-user-feedback.d.ts +5 -0
  94. package/dist/types/src/operations/capture-user-feedback.d.ts.map +1 -0
  95. package/dist/types/src/operations/definitions.d.ts +23 -0
  96. package/dist/types/src/operations/definitions.d.ts.map +1 -0
  97. package/dist/types/src/operations/index.d.ts +5 -0
  98. package/dist/types/src/operations/index.d.ts.map +1 -0
  99. package/dist/types/src/operations/send-event.d.ts +5 -0
  100. package/dist/types/src/operations/send-event.d.ts.map +1 -0
  101. package/dist/types/src/operations/toggle.d.ts +5 -0
  102. package/dist/types/src/operations/toggle.d.ts.map +1 -0
  103. package/dist/types/src/translations.d.ts +18 -16
  104. package/dist/types/src/translations.d.ts.map +1 -1
  105. package/dist/types/src/types/Settings.d.ts +6 -0
  106. package/dist/types/src/types/Settings.d.ts.map +1 -0
  107. package/dist/types/src/types/capabilities.d.ts +28 -0
  108. package/dist/types/src/types/capabilities.d.ts.map +1 -0
  109. package/dist/types/src/types/events.d.ts +6 -0
  110. package/dist/types/src/types/events.d.ts.map +1 -0
  111. package/dist/types/src/types/index.d.ts +3 -1
  112. package/dist/types/src/types/index.d.ts.map +1 -1
  113. package/dist/types/tsconfig.tsbuildinfo +1 -1
  114. package/package.json +64 -34
  115. package/src/ObservabilityPlugin.ts +51 -48
  116. package/src/capabilities/app-graph-builder.ts +27 -39
  117. package/src/capabilities/client-ready.ts +68 -81
  118. package/src/capabilities/index.ts +12 -8
  119. package/src/capabilities/operation-handler.ts +16 -0
  120. package/src/capabilities/react-surface.tsx +34 -19
  121. package/src/capabilities/settings.ts +26 -14
  122. package/src/capabilities/state.ts +20 -13
  123. package/src/cli/index.ts +5 -0
  124. package/src/cli/plugin.ts +31 -0
  125. package/src/components/FeedbackForm/FeedbackForm.stories.tsx +32 -0
  126. package/src/components/FeedbackForm/FeedbackForm.tsx +33 -0
  127. package/src/components/FeedbackForm/index.ts +5 -0
  128. package/src/components/ObservabilitySettings/ObservabilitySettings.stories.tsx +33 -0
  129. package/src/components/ObservabilitySettings/ObservabilitySettings.tsx +38 -0
  130. package/src/components/ObservabilitySettings/index.ts +5 -0
  131. package/src/components/index.ts +4 -2
  132. package/src/containers/HelpContainer/HelpContainer.tsx +56 -0
  133. package/src/containers/HelpContainer/index.ts +5 -0
  134. package/src/containers/index.ts +7 -0
  135. package/src/index.ts +2 -2
  136. package/src/meta.ts +3 -3
  137. package/src/operations/capture-user-feedback.ts +22 -0
  138. package/src/operations/definitions.ts +77 -0
  139. package/src/operations/index.ts +14 -0
  140. package/src/operations/send-event.ts +24 -0
  141. package/src/operations/toggle.ts +47 -0
  142. package/src/translations.ts +18 -17
  143. package/src/types/Settings.ts +19 -0
  144. package/src/types/capabilities.ts +37 -0
  145. package/src/types/events.ts +15 -0
  146. package/src/types/index.ts +3 -1
  147. package/dist/lib/browser/app-graph-builder-3I6HZ5AR.mjs +0 -44
  148. package/dist/lib/browser/app-graph-builder-3I6HZ5AR.mjs.map +0 -7
  149. package/dist/lib/browser/chunk-EC7HTFA5.mjs +0 -18
  150. package/dist/lib/browser/chunk-EC7HTFA5.mjs.map +0 -7
  151. package/dist/lib/browser/chunk-I32JO7N6.mjs +0 -191
  152. package/dist/lib/browser/chunk-I32JO7N6.mjs.map +0 -7
  153. package/dist/lib/browser/chunk-W7QWKVS3.mjs +0 -16
  154. package/dist/lib/browser/chunk-W7QWKVS3.mjs.map +0 -7
  155. package/dist/lib/browser/chunk-ZPNE2QLZ.mjs +0 -181
  156. package/dist/lib/browser/chunk-ZPNE2QLZ.mjs.map +0 -7
  157. package/dist/lib/browser/client-ready-SGUJYKFO.mjs +0 -102
  158. package/dist/lib/browser/client-ready-SGUJYKFO.mjs.map +0 -7
  159. package/dist/lib/browser/intent-resolver-7AS3LQUD.mjs +0 -77
  160. package/dist/lib/browser/intent-resolver-7AS3LQUD.mjs.map +0 -7
  161. package/dist/lib/browser/react-surface-D7OCQATN.mjs +0 -32
  162. package/dist/lib/browser/react-surface-D7OCQATN.mjs.map +0 -7
  163. package/dist/lib/browser/settings-ILBB3GCR.mjs +0 -25
  164. package/dist/lib/browser/settings-ILBB3GCR.mjs.map +0 -7
  165. package/dist/lib/browser/state-FJD6K3ZZ.mjs +0 -26
  166. package/dist/lib/browser/state-FJD6K3ZZ.mjs.map +0 -7
  167. package/dist/lib/node-esm/app-graph-builder-KH2GA6G7.mjs +0 -45
  168. package/dist/lib/node-esm/app-graph-builder-KH2GA6G7.mjs.map +0 -7
  169. package/dist/lib/node-esm/chunk-AVJTLRX5.mjs +0 -18
  170. package/dist/lib/node-esm/chunk-AVJTLRX5.mjs.map +0 -7
  171. package/dist/lib/node-esm/chunk-HACSZKXD.mjs +0 -19
  172. package/dist/lib/node-esm/chunk-HACSZKXD.mjs.map +0 -7
  173. package/dist/lib/node-esm/chunk-HDEVP6Z4.mjs +0 -182
  174. package/dist/lib/node-esm/chunk-HDEVP6Z4.mjs.map +0 -7
  175. package/dist/lib/node-esm/chunk-JA6DTCPS.mjs +0 -192
  176. package/dist/lib/node-esm/chunk-JA6DTCPS.mjs.map +0 -7
  177. package/dist/lib/node-esm/client-ready-AQWXCEF7.mjs +0 -103
  178. package/dist/lib/node-esm/client-ready-AQWXCEF7.mjs.map +0 -7
  179. package/dist/lib/node-esm/intent-resolver-JI4234E7.mjs +0 -78
  180. package/dist/lib/node-esm/intent-resolver-JI4234E7.mjs.map +0 -7
  181. package/dist/lib/node-esm/react-surface-KRRSSVTP.mjs +0 -33
  182. package/dist/lib/node-esm/react-surface-KRRSSVTP.mjs.map +0 -7
  183. package/dist/lib/node-esm/settings-LRA7DFLS.mjs +0 -26
  184. package/dist/lib/node-esm/settings-LRA7DFLS.mjs.map +0 -7
  185. package/dist/lib/node-esm/state-XNBMNLB7.mjs +0 -27
  186. package/dist/lib/node-esm/state-XNBMNLB7.mjs.map +0 -7
  187. package/dist/types/src/capabilities/capabilities.d.ts +0 -12
  188. package/dist/types/src/capabilities/capabilities.d.ts.map +0 -1
  189. package/dist/types/src/capabilities/intent-resolver.d.ts +0 -7
  190. package/dist/types/src/capabilities/intent-resolver.d.ts.map +0 -1
  191. package/dist/types/src/components/FeedbackForm.d.ts +0 -6
  192. package/dist/types/src/components/FeedbackForm.d.ts.map +0 -1
  193. package/dist/types/src/components/HelpContainer.d.ts +0 -3
  194. package/dist/types/src/components/HelpContainer.d.ts.map +0 -1
  195. package/dist/types/src/components/ObservabilitySettings.d.ts +0 -10
  196. package/dist/types/src/components/ObservabilitySettings.d.ts.map +0 -1
  197. package/dist/types/src/events.d.ts +0 -5
  198. package/dist/types/src/events.d.ts.map +0 -1
  199. package/dist/types/src/types/schema.d.ts +0 -313
  200. package/dist/types/src/types/schema.d.ts.map +0 -1
  201. package/src/capabilities/capabilities.ts +0 -23
  202. package/src/capabilities/intent-resolver.ts +0 -69
  203. package/src/components/FeedbackForm.tsx +0 -82
  204. package/src/components/HelpContainer.tsx +0 -42
  205. package/src/components/ObservabilitySettings.tsx +0 -49
  206. package/src/events.ts +0 -14
  207. package/src/types/schema.ts +0 -216
@@ -1,102 +0,0 @@
1
- import {
2
- ObservabilityAction
3
- } from "./chunk-I32JO7N6.mjs";
4
- import {
5
- ClientCapability,
6
- ObservabilityCapabilities
7
- } from "./chunk-EC7HTFA5.mjs";
8
- import {
9
- meta
10
- } from "./chunk-W7QWKVS3.mjs";
11
-
12
- // src/capabilities/client-ready.ts
13
- import { Capabilities, LayoutAction, SettingsAction, contributes, createIntent } from "@dxos/app-framework";
14
- import { setupTelemetryListeners } from "@dxos/observability";
15
- var client_ready_default = (async ({ context, namespace, observability }) => {
16
- const manager = context.getCapability(Capabilities.PluginManager);
17
- const { dispatchPromise: dispatch } = context.getCapability(Capabilities.IntentDispatcher);
18
- const state = context.getCapability(ObservabilityCapabilities.State);
19
- const client = context.getCapability(ClientCapability);
20
- const sendPrivacyNotice = async () => {
21
- const environment = client?.config?.values.runtime?.app?.env?.DX_ENVIRONMENT;
22
- const notify = environment && environment !== "ci" && !environment.endsWith(".local") && !environment.endsWith(".lan");
23
- if (!state.notified && notify) {
24
- await dispatch(createIntent(LayoutAction.AddToast, {
25
- part: "toast",
26
- subject: {
27
- id: `${meta.id}/notice`,
28
- title: [
29
- "observability toast label",
30
- {
31
- ns: meta.id
32
- }
33
- ],
34
- description: [
35
- "observability toast description",
36
- {
37
- ns: meta.id
38
- }
39
- ],
40
- duration: Infinity,
41
- icon: "ph--info--regular",
42
- actionLabel: [
43
- "observability toast action label",
44
- {
45
- ns: meta.id
46
- }
47
- ],
48
- actionAlt: [
49
- "observability toast action alt",
50
- {
51
- ns: meta.id
52
- }
53
- ],
54
- closeLabel: [
55
- "observability toast close label",
56
- {
57
- ns: meta.id
58
- }
59
- ],
60
- onAction: () => dispatch(createIntent(SettingsAction.Open, {
61
- plugin: meta.id
62
- }))
63
- }
64
- }));
65
- state.notified = true;
66
- }
67
- };
68
- manager.enabled.map((plugin) => observability?.setTag(`pluginEnabled-${plugin}`, "true", "errors"));
69
- await dispatch(createIntent(ObservabilityAction.SendEvent, {
70
- name: "page.load",
71
- properties: {
72
- // TODO(wittjosiah): These apis are deprecated. Is there a better way to find this information?
73
- loadDuration: window.performance.timing.loadEventEnd - window.performance.timing.loadEventStart
74
- }
75
- }));
76
- const cleanup = setupTelemetryListeners(namespace, client, observability);
77
- await Promise.all([
78
- observability.setIdentityTags(client.services.services),
79
- observability.startRuntimeMetrics(client),
80
- observability.startNetworkMetrics(client.services.services),
81
- observability.startSpacesMetrics(client, namespace)
82
- ]);
83
- if (client.halo.identity.get()) {
84
- await sendPrivacyNotice();
85
- } else {
86
- const subscription = client.halo.identity.subscribe(async (identity) => {
87
- if (identity && observability) {
88
- await sendPrivacyNotice();
89
- await observability.setIdentityTags(client.services.services);
90
- subscription.unsubscribe();
91
- }
92
- });
93
- }
94
- return contributes(ObservabilityCapabilities.Observability, observability, async () => {
95
- cleanup();
96
- await observability.close();
97
- });
98
- });
99
- export {
100
- client_ready_default as default
101
- };
102
- //# sourceMappingURL=client-ready-SGUJYKFO.mjs.map
@@ -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 LayoutAction,\n type PluginContext,\n SettingsAction,\n contributes,\n createIntent,\n} from '@dxos/app-framework';\nimport { type Observability, setupTelemetryListeners } from '@dxos/observability';\n\nimport { meta } from '../meta';\nimport { ObservabilityAction } from '../types';\n\nimport { ClientCapability, ObservabilityCapabilities } from './capabilities';\n\ntype ClientReadyOptions = {\n context: PluginContext;\n namespace: string;\n observability: Observability;\n};\n\nexport default async ({ context, namespace, observability }: ClientReadyOptions) => {\n const manager = context.getCapability(Capabilities.PluginManager);\n const { dispatchPromise: dispatch } = context.getCapability(Capabilities.IntentDispatcher);\n const state = context.getCapability(ObservabilityCapabilities.State);\n const client = context.getCapability(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: `${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: () => dispatch(createIntent(SettingsAction.Open, { plugin: meta.id })),\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 // 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,cAEAC,gBACAC,aACAC,oBACK;AACP,SAA6BC,+BAA+B;AAa5D,IAAA,wBAAe,OAAO,EAAEC,SAASC,WAAWC,cAAa,MAAsB;AAC7E,QAAMC,UAAUH,QAAQI,cAAcC,aAAaC,aAAa;AAChE,QAAM,EAAEC,iBAAiBC,SAAQ,IAAKR,QAAQI,cAAcC,aAAaI,gBAAgB;AACzF,QAAMC,QAAQV,QAAQI,cAAcO,0BAA0BC,KAAK;AACnE,QAAMC,SAASb,QAAQI,cAAcU,gBAAAA;AAErC,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,KAAKD,EAAE;UACdE,OAAO;YAAC;YAA6B;cAAEC,IAAIF,KAAKD;YAAG;;UACnDI,aAAa;YAAC;YAAmC;cAAED,IAAIF,KAAKD;YAAG;;UAC/DK,UAAUC;UACVC,MAAM;UACNC,aAAa;YAAC;YAAoC;cAAEL,IAAIF,KAAKD;YAAG;;UAChES,WAAW;YAAC;YAAkC;cAAEN,IAAIF,KAAKD;YAAG;;UAC5DU,YAAY;YAAC;YAAmC;cAAEP,IAAIF,KAAKD;YAAG;;UAC9DW,UAAU,MAAMlC,SAASkB,aAAaiB,eAAeC,MAAM;YAAEC,QAAQb,KAAKD;UAAG,CAAA,CAAA;QAC/E;MACF,CAAA,CAAA;AAGFrB,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;;MAEVC,cAAcC,OAAOC,YAAYC,OAAOC,eAAeH,OAAOC,YAAYC,OAAOE;IACnF;EACF,CAAA,CAAA;AAKF,QAAMC,UAAUC,wBAAwB3D,WAAWY,QAAQX,aAAAA;AAE3D,QAAM2D,QAAQC,IAAI;IAChB5D,cAAc6D,gBAAgBlD,OAAOmD,SAASA,QAAQ;IACtD9D,cAAc+D,oBAAoBpD,MAAAA;IAClCX,cAAcgE,oBAAoBrD,OAAOmD,SAASA,QAAQ;IAC1D9D,cAAciE,mBAAmBtD,QAAQZ,SAAAA;GAC1C;AAED,MAAIY,OAAOuD,KAAKC,SAASC,IAAG,GAAI;AAC9B,UAAMvD,kBAAAA;EACR,OAAO;AACL,UAAMwD,eAAe1D,OAAOuD,KAAKC,SAASG,UAAU,OAAOH,aAAAA;AACzD,UAAIA,YAAYnE,eAAe;AAC7B,cAAMa,kBAAAA;AACN,cAAMb,cAAc6D,gBAAgBlD,OAAOmD,SAASA,QAAQ;AAC5DO,qBAAaE,YAAW;MAC1B;IACF,CAAA;EACF;AAEA,SAAOC,YAAY/D,0BAA0BgE,eAAezE,eAAe,YAAA;AACzEyD,YAAAA;AACA,UAAMzD,cAAc0E,MAAK;EAC3B,CAAA;AACF;",
6
- "names": ["Capabilities", "LayoutAction", "SettingsAction", "contributes", "createIntent", "setupTelemetryListeners", "context", "namespace", "observability", "manager", "getCapability", "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", "meta", "title", "ns", "description", "duration", "Infinity", "icon", "actionLabel", "actionAlt", "closeLabel", "onAction", "SettingsAction", "Open", "plugin", "enabled", "map", "setTag", "ObservabilityAction", "SendEvent", "name", "properties", "loadDuration", "window", "performance", "timing", "loadEventEnd", "loadEventStart", "cleanup", "setupTelemetryListeners", "Promise", "all", "setIdentityTags", "services", "startRuntimeMetrics", "startNetworkMetrics", "startSpacesMetrics", "halo", "identity", "get", "subscription", "subscribe", "unsubscribe", "contributes", "Observability", "close"]
7
- }
@@ -1,77 +0,0 @@
1
- import {
2
- ObservabilityAction
3
- } from "./chunk-I32JO7N6.mjs";
4
- import {
5
- ClientCapability,
6
- ObservabilityCapabilities
7
- } from "./chunk-EC7HTFA5.mjs";
8
- import {
9
- meta
10
- } from "./chunk-W7QWKVS3.mjs";
11
-
12
- // src/capabilities/intent-resolver.ts
13
- import { Capabilities, IntentAction, contributes, createResolver } from "@dxos/app-framework";
14
- import { log } from "@dxos/log";
15
- import { getTelemetryIdentity, storeObservabilityDisabled } from "@dxos/observability";
16
- var __dxlog_file = "/__w/dxos/dxos/packages/plugins/plugin-observability/src/capabilities/intent-resolver.ts";
17
- var intent_resolver_default = (({ context, namespace }) => contributes(Capabilities.IntentResolver, [
18
- createResolver({
19
- intent: IntentAction.Track,
20
- resolve: (intent) => {
21
- log.info("intent", {
22
- intent
23
- }, {
24
- F: __dxlog_file,
25
- L: 20,
26
- S: void 0,
27
- C: (f, a) => f(...a)
28
- });
29
- }
30
- }),
31
- createResolver({
32
- intent: ObservabilityAction.Toggle,
33
- resolve: async ({ state }) => {
34
- const client = context.getCapability(ClientCapability);
35
- const observability = context.getCapability(ObservabilityCapabilities.Observability);
36
- const settings = context.getCapability(Capabilities.SettingsStore).getStore(meta.id).value;
37
- settings.enabled = state ?? !settings.enabled;
38
- observability.track({
39
- ...getTelemetryIdentity(client),
40
- action: "observability.toggle",
41
- properties: {
42
- enabled: settings.enabled
43
- }
44
- });
45
- observability.setMode(settings.enabled ? "basic" : "disabled");
46
- await storeObservabilityDisabled(namespace, !settings.enabled);
47
- return {
48
- data: settings.enabled
49
- };
50
- }
51
- }),
52
- createResolver({
53
- intent: ObservabilityAction.SendEvent,
54
- resolve: (data) => {
55
- const client = context.getCapability(ClientCapability);
56
- const properties = "properties" in data ? data.properties : {};
57
- void context.waitForCapability(ObservabilityCapabilities.Observability).then((observability) => {
58
- observability.track({
59
- ...getTelemetryIdentity(client),
60
- action: data.name,
61
- properties
62
- });
63
- });
64
- }
65
- }),
66
- createResolver({
67
- intent: ObservabilityAction.CaptureUserFeedback,
68
- resolve: async (data) => {
69
- const observability = context.getCapability(ObservabilityCapabilities.Observability);
70
- observability.captureUserFeedback(data.message);
71
- }
72
- })
73
- ]));
74
- export {
75
- intent_resolver_default as default
76
- };
77
- //# sourceMappingURL=intent-resolver-7AS3LQUD.mjs.map
@@ -1,7 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../../../src/capabilities/intent-resolver.ts"],
4
- "sourcesContent": ["//\n// Copyright 2025 DXOS.org\n//\n\nimport { Capabilities, IntentAction, type PluginContext, contributes, createResolver } from '@dxos/app-framework';\nimport { log } from '@dxos/log';\nimport { getTelemetryIdentity, storeObservabilityDisabled } from '@dxos/observability';\n\nimport { type ObservabilitySettingsProps } from '../components';\nimport { meta } from '../meta';\nimport { ObservabilityAction } from '../types';\n\nimport { ClientCapability, ObservabilityCapabilities } from './capabilities';\n\nexport default ({ context, namespace }: { context: PluginContext; namespace: string }) =>\n contributes(Capabilities.IntentResolver, [\n createResolver({\n intent: IntentAction.Track,\n resolve: (intent) => {\n log.info('intent', { intent });\n },\n }),\n createResolver({\n intent: ObservabilityAction.Toggle,\n resolve: async ({ state }) => {\n const client = context.getCapability(ClientCapability);\n const observability = context.getCapability(ObservabilityCapabilities.Observability);\n const settings = context\n .getCapability(Capabilities.SettingsStore)\n .getStore<ObservabilitySettingsProps>(meta.id)!.value;\n settings.enabled = state ?? !settings.enabled;\n observability.track({\n ...getTelemetryIdentity(client),\n action: '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 }),\n createResolver({\n intent: ObservabilityAction.SendEvent,\n resolve: (data) => {\n const client = context.getCapability(ClientCapability);\n const properties = 'properties' in data ? data.properties : {};\n\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 be awaited still rather than voiding.\n void context.waitForCapability(ObservabilityCapabilities.Observability).then((observability) => {\n observability.track({\n ...getTelemetryIdentity(client),\n action: data.name,\n properties,\n });\n });\n },\n }),\n createResolver({\n intent: ObservabilityAction.CaptureUserFeedback,\n resolve: async (data) => {\n const observability = context.getCapability(ObservabilityCapabilities.Observability);\n observability.captureUserFeedback(data.message);\n },\n }),\n ]);\n"],
5
- "mappings": ";;;;;;;;;;;;AAIA,SAASA,cAAcC,cAAkCC,aAAaC,sBAAsB;AAC5F,SAASC,WAAW;AACpB,SAASC,sBAAsBC,kCAAkC;;AAQjE,IAAA,2BAAe,CAAC,EAAEC,SAASC,UAAS,MAClCC,YAAYC,aAAaC,gBAAgB;EACvCC,eAAe;IACbC,QAAQC,aAAaC;IACrBC,SAAS,CAACH,WAAAA;AACRI,UAAIC,KAAK,UAAU;QAAEL;MAAO,GAAA;;;;;;IAC9B;EACF,CAAA;EACAD,eAAe;IACbC,QAAQM,oBAAoBC;IAC5BJ,SAAS,OAAO,EAAEK,MAAK,MAAE;AACvB,YAAMC,SAASf,QAAQgB,cAAcC,gBAAAA;AACrC,YAAMC,gBAAgBlB,QAAQgB,cAAcG,0BAA0BC,aAAa;AACnF,YAAMC,WAAWrB,QACdgB,cAAcb,aAAamB,aAAa,EACxCC,SAAqCC,KAAKC,EAAE,EAAGC;AAClDL,eAASM,UAAUb,SAAS,CAACO,SAASM;AACtCT,oBAAcU,MAAM;QAClB,GAAGC,qBAAqBd,MAAAA;QACxBe,QAAQ;QACRC,YAAY;UACVJ,SAASN,SAASM;QACpB;MACF,CAAA;AACAT,oBAAcc,QAAQX,SAASM,UAAU,UAAU,UAAA;AACnD,YAAMM,2BAA2BhC,WAAW,CAACoB,SAASM,OAAO;AAC7D,aAAO;QAAEO,MAAMb,SAASM;MAAQ;IAClC;EACF,CAAA;EACAtB,eAAe;IACbC,QAAQM,oBAAoBuB;IAC5B1B,SAAS,CAACyB,SAAAA;AACR,YAAMnB,SAASf,QAAQgB,cAAcC,gBAAAA;AACrC,YAAMc,aAAa,gBAAgBG,OAAOA,KAAKH,aAAa,CAAC;AAK7D,WAAK/B,QAAQoC,kBAAkBjB,0BAA0BC,aAAa,EAAEiB,KAAK,CAACnB,kBAAAA;AAC5EA,sBAAcU,MAAM;UAClB,GAAGC,qBAAqBd,MAAAA;UACxBe,QAAQI,KAAKI;UACbP;QACF,CAAA;MACF,CAAA;IACF;EACF,CAAA;EACA1B,eAAe;IACbC,QAAQM,oBAAoB2B;IAC5B9B,SAAS,OAAOyB,SAAAA;AACd,YAAMhB,gBAAgBlB,QAAQgB,cAAcG,0BAA0BC,aAAa;AACnFF,oBAAcsB,oBAAoBN,KAAKO,OAAO;IAChD;EACF,CAAA;CACD;",
6
- "names": ["Capabilities", "IntentAction", "contributes", "createResolver", "log", "getTelemetryIdentity", "storeObservabilityDisabled", "context", "namespace", "contributes", "Capabilities", "IntentResolver", "createResolver", "intent", "IntentAction", "Track", "resolve", "log", "info", "ObservabilityAction", "Toggle", "state", "client", "getCapability", "ClientCapability", "observability", "ObservabilityCapabilities", "Observability", "settings", "SettingsStore", "getStore", "meta", "id", "value", "enabled", "track", "getTelemetryIdentity", "action", "properties", "setMode", "storeObservabilityDisabled", "data", "SendEvent", "waitForCapability", "then", "name", "CaptureUserFeedback", "captureUserFeedback", "message"]
7
- }
@@ -1,32 +0,0 @@
1
- import {
2
- HelpContainer,
3
- ObservabilitySettings
4
- } from "./chunk-ZPNE2QLZ.mjs";
5
- import "./chunk-I32JO7N6.mjs";
6
- import {
7
- meta
8
- } from "./chunk-W7QWKVS3.mjs";
9
-
10
- // src/capabilities/react-surface.tsx
11
- import React from "react";
12
- import { Capabilities, contributes, createSurface } from "@dxos/app-framework";
13
- import { SettingsStore } from "@dxos/local-storage";
14
- var react_surface_default = (() => contributes(Capabilities.ReactSurface, [
15
- createSurface({
16
- id: meta.id,
17
- role: "article",
18
- filter: (data) => data.subject instanceof SettingsStore && data.subject.prefix === meta.id,
19
- component: ({ data: { subject } }) => /* @__PURE__ */ React.createElement(ObservabilitySettings, {
20
- settings: subject.value
21
- })
22
- }),
23
- createSurface({
24
- id: `${meta.id}/help`,
25
- role: "deck-companion--help",
26
- component: () => /* @__PURE__ */ React.createElement(HelpContainer, null)
27
- })
28
- ]));
29
- export {
30
- react_surface_default as default
31
- };
32
- //# sourceMappingURL=react-surface-D7OCQATN.mjs.map
@@ -1,7 +0,0 @@
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 { Capabilities, contributes, createSurface } from '@dxos/app-framework';\nimport { SettingsStore } from '@dxos/local-storage';\n\nimport { HelpContainer, ObservabilitySettings, type ObservabilitySettingsProps } from '../components';\nimport { meta } from '../meta';\n\nexport default () =>\n contributes(Capabilities.ReactSurface, [\n createSurface({\n id: meta.id,\n role: 'article',\n filter: (data): data is { subject: SettingsStore<ObservabilitySettingsProps> } =>\n data.subject instanceof SettingsStore && data.subject.prefix === meta.id,\n component: ({ data: { subject } }) => <ObservabilitySettings settings={subject.value} />,\n }),\n createSurface({\n id: `${meta.id}/help`,\n role: 'deck-companion--help',\n component: () => <HelpContainer />,\n }),\n ]);\n"],
5
- "mappings": ";;;;;;;;;;AAIA,OAAOA,WAAW;AAElB,SAASC,cAAcC,aAAaC,qBAAqB;AACzD,SAASC,qBAAqB;AAK9B,IAAA,yBAAe,MACbC,YAAYC,aAAaC,cAAc;EACrCC,cAAc;IACZC,IAAIC,KAAKD;IACTE,MAAM;IACNC,QAAQ,CAACC,SACPA,KAAKC,mBAAmBC,iBAAiBF,KAAKC,QAAQE,WAAWN,KAAKD;IACxEQ,WAAW,CAAC,EAAEJ,MAAM,EAAEC,QAAO,EAAE,MAAO,sBAAA,cAACI,uBAAAA;MAAsBC,UAAUL,QAAQM;;EACjF,CAAA;EACAZ,cAAc;IACZC,IAAI,GAAGC,KAAKD,EAAE;IACdE,MAAM;IACNM,WAAW,MAAM,sBAAA,cAACI,eAAAA,IAAAA;EACpB,CAAA;CACD;",
6
- "names": ["React", "Capabilities", "contributes", "createSurface", "SettingsStore", "contributes", "Capabilities", "ReactSurface", "createSurface", "id", "meta", "role", "filter", "data", "subject", "SettingsStore", "prefix", "component", "ObservabilitySettings", "settings", "value", "HelpContainer"]
7
- }
@@ -1,25 +0,0 @@
1
- import {
2
- ObservabilitySettingsSchema
3
- } from "./chunk-ZPNE2QLZ.mjs";
4
- import "./chunk-I32JO7N6.mjs";
5
- import {
6
- meta
7
- } from "./chunk-W7QWKVS3.mjs";
8
-
9
- // src/capabilities/settings.ts
10
- import { Capabilities, contributes } from "@dxos/app-framework";
11
- import { live } from "@dxos/live-object";
12
- var settings_default = (() => {
13
- const settings = live({
14
- enabled: true
15
- });
16
- return contributes(Capabilities.Settings, {
17
- prefix: meta.id,
18
- schema: ObservabilitySettingsSchema,
19
- value: settings
20
- });
21
- });
22
- export {
23
- settings_default as default
24
- };
25
- //# sourceMappingURL=settings-ILBB3GCR.mjs.map
@@ -1,7 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../../../src/capabilities/settings.ts"],
4
- "sourcesContent": ["//\n// Copyright 2025 DXOS.org\n//\n\nimport { Capabilities, contributes } from '@dxos/app-framework';\nimport { live } from '@dxos/live-object';\n\nimport { type ObservabilitySettingsProps, ObservabilitySettingsSchema } from '../components';\nimport { meta } from '../meta';\n\nexport default () => {\n const settings = live<ObservabilitySettingsProps>({\n enabled: true,\n });\n\n return contributes(Capabilities.Settings, {\n prefix: meta.id,\n schema: ObservabilitySettingsSchema,\n value: settings,\n });\n};\n"],
5
- "mappings": ";;;;;;;;;AAIA,SAASA,cAAcC,mBAAmB;AAC1C,SAASC,YAAY;AAKrB,IAAA,oBAAe,MAAA;AACb,QAAMC,WAAWC,KAAiC;IAChDC,SAAS;EACX,CAAA;AAEA,SAAOC,YAAYC,aAAaC,UAAU;IACxCC,QAAQC,KAAKC;IACbC,QAAQC;IACRC,OAAOX;EACT,CAAA;AACF;",
6
- "names": ["Capabilities", "contributes", "live", "settings", "live", "enabled", "contributes", "Capabilities", "Settings", "prefix", "meta", "id", "schema", "ObservabilitySettingsSchema", "value"]
7
- }
@@ -1,26 +0,0 @@
1
- import {
2
- ObservabilityCapabilities
3
- } from "./chunk-EC7HTFA5.mjs";
4
- import {
5
- meta
6
- } from "./chunk-W7QWKVS3.mjs";
7
-
8
- // src/capabilities/state.ts
9
- import { contributes } from "@dxos/app-framework";
10
- import { LocalStorageStore } from "@dxos/local-storage";
11
- import { getObservabilityGroup } from "@dxos/observability";
12
- var state_default = (async ({ namespace }) => {
13
- const state = new LocalStorageStore(meta.id);
14
- state.prop({
15
- key: "notified",
16
- type: LocalStorageStore.bool({
17
- allowUndefined: true
18
- })
19
- });
20
- state.values.group = await getObservabilityGroup(namespace);
21
- return contributes(ObservabilityCapabilities.State, state.values, () => state.close());
22
- });
23
- export {
24
- state_default as default
25
- };
26
- //# sourceMappingURL=state-FJD6K3ZZ.mjs.map
@@ -1,7 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../../../src/capabilities/state.ts"],
4
- "sourcesContent": ["//\n// Copyright 2025 DXOS.org\n//\n\nimport { contributes } from '@dxos/app-framework';\nimport { LocalStorageStore } from '@dxos/local-storage';\nimport { getObservabilityGroup } from '@dxos/observability';\n\nimport { meta } from '../meta';\n\nimport { ObservabilityCapabilities } from './capabilities';\n\nexport default async ({ namespace }: { namespace: string }) => {\n const state = new LocalStorageStore<ObservabilityCapabilities.State>(meta.id);\n\n state.prop({ key: 'notified', type: LocalStorageStore.bool({ allowUndefined: true }) });\n\n // NOTE: This is not stored in local storage such that it can be accessed by workers.\n state.values.group = await getObservabilityGroup(namespace);\n\n return contributes(ObservabilityCapabilities.State, state.values, () => state.close());\n};\n"],
5
- "mappings": ";;;;;;;;AAIA,SAASA,mBAAmB;AAC5B,SAASC,yBAAyB;AAClC,SAASC,6BAA6B;AAMtC,IAAA,iBAAe,OAAO,EAAEC,UAAS,MAAyB;AACxD,QAAMC,QAAQ,IAAIC,kBAAmDC,KAAKC,EAAE;AAE5EH,QAAMI,KAAK;IAAEC,KAAK;IAAYC,MAAML,kBAAkBM,KAAK;MAAEC,gBAAgB;IAAK,CAAA;EAAG,CAAA;AAGrFR,QAAMS,OAAOC,QAAQ,MAAMC,sBAAsBZ,SAAAA;AAEjD,SAAOa,YAAYC,0BAA0BC,OAAOd,MAAMS,QAAQ,MAAMT,MAAMe,MAAK,CAAA;AACrF;",
6
- "names": ["contributes", "LocalStorageStore", "getObservabilityGroup", "namespace", "state", "LocalStorageStore", "meta", "id", "prop", "key", "type", "bool", "allowUndefined", "values", "group", "getObservabilityGroup", "contributes", "ObservabilityCapabilities", "State", "close"]
7
- }
@@ -1,45 +0,0 @@
1
- import { createRequire } from 'node:module';const require = createRequire(import.meta.url);
2
- import {
3
- meta
4
- } from "./chunk-AVJTLRX5.mjs";
5
-
6
- // src/capabilities/app-graph-builder.ts
7
- import { Atom } from "@effect-atom/atom-react";
8
- import * as Function from "effect/Function";
9
- import * as Option from "effect/Option";
10
- import { Capabilities, contributes } from "@dxos/app-framework";
11
- import { ROOT_ID, createExtension } from "@dxos/plugin-graph";
12
- var ATTENDABLE_PATH_SEPARATOR = "~";
13
- var DECK_COMPANION_TYPE = "dxos.org/plugin/deck/deck-companion";
14
- var app_graph_builder_default = ((_context) => contributes(Capabilities.AppGraphBuilder, [
15
- createExtension({
16
- id: `${meta.id}/help`,
17
- connector: (node) => Atom.make((get) => Function.pipe(get(node), Option.flatMap((node2) => node2.id === ROOT_ID ? Option.some(node2) : Option.none()), Option.map((node2) => {
18
- return [
19
- {
20
- id: [
21
- node2.id,
22
- "help"
23
- ].join(ATTENDABLE_PATH_SEPARATOR),
24
- type: DECK_COMPANION_TYPE,
25
- data: null,
26
- properties: {
27
- label: [
28
- "help label",
29
- {
30
- ns: meta.id
31
- }
32
- ],
33
- icon: "ph--question--regular",
34
- disposition: "hidden",
35
- position: "hoist"
36
- }
37
- }
38
- ];
39
- }), Option.getOrElse(() => [])))
40
- })
41
- ]));
42
- export {
43
- app_graph_builder_default as default
44
- };
45
- //# sourceMappingURL=app-graph-builder-KH2GA6G7.mjs.map
@@ -1,7 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../../../src/capabilities/app-graph-builder.ts"],
4
- "sourcesContent": ["//\n// Copyright 2025 DXOS.org\n//\n\nimport { Atom } from '@effect-atom/atom-react';\nimport * as Function from 'effect/Function';\nimport * as Option from 'effect/Option';\n\nimport { Capabilities, type PluginContext, contributes } from '@dxos/app-framework';\nimport { ROOT_ID, createExtension } from '@dxos/plugin-graph';\n\nimport { meta } from '../meta';\n\n// NOTE: Copied from @dxos/plugin-deck to break circular dependency.\nconst ATTENDABLE_PATH_SEPARATOR = '~';\n\nconst DECK_COMPANION_TYPE = 'dxos.org/plugin/deck/deck-companion';\n\nexport default (_context: PluginContext) =>\n contributes(Capabilities.AppGraphBuilder, [\n createExtension({\n id: `${meta.id}/help`,\n connector: (node) =>\n Atom.make((get) =>\n Function.pipe(\n get(node),\n Option.flatMap((node) => (node.id === ROOT_ID ? Option.some(node) : Option.none())),\n Option.map((node) => {\n return [\n {\n id: [node.id, 'help'].join(ATTENDABLE_PATH_SEPARATOR),\n type: DECK_COMPANION_TYPE,\n data: null,\n properties: {\n label: ['help label', { ns: meta.id }],\n icon: 'ph--question--regular',\n disposition: 'hidden',\n position: 'hoist',\n },\n },\n ];\n }),\n Option.getOrElse(() => []),\n ),\n ),\n }),\n ]);\n"],
5
- "mappings": ";;;;;;AAIA,SAASA,YAAY;AACrB,YAAYC,cAAc;AAC1B,YAAYC,YAAY;AAExB,SAASC,cAAkCC,mBAAmB;AAC9D,SAASC,SAASC,uBAAuB;AAKzC,IAAMC,4BAA4B;AAElC,IAAMC,sBAAsB;AAE5B,IAAA,6BAAe,CAACC,aACdC,YAAYC,aAAaC,iBAAiB;EACxCC,gBAAgB;IACdC,IAAI,GAAGC,KAAKD,EAAE;IACdE,WAAW,CAACC,SACVC,KAAKC,KAAK,CAACC,QACAC,cACPD,IAAIH,IAAAA,GACGK,eAAQ,CAACL,UAAUA,MAAKH,OAAOS,UAAiBC,YAAKP,KAAAA,IAAeQ,YAAI,CAAA,GACxEC,WAAI,CAACT,UAAAA;AACV,aAAO;QACL;UACEH,IAAI;YAACG,MAAKH;YAAI;YAAQa,KAAKpB,yBAAAA;UAC3BqB,MAAMpB;UACNqB,MAAM;UACNC,YAAY;YACVC,OAAO;cAAC;cAAc;gBAAEC,IAAIjB,KAAKD;cAAG;;YACpCmB,MAAM;YACNC,aAAa;YACbC,UAAU;UACZ;QACF;;IAEJ,CAAA,GACOC,iBAAU,MAAM,CAAA,CAAE,CAAA,CAAA;EAGjC,CAAA;CACD;",
6
- "names": ["Atom", "Function", "Option", "Capabilities", "contributes", "ROOT_ID", "createExtension", "ATTENDABLE_PATH_SEPARATOR", "DECK_COMPANION_TYPE", "_context", "contributes", "Capabilities", "AppGraphBuilder", "createExtension", "id", "meta", "connector", "node", "Atom", "make", "get", "pipe", "flatMap", "ROOT_ID", "some", "none", "map", "join", "type", "data", "properties", "label", "ns", "icon", "disposition", "position", "getOrElse"]
7
- }
@@ -1,18 +0,0 @@
1
- import { createRequire } from 'node:module';const require = createRequire(import.meta.url);
2
-
3
- // src/meta.ts
4
- import { trim } from "@dxos/util";
5
- var meta = {
6
- id: "dxos.org/plugin/observability",
7
- name: "Telemetry",
8
- description: trim`
9
- Application observability and telemetry collection for monitoring performance and usage patterns.
10
- Track metrics, logs, and traces for system health and analytics.
11
- `,
12
- icon: "ph--eye--regular"
13
- };
14
-
15
- export {
16
- meta
17
- };
18
- //# sourceMappingURL=chunk-AVJTLRX5.mjs.map
@@ -1,7 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../../../src/meta.ts"],
4
- "sourcesContent": ["//\n// Copyright 2023 DXOS.org\n//\n\nimport { type PluginMeta } from '@dxos/app-framework';\nimport { trim } from '@dxos/util';\n\nexport const meta: PluginMeta = {\n id: 'dxos.org/plugin/observability',\n name: 'Telemetry',\n description: trim`\n Application observability and telemetry collection for monitoring performance and usage patterns.\n Track metrics, logs, and traces for system health and analytics.\n `,\n icon: 'ph--eye--regular',\n};\n"],
5
- "mappings": ";;;AAKA,SAASA,YAAY;AAEd,IAAMC,OAAmB;EAC9BC,IAAI;EACJC,MAAM;EACNC,aAAaC;;;;EAIbC,MAAM;AACR;",
6
- "names": ["trim", "meta", "id", "name", "description", "trim", "icon"]
7
- }
@@ -1,19 +0,0 @@
1
- import { createRequire } from 'node:module';const require = createRequire(import.meta.url);
2
- import {
3
- meta
4
- } from "./chunk-AVJTLRX5.mjs";
5
-
6
- // src/capabilities/capabilities.ts
7
- import { defineCapability } from "@dxos/app-framework";
8
- (function(ObservabilityCapabilities2) {
9
- ObservabilityCapabilities2.State = defineCapability(`${meta.id}/capability/state`);
10
- ObservabilityCapabilities2.Observability = defineCapability(`${meta.id}/capability/observability`);
11
- })(ObservabilityCapabilities || (ObservabilityCapabilities = {}));
12
- var ClientCapability = defineCapability("dxos.org/plugin/client/capability/client");
13
- var ObservabilityCapabilities;
14
-
15
- export {
16
- ClientCapability,
17
- ObservabilityCapabilities
18
- };
19
- //# sourceMappingURL=chunk-HACSZKXD.mjs.map
@@ -1,7 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../../../src/capabilities/capabilities.ts"],
4
- "sourcesContent": ["//\n// Copyright 2025 DXOS.org\n//\n\nimport { defineCapability } from '@dxos/app-framework';\nimport { type Client } from '@dxos/client';\nimport { type Observability } from '@dxos/observability';\n\nimport { meta } from '../meta';\n\nexport namespace ObservabilityCapabilities {\n export type State = {\n group?: string;\n notified?: boolean;\n };\n export const State = defineCapability<State>(`${meta.id}/capability/state`);\n\n export const Observability = defineCapability<Observability>(`${meta.id}/capability/observability`);\n}\n\n// NOTE: This is cloned from the client plugin to avoid circular dependencies.\n// TODO(burdon): Figure out how to share defs.\nexport const ClientCapability = defineCapability<Client>('dxos.org/plugin/client/capability/client');\n"],
5
- "mappings": ";;;;;;AAIA,SAASA,wBAAwB;UAMhBC,4BAAAA;6BAKFC,QAAQC,iBAAwB,GAAGC,KAAKC,EAAE,mBAAmB;6BAE7DC,gBAAgBH,iBAAgC,GAAGC,KAAKC,EAAE,2BAA2B;AACpG,GARiBJ,8BAAAA,4BAAAA,CAAAA,EAAAA;AAYV,IAAMM,mBAAmBJ,iBAAyB,0CAAA;;",
6
- "names": ["defineCapability", "ObservabilityCapabilities", "State", "defineCapability", "meta", "id", "Observability", "ClientCapability"]
7
- }
@@ -1,182 +0,0 @@
1
- import { createRequire } from 'node:module';const require = createRequire(import.meta.url);
2
- import {
3
- ObservabilityAction,
4
- UserFeedback
5
- } from "./chunk-JA6DTCPS.mjs";
6
- import {
7
- meta
8
- } from "./chunk-AVJTLRX5.mjs";
9
-
10
- // src/components/FeedbackForm.tsx
11
- import { useSignals as _useSignals } from "@preact-signals/safe-react/tracking";
12
- import React, { useCallback, useRef, useState } from "react";
13
- import { getSnapshot } from "@dxos/echo/internal";
14
- import { IconButton, Input, useTranslation } from "@dxos/react-ui";
15
- import { FormProvider, useFormContext, useInputProps } from "@dxos/react-ui-form";
16
- var defaultValues = {
17
- message: ""
18
- };
19
- var FormContent = () => {
20
- var _effect = _useSignals();
21
- try {
22
- const { t } = useTranslation(meta.id);
23
- const { handleSave, canSave } = useFormContext();
24
- const messageProps = useInputProps([
25
- "message"
26
- ]);
27
- return /* @__PURE__ */ React.createElement("div", {
28
- role: "form",
29
- className: "p-3 flex flex-col gap-2"
30
- }, /* @__PURE__ */ React.createElement("div", {
31
- role: "none",
32
- className: "space-b-1"
33
- }, /* @__PURE__ */ React.createElement(Input.Root, {
34
- validationValence: messageProps.getStatus().status
35
- }, /* @__PURE__ */ React.createElement(Input.Label, null, t("feedback text area label")), /* @__PURE__ */ React.createElement(Input.TextArea, {
36
- classNames: "text-sm",
37
- rows: 5,
38
- cols: 30,
39
- placeholder: t("feedback text area placeholder"),
40
- value: messageProps.getValue() ?? "",
41
- onChange: (e) => messageProps.onValueChange("string", e.target.value),
42
- // TODO(wittjosiah): This aggressively shows validation errors.
43
- onBlur: messageProps.onBlur
44
- }), /* @__PURE__ */ React.createElement(Input.DescriptionAndValidation, null, /* @__PURE__ */ React.createElement(Input.Validation, null, messageProps.getStatus().error)))), /* @__PURE__ */ React.createElement("div", {
45
- role: "none",
46
- className: "space-b-2"
47
- }, /* @__PURE__ */ React.createElement(IconButton, {
48
- icon: "ph--paper-plane-tilt--regular",
49
- label: t("send feedback label"),
50
- variant: "primary",
51
- type: "submit",
52
- classNames: "is-full",
53
- disabled: !canSave,
54
- onClick: handleSave
55
- })));
56
- } finally {
57
- _effect.f();
58
- }
59
- };
60
- var FeedbackForm = ({ onSave }) => {
61
- var _effect = _useSignals();
62
- try {
63
- const formRef = useRef(null);
64
- const [_, update] = useState({});
65
- const forceRender = useCallback(() => update({}), [
66
- update
67
- ]);
68
- const handleSave = useCallback((values) => {
69
- onSave(values);
70
- forceRender();
71
- }, [
72
- forceRender,
73
- onSave
74
- ]);
75
- const initialValues = getSnapshot(defaultValues);
76
- return /* @__PURE__ */ React.createElement(FormProvider, {
77
- formRef,
78
- schema: UserFeedback,
79
- initialValues,
80
- onSave: handleSave
81
- }, /* @__PURE__ */ React.createElement("div", {
82
- ref: formRef
83
- }, /* @__PURE__ */ React.createElement(FormContent, null)));
84
- } finally {
85
- _effect.f();
86
- }
87
- };
88
-
89
- // src/components/HelpContainer.tsx
90
- import { useSignals as _useSignals2 } from "@preact-signals/safe-react/tracking";
91
- import * as Function from "effect/Function";
92
- import React2, { useCallback as useCallback2 } from "react";
93
- import { LayoutAction, chain, createIntent } from "@dxos/app-framework";
94
- import { useIntentDispatcher } from "@dxos/app-framework/react";
95
- var HelpContainer = () => {
96
- var _effect = _useSignals2();
97
- try {
98
- const { dispatchPromise: dispatch } = useIntentDispatcher();
99
- const handleSave = useCallback2((values) => dispatch(Function.pipe(createIntent(ObservabilityAction.CaptureUserFeedback, values), chain(LayoutAction.UpdateComplementary, {
100
- part: "complementary",
101
- options: {
102
- state: "collapsed"
103
- }
104
- }), chain(LayoutAction.AddToast, {
105
- part: "toast",
106
- subject: {
107
- id: `${meta.id}/feedback-success`,
108
- icon: "ph--paper-plane-tilt--regular",
109
- duration: 3e3,
110
- title: [
111
- "feedback toast label",
112
- {
113
- ns: meta.id
114
- }
115
- ],
116
- description: [
117
- "feedback toast description",
118
- {
119
- ns: meta.id
120
- }
121
- ],
122
- closeLabel: [
123
- "close label",
124
- {
125
- ns: "os"
126
- }
127
- ]
128
- }
129
- }))), [
130
- dispatch
131
- ]);
132
- return /* @__PURE__ */ React2.createElement(FeedbackForm, {
133
- onSave: handleSave
134
- });
135
- } finally {
136
- _effect.f();
137
- }
138
- };
139
-
140
- // src/components/ObservabilitySettings.tsx
141
- import { useSignals as _useSignals3 } from "@preact-signals/safe-react/tracking";
142
- import * as Schema from "effect/Schema";
143
- import React3 from "react";
144
- import { createIntent as createIntent2 } from "@dxos/app-framework";
145
- import { useIntentDispatcher as useIntentDispatcher2 } from "@dxos/app-framework/react";
146
- import { Input as Input2, Message, useTranslation as useTranslation2 } from "@dxos/react-ui";
147
- import { ControlGroup, ControlItemInput, ControlPage, ControlSection } from "@dxos/react-ui-form";
148
- var ObservabilitySettingsSchema = Schema.mutable(Schema.Struct({
149
- enabled: Schema.Boolean
150
- }));
151
- var ObservabilitySettings = ({ settings }) => {
152
- var _effect = _useSignals3();
153
- try {
154
- const { t } = useTranslation2(meta.id);
155
- const { dispatchPromise: dispatch } = useIntentDispatcher2();
156
- return /* @__PURE__ */ React3.createElement(ControlPage, null, /* @__PURE__ */ React3.createElement(ControlSection, {
157
- title: t("settings title", {
158
- ns: meta.id
159
- })
160
- }, /* @__PURE__ */ React3.createElement(Message.Root, {
161
- valence: "info",
162
- classNames: "container-max-width mbe-cardSpacingBlock"
163
- }, /* @__PURE__ */ React3.createElement(Message.Content, null, t("observability description"))), /* @__PURE__ */ React3.createElement(ControlGroup, null, /* @__PURE__ */ React3.createElement(ControlItemInput, {
164
- title: t("observability enabled label")
165
- }, /* @__PURE__ */ React3.createElement(Input2.Switch, {
166
- checked: settings.enabled,
167
- onCheckedChange: (checked) => dispatch(createIntent2(ObservabilityAction.Toggle, {
168
- state: !!checked
169
- }))
170
- })))));
171
- } finally {
172
- _effect.f();
173
- }
174
- };
175
-
176
- export {
177
- FeedbackForm,
178
- HelpContainer,
179
- ObservabilitySettingsSchema,
180
- ObservabilitySettings
181
- };
182
- //# sourceMappingURL=chunk-HDEVP6Z4.mjs.map