@dxos/plugin-observability 0.8.4-main.c1de068 → 0.8.4-main.e098934

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 (66) hide show
  1. package/dist/lib/browser/{app-graph-builder-DCOBBL5B.mjs → app-graph-builder-2SLFJVUL.mjs} +2 -2
  2. package/dist/lib/{node-esm/app-graph-builder-6JT2RPVM.mjs.map → browser/app-graph-builder-2SLFJVUL.mjs.map} +3 -3
  3. package/dist/lib/browser/{chunk-YVKMVVGP.mjs → chunk-L3IU52HU.mjs} +13 -9
  4. package/dist/lib/browser/{chunk-YVKMVVGP.mjs.map → chunk-L3IU52HU.mjs.map} +3 -3
  5. package/dist/lib/browser/{client-ready-TAII5PYS.mjs → client-ready-NBJRF7OJ.mjs} +2 -2
  6. package/dist/lib/browser/client-ready-NBJRF7OJ.mjs.map +7 -0
  7. package/dist/lib/browser/index.mjs +10 -9
  8. package/dist/lib/browser/index.mjs.map +3 -3
  9. package/dist/lib/browser/{intent-resolver-5SA443WX.mjs → intent-resolver-NPEP5KJQ.mjs} +3 -3
  10. package/dist/lib/browser/intent-resolver-NPEP5KJQ.mjs.map +7 -0
  11. package/dist/lib/browser/meta.json +1 -1
  12. package/dist/lib/browser/{react-surface-GQC3M7XY.mjs → react-surface-CDYIX5E5.mjs} +3 -3
  13. package/dist/lib/browser/{react-surface-GQC3M7XY.mjs.map → react-surface-CDYIX5E5.mjs.map} +3 -3
  14. package/dist/lib/browser/{settings-BG3S45SS.mjs → settings-UMTIHBMJ.mjs} +2 -2
  15. package/dist/lib/browser/{state-VIOQS2IL.mjs → state-N7RLB477.mjs} +1 -1
  16. package/dist/lib/browser/{state-VIOQS2IL.mjs.map → state-N7RLB477.mjs.map} +2 -2
  17. package/dist/lib/node-esm/{app-graph-builder-6JT2RPVM.mjs → app-graph-builder-MMH6BVY4.mjs} +2 -2
  18. package/dist/lib/{browser/app-graph-builder-DCOBBL5B.mjs.map → node-esm/app-graph-builder-MMH6BVY4.mjs.map} +3 -3
  19. package/dist/lib/node-esm/{chunk-TYZLSIA4.mjs → chunk-MMLZUUAO.mjs} +13 -9
  20. package/dist/lib/node-esm/{chunk-TYZLSIA4.mjs.map → chunk-MMLZUUAO.mjs.map} +3 -3
  21. package/dist/lib/node-esm/{client-ready-KER2HNME.mjs → client-ready-XDI3JWUY.mjs} +2 -2
  22. package/dist/lib/node-esm/client-ready-XDI3JWUY.mjs.map +7 -0
  23. package/dist/lib/node-esm/index.mjs +10 -9
  24. package/dist/lib/node-esm/index.mjs.map +3 -3
  25. package/dist/lib/node-esm/{intent-resolver-YYBRI4TZ.mjs → intent-resolver-OH4MMH5I.mjs} +3 -3
  26. package/dist/lib/node-esm/intent-resolver-OH4MMH5I.mjs.map +7 -0
  27. package/dist/lib/node-esm/meta.json +1 -1
  28. package/dist/lib/node-esm/{react-surface-ZYMR7TMY.mjs → react-surface-7PZFK6V4.mjs} +3 -3
  29. package/dist/lib/node-esm/{react-surface-ZYMR7TMY.mjs.map → react-surface-7PZFK6V4.mjs.map} +3 -3
  30. package/dist/lib/node-esm/{settings-HSLQO3OC.mjs → settings-PIXR2XML.mjs} +2 -2
  31. package/dist/lib/node-esm/{state-J2WS6L64.mjs → state-LKANNCJJ.mjs} +1 -1
  32. package/dist/lib/node-esm/{state-J2WS6L64.mjs.map → state-LKANNCJJ.mjs.map} +2 -2
  33. package/dist/types/src/capabilities/app-graph-builder.d.ts +1 -1
  34. package/dist/types/src/capabilities/app-graph-builder.d.ts.map +1 -1
  35. package/dist/types/src/capabilities/client-ready.d.ts +1 -1
  36. package/dist/types/src/capabilities/client-ready.d.ts.map +1 -1
  37. package/dist/types/src/capabilities/index.d.ts +6 -6
  38. package/dist/types/src/capabilities/index.d.ts.map +1 -1
  39. package/dist/types/src/capabilities/intent-resolver.d.ts +1 -1
  40. package/dist/types/src/capabilities/intent-resolver.d.ts.map +1 -1
  41. package/dist/types/src/capabilities/react-surface.d.ts +1 -1
  42. package/dist/types/src/capabilities/react-surface.d.ts.map +1 -1
  43. package/dist/types/src/capabilities/settings.d.ts +1 -1
  44. package/dist/types/src/capabilities/state.d.ts +1 -1
  45. package/dist/types/src/capabilities/state.d.ts.map +1 -1
  46. package/dist/types/src/components/HelpContainer.d.ts.map +1 -1
  47. package/dist/types/src/translations.d.ts +1 -0
  48. package/dist/types/src/translations.d.ts.map +1 -1
  49. package/dist/types/tsconfig.tsbuildinfo +1 -1
  50. package/package.json +27 -25
  51. package/src/ObservabilityPlugin.ts +2 -2
  52. package/src/capabilities/app-graph-builder.ts +2 -2
  53. package/src/capabilities/client-ready.ts +6 -5
  54. package/src/capabilities/intent-resolver.ts +3 -2
  55. package/src/capabilities/react-surface.tsx +1 -1
  56. package/src/capabilities/state.ts +2 -1
  57. package/src/components/HelpContainer.tsx +3 -2
  58. package/src/components/ObservabilitySettings.tsx +16 -16
  59. package/src/events.ts +1 -1
  60. package/src/translations.ts +1 -0
  61. package/dist/lib/browser/client-ready-TAII5PYS.mjs.map +0 -7
  62. package/dist/lib/browser/intent-resolver-5SA443WX.mjs.map +0 -7
  63. package/dist/lib/node-esm/client-ready-KER2HNME.mjs.map +0 -7
  64. package/dist/lib/node-esm/intent-resolver-YYBRI4TZ.mjs.map +0 -7
  65. /package/dist/lib/browser/{settings-BG3S45SS.mjs.map → settings-UMTIHBMJ.mjs.map} +0 -0
  66. /package/dist/lib/node-esm/{settings-HSLQO3OC.mjs.map → settings-PIXR2XML.mjs.map} +0 -0
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@dxos/plugin-observability",
3
- "version": "0.8.4-main.c1de068",
3
+ "version": "0.8.4-main.e098934",
4
4
  "description": "DXOS app framework plugin for hooking up app observability",
