@dxos/plugin-observability 0.8.4-main.3f58842 → 0.8.4-main.52d7546f51
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-7PBOGFFG.mjs +45 -0
- package/dist/lib/browser/app-graph-builder-7PBOGFFG.mjs.map +7 -0
- package/dist/lib/browser/chunk-3XZDP7JS.mjs +16 -0
- package/dist/lib/browser/chunk-3XZDP7JS.mjs.map +7 -0
- package/dist/lib/browser/chunk-T3EKFAAB.mjs +138 -0
- package/dist/lib/browser/chunk-T3EKFAAB.mjs.map +7 -0
- package/dist/lib/browser/chunk-UTYAG5Z3.mjs +123 -0
- package/dist/lib/browser/chunk-UTYAG5Z3.mjs.map +7 -0
- package/dist/lib/browser/cli/index.mjs +24 -0
- package/dist/lib/browser/cli/index.mjs.map +7 -0
- package/dist/lib/browser/client-ready-ZVLSHDH6.mjs +103 -0
- package/dist/lib/browser/client-ready-ZVLSHDH6.mjs.map +7 -0
- package/dist/lib/browser/index.mjs +73 -104
- package/dist/lib/browser/index.mjs.map +4 -4
- package/dist/lib/browser/meta.json +1 -1
- package/dist/lib/browser/operation-resolver-GJYJZPY3.mjs +79 -0
- package/dist/lib/browser/operation-resolver-GJYJZPY3.mjs.map +7 -0
- package/dist/lib/browser/react-surface-4RABGTCC.mjs +38 -0
- package/dist/lib/browser/react-surface-4RABGTCC.mjs.map +7 -0
- package/dist/lib/browser/settings-QQBXDLBH.mjs +36 -0
- package/dist/lib/browser/settings-QQBXDLBH.mjs.map +7 -0
- package/dist/lib/browser/state-SSUNAB2P.mjs +31 -0
- package/dist/lib/browser/state-SSUNAB2P.mjs.map +7 -0
- package/dist/lib/browser/types/index.mjs +12 -4
- package/dist/lib/node-esm/app-graph-builder-D77CGMCQ.mjs +46 -0
- package/dist/lib/node-esm/app-graph-builder-D77CGMCQ.mjs.map +7 -0
- package/dist/lib/node-esm/chunk-2ECMMPZY.mjs +18 -0
- package/dist/lib/node-esm/chunk-2ECMMPZY.mjs.map +7 -0
- package/dist/lib/node-esm/chunk-PE6CKAA6.mjs +124 -0
- package/dist/lib/node-esm/chunk-PE6CKAA6.mjs.map +7 -0
- package/dist/lib/node-esm/chunk-VC5HVE77.mjs +139 -0
- package/dist/lib/node-esm/chunk-VC5HVE77.mjs.map +7 -0
- package/dist/lib/node-esm/cli/index.mjs +25 -0
- package/dist/lib/node-esm/cli/index.mjs.map +7 -0
- package/dist/lib/node-esm/client-ready-JXG727PH.mjs +104 -0
- package/dist/lib/node-esm/client-ready-JXG727PH.mjs.map +7 -0
- package/dist/lib/node-esm/index.mjs +73 -104
- package/dist/lib/node-esm/index.mjs.map +4 -4
- package/dist/lib/node-esm/meta.json +1 -1
- package/dist/lib/node-esm/operation-resolver-NB7XDO3M.mjs +80 -0
- package/dist/lib/node-esm/operation-resolver-NB7XDO3M.mjs.map +7 -0
- package/dist/lib/node-esm/react-surface-ZHTRUHHM.mjs +39 -0
- package/dist/lib/node-esm/react-surface-ZHTRUHHM.mjs.map +7 -0
- package/dist/lib/node-esm/settings-IZ2DBP4E.mjs +37 -0
- package/dist/lib/node-esm/settings-IZ2DBP4E.mjs.map +7 -0
- package/dist/lib/node-esm/state-3HUC5SJV.mjs +32 -0
- package/dist/lib/node-esm/state-3HUC5SJV.mjs.map +7 -0
- package/dist/lib/node-esm/types/index.mjs +12 -4
- package/dist/types/src/ObservabilityPlugin.d.ts +5 -3
- package/dist/types/src/ObservabilityPlugin.d.ts.map +1 -1
- package/dist/types/src/capabilities/app-graph-builder/app-graph-builder.d.ts +6 -0
- package/dist/types/src/capabilities/app-graph-builder/app-graph-builder.d.ts.map +1 -0
- package/dist/types/src/capabilities/app-graph-builder/index.d.ts +3 -0
- package/dist/types/src/capabilities/app-graph-builder/index.d.ts.map +1 -0
- package/dist/types/src/capabilities/client-ready/client-ready.d.ts +10 -0
- package/dist/types/src/capabilities/client-ready/client-ready.d.ts.map +1 -0
- package/dist/types/src/capabilities/client-ready/index.d.ts +4 -0
- package/dist/types/src/capabilities/client-ready/index.d.ts.map +1 -0
- package/dist/types/src/capabilities/index.d.ts +6 -16
- package/dist/types/src/capabilities/index.d.ts.map +1 -1
- package/dist/types/src/capabilities/operation-resolver/index.d.ts +5 -0
- package/dist/types/src/capabilities/operation-resolver/index.d.ts.map +1 -0
- package/dist/types/src/capabilities/operation-resolver/operation-resolver.d.ts +7 -0
- package/dist/types/src/capabilities/operation-resolver/operation-resolver.d.ts.map +1 -0
- package/dist/types/src/capabilities/react-surface/index.d.ts +3 -0
- package/dist/types/src/capabilities/react-surface/index.d.ts.map +1 -0
- package/dist/types/src/capabilities/react-surface/react-surface.d.ts +5 -0
- package/dist/types/src/capabilities/react-surface/react-surface.d.ts.map +1 -0
- package/dist/types/src/capabilities/settings/index.d.ts +7 -0
- package/dist/types/src/capabilities/settings/index.d.ts.map +1 -0
- package/dist/types/src/capabilities/settings/settings.d.ts +10 -0
- package/dist/types/src/capabilities/settings/settings.d.ts.map +1 -0
- package/dist/types/src/capabilities/state/index.d.ts +11 -0
- package/dist/types/src/capabilities/state/index.d.ts.map +1 -0
- package/dist/types/src/capabilities/state/state.d.ts +13 -0
- package/dist/types/src/capabilities/state/state.d.ts.map +1 -0
- package/dist/types/src/cli/index.d.ts +2 -0
- package/dist/types/src/cli/index.d.ts.map +1 -0
- package/dist/types/src/cli/plugin.d.ts +3 -0
- package/dist/types/src/cli/plugin.d.ts.map +1 -0
- package/dist/types/src/components/FeedbackForm.d.ts +3 -3
- package/dist/types/src/components/FeedbackForm.d.ts.map +1 -1
- package/dist/types/src/components/FeedbackForm.stories.d.ts +35 -0
- package/dist/types/src/components/FeedbackForm.stories.d.ts.map +1 -0
- package/dist/types/src/components/HelpContainer.d.ts +1 -0
- package/dist/types/src/components/HelpContainer.d.ts.map +1 -1
- package/dist/types/src/components/ObservabilitySettings.d.ts +5 -3
- package/dist/types/src/components/ObservabilitySettings.d.ts.map +1 -1
- package/dist/types/src/index.d.ts +1 -2
- package/dist/types/src/index.d.ts.map +1 -1
- package/dist/types/src/meta.d.ts +2 -3
- package/dist/types/src/meta.d.ts.map +1 -1
- package/dist/types/src/translations.d.ts +4 -2
- package/dist/types/src/translations.d.ts.map +1 -1
- package/dist/types/src/types/capabilities.d.ts +27 -0
- package/dist/types/src/types/capabilities.d.ts.map +1 -0
- package/dist/types/src/types/events.d.ts +6 -0
- package/dist/types/src/types/events.d.ts.map +1 -0
- package/dist/types/src/types/index.d.ts +2 -0
- package/dist/types/src/types/index.d.ts.map +1 -1
- package/dist/types/src/types/schema.d.ts +58 -308
- package/dist/types/src/types/schema.d.ts.map +1 -1
- package/dist/types/tsconfig.tsbuildinfo +1 -1
- package/package.json +48 -35
- package/src/ObservabilityPlugin.ts +55 -51
- package/src/capabilities/app-graph-builder/app-graph-builder.ts +43 -0
- package/src/capabilities/app-graph-builder/index.ts +7 -0
- package/src/capabilities/client-ready/client-ready.ts +85 -0
- package/src/capabilities/client-ready/index.ts +9 -0
- package/src/capabilities/index.ts +6 -10
- package/src/capabilities/operation-resolver/index.ts +7 -0
- package/src/capabilities/operation-resolver/operation-resolver.ts +77 -0
- package/src/capabilities/react-surface/index.ts +7 -0
- package/src/capabilities/react-surface/react-surface.tsx +35 -0
- package/src/capabilities/settings/index.ts +7 -0
- package/src/capabilities/settings/settings.ts +34 -0
- package/src/capabilities/state/index.ts +7 -0
- package/src/capabilities/state/state.ts +30 -0
- package/src/cli/index.ts +5 -0
- package/src/cli/plugin.ts +28 -0
- package/src/components/FeedbackForm.stories.tsx +33 -0
- package/src/components/FeedbackForm.tsx +16 -67
- package/src/components/HelpContainer.tsx +42 -26
- package/src/components/ObservabilitySettings.tsx +28 -23
- package/src/index.ts +1 -2
- package/src/meta.ts +8 -5
- package/src/translations.ts +4 -2
- package/src/types/capabilities.ts +34 -0
- package/src/types/events.ts +15 -0
- package/src/types/index.ts +2 -0
- package/src/types/schema.ts +63 -195
- package/dist/lib/browser/app-graph-builder-DCOBBL5B.mjs +0 -43
- package/dist/lib/browser/app-graph-builder-DCOBBL5B.mjs.map +0 -7
- package/dist/lib/browser/chunk-57RVSKYP.mjs +0 -13
- package/dist/lib/browser/chunk-57RVSKYP.mjs.map +0 -7
- package/dist/lib/browser/chunk-AL5RST75.mjs +0 -191
- package/dist/lib/browser/chunk-AL5RST75.mjs.map +0 -7
- package/dist/lib/browser/chunk-UUOBAWT2.mjs +0 -18
- package/dist/lib/browser/chunk-UUOBAWT2.mjs.map +0 -7
- package/dist/lib/browser/chunk-YVKMVVGP.mjs +0 -175
- package/dist/lib/browser/chunk-YVKMVVGP.mjs.map +0 -7
- package/dist/lib/browser/client-ready-TAII5PYS.mjs +0 -102
- package/dist/lib/browser/client-ready-TAII5PYS.mjs.map +0 -7
- package/dist/lib/browser/intent-resolver-5SA443WX.mjs +0 -77
- package/dist/lib/browser/intent-resolver-5SA443WX.mjs.map +0 -7
- package/dist/lib/browser/react-surface-GQC3M7XY.mjs +0 -32
- package/dist/lib/browser/react-surface-GQC3M7XY.mjs.map +0 -7
- package/dist/lib/browser/settings-BG3S45SS.mjs +0 -25
- package/dist/lib/browser/settings-BG3S45SS.mjs.map +0 -7
- package/dist/lib/browser/state-VIOQS2IL.mjs +0 -26
- package/dist/lib/browser/state-VIOQS2IL.mjs.map +0 -7
- package/dist/lib/node-esm/app-graph-builder-6JT2RPVM.mjs +0 -44
- package/dist/lib/node-esm/app-graph-builder-6JT2RPVM.mjs.map +0 -7
- package/dist/lib/node-esm/chunk-5W5V4TVX.mjs +0 -192
- package/dist/lib/node-esm/chunk-5W5V4TVX.mjs.map +0 -7
- package/dist/lib/node-esm/chunk-7XR7KMAA.mjs +0 -15
- package/dist/lib/node-esm/chunk-7XR7KMAA.mjs.map +0 -7
- package/dist/lib/node-esm/chunk-JTKEM7PT.mjs +0 -19
- package/dist/lib/node-esm/chunk-JTKEM7PT.mjs.map +0 -7
- package/dist/lib/node-esm/chunk-TYZLSIA4.mjs +0 -176
- package/dist/lib/node-esm/chunk-TYZLSIA4.mjs.map +0 -7
- package/dist/lib/node-esm/client-ready-KER2HNME.mjs +0 -103
- package/dist/lib/node-esm/client-ready-KER2HNME.mjs.map +0 -7
- package/dist/lib/node-esm/intent-resolver-YYBRI4TZ.mjs +0 -78
- package/dist/lib/node-esm/intent-resolver-YYBRI4TZ.mjs.map +0 -7
- package/dist/lib/node-esm/react-surface-ZYMR7TMY.mjs +0 -33
- package/dist/lib/node-esm/react-surface-ZYMR7TMY.mjs.map +0 -7
- package/dist/lib/node-esm/settings-HSLQO3OC.mjs +0 -26
- package/dist/lib/node-esm/settings-HSLQO3OC.mjs.map +0 -7
- package/dist/lib/node-esm/state-J2WS6L64.mjs +0 -27
- package/dist/lib/node-esm/state-J2WS6L64.mjs.map +0 -7
- package/dist/types/src/capabilities/app-graph-builder.d.ts +0 -4
- package/dist/types/src/capabilities/app-graph-builder.d.ts.map +0 -1
- package/dist/types/src/capabilities/capabilities.d.ts +0 -12
- package/dist/types/src/capabilities/capabilities.d.ts.map +0 -1
- package/dist/types/src/capabilities/client-ready.d.ts +0 -10
- package/dist/types/src/capabilities/client-ready.d.ts.map +0 -1
- package/dist/types/src/capabilities/intent-resolver.d.ts +0 -7
- package/dist/types/src/capabilities/intent-resolver.d.ts.map +0 -1
- package/dist/types/src/capabilities/react-surface.d.ts +0 -4
- package/dist/types/src/capabilities/react-surface.d.ts.map +0 -1
- package/dist/types/src/capabilities/settings.d.ts +0 -4
- package/dist/types/src/capabilities/settings.d.ts.map +0 -1
- package/dist/types/src/capabilities/state.d.ts +0 -6
- package/dist/types/src/capabilities/state.d.ts.map +0 -1
- package/dist/types/src/events.d.ts +0 -5
- package/dist/types/src/events.d.ts.map +0 -1
- package/src/capabilities/app-graph-builder.ts +0 -45
- package/src/capabilities/capabilities.ts +0 -22
- package/src/capabilities/client-ready.ts +0 -97
- package/src/capabilities/intent-resolver.ts +0 -68
- package/src/capabilities/react-surface.tsx +0 -27
- package/src/capabilities/settings.ts +0 -21
- package/src/capabilities/state.ts +0 -21
- package/src/events.ts +0 -14
|
@@ -1,78 +0,0 @@
|
|
|
1
|
-
import { createRequire } from 'node:module';const require = createRequire(import.meta.url);
|
|
2
|
-
import {
|
|
3
|
-
ObservabilityAction
|
|
4
|
-
} from "./chunk-5W5V4TVX.mjs";
|
|
5
|
-
import {
|
|
6
|
-
ClientCapability,
|
|
7
|
-
ObservabilityCapabilities
|
|
8
|
-
} from "./chunk-JTKEM7PT.mjs";
|
|
9
|
-
import {
|
|
10
|
-
OBSERVABILITY_PLUGIN
|
|
11
|
-
} from "./chunk-7XR7KMAA.mjs";
|
|
12
|
-
|
|
13
|
-
// src/capabilities/intent-resolver.ts
|
|
14
|
-
import { Capabilities, contributes, createResolver, IntentAction } from "@dxos/app-framework";
|
|
15
|
-
import { log } from "@dxos/log";
|
|
16
|
-
import { getTelemetryIdentity, storeObservabilityDisabled } from "@dxos/observability";
|
|
17
|
-
var __dxlog_file = "/__w/dxos/dxos/packages/plugins/plugin-observability/src/capabilities/intent-resolver.ts";
|
|
18
|
-
var intent_resolver_default = ({ context, namespace }) => contributes(Capabilities.IntentResolver, [
|
|
19
|
-
createResolver({
|
|
20
|
-
intent: IntentAction.Track,
|
|
21
|
-
resolve: (intent) => {
|
|
22
|
-
log.info("intent", {
|
|
23
|
-
intent
|
|
24
|
-
}, {
|
|
25
|
-
F: __dxlog_file,
|
|
26
|
-
L: 19,
|
|
27
|
-
S: void 0,
|
|
28
|
-
C: (f, a) => f(...a)
|
|
29
|
-
});
|
|
30
|
-
}
|
|
31
|
-
}),
|
|
32
|
-
createResolver({
|
|
33
|
-
intent: ObservabilityAction.Toggle,
|
|
34
|
-
resolve: async ({ state }) => {
|
|
35
|
-
const client = context.getCapability(ClientCapability);
|
|
36
|
-
const observability = context.getCapability(ObservabilityCapabilities.Observability);
|
|
37
|
-
const settings = context.getCapability(Capabilities.SettingsStore).getStore(OBSERVABILITY_PLUGIN).value;
|
|
38
|
-
settings.enabled = state ?? !settings.enabled;
|
|
39
|
-
observability.track({
|
|
40
|
-
...getTelemetryIdentity(client),
|
|
41
|
-
action: "observability.toggle",
|
|
42
|
-
properties: {
|
|
43
|
-
enabled: settings.enabled
|
|
44
|
-
}
|
|
45
|
-
});
|
|
46
|
-
observability.setMode(settings.enabled ? "basic" : "disabled");
|
|
47
|
-
await storeObservabilityDisabled(namespace, !settings.enabled);
|
|
48
|
-
return {
|
|
49
|
-
data: settings.enabled
|
|
50
|
-
};
|
|
51
|
-
}
|
|
52
|
-
}),
|
|
53
|
-
createResolver({
|
|
54
|
-
intent: ObservabilityAction.SendEvent,
|
|
55
|
-
resolve: (data) => {
|
|
56
|
-
const client = context.getCapability(ClientCapability);
|
|
57
|
-
const properties = "properties" in data ? data.properties : {};
|
|
58
|
-
void context.waitForCapability(ObservabilityCapabilities.Observability).then((observability) => {
|
|
59
|
-
observability.track({
|
|
60
|
-
...getTelemetryIdentity(client),
|
|
61
|
-
action: data.name,
|
|
62
|
-
properties
|
|
63
|
-
});
|
|
64
|
-
});
|
|
65
|
-
}
|
|
66
|
-
}),
|
|
67
|
-
createResolver({
|
|
68
|
-
intent: ObservabilityAction.CaptureUserFeedback,
|
|
69
|
-
resolve: async (data) => {
|
|
70
|
-
const observability = context.getCapability(ObservabilityCapabilities.Observability);
|
|
71
|
-
observability.captureUserFeedback(data.message);
|
|
72
|
-
}
|
|
73
|
-
})
|
|
74
|
-
]);
|
|
75
|
-
export {
|
|
76
|
-
intent_resolver_default as default
|
|
77
|
-
};
|
|
78
|
-
//# sourceMappingURL=intent-resolver-YYBRI4TZ.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, 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,33 +0,0 @@
|
|
|
1
|
-
import { createRequire } from 'node:module';const require = createRequire(import.meta.url);
|
|
2
|
-
import {
|
|
3
|
-
HelpContainer,
|
|
4
|
-
ObservabilitySettings
|
|
5
|
-
} from "./chunk-TYZLSIA4.mjs";
|
|
6
|
-
import "./chunk-5W5V4TVX.mjs";
|
|
7
|
-
import {
|
|
8
|
-
OBSERVABILITY_PLUGIN
|
|
9
|
-
} from "./chunk-7XR7KMAA.mjs";
|
|
10
|
-
|
|
11
|
-
// src/capabilities/react-surface.tsx
|
|
12
|
-
import React from "react";
|
|
13
|
-
import { contributes, Capabilities, createSurface } from "@dxos/app-framework";
|
|
14
|
-
import { SettingsStore } from "@dxos/local-storage";
|
|
15
|
-
var react_surface_default = () => contributes(Capabilities.ReactSurface, [
|
|
16
|
-
createSurface({
|
|
17
|
-
id: OBSERVABILITY_PLUGIN,
|
|
18
|
-
role: "article",
|
|
19
|
-
filter: (data) => data.subject instanceof SettingsStore && data.subject.prefix === OBSERVABILITY_PLUGIN,
|
|
20
|
-
component: ({ data: { subject } }) => /* @__PURE__ */ React.createElement(ObservabilitySettings, {
|
|
21
|
-
settings: subject.value
|
|
22
|
-
})
|
|
23
|
-
}),
|
|
24
|
-
createSurface({
|
|
25
|
-
id: `${OBSERVABILITY_PLUGIN}/help`,
|
|
26
|
-
role: "deck-companion--help",
|
|
27
|
-
component: () => /* @__PURE__ */ React.createElement(HelpContainer, null)
|
|
28
|
-
})
|
|
29
|
-
]);
|
|
30
|
-
export {
|
|
31
|
-
react_surface_default as default
|
|
32
|
-
};
|
|
33
|
-
//# sourceMappingURL=react-surface-ZYMR7TMY.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 { contributes, Capabilities, createSurface } from '@dxos/app-framework';\nimport { SettingsStore } from '@dxos/local-storage';\n\nimport { HelpContainer, ObservabilitySettings, type ObservabilitySettingsProps } from '../components';\nimport { OBSERVABILITY_PLUGIN } from '../meta';\n\nexport default () =>\n contributes(Capabilities.ReactSurface, [\n createSurface({\n id: OBSERVABILITY_PLUGIN,\n role: 'article',\n filter: (data): data is { subject: SettingsStore<ObservabilitySettingsProps> } =>\n data.subject instanceof SettingsStore && data.subject.prefix === OBSERVABILITY_PLUGIN,\n component: ({ data: { subject } }) => <ObservabilitySettings settings={subject.value} />,\n }),\n createSurface({\n id: `${OBSERVABILITY_PLUGIN}/help`,\n role: 'deck-companion--help',\n component: () => <HelpContainer />,\n }),\n ]);\n"],
|
|
5
|
-
"mappings": ";;;;;;;;;;;AAIA,OAAOA,WAAW;AAElB,SAASC,aAAaC,cAAcC,qBAAqB;AACzD,SAASC,qBAAqB;AAK9B,IAAA,wBAAe,MACbC,YAAYC,aAAaC,cAAc;EACrCC,cAAc;IACZC,IAAIC;IACJC,MAAM;IACNC,QAAQ,CAACC,SACPA,KAAKC,mBAAmBC,iBAAiBF,KAAKC,QAAQE,WAAWN;IACnEO,WAAW,CAAC,EAAEJ,MAAM,EAAEC,QAAO,EAAE,MAAO,sBAAA,cAACI,uBAAAA;MAAsBC,UAAUL,QAAQM;;EACjF,CAAA;EACAZ,cAAc;IACZC,IAAI,GAAGC,oBAAAA;IACPC,MAAM;IACNM,WAAW,MAAM,sBAAA,cAACI,eAAAA,IAAAA;EACpB,CAAA;CACD;",
|
|
6
|
-
"names": ["React", "contributes", "Capabilities", "createSurface", "SettingsStore", "contributes", "Capabilities", "ReactSurface", "createSurface", "id", "OBSERVABILITY_PLUGIN", "role", "filter", "data", "subject", "SettingsStore", "prefix", "component", "ObservabilitySettings", "settings", "value", "HelpContainer"]
|
|
7
|
-
}
|
|
@@ -1,26 +0,0 @@
|
|
|
1
|
-
import { createRequire } from 'node:module';const require = createRequire(import.meta.url);
|
|
2
|
-
import {
|
|
3
|
-
ObservabilitySettingsSchema
|
|
4
|
-
} from "./chunk-TYZLSIA4.mjs";
|
|
5
|
-
import "./chunk-5W5V4TVX.mjs";
|
|
6
|
-
import {
|
|
7
|
-
meta
|
|
8
|
-
} from "./chunk-7XR7KMAA.mjs";
|
|
9
|
-
|
|
10
|
-
// src/capabilities/settings.ts
|
|
11
|
-
import { Capabilities, contributes } from "@dxos/app-framework";
|
|
12
|
-
import { live } from "@dxos/live-object";
|
|
13
|
-
var settings_default = () => {
|
|
14
|
-
const settings = live({
|
|
15
|
-
enabled: true
|
|
16
|
-
});
|
|
17
|
-
return contributes(Capabilities.Settings, {
|
|
18
|
-
prefix: meta.id,
|
|
19
|
-
schema: ObservabilitySettingsSchema,
|
|
20
|
-
value: settings
|
|
21
|
-
});
|
|
22
|
-
};
|
|
23
|
-
export {
|
|
24
|
-
settings_default as default
|
|
25
|
-
};
|
|
26
|
-
//# sourceMappingURL=settings-HSLQO3OC.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,mBAAe,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,27 +0,0 @@
|
|
|
1
|
-
import { createRequire } from 'node:module';const require = createRequire(import.meta.url);
|
|
2
|
-
import {
|
|
3
|
-
ObservabilityCapabilities
|
|
4
|
-
} from "./chunk-JTKEM7PT.mjs";
|
|
5
|
-
import {
|
|
6
|
-
OBSERVABILITY_PLUGIN
|
|
7
|
-
} from "./chunk-7XR7KMAA.mjs";
|
|
8
|
-
|
|
9
|
-
// src/capabilities/state.ts
|
|
10
|
-
import { contributes } from "@dxos/app-framework";
|
|
11
|
-
import { LocalStorageStore } from "@dxos/local-storage";
|
|
12
|
-
import { getObservabilityGroup } from "@dxos/observability";
|
|
13
|
-
var state_default = async ({ namespace }) => {
|
|
14
|
-
const state = new LocalStorageStore(OBSERVABILITY_PLUGIN);
|
|
15
|
-
state.prop({
|
|
16
|
-
key: "notified",
|
|
17
|
-
type: LocalStorageStore.bool({
|
|
18
|
-
allowUndefined: true
|
|
19
|
-
})
|
|
20
|
-
});
|
|
21
|
-
state.values.group = await getObservabilityGroup(namespace);
|
|
22
|
-
return contributes(ObservabilityCapabilities.State, state.values, () => state.close());
|
|
23
|
-
};
|
|
24
|
-
export {
|
|
25
|
-
state_default as default
|
|
26
|
-
};
|
|
27
|
-
//# sourceMappingURL=state-J2WS6L64.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 { ObservabilityCapabilities } from './capabilities';\nimport { OBSERVABILITY_PLUGIN } from '../meta';\n\nexport default async ({ namespace }: { namespace: string }) => {\n const state = new LocalStorageStore<ObservabilityCapabilities.State>(OBSERVABILITY_PLUGIN);\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;AAKtC,IAAA,gBAAe,OAAO,EAAEC,UAAS,MAAyB;AACxD,QAAMC,QAAQ,IAAIC,kBAAmDC,oBAAAA;AAErEF,QAAMG,KAAK;IAAEC,KAAK;IAAYC,MAAMJ,kBAAkBK,KAAK;MAAEC,gBAAgB;IAAK,CAAA;EAAG,CAAA;AAGrFP,QAAMQ,OAAOC,QAAQ,MAAMC,sBAAsBX,SAAAA;AAEjD,SAAOY,YAAYC,0BAA0BC,OAAOb,MAAMQ,QAAQ,MAAMR,MAAMc,MAAK,CAAA;AACrF;",
|
|
6
|
-
"names": ["contributes", "LocalStorageStore", "getObservabilityGroup", "namespace", "state", "LocalStorageStore", "OBSERVABILITY_PLUGIN", "prop", "key", "type", "bool", "allowUndefined", "values", "group", "getObservabilityGroup", "contributes", "ObservabilityCapabilities", "State", "close"]
|
|
7
|
-
}
|
|
@@ -1,4 +0,0 @@
|
|
|
1
|
-
import { type PluginContext } from '@dxos/app-framework';
|
|
2
|
-
declare const _default: (context: PluginContext) => import("@dxos/app-framework").Capability<import("@dxos/app-graph").BuilderExtensions>;
|
|
3
|
-
export default _default;
|
|
4
|
-
//# sourceMappingURL=app-graph-builder.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"app-graph-builder.d.ts","sourceRoot":"","sources":["../../../../src/capabilities/app-graph-builder.ts"],"names":[],"mappings":"AAOA,OAAO,EAA6B,KAAK,aAAa,EAAE,MAAM,qBAAqB,CAAC;yBASpE,SAAS,aAAa;AAAtC,wBA4BK"}
|
|
@@ -1,12 +0,0 @@
|
|
|
1
|
-
import { type Client } from '@dxos/client';
|
|
2
|
-
import { type Observability } from '@dxos/observability';
|
|
3
|
-
export declare namespace ObservabilityCapabilities {
|
|
4
|
-
type State = {
|
|
5
|
-
group?: string;
|
|
6
|
-
notified?: boolean;
|
|
7
|
-
};
|
|
8
|
-
const State: import("@dxos/app-framework").InterfaceDef<State>;
|
|
9
|
-
const Observability: import("@dxos/app-framework").InterfaceDef<Observability>;
|
|
10
|
-
}
|
|
11
|
-
export declare const ClientCapability: import("@dxos/app-framework").InterfaceDef<Client>;
|
|
12
|
-
//# sourceMappingURL=capabilities.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"capabilities.d.ts","sourceRoot":"","sources":["../../../../src/capabilities/capabilities.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,KAAK,MAAM,EAAE,MAAM,cAAc,CAAC;AAC3C,OAAO,EAAE,KAAK,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAIzD,yBAAiB,yBAAyB,CAAC;IACzC,KAAY,KAAK,GAAG;QAClB,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,QAAQ,CAAC,EAAE,OAAO,CAAC;KACpB,CAAC;IACK,MAAM,KAAK,mDAAsE,CAAC;IAElF,MAAM,aAAa,2DAAsF,CAAC;CAClH;AAGD,eAAO,MAAM,gBAAgB,oDAAuE,CAAC"}
|
|
@@ -1,10 +0,0 @@
|
|
|
1
|
-
import { type PluginContext } from '@dxos/app-framework';
|
|
2
|
-
import { type Observability } from '@dxos/observability';
|
|
3
|
-
type ClientReadyOptions = {
|
|
4
|
-
context: PluginContext;
|
|
5
|
-
namespace: string;
|
|
6
|
-
observability: Observability;
|
|
7
|
-
};
|
|
8
|
-
declare const _default: ({ context, namespace, observability }: ClientReadyOptions) => Promise<import("@dxos/app-framework").Capability<Observability>>;
|
|
9
|
-
export default _default;
|
|
10
|
-
//# sourceMappingURL=client-ready.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"client-ready.d.ts","sourceRoot":"","sources":["../../../../src/capabilities/client-ready.ts"],"names":[],"mappings":"AAIA,OAAO,EAML,KAAK,aAAa,EACnB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAA2B,KAAK,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAMlF,KAAK,kBAAkB,GAAG;IACxB,OAAO,EAAE,aAAa,CAAC;IACvB,SAAS,EAAE,MAAM,CAAC;IAClB,aAAa,EAAE,aAAa,CAAC;CAC9B,CAAC;yBAEoB,uCAAuC,kBAAkB;AAA/E,wBAwEE"}
|
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
import { Capabilities, type PluginContext } from '@dxos/app-framework';
|
|
2
|
-
declare const _default: ({ context, namespace }: {
|
|
3
|
-
context: PluginContext;
|
|
4
|
-
namespace: string;
|
|
5
|
-
}) => import("@dxos/app-framework").Capability<Capabilities.IntentResolver>;
|
|
6
|
-
export default _default;
|
|
7
|
-
//# sourceMappingURL=intent-resolver.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"intent-resolver.d.ts","sourceRoot":"","sources":["../../../../src/capabilities/intent-resolver.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,YAAY,EAA6C,KAAK,aAAa,EAAE,MAAM,qBAAqB,CAAC;yBASlG,wBAAwB;IAAE,OAAO,EAAE,aAAa,CAAC;IAAC,SAAS,EAAE,MAAM,CAAA;CAAE;AAArF,wBAsDK"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"react-surface.d.ts","sourceRoot":"","sources":["../../../../src/capabilities/react-surface.tsx"],"names":[],"mappings":"AAMA,OAAO,EAAe,YAAY,EAAiB,MAAM,qBAAqB,CAAC;;AAM/E,wBAcK"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"settings.d.ts","sourceRoot":"","sources":["../../../../src/capabilities/settings.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,YAAY,EAAe,MAAM,qBAAqB,CAAC;;AAMhE,wBAUE"}
|
|
@@ -1,6 +0,0 @@
|
|
|
1
|
-
import { ObservabilityCapabilities } from './capabilities';
|
|
2
|
-
declare const _default: ({ namespace }: {
|
|
3
|
-
namespace: string;
|
|
4
|
-
}) => Promise<import("@dxos/app-framework").Capability<import("@dxos/live-object").Live<ObservabilityCapabilities.State>>>;
|
|
5
|
-
export default _default;
|
|
6
|
-
//# sourceMappingURL=state.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"state.d.ts","sourceRoot":"","sources":["../../../../src/capabilities/state.ts"],"names":[],"mappings":"AAQA,OAAO,EAAE,yBAAyB,EAAE,MAAM,gBAAgB,CAAC;yBAGrC,eAAe;IAAE,SAAS,EAAE,MAAM,CAAA;CAAE;AAA1D,wBASE"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"events.d.ts","sourceRoot":"","sources":["../../../src/events.ts"],"names":[],"mappings":"AAQA,yBAAiB,mBAAmB,CAAC;IAC5B,MAAM,UAAU,+CAAgD,CAAC;CACzE;AAGD,eAAO,MAAM,gBAAgB,+CAA2D,CAAC"}
|
|
@@ -1,45 +0,0 @@
|
|
|
1
|
-
//
|
|
2
|
-
// Copyright 2025 DXOS.org
|
|
3
|
-
//
|
|
4
|
-
|
|
5
|
-
import { Rx } from '@effect-rx/rx-react';
|
|
6
|
-
import { Option, pipe } from 'effect';
|
|
7
|
-
|
|
8
|
-
import { Capabilities, contributes, type PluginContext } from '@dxos/app-framework';
|
|
9
|
-
import { createExtension, ROOT_ID } from '@dxos/plugin-graph';
|
|
10
|
-
|
|
11
|
-
import { OBSERVABILITY_PLUGIN } from '../meta';
|
|
12
|
-
|
|
13
|
-
// NOTE: Copied from @dxos/plugin-deck to break circular dependency.
|
|
14
|
-
const ATTENDABLE_PATH_SEPARATOR = '~';
|
|
15
|
-
const DECK_COMPANION_TYPE = 'dxos.org/plugin/deck/deck-companion';
|
|
16
|
-
|
|
17
|
-
export default (context: PluginContext) =>
|
|
18
|
-
contributes(Capabilities.AppGraphBuilder, [
|
|
19
|
-
createExtension({
|
|
20
|
-
id: `${OBSERVABILITY_PLUGIN}/help`,
|
|
21
|
-
connector: (node) =>
|
|
22
|
-
Rx.make((get) =>
|
|
23
|
-
pipe(
|
|
24
|
-
get(node),
|
|
25
|
-
Option.flatMap((node) => (node.id === ROOT_ID ? Option.some(node) : Option.none())),
|
|
26
|
-
Option.map((node) => {
|
|
27
|
-
return [
|
|
28
|
-
{
|
|
29
|
-
id: [node.id, 'help'].join(ATTENDABLE_PATH_SEPARATOR),
|
|
30
|
-
type: DECK_COMPANION_TYPE,
|
|
31
|
-
data: null,
|
|
32
|
-
properties: {
|
|
33
|
-
label: ['help label', { ns: OBSERVABILITY_PLUGIN }],
|
|
34
|
-
icon: 'ph--question--regular',
|
|
35
|
-
disposition: 'hidden',
|
|
36
|
-
position: 'hoist',
|
|
37
|
-
},
|
|
38
|
-
},
|
|
39
|
-
];
|
|
40
|
-
}),
|
|
41
|
-
Option.getOrElse(() => []),
|
|
42
|
-
),
|
|
43
|
-
),
|
|
44
|
-
}),
|
|
45
|
-
]);
|
|
@@ -1,22 +0,0 @@
|
|
|
1
|
-
//
|
|
2
|
-
// Copyright 2025 DXOS.org
|
|
3
|
-
//
|
|
4
|
-
|
|
5
|
-
import { defineCapability } from '@dxos/app-framework';
|
|
6
|
-
import { type Client } from '@dxos/client';
|
|
7
|
-
import { type Observability } from '@dxos/observability';
|
|
8
|
-
|
|
9
|
-
import { OBSERVABILITY_PLUGIN } from '../meta';
|
|
10
|
-
|
|
11
|
-
export namespace ObservabilityCapabilities {
|
|
12
|
-
export type State = {
|
|
13
|
-
group?: string;
|
|
14
|
-
notified?: boolean;
|
|
15
|
-
};
|
|
16
|
-
export const State = defineCapability<State>(`${OBSERVABILITY_PLUGIN}/capability/state`);
|
|
17
|
-
|
|
18
|
-
export const Observability = defineCapability<Observability>(`${OBSERVABILITY_PLUGIN}/capability/observability`);
|
|
19
|
-
}
|
|
20
|
-
|
|
21
|
-
// NOTE: This is cloned from the client plugin to avoid circular dependencies.
|
|
22
|
-
export const ClientCapability = defineCapability<Client>('dxos.org/plugin/client/capability/client');
|
|
@@ -1,97 +0,0 @@
|
|
|
1
|
-
//
|
|
2
|
-
// Copyright 2025 DXOS.org
|
|
3
|
-
//
|
|
4
|
-
|
|
5
|
-
import {
|
|
6
|
-
Capabilities,
|
|
7
|
-
contributes,
|
|
8
|
-
createIntent,
|
|
9
|
-
LayoutAction,
|
|
10
|
-
SettingsAction,
|
|
11
|
-
type PluginContext,
|
|
12
|
-
} from '@dxos/app-framework';
|
|
13
|
-
import { setupTelemetryListeners, type Observability } from '@dxos/observability';
|
|
14
|
-
|
|
15
|
-
import { ClientCapability, ObservabilityCapabilities } from './capabilities';
|
|
16
|
-
import { OBSERVABILITY_PLUGIN } from '../meta';
|
|
17
|
-
import { ObservabilityAction } from '../types';
|
|
18
|
-
|
|
19
|
-
type ClientReadyOptions = {
|
|
20
|
-
context: PluginContext;
|
|
21
|
-
namespace: string;
|
|
22
|
-
observability: Observability;
|
|
23
|
-
};
|
|
24
|
-
|
|
25
|
-
export default async ({ context, namespace, observability }: ClientReadyOptions) => {
|
|
26
|
-
const manager = context.getCapability(Capabilities.PluginManager);
|
|
27
|
-
const { dispatchPromise: dispatch } = context.getCapability(Capabilities.IntentDispatcher);
|
|
28
|
-
const state = context.getCapability(ObservabilityCapabilities.State);
|
|
29
|
-
const client = context.getCapability(ClientCapability);
|
|
30
|
-
|
|
31
|
-
const sendPrivacyNotice = async () => {
|
|
32
|
-
const environment = client?.config?.values.runtime?.app?.env?.DX_ENVIRONMENT;
|
|
33
|
-
const notify =
|
|
34
|
-
environment && environment !== 'ci' && !environment.endsWith('.local') && !environment.endsWith('.lan');
|
|
35
|
-
if (!state.notified && notify) {
|
|
36
|
-
await dispatch(
|
|
37
|
-
createIntent(LayoutAction.AddToast, {
|
|
38
|
-
part: 'toast',
|
|
39
|
-
subject: {
|
|
40
|
-
id: `${OBSERVABILITY_PLUGIN}/notice`,
|
|
41
|
-
title: ['observability toast label', { ns: OBSERVABILITY_PLUGIN }],
|
|
42
|
-
description: ['observability toast description', { ns: OBSERVABILITY_PLUGIN }],
|
|
43
|
-
duration: Infinity,
|
|
44
|
-
icon: 'ph--info--regular',
|
|
45
|
-
actionLabel: ['observability toast action label', { ns: OBSERVABILITY_PLUGIN }],
|
|
46
|
-
actionAlt: ['observability toast action alt', { ns: OBSERVABILITY_PLUGIN }],
|
|
47
|
-
closeLabel: ['observability toast close label', { ns: OBSERVABILITY_PLUGIN }],
|
|
48
|
-
onAction: () => dispatch(createIntent(SettingsAction.Open, { plugin: OBSERVABILITY_PLUGIN })),
|
|
49
|
-
},
|
|
50
|
-
}),
|
|
51
|
-
);
|
|
52
|
-
|
|
53
|
-
state.notified = true;
|
|
54
|
-
}
|
|
55
|
-
};
|
|
56
|
-
|
|
57
|
-
// Ensure errors are tagged with enabled plugins to help with reproductions.
|
|
58
|
-
manager.enabled.map((plugin) => observability?.setTag(`pluginEnabled-${plugin}`, 'true', 'errors'));
|
|
59
|
-
|
|
60
|
-
await dispatch(
|
|
61
|
-
createIntent(ObservabilityAction.SendEvent, {
|
|
62
|
-
name: 'page.load',
|
|
63
|
-
properties: {
|
|
64
|
-
// TODO(wittjosiah): These apis are deprecated. Is there a better way to find this information?
|
|
65
|
-
loadDuration: window.performance.timing.loadEventEnd - window.performance.timing.loadEventStart,
|
|
66
|
-
},
|
|
67
|
-
}),
|
|
68
|
-
);
|
|
69
|
-
|
|
70
|
-
// Start client observability (i.e. not running as shared worker)
|
|
71
|
-
// TODO(nf): how to prevent multiple instances for single shared worker?
|
|
72
|
-
const cleanup = setupTelemetryListeners(namespace, client, observability);
|
|
73
|
-
|
|
74
|
-
await Promise.all([
|
|
75
|
-
observability.setIdentityTags(client.services.services),
|
|
76
|
-
observability.startRuntimeMetrics(client),
|
|
77
|
-
observability.startNetworkMetrics(client.services.services),
|
|
78
|
-
observability.startSpacesMetrics(client, namespace),
|
|
79
|
-
]);
|
|
80
|
-
|
|
81
|
-
if (client.halo.identity.get()) {
|
|
82
|
-
await sendPrivacyNotice();
|
|
83
|
-
} else {
|
|
84
|
-
const subscription = client.halo.identity.subscribe(async (identity) => {
|
|
85
|
-
if (identity && observability) {
|
|
86
|
-
await sendPrivacyNotice();
|
|
87
|
-
await observability.setIdentityTags(client.services.services);
|
|
88
|
-
subscription.unsubscribe();
|
|
89
|
-
}
|
|
90
|
-
});
|
|
91
|
-
}
|
|
92
|
-
|
|
93
|
-
return contributes(ObservabilityCapabilities.Observability, observability, async () => {
|
|
94
|
-
cleanup();
|
|
95
|
-
await observability.close();
|
|
96
|
-
});
|
|
97
|
-
};
|
|
@@ -1,68 +0,0 @@
|
|
|
1
|
-
//
|
|
2
|
-
// Copyright 2025 DXOS.org
|
|
3
|
-
//
|
|
4
|
-
|
|
5
|
-
import { Capabilities, contributes, createResolver, IntentAction, type PluginContext } from '@dxos/app-framework';
|
|
6
|
-
import { log } from '@dxos/log';
|
|
7
|
-
import { getTelemetryIdentity, storeObservabilityDisabled } from '@dxos/observability';
|
|
8
|
-
|
|
9
|
-
import { ClientCapability, ObservabilityCapabilities } from './capabilities';
|
|
10
|
-
import { type ObservabilitySettingsProps } from '../components';
|
|
11
|
-
import { OBSERVABILITY_PLUGIN } from '../meta';
|
|
12
|
-
import { ObservabilityAction } from '../types';
|
|
13
|
-
|
|
14
|
-
export default ({ context, namespace }: { context: PluginContext; namespace: string }) =>
|
|
15
|
-
contributes(Capabilities.IntentResolver, [
|
|
16
|
-
createResolver({
|
|
17
|
-
intent: IntentAction.Track,
|
|
18
|
-
resolve: (intent) => {
|
|
19
|
-
log.info('intent', { intent });
|
|
20
|
-
},
|
|
21
|
-
}),
|
|
22
|
-
createResolver({
|
|
23
|
-
intent: ObservabilityAction.Toggle,
|
|
24
|
-
resolve: async ({ state }) => {
|
|
25
|
-
const client = context.getCapability(ClientCapability);
|
|
26
|
-
const observability = context.getCapability(ObservabilityCapabilities.Observability);
|
|
27
|
-
const settings = context
|
|
28
|
-
.getCapability(Capabilities.SettingsStore)
|
|
29
|
-
.getStore<ObservabilitySettingsProps>(OBSERVABILITY_PLUGIN)!.value;
|
|
30
|
-
settings.enabled = state ?? !settings.enabled;
|
|
31
|
-
observability.track({
|
|
32
|
-
...getTelemetryIdentity(client),
|
|
33
|
-
action: 'observability.toggle',
|
|
34
|
-
properties: {
|
|
35
|
-
enabled: settings.enabled,
|
|
36
|
-
},
|
|
37
|
-
});
|
|
38
|
-
observability.setMode(settings.enabled ? 'basic' : 'disabled');
|
|
39
|
-
await storeObservabilityDisabled(namespace, !settings.enabled);
|
|
40
|
-
return { data: settings.enabled };
|
|
41
|
-
},
|
|
42
|
-
}),
|
|
43
|
-
createResolver({
|
|
44
|
-
intent: ObservabilityAction.SendEvent,
|
|
45
|
-
resolve: (data) => {
|
|
46
|
-
const client = context.getCapability(ClientCapability);
|
|
47
|
-
const properties = 'properties' in data ? data.properties : {};
|
|
48
|
-
|
|
49
|
-
// NOTE: This is to ensure that events fired before observability is ready are still sent.
|
|
50
|
-
// TODO(wittjosiah): If the intent dispatcher supports concurrent actions in the future,
|
|
51
|
-
// then this could be awaited still rather than voiding.
|
|
52
|
-
void context.waitForCapability(ObservabilityCapabilities.Observability).then((observability) => {
|
|
53
|
-
observability.track({
|
|
54
|
-
...getTelemetryIdentity(client),
|
|
55
|
-
action: data.name,
|
|
56
|
-
properties,
|
|
57
|
-
});
|
|
58
|
-
});
|
|
59
|
-
},
|
|
60
|
-
}),
|
|
61
|
-
createResolver({
|
|
62
|
-
intent: ObservabilityAction.CaptureUserFeedback,
|
|
63
|
-
resolve: async (data) => {
|
|
64
|
-
const observability = context.getCapability(ObservabilityCapabilities.Observability);
|
|
65
|
-
observability.captureUserFeedback(data.message);
|
|
66
|
-
},
|
|
67
|
-
}),
|
|
68
|
-
]);
|
|
@@ -1,27 +0,0 @@
|
|
|
1
|
-
//
|
|
2
|
-
// Copyright 2025 DXOS.org
|
|
3
|
-
//
|
|
4
|
-
|
|
5
|
-
import React from 'react';
|
|
6
|
-
|
|
7
|
-
import { contributes, Capabilities, createSurface } from '@dxos/app-framework';
|
|
8
|
-
import { SettingsStore } from '@dxos/local-storage';
|
|
9
|
-
|
|
10
|
-
import { HelpContainer, ObservabilitySettings, type ObservabilitySettingsProps } from '../components';
|
|
11
|
-
import { OBSERVABILITY_PLUGIN } from '../meta';
|
|
12
|
-
|
|
13
|
-
export default () =>
|
|
14
|
-
contributes(Capabilities.ReactSurface, [
|
|
15
|
-
createSurface({
|
|
16
|
-
id: OBSERVABILITY_PLUGIN,
|
|
17
|
-
role: 'article',
|
|
18
|
-
filter: (data): data is { subject: SettingsStore<ObservabilitySettingsProps> } =>
|
|
19
|
-
data.subject instanceof SettingsStore && data.subject.prefix === OBSERVABILITY_PLUGIN,
|
|
20
|
-
component: ({ data: { subject } }) => <ObservabilitySettings settings={subject.value} />,
|
|
21
|
-
}),
|
|
22
|
-
createSurface({
|
|
23
|
-
id: `${OBSERVABILITY_PLUGIN}/help`,
|
|
24
|
-
role: 'deck-companion--help',
|
|
25
|
-
component: () => <HelpContainer />,
|
|
26
|
-
}),
|
|
27
|
-
]);
|
|
@@ -1,21 +0,0 @@
|
|
|
1
|
-
//
|
|
2
|
-
// Copyright 2025 DXOS.org
|
|
3
|
-
//
|
|
4
|
-
|
|
5
|
-
import { Capabilities, contributes } from '@dxos/app-framework';
|
|
6
|
-
import { live } from '@dxos/live-object';
|
|
7
|
-
|
|
8
|
-
import { type ObservabilitySettingsProps, ObservabilitySettingsSchema } from '../components';
|
|
9
|
-
import { meta } from '../meta';
|
|
10
|
-
|
|
11
|
-
export default () => {
|
|
12
|
-
const settings = live<ObservabilitySettingsProps>({
|
|
13
|
-
enabled: true,
|
|
14
|
-
});
|
|
15
|
-
|
|
16
|
-
return contributes(Capabilities.Settings, {
|
|
17
|
-
prefix: meta.id,
|
|
18
|
-
schema: ObservabilitySettingsSchema,
|
|
19
|
-
value: settings,
|
|
20
|
-
});
|
|
21
|
-
};
|
|
@@ -1,21 +0,0 @@
|
|
|
1
|
-
//
|
|
2
|
-
// Copyright 2025 DXOS.org
|
|
3
|
-
//
|
|
4
|
-
|
|
5
|
-
import { contributes } from '@dxos/app-framework';
|
|
6
|
-
import { LocalStorageStore } from '@dxos/local-storage';
|
|
7
|
-
import { getObservabilityGroup } from '@dxos/observability';
|
|
8
|
-
|
|
9
|
-
import { ObservabilityCapabilities } from './capabilities';
|
|
10
|
-
import { OBSERVABILITY_PLUGIN } from '../meta';
|
|
11
|
-
|
|
12
|
-
export default async ({ namespace }: { namespace: string }) => {
|
|
13
|
-
const state = new LocalStorageStore<ObservabilityCapabilities.State>(OBSERVABILITY_PLUGIN);
|
|
14
|
-
|
|
15
|
-
state.prop({ key: 'notified', type: LocalStorageStore.bool({ allowUndefined: true }) });
|
|
16
|
-
|
|
17
|
-
// NOTE: This is not stored in local storage such that it can be accessed by workers.
|
|
18
|
-
state.values.group = await getObservabilityGroup(namespace);
|
|
19
|
-
|
|
20
|
-
return contributes(ObservabilityCapabilities.State, state.values, () => state.close());
|
|
21
|
-
};
|
package/src/events.ts
DELETED
|
@@ -1,14 +0,0 @@
|
|
|
1
|
-
//
|
|
2
|
-
// Copyright 2025 DXOS.org
|
|
3
|
-
//
|
|
4
|
-
|
|
5
|
-
import { defineEvent, Events } from '@dxos/app-framework';
|
|
6
|
-
|
|
7
|
-
import { OBSERVABILITY_PLUGIN } from './meta';
|
|
8
|
-
|
|
9
|
-
export namespace ObservabilityEvents {
|
|
10
|
-
export const StateReady = Events.createStateEvent(OBSERVABILITY_PLUGIN);
|
|
11
|
-
}
|
|
12
|
-
|
|
13
|
-
// NOTE: This is cloned from the client plugin to avoid circular dependencies.
|
|
14
|
-
export const ClientReadyEvent = defineEvent('dxos.org/plugin/client/event/client-ready');
|