@dxos/plugin-observability 0.8.3 → 0.8.4-main.1da679c
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.
- package/dist/lib/browser/{app-graph-builder-3ROXVPV2.mjs → app-graph-builder-GG4CBEU7.mjs} +6 -6
- package/dist/lib/{node-esm/app-graph-builder-T7J46NSQ.mjs.map → browser/app-graph-builder-GG4CBEU7.mjs.map} +3 -3
- package/dist/lib/browser/{chunk-RKH5BBR4.mjs → chunk-57RVSKYP.mjs} +2 -2
- package/dist/lib/browser/{chunk-P7VVCZOC.mjs → chunk-AL5RST75.mjs} +21 -9
- package/dist/lib/browser/chunk-AL5RST75.mjs.map +7 -0
- package/dist/lib/browser/{chunk-NYBEHHJN.mjs → chunk-L3IU52HU.mjs} +18 -14
- package/dist/lib/browser/{chunk-NYBEHHJN.mjs.map → chunk-L3IU52HU.mjs.map} +3 -3
- package/dist/lib/browser/{chunk-BJ2ZWVOH.mjs → chunk-UUOBAWT2.mjs} +3 -3
- package/dist/lib/browser/{client-ready-LP3YSSAH.mjs → client-ready-FLEHXZI3.mjs} +8 -8
- package/dist/lib/browser/client-ready-FLEHXZI3.mjs.map +7 -0
- package/dist/lib/browser/index.mjs +21 -20
- package/dist/lib/browser/index.mjs.map +3 -3
- package/dist/lib/browser/{intent-resolver-JESDDMKB.mjs → intent-resolver-J42HUQKQ.mjs} +10 -10
- package/dist/lib/browser/intent-resolver-J42HUQKQ.mjs.map +7 -0
- package/dist/lib/browser/meta.json +1 -1
- package/dist/lib/browser/{react-surface-LVUG4XN3.mjs → react-surface-6FAXXR6T.mjs} +8 -8
- package/dist/lib/browser/{react-surface-LVUG4XN3.mjs.map → react-surface-6FAXXR6T.mjs.map} +3 -3
- package/dist/lib/browser/{settings-V2DX26J3.mjs → settings-OQ6YNKDY.mjs} +7 -7
- package/dist/lib/browser/{settings-V2DX26J3.mjs.map → settings-OQ6YNKDY.mjs.map} +1 -1
- package/dist/lib/browser/{state-LG4FXJD2.mjs → state-OFV2KQ7I.mjs} +6 -6
- package/dist/lib/browser/{state-LG4FXJD2.mjs.map → state-OFV2KQ7I.mjs.map} +2 -2
- package/dist/lib/browser/types/index.mjs +10 -0
- package/dist/lib/node-esm/{app-graph-builder-T7J46NSQ.mjs → app-graph-builder-22VXFQVV.mjs} +6 -6
- package/dist/lib/{browser/app-graph-builder-3ROXVPV2.mjs.map → node-esm/app-graph-builder-22VXFQVV.mjs.map} +3 -3
- package/dist/lib/node-esm/{chunk-S2MXYKCI.mjs → chunk-5W5V4TVX.mjs} +21 -9
- package/dist/lib/node-esm/chunk-5W5V4TVX.mjs.map +7 -0
- package/dist/lib/node-esm/{chunk-KT5SDFBU.mjs → chunk-7XR7KMAA.mjs} +2 -2
- package/dist/lib/node-esm/{chunk-X2U2ZHWX.mjs → chunk-JTKEM7PT.mjs} +3 -3
- package/dist/lib/node-esm/{chunk-JJGRAKXD.mjs → chunk-MMLZUUAO.mjs} +18 -14
- package/dist/lib/node-esm/{chunk-JJGRAKXD.mjs.map → chunk-MMLZUUAO.mjs.map} +3 -3
- package/dist/lib/node-esm/{client-ready-FS62YRSD.mjs → client-ready-KJTY73QQ.mjs} +8 -8
- package/dist/lib/node-esm/client-ready-KJTY73QQ.mjs.map +7 -0
- package/dist/lib/node-esm/index.mjs +21 -20
- package/dist/lib/node-esm/index.mjs.map +3 -3
- package/dist/lib/node-esm/{intent-resolver-MREOBMHB.mjs → intent-resolver-5N5FVO4G.mjs} +10 -10
- package/dist/lib/node-esm/intent-resolver-5N5FVO4G.mjs.map +7 -0
- package/dist/lib/node-esm/meta.json +1 -1
- package/dist/lib/node-esm/{react-surface-B3JSZZAO.mjs → react-surface-33FCCNAO.mjs} +8 -8
- package/dist/lib/node-esm/{react-surface-B3JSZZAO.mjs.map → react-surface-33FCCNAO.mjs.map} +3 -3
- package/dist/lib/node-esm/{settings-BFFR4CHU.mjs → settings-33QW45RJ.mjs} +7 -7
- package/dist/lib/node-esm/{settings-BFFR4CHU.mjs.map → settings-33QW45RJ.mjs.map} +1 -1
- package/dist/lib/node-esm/{state-IZNXQ5RA.mjs → state-WTJAJUF3.mjs} +6 -6
- package/dist/lib/node-esm/{state-IZNXQ5RA.mjs.map → state-WTJAJUF3.mjs.map} +2 -2
- package/dist/lib/node-esm/{types.mjs → types/index.mjs} +3 -3
- package/dist/types/src/capabilities/app-graph-builder.d.ts +1 -1
- package/dist/types/src/capabilities/app-graph-builder.d.ts.map +1 -1
- package/dist/types/src/capabilities/client-ready.d.ts +1 -1
- package/dist/types/src/capabilities/client-ready.d.ts.map +1 -1
- package/dist/types/src/capabilities/index.d.ts +6 -6
- package/dist/types/src/capabilities/index.d.ts.map +1 -1
- package/dist/types/src/capabilities/intent-resolver.d.ts +1 -1
- package/dist/types/src/capabilities/intent-resolver.d.ts.map +1 -1
- package/dist/types/src/capabilities/react-surface.d.ts +1 -1
- package/dist/types/src/capabilities/react-surface.d.ts.map +1 -1
- package/dist/types/src/capabilities/settings.d.ts +1 -1
- package/dist/types/src/capabilities/state.d.ts +1 -1
- package/dist/types/src/capabilities/state.d.ts.map +1 -1
- package/dist/types/src/components/HelpContainer.d.ts.map +1 -1
- package/dist/types/src/translations.d.ts +20 -19
- package/dist/types/src/translations.d.ts.map +1 -1
- package/dist/types/src/types/index.d.ts +2 -0
- package/dist/types/src/types/index.d.ts.map +1 -0
- package/dist/types/src/{types.d.ts → types/schema.d.ts} +36 -9
- package/dist/types/src/types/schema.d.ts.map +1 -0
- package/dist/types/tsconfig.tsbuildinfo +1 -1
- package/package.json +33 -33
- package/src/ObservabilityPlugin.ts +3 -3
- package/src/capabilities/app-graph-builder.ts +2 -2
- package/src/capabilities/client-ready.ts +6 -5
- package/src/capabilities/intent-resolver.ts +3 -2
- package/src/capabilities/react-surface.tsx +1 -1
- package/src/capabilities/state.ts +2 -1
- package/src/components/HelpContainer.tsx +3 -2
- package/src/components/ObservabilitySettings.tsx +16 -16
- package/src/events.ts +1 -1
- package/src/translations.ts +7 -4
- package/src/types/index.ts +5 -0
- package/src/{types.ts → types/schema.ts} +20 -7
- package/dist/lib/browser/chunk-P7VVCZOC.mjs.map +0 -7
- package/dist/lib/browser/client-ready-LP3YSSAH.mjs.map +0 -7
- package/dist/lib/browser/intent-resolver-JESDDMKB.mjs.map +0 -7
- package/dist/lib/browser/types.mjs +0 -10
- package/dist/lib/node/app-graph-builder-EXZP366Q.cjs +0 -59
- package/dist/lib/node/app-graph-builder-EXZP366Q.cjs.map +0 -7
- package/dist/lib/node/chunk-2ERIOZP3.cjs +0 -36
- package/dist/lib/node/chunk-2ERIOZP3.cjs.map +0 -7
- package/dist/lib/node/chunk-B773OI2Y.cjs +0 -200
- package/dist/lib/node/chunk-B773OI2Y.cjs.map +0 -7
- package/dist/lib/node/chunk-HAIMXBCH.cjs +0 -38
- package/dist/lib/node/chunk-HAIMXBCH.cjs.map +0 -7
- package/dist/lib/node/chunk-UMH4JAVS.cjs +0 -199
- package/dist/lib/node/chunk-UMH4JAVS.cjs.map +0 -7
- package/dist/lib/node/client-ready-CTPKWHMP.cjs +0 -113
- package/dist/lib/node/client-ready-CTPKWHMP.cjs.map +0 -7
- package/dist/lib/node/index.cjs +0 -152
- package/dist/lib/node/index.cjs.map +0 -7
- package/dist/lib/node/intent-resolver-7G4GEUOA.cjs +0 -88
- package/dist/lib/node/intent-resolver-7G4GEUOA.cjs.map +0 -7
- package/dist/lib/node/meta.json +0 -1
- package/dist/lib/node/react-surface-CNFUEPBI.cjs +0 -55
- package/dist/lib/node/react-surface-CNFUEPBI.cjs.map +0 -7
- package/dist/lib/node/settings-RO5MXEQG.cjs +0 -39
- package/dist/lib/node/settings-RO5MXEQG.cjs.map +0 -7
- package/dist/lib/node/state-NXRP3P5D.cjs +0 -40
- package/dist/lib/node/state-NXRP3P5D.cjs.map +0 -7
- package/dist/lib/node/types.cjs +0 -32
- package/dist/lib/node/types.cjs.map +0 -7
- package/dist/lib/node-esm/chunk-S2MXYKCI.mjs.map +0 -7
- package/dist/lib/node-esm/client-ready-FS62YRSD.mjs.map +0 -7
- package/dist/lib/node-esm/intent-resolver-MREOBMHB.mjs.map +0 -7
- package/dist/types/src/types.d.ts.map +0 -1
- /package/dist/lib/browser/{chunk-RKH5BBR4.mjs.map → chunk-57RVSKYP.mjs.map} +0 -0
- /package/dist/lib/browser/{chunk-BJ2ZWVOH.mjs.map → chunk-UUOBAWT2.mjs.map} +0 -0
- /package/dist/lib/browser/{types.mjs.map → types/index.mjs.map} +0 -0
- /package/dist/lib/node-esm/{chunk-KT5SDFBU.mjs.map → chunk-7XR7KMAA.mjs.map} +0 -0
- /package/dist/lib/node-esm/{chunk-X2U2ZHWX.mjs.map → chunk-JTKEM7PT.mjs.map} +0 -0
- /package/dist/lib/node-esm/{types.mjs.map → types/index.mjs.map} +0 -0
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@dxos/plugin-observability",
|
|
3
|
-
"version": "0.8.
|
|
3
|
+
"version": "0.8.4-main.1da679c",
|
|
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,21 +10,23 @@
|
|
|
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": {
|
|
18
|
-
"
|
|
19
|
-
"
|
|
20
|
-
"
|
|
19
|
+
"source": "./src/types/index.ts",
|
|
20
|
+
"types": "./dist/types/src/types/index.d.ts",
|
|
21
|
+
"browser": "./dist/lib/browser/types/index.mjs",
|
|
22
|
+
"node": "./dist/lib/node-esm/types/index.mjs"
|
|
21
23
|
}
|
|
22
24
|
},
|
|
23
25
|
"types": "dist/types/src/index.d.ts",
|
|
24
26
|
"typesVersions": {
|
|
25
27
|
"*": {
|
|
26
28
|
"types": [
|
|
27
|
-
"dist/types/src/types.d.ts"
|
|
29
|
+
"dist/types/src/types/index.d.ts"
|
|
28
30
|
]
|
|
29
31
|
}
|
|
30
32
|
},
|
|
@@ -35,45 +37,43 @@
|
|
|
35
37
|
"dependencies": {
|
|
36
38
|
"@preact-signals/safe-react": "^0.9.0",
|
|
37
39
|
"@preact/signals-core": "^1.9.0",
|
|
38
|
-
"effect": "
|
|
40
|
+
"effect": "3.17.7",
|
|
39
41
|
"localforage": "^1.10.0",
|
|
40
|
-
"@dxos/app-framework": "0.8.
|
|
41
|
-
"@dxos/
|
|
42
|
-
"@dxos/
|
|
43
|
-
"@dxos/
|
|
44
|
-
"@dxos/
|
|
45
|
-
"@dxos/
|
|
46
|
-
"@dxos/
|
|
47
|
-
"@dxos/
|
|
48
|
-
"@dxos/
|
|
49
|
-
"@dxos/
|
|
50
|
-
"@dxos/
|
|
51
|
-
"@dxos/
|
|
52
|
-
"@dxos/
|
|
53
|
-
"@dxos/react-ui-form": "0.8.
|
|
54
|
-
"@dxos/react-ui-stack": "0.8.
|
|
55
|
-
"@dxos/util": "0.8.
|
|
42
|
+
"@dxos/app-framework": "0.8.4-main.1da679c",
|
|
43
|
+
"@dxos/async": "0.8.4-main.1da679c",
|
|
44
|
+
"@dxos/context": "0.8.4-main.1da679c",
|
|
45
|
+
"@dxos/echo": "0.8.4-main.1da679c",
|
|
46
|
+
"@dxos/echo-schema": "0.8.4-main.1da679c",
|
|
47
|
+
"@dxos/invariant": "0.8.4-main.1da679c",
|
|
48
|
+
"@dxos/local-storage": "0.8.4-main.1da679c",
|
|
49
|
+
"@dxos/log": "0.8.4-main.1da679c",
|
|
50
|
+
"@dxos/observability": "0.8.4-main.1da679c",
|
|
51
|
+
"@dxos/plugin-graph": "0.8.4-main.1da679c",
|
|
52
|
+
"@dxos/protocols": "0.8.4-main.1da679c",
|
|
53
|
+
"@dxos/react-client": "0.8.4-main.1da679c",
|
|
54
|
+
"@dxos/live-object": "0.8.4-main.1da679c",
|
|
55
|
+
"@dxos/react-ui-form": "0.8.4-main.1da679c",
|
|
56
|
+
"@dxos/react-ui-stack": "0.8.4-main.1da679c",
|
|
57
|
+
"@dxos/util": "0.8.4-main.1da679c"
|
|
56
58
|
},
|
|
57
59
|
"devDependencies": {
|
|
58
|
-
"@effect-rx/rx-react": "
|
|
59
|
-
"@effect/platform": "0.
|
|
60
|
-
"@phosphor-icons/react": "^2.1.5",
|
|
60
|
+
"@effect-rx/rx-react": "0.38.0",
|
|
61
|
+
"@effect/platform": "0.90.2",
|
|
61
62
|
"@types/react": "~18.2.0",
|
|
62
63
|
"react": "~18.2.0",
|
|
63
|
-
"vite": "
|
|
64
|
-
"@dxos/react-ui
|
|
65
|
-
"@dxos/react-ui": "0.8.
|
|
66
|
-
"@dxos/storybook-utils": "0.8.
|
|
64
|
+
"vite": "7.1.1",
|
|
65
|
+
"@dxos/react-ui": "0.8.4-main.1da679c",
|
|
66
|
+
"@dxos/react-ui-theme": "0.8.4-main.1da679c",
|
|
67
|
+
"@dxos/storybook-utils": "0.8.4-main.1da679c"
|
|
67
68
|
},
|
|
68
69
|
"peerDependencies": {
|
|
69
70
|
"@effect-rx/rx-react": "^0.34.1",
|
|
70
|
-
"@effect/platform": "0.80.12",
|
|
71
|
-
"@phosphor-icons/react": "^2.1.5",
|
|
71
|
+
"@effect/platform": "^0.80.12",
|
|
72
72
|
"effect": "^3.13.3",
|
|
73
73
|
"react": "~18.2.0",
|
|
74
74
|
"react-dom": "~18.2.0",
|
|
75
|
-
"@dxos/react-ui": "0.8.
|
|
76
|
-
"@dxos/react-ui-theme": "0.8.
|
|
75
|
+
"@dxos/react-ui": "0.8.4-main.1da679c",
|
|
76
|
+
"@dxos/react-ui-theme": "0.8.4-main.1da679c"
|
|
77
77
|
},
|
|
78
78
|
"publishConfig": {
|
|
79
79
|
"access": "public"
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
// Copyright 2025 DXOS.org
|
|
3
3
|
//
|
|
4
4
|
|
|
5
|
-
import {
|
|
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,9 +14,9 @@ import {
|
|
|
14
14
|
ObservabilityState,
|
|
15
15
|
ReactSurface,
|
|
16
16
|
} from './capabilities';
|
|
17
|
-
import {
|
|
17
|
+
import { ClientReadyEvent, ObservabilityEvents } from './events';
|
|
18
18
|
import { meta } from './meta';
|
|
19
|
-
import translations from './translations';
|
|
19
|
+
import { translations } from './translations';
|
|
20
20
|
|
|
21
21
|
export const ObservabilityPlugin = (options: { namespace: string; observability: () => Promise<Observability> }) =>
|
|
22
22
|
definePlugin(meta, [
|
|
@@ -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,
|
|
9
|
-
import {
|
|
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 {
|
|
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,
|
|
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 {
|
|
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,
|
|
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 {
|
|
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
|
-
<
|
|
33
|
-
<
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
</
|
|
46
|
-
</
|
|
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
package/src/translations.ts
CHANGED
|
@@ -2,13 +2,16 @@
|
|
|
2
2
|
// Copyright 2023 DXOS.org
|
|
3
3
|
//
|
|
4
4
|
|
|
5
|
-
import {
|
|
5
|
+
import { type Resource } from '@dxos/react-ui';
|
|
6
6
|
|
|
7
|
-
|
|
7
|
+
import { meta } from './meta';
|
|
8
|
+
|
|
9
|
+
export const translations = [
|
|
8
10
|
{
|
|
9
11
|
'en-US': {
|
|
10
|
-
[
|
|
12
|
+
[meta.id]: {
|
|
11
13
|
'plugin name': 'Telemetry',
|
|
14
|
+
'settings title': 'Telemetry settings',
|
|
12
15
|
'observability toast label': 'Privacy Notice',
|
|
13
16
|
'observability toast description':
|
|
14
17
|
'Composer collects usage and performance metrics to improve the product. No user data is collected.',
|
|
@@ -29,4 +32,4 @@ export default [
|
|
|
29
32
|
},
|
|
30
33
|
},
|
|
31
34
|
},
|
|
32
|
-
];
|
|
35
|
+
] as const satisfies Resource[];
|
|
@@ -6,7 +6,7 @@ import { Schema } from 'effect';
|
|
|
6
6
|
|
|
7
7
|
import { Type } from '@dxos/echo';
|
|
8
8
|
|
|
9
|
-
import {
|
|
9
|
+
import { meta } from '../meta';
|
|
10
10
|
|
|
11
11
|
const nonEmpty = <S extends Schema.Schema.Any>(field: string) =>
|
|
12
12
|
Schema.nonEmptyString<S>({ message: () => `Missing field: ${field}` });
|
|
@@ -20,10 +20,8 @@ export const UserFeedback = Schema.Struct({
|
|
|
20
20
|
|
|
21
21
|
export type UserFeedback = Schema.Schema.Type<typeof UserFeedback>;
|
|
22
22
|
|
|
23
|
-
const OBSERVABILITY_ACTION = `${OBSERVABILITY_PLUGIN}/action`;
|
|
24
|
-
|
|
25
23
|
export namespace ObservabilityAction {
|
|
26
|
-
export class Toggle extends Schema.TaggedClass<Toggle>()(`${
|
|
24
|
+
export class Toggle extends Schema.TaggedClass<Toggle>()(`${meta.id}/action/toggle`, {
|
|
27
25
|
input: Schema.Struct({
|
|
28
26
|
state: Schema.optional(Schema.Boolean),
|
|
29
27
|
}),
|
|
@@ -31,7 +29,7 @@ export namespace ObservabilityAction {
|
|
|
31
29
|
}) {}
|
|
32
30
|
|
|
33
31
|
export class CaptureUserFeedback extends Schema.TaggedClass<CaptureUserFeedback>()(
|
|
34
|
-
`${
|
|
32
|
+
`${meta.id}/action/capture-feedback`,
|
|
35
33
|
{
|
|
36
34
|
input: UserFeedback,
|
|
37
35
|
output: Schema.Void,
|
|
@@ -39,7 +37,7 @@ export namespace ObservabilityAction {
|
|
|
39
37
|
) {}
|
|
40
38
|
|
|
41
39
|
/** Base intent for sending events. */
|
|
42
|
-
export class BaseSendEvent extends Schema.TaggedClass<BaseSendEvent>()(`${
|
|
40
|
+
export class BaseSendEvent extends Schema.TaggedClass<BaseSendEvent>()(`${meta.id}/action/send-event`, {
|
|
43
41
|
input: Schema.Struct({
|
|
44
42
|
name: Schema.String,
|
|
45
43
|
properties: Schema.optional(Schema.Object),
|
|
@@ -48,7 +46,7 @@ export namespace ObservabilityAction {
|
|
|
48
46
|
}) {}
|
|
49
47
|
|
|
50
48
|
/** Intent with strict types for first-party events. */
|
|
51
|
-
export class SendEvent extends Schema.TaggedClass<SendEvent>()(`${
|
|
49
|
+
export class SendEvent extends Schema.TaggedClass<SendEvent>()(`${meta.id}/action/send-event`, {
|
|
52
50
|
// NOTE: Sort alphabetically by name.
|
|
53
51
|
input: Schema.Union(
|
|
54
52
|
Schema.Struct({
|
|
@@ -115,6 +113,21 @@ export namespace ObservabilityAction {
|
|
|
115
113
|
version: Schema.optional(Schema.String),
|
|
116
114
|
}),
|
|
117
115
|
}),
|
|
116
|
+
Schema.Struct({
|
|
117
|
+
name: Schema.Literal('space.schema.use'),
|
|
118
|
+
properties: Schema.Struct({
|
|
119
|
+
spaceId: Type.SpaceId,
|
|
120
|
+
typename: Schema.String,
|
|
121
|
+
}),
|
|
122
|
+
}),
|
|
123
|
+
Schema.Struct({
|
|
124
|
+
name: Schema.Literal('space.schema.add'),
|
|
125
|
+
properties: Schema.Struct({
|
|
126
|
+
spaceId: Type.SpaceId,
|
|
127
|
+
objectId: Schema.String,
|
|
128
|
+
typename: Schema.String,
|
|
129
|
+
}),
|
|
130
|
+
}),
|
|
118
131
|
Schema.Struct({
|
|
119
132
|
name: Schema.Literal('space.object.add'),
|
|
120
133
|
properties: Schema.Struct({
|
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"version": 3,
|
|
3
|
-
"sources": ["../../../src/types.ts"],
|
|
4
|
-
"sourcesContent": ["//\n// Copyright 2024 DXOS.org\n//\n\nimport { Schema } from 'effect';\n\nimport { Type } from '@dxos/echo';\n\nimport { OBSERVABILITY_PLUGIN } from './meta';\n\nconst nonEmpty = <S extends Schema.Schema.Any>(field: string) =>\n Schema.nonEmptyString<S>({ message: () => `Missing field: ${field}` });\n\nconst maxLength = <S extends Schema.Schema.Any>(field: string, length: number) =>\n Schema.maxLength<S>(length, { message: () => `Exceeds max length (${length}): ${field}` });\n\nexport const UserFeedback = Schema.Struct({\n message: Schema.String.pipe(nonEmpty('Feedback'), maxLength('Feedback', 32_768)),\n});\n\nexport type UserFeedback = Schema.Schema.Type<typeof UserFeedback>;\n\nconst OBSERVABILITY_ACTION = `${OBSERVABILITY_PLUGIN}/action`;\n\nexport namespace ObservabilityAction {\n export class Toggle extends Schema.TaggedClass<Toggle>()(`${OBSERVABILITY_ACTION}/toggle`, {\n input: Schema.Struct({\n state: Schema.optional(Schema.Boolean),\n }),\n output: Schema.Boolean,\n }) {}\n\n export class CaptureUserFeedback extends Schema.TaggedClass<CaptureUserFeedback>()(\n `${OBSERVABILITY_ACTION}/capture-feedback`,\n {\n input: UserFeedback,\n output: Schema.Void,\n },\n ) {}\n\n /** Base intent for sending events. */\n export class BaseSendEvent extends Schema.TaggedClass<BaseSendEvent>()(`${OBSERVABILITY_ACTION}/send-event`, {\n input: Schema.Struct({\n name: Schema.String,\n properties: Schema.optional(Schema.Object),\n }),\n output: Schema.Void,\n }) {}\n\n /** Intent with strict types for first-party events. */\n export class SendEvent extends Schema.TaggedClass<SendEvent>()(`${OBSERVABILITY_ACTION}/send-event`, {\n // NOTE: Sort alphabetically by name.\n input: Schema.Union(\n Schema.Struct({\n name: Schema.Literal('identity.create'),\n }),\n Schema.Struct({\n name: Schema.Literal('identity.join'),\n }),\n Schema.Struct({\n name: Schema.Literal('identity.recover'),\n }),\n Schema.Struct({\n name: Schema.Literal('identity.share'),\n }),\n Schema.Struct({\n name: Schema.Literal('navigation.activate'),\n properties: Schema.Struct({\n subjectId: Schema.String,\n typename: Schema.optional(Schema.String),\n }),\n }),\n Schema.Struct({\n name: Schema.Literal('page.load'),\n properties: Schema.Struct({\n loadDuration: Schema.Number,\n }),\n }),\n Schema.Struct({\n name: Schema.Literal('plugins.toggle'),\n properties: Schema.Struct({\n plugin: Schema.String,\n enabled: Schema.Boolean,\n }),\n }),\n Schema.Struct({\n name: Schema.Literal('space.create'),\n properties: Schema.Struct({\n spaceId: Type.SpaceId,\n }),\n }),\n Schema.Struct({\n name: Schema.Literal('space.join'),\n properties: Schema.Struct({\n spaceId: Type.SpaceId,\n }),\n }),\n Schema.Struct({\n name: Schema.Literal('space.limit'),\n properties: Schema.Struct({\n spaceId: Type.SpaceId,\n }),\n }),\n Schema.Struct({\n name: Schema.Literal('space.lock'),\n properties: Schema.Struct({\n spaceId: Type.SpaceId,\n }),\n }),\n Schema.Struct({\n name: Schema.Literal('space.migrate'),\n properties: Schema.Struct({\n spaceId: Type.SpaceId,\n targetVersion: Schema.optional(Schema.String),\n version: Schema.optional(Schema.String),\n }),\n }),\n Schema.Struct({\n name: Schema.Literal('space.object.add'),\n properties: Schema.Struct({\n spaceId: Type.SpaceId,\n objectId: Schema.String,\n typename: Schema.optional(Schema.String),\n }),\n }),\n Schema.Struct({\n name: Schema.Literal('space.share'),\n properties: Schema.Struct({\n spaceId: Type.SpaceId,\n }),\n }),\n Schema.Struct({\n name: Schema.Literal('space.unlock'),\n properties: Schema.Struct({\n spaceId: Type.SpaceId,\n }),\n }),\n Schema.Struct({\n name: Schema.Literal('threads.create'),\n properties: Schema.Struct({\n spaceId: Type.SpaceId,\n threadId: Schema.String,\n }),\n }),\n Schema.Struct({\n name: Schema.Literal('threads.delete'),\n properties: Schema.Struct({\n spaceId: Type.SpaceId,\n threadId: Schema.String,\n }),\n }),\n Schema.Struct({\n name: Schema.Literal('threads.message.add'),\n properties: Schema.Struct({\n spaceId: Type.SpaceId,\n threadId: Schema.String,\n threadLength: Schema.Number,\n messageId: Schema.String,\n messageLength: Schema.Number,\n }),\n }),\n Schema.Struct({\n name: Schema.Literal('threads.message.delete'),\n properties: Schema.Struct({\n spaceId: Type.SpaceId,\n threadId: Schema.String,\n messageId: Schema.String,\n }),\n }),\n Schema.Struct({\n name: Schema.Literal('threads.message.undo-delete'),\n properties: Schema.Struct({\n spaceId: Type.SpaceId,\n threadId: Schema.String,\n messageId: Schema.String,\n }),\n }),\n Schema.Struct({\n name: Schema.Literal('threads.message.update'),\n properties: Schema.Struct({\n spaceId: Type.SpaceId,\n messageId: Schema.String,\n messageLength: Schema.Number,\n }),\n }),\n Schema.Struct({\n name: Schema.Literal('threads.toggle-resolved'),\n properties: Schema.Struct({\n spaceId: Type.SpaceId,\n threadId: Schema.String,\n }),\n }),\n Schema.Struct({\n name: Schema.Literal('threads.undo-delete'),\n properties: Schema.Struct({\n spaceId: Type.SpaceId,\n threadId: Schema.String,\n }),\n }),\n ),\n output: Schema.Void,\n }) {}\n}\n"],
|
|
5
|
-
"mappings": "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",
|
|
6
|
-
"names": ["Schema", "Type", "nonEmpty", "field", "Schema", "nonEmptyString", "message", "maxLength", "length", "UserFeedback", "Struct", "String", "pipe", "OBSERVABILITY_ACTION", "OBSERVABILITY_PLUGIN", "ObservabilityAction", "Toggle", "TaggedClass", "input", "state", "optional", "Boolean", "output", "CaptureUserFeedback", "Void", "BaseSendEvent", "name", "properties", "Object", "SendEvent", "Union", "Literal", "subjectId", "typename", "loadDuration", "Number", "plugin", "enabled", "spaceId", "Type", "SpaceId", "targetVersion", "version", "objectId", "threadId", "threadLength", "messageId", "messageLength"]
|
|
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
|
-
}
|
|
@@ -1,59 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __defProp = Object.defineProperty;
|
|
3
|
-
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
4
|
-
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
5
|
-
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
6
|
-
var __export = (target, all) => {
|
|
7
|
-
for (var name in all)
|
|
8
|
-
__defProp(target, name, { get: all[name], enumerable: true });
|
|
9
|
-
};
|
|
10
|
-
var __copyProps = (to, from, except, desc) => {
|
|
11
|
-
if (from && typeof from === "object" || typeof from === "function") {
|
|
12
|
-
for (let key of __getOwnPropNames(from))
|
|
13
|
-
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
14
|
-
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
15
|
-
}
|
|
16
|
-
return to;
|
|
17
|
-
};
|
|
18
|
-
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
19
|
-
var app_graph_builder_EXZP366Q_exports = {};
|
|
20
|
-
__export(app_graph_builder_EXZP366Q_exports, {
|
|
21
|
-
default: () => app_graph_builder_default
|
|
22
|
-
});
|
|
23
|
-
module.exports = __toCommonJS(app_graph_builder_EXZP366Q_exports);
|
|
24
|
-
var import_chunk_2ERIOZP3 = require("./chunk-2ERIOZP3.cjs");
|
|
25
|
-
var import_rx_react = require("@effect-rx/rx-react");
|
|
26
|
-
var import_effect = require("effect");
|
|
27
|
-
var import_app_framework = require("@dxos/app-framework");
|
|
28
|
-
var import_plugin_graph = require("@dxos/plugin-graph");
|
|
29
|
-
var ATTENDABLE_PATH_SEPARATOR = "~";
|
|
30
|
-
var DECK_COMPANION_TYPE = "dxos.org/plugin/deck/deck-companion";
|
|
31
|
-
var app_graph_builder_default = (context) => (0, import_app_framework.contributes)(import_app_framework.Capabilities.AppGraphBuilder, [
|
|
32
|
-
(0, import_plugin_graph.createExtension)({
|
|
33
|
-
id: `${import_chunk_2ERIOZP3.OBSERVABILITY_PLUGIN}/help`,
|
|
34
|
-
connector: (node) => import_rx_react.Rx.make((get) => (0, import_effect.pipe)(get(node), import_effect.Option.flatMap((node2) => node2.id === import_plugin_graph.ROOT_ID ? import_effect.Option.some(node2) : import_effect.Option.none()), import_effect.Option.map((node2) => {
|
|
35
|
-
return [
|
|
36
|
-
{
|
|
37
|
-
id: [
|
|
38
|
-
node2.id,
|
|
39
|
-
"help"
|
|
40
|
-
].join(ATTENDABLE_PATH_SEPARATOR),
|
|
41
|
-
type: DECK_COMPANION_TYPE,
|
|
42
|
-
data: null,
|
|
43
|
-
properties: {
|
|
44
|
-
label: [
|
|
45
|
-
"help label",
|
|
46
|
-
{
|
|
47
|
-
ns: import_chunk_2ERIOZP3.OBSERVABILITY_PLUGIN
|
|
48
|
-
}
|
|
49
|
-
],
|
|
50
|
-
icon: "ph--question--regular",
|
|
51
|
-
disposition: "hidden",
|
|
52
|
-
position: "hoist"
|
|
53
|
-
}
|
|
54
|
-
}
|
|
55
|
-
];
|
|
56
|
-
}), import_effect.Option.getOrElse(() => [])))
|
|
57
|
-
})
|
|
58
|
-
]);
|
|
59
|
-
//# sourceMappingURL=app-graph-builder-EXZP366Q.cjs.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 { Rx } from '@effect-rx/rx-react';\nimport { Option, pipe } from 'effect';\n\nimport { Capabilities, contributes, type PluginContext } from '@dxos/app-framework';\nimport { createExtension, ROOT_ID } from '@dxos/plugin-graph';\n\nimport { OBSERVABILITY_PLUGIN } from '../meta';\n\n// NOTE: Copied from @dxos/plugin-deck to break circular dependency.\nconst ATTENDABLE_PATH_SEPARATOR = '~';\nconst DECK_COMPANION_TYPE = 'dxos.org/plugin/deck/deck-companion';\n\nexport default (context: PluginContext) =>\n contributes(Capabilities.AppGraphBuilder, [\n createExtension({\n id: `${OBSERVABILITY_PLUGIN}/help`,\n connector: (node) =>\n Rx.make((get) =>\n 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: OBSERVABILITY_PLUGIN }],\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,sBAAmB;AACnB,oBAA6B;AAE7B,2BAA8D;AAC9D,0BAAyC;AAKzC,IAAMA,4BAA4B;AAClC,IAAMC,sBAAsB;AAE5B,IAAA,4BAAe,CAACC,gBACdC,kCAAYC,kCAAaC,iBAAiB;MACxCC,qCAAgB;IACdC,IAAI,GAAGC,0CAAAA;IACPC,WAAW,CAACC,SACVC,mBAAGC,KAAK,CAACC,YACPC,oBACED,IAAIH,IAAAA,GACJK,qBAAOC,QAAQ,CAACN,UAAUA,MAAKH,OAAOU,8BAAUF,qBAAOG,KAAKR,KAAAA,IAAQK,qBAAOI,KAAI,CAAA,GAC/EJ,qBAAOK,IAAI,CAACV,UAAAA;AACV,aAAO;QACL;UACEH,IAAI;YAACG,MAAKH;YAAI;YAAQc,KAAKrB,yBAAAA;UAC3BsB,MAAMrB;UACNsB,MAAM;UACNC,YAAY;YACVC,OAAO;cAAC;cAAc;gBAAEC,IAAIlB;cAAqB;;YACjDmB,MAAM;YACNC,aAAa;YACbC,UAAU;UACZ;QACF;;IAEJ,CAAA,GACAd,qBAAOe,UAAU,MAAM,CAAA,CAAE,CAAA,CAAA;EAGjC,CAAA;CACD;",
|
|
6
|
-
"names": ["ATTENDABLE_PATH_SEPARATOR", "DECK_COMPANION_TYPE", "context", "contributes", "Capabilities", "AppGraphBuilder", "createExtension", "id", "OBSERVABILITY_PLUGIN", "connector", "node", "Rx", "make", "get", "pipe", "Option", "flatMap", "ROOT_ID", "some", "none", "map", "join", "type", "data", "properties", "label", "ns", "icon", "disposition", "position", "getOrElse"]
|
|
7
|
-
}
|
|
@@ -1,36 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __defProp = Object.defineProperty;
|
|
3
|
-
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
4
|
-
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
5
|
-
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
6
|
-
var __export = (target, all) => {
|
|
7
|
-
for (var name in all)
|
|
8
|
-
__defProp(target, name, { get: all[name], enumerable: true });
|
|
9
|
-
};
|
|
10
|
-
var __copyProps = (to, from, except, desc) => {
|
|
11
|
-
if (from && typeof from === "object" || typeof from === "function") {
|
|
12
|
-
for (let key of __getOwnPropNames(from))
|
|
13
|
-
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
14
|
-
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
15
|
-
}
|
|
16
|
-
return to;
|
|
17
|
-
};
|
|
18
|
-
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
19
|
-
var chunk_2ERIOZP3_exports = {};
|
|
20
|
-
__export(chunk_2ERIOZP3_exports, {
|
|
21
|
-
OBSERVABILITY_PLUGIN: () => OBSERVABILITY_PLUGIN,
|
|
22
|
-
meta: () => meta
|
|
23
|
-
});
|
|
24
|
-
module.exports = __toCommonJS(chunk_2ERIOZP3_exports);
|
|
25
|
-
var OBSERVABILITY_PLUGIN = "dxos.org/plugin/observability";
|
|
26
|
-
var meta = {
|
|
27
|
-
id: OBSERVABILITY_PLUGIN,
|
|
28
|
-
name: "Telemetry",
|
|
29
|
-
icon: "ph--eye--regular"
|
|
30
|
-
};
|
|
31
|
-
// Annotate the CommonJS export names for ESM import in node:
|
|
32
|
-
0 && (module.exports = {
|
|
33
|
-
OBSERVABILITY_PLUGIN,
|
|
34
|
-
meta
|
|
35
|
-
});
|
|
36
|
-
//# sourceMappingURL=chunk-2ERIOZP3.cjs.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';\n\nexport const OBSERVABILITY_PLUGIN = 'dxos.org/plugin/observability';\n\nexport const meta: PluginMeta = {\n id: OBSERVABILITY_PLUGIN,\n name: 'Telemetry',\n icon: 'ph--eye--regular',\n};\n"],
|
|
5
|
-
"mappings": ";;;;;;;;;;;;;;;;;;;;;;;;AAMO,IAAMA,uBAAuB;AAE7B,IAAMC,OAAmB;EAC9BC,IAAIF;EACJG,MAAM;EACNC,MAAM;AACR;",
|
|
6
|
-
"names": ["OBSERVABILITY_PLUGIN", "meta", "id", "name", "icon"]
|
|
7
|
-
}
|