5
5
  "homepage": "https://dxos.org",
6
6
  "bugs": "https://github.com/dxos/dxos/issues",
@@ -10,11 +10,13 @@
10
10
  "type": "module",
11
11
  "exports": {
12
12
  ".": {
13
+ "source": "./src/index.ts",
13
14
  "types": "./dist/types/src/index.d.ts",
14
15
  "browser": "./dist/lib/browser/index.mjs",
15
16
  "node": "./dist/lib/node-esm/index.mjs"
16
17
  },
17
18
  "./types": {
19
+ "source": "./src/types/index.ts",
18
20
  "types": "./dist/types/src/types/index.d.ts",
19
21
  "browser": "./dist/lib/browser/types/index.mjs",
20
22
  "node": "./dist/lib/node-esm/types/index.mjs"
@@ -35,34 +37,34 @@
35
37
  "dependencies": {
36
38
  "@preact-signals/safe-react": "^0.9.0",
37
39
  "@preact/signals-core": "^1.9.0",
38
- "effect": "3.17.0",
40
+ "effect": "3.17.7",
39
41
  "localforage": "^1.10.0",
40
- "@dxos/app-framework": "0.8.4-main.c1de068",
41
- "@dxos/async": "0.8.4-main.c1de068",
42
- "@dxos/context": "0.8.4-main.c1de068",
43
- "@dxos/echo-schema": "0.8.4-main.c1de068",
44
- "@dxos/live-object": "0.8.4-main.c1de068",
45
- "@dxos/invariant": "0.8.4-main.c1de068",
46
- "@dxos/echo": "0.8.4-main.c1de068",
47
- "@dxos/local-storage": "0.8.4-main.c1de068",
48
- "@dxos/log": "0.8.4-main.c1de068",
49
- "@dxos/observability": "0.8.4-main.c1de068",
50
- "@dxos/plugin-graph": "0.8.4-main.c1de068",
51
- "@dxos/protocols": "0.8.4-main.c1de068",
52
- "@dxos/react-ui-form": "0.8.4-main.c1de068",
53
- "@dxos/react-ui-stack": "0.8.4-main.c1de068",
54
- "@dxos/util": "0.8.4-main.c1de068",
55
- "@dxos/react-client": "0.8.4-main.c1de068"
42
+ "@dxos/app-framework": "0.8.4-main.e098934",
43
+ "@dxos/async": "0.8.4-main.e098934",
44
+ "@dxos/context": "0.8.4-main.e098934",
45
+ "@dxos/echo-schema": "0.8.4-main.e098934",
46
+ "@dxos/invariant": "0.8.4-main.e098934",
47
+ "@dxos/live-object": "0.8.4-main.e098934",
48
+ "@dxos/local-storage": "0.8.4-main.e098934",
49
+ "@dxos/observability": "0.8.4-main.e098934",
50
+ "@dxos/protocols": "0.8.4-main.e098934",
51
+ "@dxos/log": "0.8.4-main.e098934",
52
+ "@dxos/react-client": "0.8.4-main.e098934",
53
+ "@dxos/plugin-graph": "0.8.4-main.e098934",
54
+ "@dxos/react-ui-form": "0.8.4-main.e098934",
55
+ "@dxos/echo": "0.8.4-main.e098934",
56
+ "@dxos/react-ui-stack": "0.8.4-main.e098934",
57
+ "@dxos/util": "0.8.4-main.e098934"
56
58
  },
57
59
  "devDependencies": {
58
60
  "@effect-rx/rx-react": "0.38.0",
59
- "@effect/platform": "0.89.0",
61
+ "@effect/platform": "0.90.2",
60
62
  "@types/react": "~18.2.0",
61
63
  "react": "~18.2.0",
62
- "vite": "5.4.7",
63
- "@dxos/react-ui": "0.8.4-main.c1de068",
64
- "@dxos/react-ui-theme": "0.8.4-main.c1de068",
65
- "@dxos/storybook-utils": "0.8.4-main.c1de068"
64
+ "vite": "7.1.1",
65
+ "@dxos/react-ui": "0.8.4-main.e098934",
66
+ "@dxos/react-ui-theme": "0.8.4-main.e098934",
67
+ "@dxos/storybook-utils": "0.8.4-main.e098934"
66
68
  },
67
69
  "peerDependencies": {
68
70
  "@effect-rx/rx-react": "^0.34.1",
@@ -70,8 +72,8 @@
70
72
  "effect": "^3.13.3",
71
73
  "react": "~18.2.0",
72
74
  "react-dom": "~18.2.0",
73
- "@dxos/react-ui": "0.8.4-main.c1de068",
74
- "@dxos/react-ui-theme": "0.8.4-main.c1de068"
75
+ "@dxos/react-ui": "0.8.4-main.e098934",
76
+ "@dxos/react-ui-theme": "0.8.4-main.e098934"
75
77
  },
76
78
  "publishConfig": {
77
79
  "access": "public"
@@ -2,7 +2,7 @@
2
2
  // Copyright 2025 DXOS.org
3
3
  //
4
4
 
5
- import { allOf, Capabilities, contributes, defineModule, definePlugin, Events } from '@dxos/app-framework';
5
+ import { Capabilities, Events, allOf, contributes, defineModule, definePlugin } from '@dxos/app-framework';
6
6
  import { type Observability } from '@dxos/observability';
7
7
 
8
8
  import {
@@ -14,7 +14,7 @@ import {
14
14
  ObservabilityState,
15
15
  ReactSurface,
16
16
  } from './capabilities';
17
- import { ObservabilityEvents, ClientReadyEvent } from './events';
17
+ import { ClientReadyEvent, ObservabilityEvents } from './events';
18
18
  import { meta } from './meta';
19
19
  import { translations } from './translations';
20
20
 
@@ -5,8 +5,8 @@
5
5
  import { Rx } from '@effect-rx/rx-react';
6
6
  import { Option, pipe } from 'effect';
7
7
 
8
- import { Capabilities, contributes, type PluginContext } from '@dxos/app-framework';
9
- import { createExtension, ROOT_ID } from '@dxos/plugin-graph';
8
+ import { Capabilities, type PluginContext, contributes } from '@dxos/app-framework';
9
+ import { ROOT_ID, createExtension } from '@dxos/plugin-graph';
10
10
 
11
11
  import { OBSERVABILITY_PLUGIN } from '../meta';
12
12
 
@@ -4,18 +4,19 @@
4
4
 
5
5
  import {
6
6
  Capabilities,
7
- contributes,
8
- createIntent,
9
7
  LayoutAction,
10
- SettingsAction,
11
8
  type PluginContext,
9
+ SettingsAction,
10
+ contributes,
11
+ createIntent,
12
12
  } from '@dxos/app-framework';
13
- import { setupTelemetryListeners, type Observability } from '@dxos/observability';
13
+ import { type Observability, setupTelemetryListeners } from '@dxos/observability';
14
14
 
15
- import { ClientCapability, ObservabilityCapabilities } from './capabilities';
16
15
  import { OBSERVABILITY_PLUGIN } from '../meta';
17
16
  import { ObservabilityAction } from '../types';
18
17
 
18
+ import { ClientCapability, ObservabilityCapabilities } from './capabilities';
19
+
19
20
  type ClientReadyOptions = {
20
21
  context: PluginContext;
21
22
  namespace: string;
@@ -2,15 +2,16 @@
2
2
  // Copyright 2025 DXOS.org
3
3
  //
4
4
 
5
- import { Capabilities, contributes, createResolver, IntentAction, type PluginContext } from '@dxos/app-framework';
5
+ import { Capabilities, IntentAction, type PluginContext, contributes, createResolver } from '@dxos/app-framework';
6
6
  import { log } from '@dxos/log';
7
7
  import { getTelemetryIdentity, storeObservabilityDisabled } from '@dxos/observability';
8
8
 
9
- import { ClientCapability, ObservabilityCapabilities } from './capabilities';
10
9
  import { type ObservabilitySettingsProps } from '../components';
11
10
  import { OBSERVABILITY_PLUGIN } from '../meta';
12
11
  import { ObservabilityAction } from '../types';
13
12
 
13
+ import { ClientCapability, ObservabilityCapabilities } from './capabilities';
14
+
14
15
  export default ({ context, namespace }: { context: PluginContext; namespace: string }) =>
15
16
  contributes(Capabilities.IntentResolver, [
16
17
  createResolver({
@@ -4,7 +4,7 @@
4
4
 
5
5
  import React from 'react';
6
6
 
7
- import { contributes, Capabilities, createSurface } from '@dxos/app-framework';
7
+ import { Capabilities, contributes, createSurface } from '@dxos/app-framework';
8
8
  import { SettingsStore } from '@dxos/local-storage';
9
9
 
10
10
  import { HelpContainer, ObservabilitySettings, type ObservabilitySettingsProps } from '../components';
@@ -6,9 +6,10 @@ import { contributes } from '@dxos/app-framework';
6
6
  import { LocalStorageStore } from '@dxos/local-storage';
7
7
  import { getObservabilityGroup } from '@dxos/observability';
8
8
 
9
- import { ObservabilityCapabilities } from './capabilities';
10
9
  import { OBSERVABILITY_PLUGIN } from '../meta';
11
10
 
11
+ import { ObservabilityCapabilities } from './capabilities';
12
+
12
13
  export default async ({ namespace }: { namespace: string }) => {
13
14
  const state = new LocalStorageStore<ObservabilityCapabilities.State>(OBSERVABILITY_PLUGIN);
14
15
 
@@ -5,12 +5,13 @@
5
5
  import { pipe } from 'effect';
6
6
  import React, { useCallback } from 'react';
7
7
 
8
- import { chain, createIntent, LayoutAction, useIntentDispatcher } from '@dxos/app-framework';
8
+ import { LayoutAction, chain, createIntent, useIntentDispatcher } from '@dxos/app-framework';
9
9
 
10
- import { FeedbackForm } from './FeedbackForm';
11
10
  import { OBSERVABILITY_PLUGIN } from '../meta';
12
11
  import { ObservabilityAction, type UserFeedback } from '../types';
13
12
 
13
+ import { FeedbackForm } from './FeedbackForm';
14
+
14
15
  export const HelpContainer = () => {
15
16
  const { dispatchPromise: dispatch } = useIntentDispatcher();
16
17
 
@@ -7,7 +7,7 @@ import React from 'react';
7
7
 
8
8
  import { createIntent, useIntentDispatcher } from '@dxos/app-framework';
9
9
  import { Input, Message, useTranslation } from '@dxos/react-ui';
10
- import { DeprecatedFormContainer, DeprecatedFormInput } from '@dxos/react-ui-form';
10
+ import { ControlGroup, ControlItemInput, ControlPage, ControlSection } from '@dxos/react-ui-form';
11
11
 
12
12
  import { OBSERVABILITY_PLUGIN } from '../meta';
13
13
  import { ObservabilityAction } from '../types';
@@ -29,20 +29,20 @@ export const ObservabilitySettings = ({ settings }: { settings: ObservabilitySet
29
29
  const { dispatchPromise: dispatch } = useIntentDispatcher();
30
30
 
31
31
  return (
32
- <DeprecatedFormContainer>
33
- <DeprecatedFormInput
34
- label={t('observability enabled label')}
35
- secondary={
36
- <Message.Root valence='info'>
37
- <Message.Content>{t('observability description')}</Message.Content>
38
- </Message.Root>
39
- }
40
- >
41
- <Input.Switch
42
- checked={settings.enabled}
43
- onCheckedChange={(checked) => dispatch(createIntent(ObservabilityAction.Toggle, { state: !!checked }))}
44
- />
45
- </DeprecatedFormInput>
46
- </DeprecatedFormContainer>
32
+ <ControlPage>
33
+ <ControlSection title={t('settings title', { ns: OBSERVABILITY_PLUGIN })}>
34
+ <Message.Root valence='info' classNames='container-max-width mbe-cardSpacingBlock'>
35
+ <Message.Content>{t('observability description')}</Message.Content>
36
+ </Message.Root>
37
+ <ControlGroup>
38
+ <ControlItemInput title={t('observability enabled label')}>
39
+ <Input.Switch
40
+ checked={settings.enabled}
41
+ onCheckedChange={(checked) => dispatch(createIntent(ObservabilityAction.Toggle, { state: !!checked }))}
42
+ />
43
+ </ControlItemInput>
44
+ </ControlGroup>
45
+ </ControlSection>
46
+ </ControlPage>
47
47
  );
48
48
  };
package/src/events.ts CHANGED
@@ -2,7 +2,7 @@
2
2
  // Copyright 2025 DXOS.org
3
3
  //
4
4
 
5
- import { defineEvent, Events } from '@dxos/app-framework';
5
+ import { Events, defineEvent } from '@dxos/app-framework';
6
6
 
7
7
  import { OBSERVABILITY_PLUGIN } from './meta';
8
8
 
@@ -11,6 +11,7 @@ export const translations = [
11
11
  'en-US': {
12
12
  [meta.id]: {
13
13
  'plugin name': 'Telemetry',
14
+ 'settings title': 'Telemetry settings',
14
15
  'observability toast label': 'Privacy Notice',
15
16
  'observability toast description':
16
17
  'Composer collects usage and performance metrics to improve the product. No user data is collected.',
@@ -1,7 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../../../src/capabilities/client-ready.ts"],
4
- "sourcesContent": ["//\n// Copyright 2025 DXOS.org\n//\n\nimport {\n Capabilities,\n contributes,\n createIntent,\n LayoutAction,\n SettingsAction,\n type PluginContext,\n} from '@dxos/app-framework';\nimport { setupTelemetryListeners, type Observability } from '@dxos/observability';\n\nimport { ClientCapability, ObservabilityCapabilities } from './capabilities';\nimport { OBSERVABILITY_PLUGIN } from '../meta';\nimport { ObservabilityAction } from '../types';\n\ntype ClientReadyOptions = {\n context: 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: `${OBSERVABILITY_PLUGIN}/notice`,\n title: ['observability toast label', { ns: OBSERVABILITY_PLUGIN }],\n description: ['observability toast description', { ns: OBSERVABILITY_PLUGIN }],\n duration: Infinity,\n icon: 'ph--info--regular',\n actionLabel: ['observability toast action label', { ns: OBSERVABILITY_PLUGIN }],\n actionAlt: ['observability toast action alt', { ns: OBSERVABILITY_PLUGIN }],\n closeLabel: ['observability toast close label', { ns: OBSERVABILITY_PLUGIN }],\n onAction: () => dispatch(createIntent(SettingsAction.Open, { plugin: OBSERVABILITY_PLUGIN })),\n },\n }),\n );\n\n state.notified = true;\n }\n };\n\n // Ensure errors are tagged with enabled plugins to help with reproductions.\n manager.enabled.map((plugin) => observability?.setTag(`pluginEnabled-${plugin}`, 'true', 'errors'));\n\n await dispatch(\n createIntent(ObservabilityAction.SendEvent, {\n name: 'page.load',\n properties: {\n // TODO(wittjosiah): These apis are deprecated. Is there a better way to find this information?\n loadDuration: window.performance.timing.loadEventEnd - window.performance.timing.loadEventStart,\n },\n }),\n );\n\n // Start client observability (i.e. not running as shared worker)\n // TODO(nf): how to prevent multiple instances for single shared worker?\n const cleanup = setupTelemetryListeners(namespace, client, observability);\n\n await Promise.all([\n observability.setIdentityTags(client.services.services),\n observability.startRuntimeMetrics(client),\n observability.startNetworkMetrics(client.services.services),\n observability.startSpacesMetrics(client, namespace),\n ]);\n\n if (client.halo.identity.get()) {\n await sendPrivacyNotice();\n } else {\n const subscription = client.halo.identity.subscribe(async (identity) => {\n if (identity && observability) {\n await sendPrivacyNotice();\n await observability.setIdentityTags(client.services.services);\n subscription.unsubscribe();\n }\n });\n }\n\n return contributes(ObservabilityCapabilities.Observability, observability, async () => {\n cleanup();\n await observability.close();\n });\n};\n"],
5
- "mappings": ";;;;;;;;;;;;AAIA,SACEA,cACAC,aACAC,cACAC,cACAC,sBAEK;AACP,SAASC,+BAAmD;AAY5D,IAAA,uBAAe,OAAO,EAAEC,SAASC,WAAWC,cAAa,MAAsB;AAC7E,QAAMC,UAAUH,QAAQI,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,oBAAAA;UACPC,OAAO;YAAC;YAA6B;cAAEC,IAAIF;YAAqB;;UAChEG,aAAa;YAAC;YAAmC;cAAED,IAAIF;YAAqB;;UAC5EI,UAAUC;UACVC,MAAM;UACNC,aAAa;YAAC;YAAoC;cAAEL,IAAIF;YAAqB;;UAC7EQ,WAAW;YAAC;YAAkC;cAAEN,IAAIF;YAAqB;;UACzES,YAAY;YAAC;YAAmC;cAAEP,IAAIF;YAAqB;;UAC3EU,UAAU,MAAMlC,SAASkB,aAAaiB,eAAeC,MAAM;YAAEC,QAAQb;UAAqB,CAAA,CAAA;QAC5F;MACF,CAAA,CAAA;AAGFtB,YAAMe,WAAW;IACnB;EACF;AAGAtB,UAAQ2C,QAAQC,IAAI,CAACF,WAAW3C,eAAe8C,OAAO,iBAAiBH,MAAAA,IAAU,QAAQ,QAAA,CAAA;AAEzF,QAAMrC,SACJkB,aAAauB,oBAAoBC,WAAW;IAC1CC,MAAM;IACNC,YAAY;;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", "contributes", "createIntent", "LayoutAction", "SettingsAction", "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", "OBSERVABILITY_PLUGIN", "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,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, contributes, createResolver, IntentAction, type PluginContext } from '@dxos/app-framework';\nimport { log } from '@dxos/log';\nimport { getTelemetryIdentity, storeObservabilityDisabled } from '@dxos/observability';\n\nimport { ClientCapability, ObservabilityCapabilities } from './capabilities';\nimport { type ObservabilitySettingsProps } from '../components';\nimport { OBSERVABILITY_PLUGIN } from '../meta';\nimport { ObservabilityAction } from '../types';\n\nexport default ({ context, namespace }: { context: 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>(OBSERVABILITY_PLUGIN)!.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,aAAaC,gBAAgBC,oBAAwC;AAC5F,SAASC,WAAW;AACpB,SAASC,sBAAsBC,kCAAkC;;AAOjE,IAAA,0BAAe,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,oBAAAA,EAAuBC;AAC/DJ,eAASK,UAAUZ,SAAS,CAACO,SAASK;AACtCR,oBAAcS,MAAM;QAClB,GAAGC,qBAAqBb,MAAAA;QACxBc,QAAQ;QACRC,YAAY;UACVJ,SAASL,SAASK;QACpB;MACF,CAAA;AACAR,oBAAca,QAAQV,SAASK,UAAU,UAAU,UAAA;AACnD,YAAMM,2BAA2B/B,WAAW,CAACoB,SAASK,OAAO;AAC7D,aAAO;QAAEO,MAAMZ,SAASK;MAAQ;IAClC;EACF,CAAA;EACArB,eAAe;IACbC,QAAQM,oBAAoBsB;IAC5BzB,SAAS,CAACwB,SAAAA;AACR,YAAMlB,SAASf,QAAQgB,cAAcC,gBAAAA;AACrC,YAAMa,aAAa,gBAAgBG,OAAOA,KAAKH,aAAa,CAAC;AAK7D,WAAK9B,QAAQmC,kBAAkBhB,0BAA0BC,aAAa,EAAEgB,KAAK,CAAClB,kBAAAA;AAC5EA,sBAAcS,MAAM;UAClB,GAAGC,qBAAqBb,MAAAA;UACxBc,QAAQI,KAAKI;UACbP;QACF,CAAA;MACF,CAAA;IACF;EACF,CAAA;EACAzB,eAAe;IACbC,QAAQM,oBAAoB0B;IAC5B7B,SAAS,OAAOwB,SAAAA;AACd,YAAMf,gBAAgBlB,QAAQgB,cAAcG,0BAA0BC,aAAa;AACnFF,oBAAcqB,oBAAoBN,KAAKO,OAAO;IAChD;EACF,CAAA;CACD;",
6
- "names": ["Capabilities", "contributes", "createResolver", "IntentAction", "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", "OBSERVABILITY_PLUGIN", "value", "enabled", "track", "getTelemetryIdentity", "action", "properties", "setMode", "storeObservabilityDisabled", "data", "SendEvent", "waitForCapability", "then", "name", "CaptureUserFeedback", "captureUserFeedback", "message"]
7
- }
@@ -1,7 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../../../src/capabilities/client-ready.ts"],
4
- "sourcesContent": ["//\n// Copyright 2025 DXOS.org\n//\n\nimport {\n Capabilities,\n contributes,\n createIntent,\n LayoutAction,\n SettingsAction,\n type PluginContext,\n} from '@dxos/app-framework';\nimport { setupTelemetryListeners, type Observability } from '@dxos/observability';\n\nimport { ClientCapability, ObservabilityCapabilities } from './capabilities';\nimport { OBSERVABILITY_PLUGIN } from '../meta';\nimport { ObservabilityAction } from '../types';\n\ntype ClientReadyOptions = {\n context: 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: `${OBSERVABILITY_PLUGIN}/notice`,\n title: ['observability toast label', { ns: OBSERVABILITY_PLUGIN }],\n description: ['observability toast description', { ns: OBSERVABILITY_PLUGIN }],\n duration: Infinity,\n icon: 'ph--info--regular',\n actionLabel: ['observability toast action label', { ns: OBSERVABILITY_PLUGIN }],\n actionAlt: ['observability toast action alt', { ns: OBSERVABILITY_PLUGIN }],\n closeLabel: ['observability toast close label', { ns: OBSERVABILITY_PLUGIN }],\n onAction: () => dispatch(createIntent(SettingsAction.Open, { plugin: OBSERVABILITY_PLUGIN })),\n },\n }),\n );\n\n state.notified = true;\n }\n };\n\n // Ensure errors are tagged with enabled plugins to help with reproductions.\n manager.enabled.map((plugin) => observability?.setTag(`pluginEnabled-${plugin}`, 'true', 'errors'));\n\n await dispatch(\n createIntent(ObservabilityAction.SendEvent, {\n name: 'page.load',\n properties: {\n // TODO(wittjosiah): These apis are deprecated. Is there a better way to find this information?\n loadDuration: window.performance.timing.loadEventEnd - window.performance.timing.loadEventStart,\n },\n }),\n );\n\n // Start client observability (i.e. not running as shared worker)\n // TODO(nf): how to prevent multiple instances for single shared worker?\n const cleanup = setupTelemetryListeners(namespace, client, observability);\n\n await Promise.all([\n observability.setIdentityTags(client.services.services),\n observability.startRuntimeMetrics(client),\n observability.startNetworkMetrics(client.services.services),\n observability.startSpacesMetrics(client, namespace),\n ]);\n\n if (client.halo.identity.get()) {\n await sendPrivacyNotice();\n } else {\n const subscription = client.halo.identity.subscribe(async (identity) => {\n if (identity && observability) {\n await sendPrivacyNotice();\n await observability.setIdentityTags(client.services.services);\n subscription.unsubscribe();\n }\n });\n }\n\n return contributes(ObservabilityCapabilities.Observability, observability, async () => {\n cleanup();\n await observability.close();\n });\n};\n"],
5
- "mappings": ";;;;;;;;;;;;;AAIA,SACEA,cACAC,aACAC,cACAC,cACAC,sBAEK;AACP,SAASC,+BAAmD;AAY5D,IAAA,uBAAe,OAAO,EAAEC,SAASC,WAAWC,cAAa,MAAsB;AAC7E,QAAMC,UAAUH,QAAQI,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,oBAAAA;UACPC,OAAO;YAAC;YAA6B;cAAEC,IAAIF;YAAqB;;UAChEG,aAAa;YAAC;YAAmC;cAAED,IAAIF;YAAqB;;UAC5EI,UAAUC;UACVC,MAAM;UACNC,aAAa;YAAC;YAAoC;cAAEL,IAAIF;YAAqB;;UAC7EQ,WAAW;YAAC;YAAkC;cAAEN,IAAIF;YAAqB;;UACzES,YAAY;YAAC;YAAmC;cAAEP,IAAIF;YAAqB;;UAC3EU,UAAU,MAAMlC,SAASkB,aAAaiB,eAAeC,MAAM;YAAEC,QAAQb;UAAqB,CAAA,CAAA;QAC5F;MACF,CAAA,CAAA;AAGFtB,YAAMe,WAAW;IACnB;EACF;AAGAtB,UAAQ2C,QAAQC,IAAI,CAACF,WAAW3C,eAAe8C,OAAO,iBAAiBH,MAAAA,IAAU,QAAQ,QAAA,CAAA;AAEzF,QAAMrC,SACJkB,aAAauB,oBAAoBC,WAAW;IAC1CC,MAAM;IACNC,YAAY;;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", "contributes", "createIntent", "LayoutAction", "SettingsAction", "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", "OBSERVABILITY_PLUGIN", "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,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, contributes, createResolver, IntentAction, type PluginContext } from '@dxos/app-framework';\nimport { log } from '@dxos/log';\nimport { getTelemetryIdentity, storeObservabilityDisabled } from '@dxos/observability';\n\nimport { ClientCapability, ObservabilityCapabilities } from './capabilities';\nimport { type ObservabilitySettingsProps } from '../components';\nimport { OBSERVABILITY_PLUGIN } from '../meta';\nimport { ObservabilityAction } from '../types';\n\nexport default ({ context, namespace }: { context: 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>(OBSERVABILITY_PLUGIN)!.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,aAAaC,gBAAgBC,oBAAwC;AAC5F,SAASC,WAAW;AACpB,SAASC,sBAAsBC,kCAAkC;;AAOjE,IAAA,0BAAe,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,oBAAAA,EAAuBC;AAC/DJ,eAASK,UAAUZ,SAAS,CAACO,SAASK;AACtCR,oBAAcS,MAAM;QAClB,GAAGC,qBAAqBb,MAAAA;QACxBc,QAAQ;QACRC,YAAY;UACVJ,SAASL,SAASK;QACpB;MACF,CAAA;AACAR,oBAAca,QAAQV,SAASK,UAAU,UAAU,UAAA;AACnD,YAAMM,2BAA2B/B,WAAW,CAACoB,SAASK,OAAO;AAC7D,aAAO;QAAEO,MAAMZ,SAASK;MAAQ;IAClC;EACF,CAAA;EACArB,eAAe;IACbC,QAAQM,oBAAoBsB;IAC5BzB,SAAS,CAACwB,SAAAA;AACR,YAAMlB,SAASf,QAAQgB,cAAcC,gBAAAA;AACrC,YAAMa,aAAa,gBAAgBG,OAAOA,KAAKH,aAAa,CAAC;AAK7D,WAAK9B,QAAQmC,kBAAkBhB,0BAA0BC,aAAa,EAAEgB,KAAK,CAAClB,kBAAAA;AAC5EA,sBAAcS,MAAM;UAClB,GAAGC,qBAAqBb,MAAAA;UACxBc,QAAQI,KAAKI;UACbP;QACF,CAAA;MACF,CAAA;IACF;EACF,CAAA;EACAzB,eAAe;IACbC,QAAQM,oBAAoB0B;IAC5B7B,SAAS,OAAOwB,SAAAA;AACd,YAAMf,gBAAgBlB,QAAQgB,cAAcG,0BAA0BC,aAAa;AACnFF,oBAAcqB,oBAAoBN,KAAKO,OAAO;IAChD;EACF,CAAA;CACD;",
6
- "names": ["Capabilities", "contributes", "createResolver", "IntentAction", "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", "OBSERVABILITY_PLUGIN", "value", "enabled", "track", "getTelemetryIdentity", "action", "properties", "setMode", "storeObservabilityDisabled", "data", "SendEvent", "waitForCapability", "then", "name", "CaptureUserFeedback", "captureUserFeedback", "message"]
7
- }