@dxos/plugin-observability 0.8.4-main.3c1ae3b → 0.8.4-main.3eb6e50203
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-W7QWKVS3.mjs → chunk-3XZDP7JS.mjs} +1 -1
- 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 +74 -77
- 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-AVJTLRX5.mjs → chunk-2ECMMPZY.mjs} +1 -1
- 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 +74 -77
- 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 +3 -2
- 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 +2 -1
- package/dist/types/src/components/FeedbackForm.stories.d.ts.map +1 -1
- 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 +4 -2
- 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 -2
- package/dist/types/src/meta.d.ts.map +1 -1
- package/dist/types/src/translations.d.ts +1 -0
- 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 +56 -306
- package/dist/types/src/types/schema.d.ts.map +1 -1
- package/dist/types/tsconfig.tsbuildinfo +1 -1
- package/package.json +45 -33
- package/src/ObservabilityPlugin.ts +47 -46
- 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 +1 -1
- package/src/components/FeedbackForm.tsx +10 -5
- package/src/components/HelpContainer.tsx +40 -26
- package/src/components/ObservabilitySettings.tsx +19 -15
- package/src/index.ts +1 -2
- package/src/meta.ts +2 -2
- package/src/translations.ts +1 -0
- 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 +52 -188
- package/dist/lib/browser/app-graph-builder-3I6HZ5AR.mjs +0 -44
- package/dist/lib/browser/app-graph-builder-3I6HZ5AR.mjs.map +0 -7
- package/dist/lib/browser/chunk-EC7HTFA5.mjs +0 -18
- package/dist/lib/browser/chunk-EC7HTFA5.mjs.map +0 -7
- package/dist/lib/browser/chunk-RLY6UZDS.mjs +0 -123
- package/dist/lib/browser/chunk-RLY6UZDS.mjs.map +0 -7
- package/dist/lib/browser/chunk-RRMLEY35.mjs +0 -218
- package/dist/lib/browser/chunk-RRMLEY35.mjs.map +0 -7
- package/dist/lib/browser/chunk-W7QWKVS3.mjs.map +0 -7
- package/dist/lib/browser/client-ready-XT27JB7J.mjs +0 -102
- package/dist/lib/browser/client-ready-XT27JB7J.mjs.map +0 -7
- package/dist/lib/browser/intent-resolver-QRKGLMMT.mjs +0 -77
- package/dist/lib/browser/intent-resolver-QRKGLMMT.mjs.map +0 -7
- package/dist/lib/browser/react-surface-F5GY7AAC.mjs +0 -32
- package/dist/lib/browser/react-surface-F5GY7AAC.mjs.map +0 -7
- package/dist/lib/browser/settings-SAFMS6TG.mjs +0 -25
- package/dist/lib/browser/settings-SAFMS6TG.mjs.map +0 -7
- package/dist/lib/browser/state-FJD6K3ZZ.mjs +0 -26
- package/dist/lib/browser/state-FJD6K3ZZ.mjs.map +0 -7
- package/dist/lib/node-esm/app-graph-builder-KH2GA6G7.mjs +0 -45
- package/dist/lib/node-esm/app-graph-builder-KH2GA6G7.mjs.map +0 -7
- package/dist/lib/node-esm/chunk-AVJTLRX5.mjs.map +0 -7
- package/dist/lib/node-esm/chunk-HACSZKXD.mjs +0 -19
- package/dist/lib/node-esm/chunk-HACSZKXD.mjs.map +0 -7
- package/dist/lib/node-esm/chunk-JJBWCCSZ.mjs +0 -124
- package/dist/lib/node-esm/chunk-JJBWCCSZ.mjs.map +0 -7
- package/dist/lib/node-esm/chunk-T5OWY73X.mjs +0 -219
- package/dist/lib/node-esm/chunk-T5OWY73X.mjs.map +0 -7
- package/dist/lib/node-esm/client-ready-AXZXR5EX.mjs +0 -103
- package/dist/lib/node-esm/client-ready-AXZXR5EX.mjs.map +0 -7
- package/dist/lib/node-esm/intent-resolver-WXZEG7SP.mjs +0 -78
- package/dist/lib/node-esm/intent-resolver-WXZEG7SP.mjs.map +0 -7
- package/dist/lib/node-esm/react-surface-DNASLRFA.mjs +0 -33
- package/dist/lib/node-esm/react-surface-DNASLRFA.mjs.map +0 -7
- package/dist/lib/node-esm/settings-22NXJMTF.mjs +0 -26
- package/dist/lib/node-esm/settings-22NXJMTF.mjs.map +0 -7
- package/dist/lib/node-esm/state-XNBMNLB7.mjs +0 -27
- package/dist/lib/node-esm/state-XNBMNLB7.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 -47
- package/src/capabilities/capabilities.ts +0 -23
- package/src/capabilities/client-ready.ts +0 -98
- package/src/capabilities/intent-resolver.ts +0 -69
- package/src/capabilities/react-surface.tsx +0 -27
- package/src/capabilities/settings.ts +0 -21
- package/src/capabilities/state.ts +0 -22
- package/src/events.ts +0 -14
|
@@ -1,103 +0,0 @@
|
|
|
1
|
-
import { createRequire } from 'node:module';const require = createRequire(import.meta.url);
|
|
2
|
-
import {
|
|
3
|
-
ObservabilityAction
|
|
4
|
-
} from "./chunk-T5OWY73X.mjs";
|
|
5
|
-
import {
|
|
6
|
-
ClientCapability,
|
|
7
|
-
ObservabilityCapabilities
|
|
8
|
-
} from "./chunk-HACSZKXD.mjs";
|
|
9
|
-
import {
|
|
10
|
-
meta
|
|
11
|
-
} from "./chunk-AVJTLRX5.mjs";
|
|
12
|
-
|
|
13
|
-
// src/capabilities/client-ready.ts
|
|
14
|
-
import { Capabilities, LayoutAction, SettingsAction, contributes, createIntent } from "@dxos/app-framework";
|
|
15
|
-
import { setupTelemetryListeners } from "@dxos/observability";
|
|
16
|
-
var client_ready_default = (async ({ context, namespace, observability }) => {
|
|
17
|
-
const manager = context.getCapability(Capabilities.PluginManager);
|
|
18
|
-
const { dispatchPromise: dispatch } = context.getCapability(Capabilities.IntentDispatcher);
|
|
19
|
-
const state = context.getCapability(ObservabilityCapabilities.State);
|
|
20
|
-
const client = context.getCapability(ClientCapability);
|
|
21
|
-
const sendPrivacyNotice = async () => {
|
|
22
|
-
const environment = client?.config?.values.runtime?.app?.env?.DX_ENVIRONMENT;
|
|
23
|
-
const notify = environment && environment !== "ci" && !environment.endsWith(".local") && !environment.endsWith(".lan");
|
|
24
|
-
if (!state.notified && notify) {
|
|
25
|
-
await dispatch(createIntent(LayoutAction.AddToast, {
|
|
26
|
-
part: "toast",
|
|
27
|
-
subject: {
|
|
28
|
-
id: `${meta.id}/notice`,
|
|
29
|
-
title: [
|
|
30
|
-
"observability toast label",
|
|
31
|
-
{
|
|
32
|
-
ns: meta.id
|
|
33
|
-
}
|
|
34
|
-
],
|
|
35
|
-
description: [
|
|
36
|
-
"observability toast description",
|
|
37
|
-
{
|
|
38
|
-
ns: meta.id
|
|
39
|
-
}
|
|
40
|
-
],
|
|
41
|
-
duration: Infinity,
|
|
42
|
-
icon: "ph--info--regular",
|
|
43
|
-
actionLabel: [
|
|
44
|
-
"observability toast action label",
|
|
45
|
-
{
|
|
46
|
-
ns: meta.id
|
|
47
|
-
}
|
|
48
|
-
],
|
|
49
|
-
actionAlt: [
|
|
50
|
-
"observability toast action alt",
|
|
51
|
-
{
|
|
52
|
-
ns: meta.id
|
|
53
|
-
}
|
|
54
|
-
],
|
|
55
|
-
closeLabel: [
|
|
56
|
-
"observability toast close label",
|
|
57
|
-
{
|
|
58
|
-
ns: meta.id
|
|
59
|
-
}
|
|
60
|
-
],
|
|
61
|
-
onAction: () => dispatch(createIntent(SettingsAction.Open, {
|
|
62
|
-
plugin: meta.id
|
|
63
|
-
}))
|
|
64
|
-
}
|
|
65
|
-
}));
|
|
66
|
-
state.notified = true;
|
|
67
|
-
}
|
|
68
|
-
};
|
|
69
|
-
manager.enabled.map((plugin) => observability?.setTag(`pluginEnabled-${plugin}`, "true", "errors"));
|
|
70
|
-
await dispatch(createIntent(ObservabilityAction.SendEvent, {
|
|
71
|
-
name: "page.load",
|
|
72
|
-
properties: {
|
|
73
|
-
// TODO(wittjosiah): These apis are deprecated. Is there a better way to find this information?
|
|
74
|
-
loadDuration: window.performance.timing.loadEventEnd - window.performance.timing.loadEventStart
|
|
75
|
-
}
|
|
76
|
-
}));
|
|
77
|
-
const cleanup = setupTelemetryListeners(namespace, client, observability);
|
|
78
|
-
await Promise.all([
|
|
79
|
-
observability.setIdentityTags(client.services.services),
|
|
80
|
-
observability.startRuntimeMetrics(client),
|
|
81
|
-
observability.startNetworkMetrics(client.services.services),
|
|
82
|
-
observability.startSpacesMetrics(client, namespace)
|
|
83
|
-
]);
|
|
84
|
-
if (client.halo.identity.get()) {
|
|
85
|
-
await sendPrivacyNotice();
|
|
86
|
-
} else {
|
|
87
|
-
const subscription = client.halo.identity.subscribe(async (identity) => {
|
|
88
|
-
if (identity && observability) {
|
|
89
|
-
await sendPrivacyNotice();
|
|
90
|
-
await observability.setIdentityTags(client.services.services);
|
|
91
|
-
subscription.unsubscribe();
|
|
92
|
-
}
|
|
93
|
-
});
|
|
94
|
-
}
|
|
95
|
-
return contributes(ObservabilityCapabilities.Observability, observability, async () => {
|
|
96
|
-
cleanup();
|
|
97
|
-
await observability.close();
|
|
98
|
-
});
|
|
99
|
-
});
|
|
100
|
-
export {
|
|
101
|
-
client_ready_default as default
|
|
102
|
-
};
|
|
103
|
-
//# sourceMappingURL=client-ready-AXZXR5EX.mjs.map
|
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"version": 3,
|
|
3
|
-
"sources": ["../../../src/capabilities/client-ready.ts"],
|
|
4
|
-
"sourcesContent": ["//\n// Copyright 2025 DXOS.org\n//\n\nimport {\n Capabilities,\n LayoutAction,\n type PluginContext,\n SettingsAction,\n contributes,\n createIntent,\n} from '@dxos/app-framework';\nimport { type Observability, setupTelemetryListeners } from '@dxos/observability';\n\nimport { meta } from '../meta';\nimport { ObservabilityAction } from '../types';\n\nimport { ClientCapability, ObservabilityCapabilities } from './capabilities';\n\ntype ClientReadyOptions = {\n context: PluginContext;\n namespace: string;\n observability: Observability;\n};\n\nexport default async ({ context, namespace, observability }: ClientReadyOptions) => {\n const manager = context.getCapability(Capabilities.PluginManager);\n const { dispatchPromise: dispatch } = context.getCapability(Capabilities.IntentDispatcher);\n const state = context.getCapability(ObservabilityCapabilities.State);\n const client = context.getCapability(ClientCapability);\n\n const sendPrivacyNotice = async () => {\n const environment = client?.config?.values.runtime?.app?.env?.DX_ENVIRONMENT;\n const notify =\n environment && environment !== 'ci' && !environment.endsWith('.local') && !environment.endsWith('.lan');\n if (!state.notified && notify) {\n await dispatch(\n createIntent(LayoutAction.AddToast, {\n part: 'toast',\n subject: {\n id: `${meta.id}/notice`,\n title: ['observability toast label', { ns: meta.id }],\n description: ['observability toast description', { ns: meta.id }],\n duration: Infinity,\n icon: 'ph--info--regular',\n actionLabel: ['observability toast action label', { ns: meta.id }],\n actionAlt: ['observability toast action alt', { ns: meta.id }],\n closeLabel: ['observability toast close label', { ns: meta.id }],\n onAction: () => dispatch(createIntent(SettingsAction.Open, { plugin: meta.id })),\n },\n }),\n );\n\n state.notified = true;\n }\n };\n\n // Ensure errors are tagged with enabled plugins to help with reproductions.\n manager.enabled.map((plugin) => observability?.setTag(`pluginEnabled-${plugin}`, 'true', 'errors'));\n\n await dispatch(\n createIntent(ObservabilityAction.SendEvent, {\n name: 'page.load',\n properties: {\n // TODO(wittjosiah): These apis are deprecated. Is there a better way to find this information?\n loadDuration: window.performance.timing.loadEventEnd - window.performance.timing.loadEventStart,\n },\n }),\n );\n\n // Start client observability (i.e. not running as shared worker)\n // TODO(nf): how to prevent multiple instances for single shared worker?\n const cleanup = setupTelemetryListeners(namespace, client, observability);\n\n await Promise.all([\n observability.setIdentityTags(client.services.services),\n observability.startRuntimeMetrics(client),\n observability.startNetworkMetrics(client.services.services),\n observability.startSpacesMetrics(client, namespace),\n ]);\n\n if (client.halo.identity.get()) {\n await sendPrivacyNotice();\n } else {\n const subscription = client.halo.identity.subscribe(async (identity) => {\n if (identity && observability) {\n await sendPrivacyNotice();\n await observability.setIdentityTags(client.services.services);\n subscription.unsubscribe();\n }\n });\n }\n\n return contributes(ObservabilityCapabilities.Observability, observability, async () => {\n cleanup();\n await observability.close();\n });\n};\n"],
|
|
5
|
-
"mappings": ";;;;;;;;;;;;;AAIA,SACEA,cACAC,cAEAC,gBACAC,aACAC,oBACK;AACP,SAA6BC,+BAA+B;AAa5D,IAAA,wBAAe,OAAO,EAAEC,SAASC,WAAWC,cAAa,MAAsB;AAC7E,QAAMC,UAAUH,QAAQI,cAAcC,aAAaC,aAAa;AAChE,QAAM,EAAEC,iBAAiBC,SAAQ,IAAKR,QAAQI,cAAcC,aAAaI,gBAAgB;AACzF,QAAMC,QAAQV,QAAQI,cAAcO,0BAA0BC,KAAK;AACnE,QAAMC,SAASb,QAAQI,cAAcU,gBAAAA;AAErC,QAAMC,oBAAoB,YAAA;AACxB,UAAMC,cAAcH,QAAQI,QAAQC,OAAOC,SAASC,KAAKC,KAAKC;AAC9D,UAAMC,SACJP,eAAeA,gBAAgB,QAAQ,CAACA,YAAYQ,SAAS,QAAA,KAAa,CAACR,YAAYQ,SAAS,MAAA;AAClG,QAAI,CAACd,MAAMe,YAAYF,QAAQ;AAC7B,YAAMf,SACJkB,aAAaC,aAAaC,UAAU;QAClCC,MAAM;QACNC,SAAS;UACPC,IAAI,GAAGC,KAAKD,EAAE;UACdE,OAAO;YAAC;YAA6B;cAAEC,IAAIF,KAAKD;YAAG;;UACnDI,aAAa;YAAC;YAAmC;cAAED,IAAIF,KAAKD;YAAG;;UAC/DK,UAAUC;UACVC,MAAM;UACNC,aAAa;YAAC;YAAoC;cAAEL,IAAIF,KAAKD;YAAG;;UAChES,WAAW;YAAC;YAAkC;cAAEN,IAAIF,KAAKD;YAAG;;UAC5DU,YAAY;YAAC;YAAmC;cAAEP,IAAIF,KAAKD;YAAG;;UAC9DW,UAAU,MAAMlC,SAASkB,aAAaiB,eAAeC,MAAM;YAAEC,QAAQb,KAAKD;UAAG,CAAA,CAAA;QAC/E;MACF,CAAA,CAAA;AAGFrB,YAAMe,WAAW;IACnB;EACF;AAGAtB,UAAQ2C,QAAQC,IAAI,CAACF,WAAW3C,eAAe8C,OAAO,iBAAiBH,MAAAA,IAAU,QAAQ,QAAA,CAAA;AAEzF,QAAMrC,SACJkB,aAAauB,oBAAoBC,WAAW;IAC1CC,MAAM;IACNC,YAAY;;MAEVC,cAAcC,OAAOC,YAAYC,OAAOC,eAAeH,OAAOC,YAAYC,OAAOE;IACnF;EACF,CAAA,CAAA;AAKF,QAAMC,UAAUC,wBAAwB3D,WAAWY,QAAQX,aAAAA;AAE3D,QAAM2D,QAAQC,IAAI;IAChB5D,cAAc6D,gBAAgBlD,OAAOmD,SAASA,QAAQ;IACtD9D,cAAc+D,oBAAoBpD,MAAAA;IAClCX,cAAcgE,oBAAoBrD,OAAOmD,SAASA,QAAQ;IAC1D9D,cAAciE,mBAAmBtD,QAAQZ,SAAAA;GAC1C;AAED,MAAIY,OAAOuD,KAAKC,SAASC,IAAG,GAAI;AAC9B,UAAMvD,kBAAAA;EACR,OAAO;AACL,UAAMwD,eAAe1D,OAAOuD,KAAKC,SAASG,UAAU,OAAOH,aAAAA;AACzD,UAAIA,YAAYnE,eAAe;AAC7B,cAAMa,kBAAAA;AACN,cAAMb,cAAc6D,gBAAgBlD,OAAOmD,SAASA,QAAQ;AAC5DO,qBAAaE,YAAW;MAC1B;IACF,CAAA;EACF;AAEA,SAAOC,YAAY/D,0BAA0BgE,eAAezE,eAAe,YAAA;AACzEyD,YAAAA;AACA,UAAMzD,cAAc0E,MAAK;EAC3B,CAAA;AACF;",
|
|
6
|
-
"names": ["Capabilities", "LayoutAction", "SettingsAction", "contributes", "createIntent", "setupTelemetryListeners", "context", "namespace", "observability", "manager", "getCapability", "Capabilities", "PluginManager", "dispatchPromise", "dispatch", "IntentDispatcher", "state", "ObservabilityCapabilities", "State", "client", "ClientCapability", "sendPrivacyNotice", "environment", "config", "values", "runtime", "app", "env", "DX_ENVIRONMENT", "notify", "endsWith", "notified", "createIntent", "LayoutAction", "AddToast", "part", "subject", "id", "meta", "title", "ns", "description", "duration", "Infinity", "icon", "actionLabel", "actionAlt", "closeLabel", "onAction", "SettingsAction", "Open", "plugin", "enabled", "map", "setTag", "ObservabilityAction", "SendEvent", "name", "properties", "loadDuration", "window", "performance", "timing", "loadEventEnd", "loadEventStart", "cleanup", "setupTelemetryListeners", "Promise", "all", "setIdentityTags", "services", "startRuntimeMetrics", "startNetworkMetrics", "startSpacesMetrics", "halo", "identity", "get", "subscription", "subscribe", "unsubscribe", "contributes", "Observability", "close"]
|
|
7
|
-
}
|
|
@@ -1,78 +0,0 @@
|
|
|
1
|
-
import { createRequire } from 'node:module';const require = createRequire(import.meta.url);
|
|
2
|
-
import {
|
|
3
|
-
ObservabilityAction
|
|
4
|
-
} from "./chunk-T5OWY73X.mjs";
|
|
5
|
-
import {
|
|
6
|
-
ClientCapability,
|
|
7
|
-
ObservabilityCapabilities
|
|
8
|
-
} from "./chunk-HACSZKXD.mjs";
|
|
9
|
-
import {
|
|
10
|
-
meta
|
|
11
|
-
} from "./chunk-AVJTLRX5.mjs";
|
|
12
|
-
|
|
13
|
-
// src/capabilities/intent-resolver.ts
|
|
14
|
-
import { Capabilities, IntentAction, contributes, createResolver } 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: 20,
|
|
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(meta.id).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-WXZEG7SP.mjs.map
|
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"version": 3,
|
|
3
|
-
"sources": ["../../../src/capabilities/intent-resolver.ts"],
|
|
4
|
-
"sourcesContent": ["//\n// Copyright 2025 DXOS.org\n//\n\nimport { Capabilities, IntentAction, type PluginContext, contributes, createResolver } from '@dxos/app-framework';\nimport { log } from '@dxos/log';\nimport { getTelemetryIdentity, storeObservabilityDisabled } from '@dxos/observability';\n\nimport { type ObservabilitySettingsProps } from '../components';\nimport { meta } from '../meta';\nimport { ObservabilityAction } from '../types';\n\nimport { ClientCapability, ObservabilityCapabilities } from './capabilities';\n\nexport default ({ context, namespace }: { context: PluginContext; namespace: string }) =>\n contributes(Capabilities.IntentResolver, [\n createResolver({\n intent: IntentAction.Track,\n resolve: (intent) => {\n log.info('intent', { intent });\n },\n }),\n createResolver({\n intent: ObservabilityAction.Toggle,\n resolve: async ({ state }) => {\n const client = context.getCapability(ClientCapability);\n const observability = context.getCapability(ObservabilityCapabilities.Observability);\n const settings = context\n .getCapability(Capabilities.SettingsStore)\n .getStore<ObservabilitySettingsProps>(meta.id)!.value;\n settings.enabled = state ?? !settings.enabled;\n observability.track({\n ...getTelemetryIdentity(client),\n action: 'observability.toggle',\n properties: {\n enabled: settings.enabled,\n },\n });\n observability.setMode(settings.enabled ? 'basic' : 'disabled');\n await storeObservabilityDisabled(namespace, !settings.enabled);\n return { data: settings.enabled };\n },\n }),\n createResolver({\n intent: ObservabilityAction.SendEvent,\n resolve: (data) => {\n const client = context.getCapability(ClientCapability);\n const properties = 'properties' in data ? data.properties : {};\n\n // NOTE: This is to ensure that events fired before observability is ready are still sent.\n // TODO(wittjosiah): If the intent dispatcher supports concurrent actions in the future,\n // then this could be awaited still rather than voiding.\n void context.waitForCapability(ObservabilityCapabilities.Observability).then((observability) => {\n observability.track({\n ...getTelemetryIdentity(client),\n action: data.name,\n properties,\n });\n });\n },\n }),\n createResolver({\n intent: ObservabilityAction.CaptureUserFeedback,\n resolve: async (data) => {\n const observability = context.getCapability(ObservabilityCapabilities.Observability);\n observability.captureUserFeedback(data.message);\n },\n }),\n ]);\n"],
|
|
5
|
-
"mappings": ";;;;;;;;;;;;;AAIA,SAASA,cAAcC,cAAkCC,aAAaC,sBAAsB;AAC5F,SAASC,WAAW;AACpB,SAASC,sBAAsBC,kCAAkC;;AAQjE,IAAA,2BAAe,CAAC,EAAEC,SAASC,UAAS,MAClCC,YAAYC,aAAaC,gBAAgB;EACvCC,eAAe;IACbC,QAAQC,aAAaC;IACrBC,SAAS,CAACH,WAAAA;AACRI,UAAIC,KAAK,UAAU;QAAEL;MAAO,GAAA;;;;;;IAC9B;EACF,CAAA;EACAD,eAAe;IACbC,QAAQM,oBAAoBC;IAC5BJ,SAAS,OAAO,EAAEK,MAAK,MAAE;AACvB,YAAMC,SAASf,QAAQgB,cAAcC,gBAAAA;AACrC,YAAMC,gBAAgBlB,QAAQgB,cAAcG,0BAA0BC,aAAa;AACnF,YAAMC,WAAWrB,QACdgB,cAAcb,aAAamB,aAAa,EACxCC,SAAqCC,KAAKC,EAAE,EAAGC;AAClDL,eAASM,UAAUb,SAAS,CAACO,SAASM;AACtCT,oBAAcU,MAAM;QAClB,GAAGC,qBAAqBd,MAAAA;QACxBe,QAAQ;QACRC,YAAY;UACVJ,SAASN,SAASM;QACpB;MACF,CAAA;AACAT,oBAAcc,QAAQX,SAASM,UAAU,UAAU,UAAA;AACnD,YAAMM,2BAA2BhC,WAAW,CAACoB,SAASM,OAAO;AAC7D,aAAO;QAAEO,MAAMb,SAASM;MAAQ;IAClC;EACF,CAAA;EACAtB,eAAe;IACbC,QAAQM,oBAAoBuB;IAC5B1B,SAAS,CAACyB,SAAAA;AACR,YAAMnB,SAASf,QAAQgB,cAAcC,gBAAAA;AACrC,YAAMc,aAAa,gBAAgBG,OAAOA,KAAKH,aAAa,CAAC;AAK7D,WAAK/B,QAAQoC,kBAAkBjB,0BAA0BC,aAAa,EAAEiB,KAAK,CAACnB,kBAAAA;AAC5EA,sBAAcU,MAAM;UAClB,GAAGC,qBAAqBd,MAAAA;UACxBe,QAAQI,KAAKI;UACbP;QACF,CAAA;MACF,CAAA;IACF;EACF,CAAA;EACA1B,eAAe;IACbC,QAAQM,oBAAoB2B;IAC5B9B,SAAS,OAAOyB,SAAAA;AACd,YAAMhB,gBAAgBlB,QAAQgB,cAAcG,0BAA0BC,aAAa;AACnFF,oBAAcsB,oBAAoBN,KAAKO,OAAO;IAChD;EACF,CAAA;CACD;",
|
|
6
|
-
"names": ["Capabilities", "IntentAction", "contributes", "createResolver", "log", "getTelemetryIdentity", "storeObservabilityDisabled", "context", "namespace", "contributes", "Capabilities", "IntentResolver", "createResolver", "intent", "IntentAction", "Track", "resolve", "log", "info", "ObservabilityAction", "Toggle", "state", "client", "getCapability", "ClientCapability", "observability", "ObservabilityCapabilities", "Observability", "settings", "SettingsStore", "getStore", "meta", "id", "value", "enabled", "track", "getTelemetryIdentity", "action", "properties", "setMode", "storeObservabilityDisabled", "data", "SendEvent", "waitForCapability", "then", "name", "CaptureUserFeedback", "captureUserFeedback", "message"]
|
|
7
|
-
}
|
|
@@ -1,33 +0,0 @@
|
|
|
1
|
-
import { createRequire } from 'node:module';const require = createRequire(import.meta.url);
|
|
2
|
-
import {
|
|
3
|
-
HelpContainer,
|
|
4
|
-
ObservabilitySettings
|
|
5
|
-
} from "./chunk-JJBWCCSZ.mjs";
|
|
6
|
-
import "./chunk-T5OWY73X.mjs";
|
|
7
|
-
import {
|
|
8
|
-
meta
|
|
9
|
-
} from "./chunk-AVJTLRX5.mjs";
|
|
10
|
-
|
|
11
|
-
// src/capabilities/react-surface.tsx
|
|
12
|
-
import React from "react";
|
|
13
|
-
import { Capabilities, contributes, createSurface } from "@dxos/app-framework";
|
|
14
|
-
import { SettingsStore } from "@dxos/local-storage";
|
|
15
|
-
var react_surface_default = (() => contributes(Capabilities.ReactSurface, [
|
|
16
|
-
createSurface({
|
|
17
|
-
id: meta.id,
|
|
18
|
-
role: "article",
|
|
19
|
-
filter: (data) => data.subject instanceof SettingsStore && data.subject.prefix === meta.id,
|
|
20
|
-
component: ({ data: { subject } }) => /* @__PURE__ */ React.createElement(ObservabilitySettings, {
|
|
21
|
-
settings: subject.value
|
|
22
|
-
})
|
|
23
|
-
}),
|
|
24
|
-
createSurface({
|
|
25
|
-
id: `${meta.id}/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-DNASLRFA.mjs.map
|
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"version": 3,
|
|
3
|
-
"sources": ["../../../src/capabilities/react-surface.tsx"],
|
|
4
|
-
"sourcesContent": ["//\n// Copyright 2025 DXOS.org\n//\n\nimport React from 'react';\n\nimport { Capabilities, contributes, createSurface } from '@dxos/app-framework';\nimport { SettingsStore } from '@dxos/local-storage';\n\nimport { HelpContainer, ObservabilitySettings, type ObservabilitySettingsProps } from '../components';\nimport { meta } from '../meta';\n\nexport default () =>\n contributes(Capabilities.ReactSurface, [\n createSurface({\n id: meta.id,\n role: 'article',\n filter: (data): data is { subject: SettingsStore<ObservabilitySettingsProps> } =>\n data.subject instanceof SettingsStore && data.subject.prefix === meta.id,\n component: ({ data: { subject } }) => <ObservabilitySettings settings={subject.value} />,\n }),\n createSurface({\n id: `${meta.id}/help`,\n role: 'deck-companion--help',\n component: () => <HelpContainer />,\n }),\n ]);\n"],
|
|
5
|
-
"mappings": ";;;;;;;;;;;AAIA,OAAOA,WAAW;AAElB,SAASC,cAAcC,aAAaC,qBAAqB;AACzD,SAASC,qBAAqB;AAK9B,IAAA,yBAAe,MACbC,YAAYC,aAAaC,cAAc;EACrCC,cAAc;IACZC,IAAIC,KAAKD;IACTE,MAAM;IACNC,QAAQ,CAACC,SACPA,KAAKC,mBAAmBC,iBAAiBF,KAAKC,QAAQE,WAAWN,KAAKD;IACxEQ,WAAW,CAAC,EAAEJ,MAAM,EAAEC,QAAO,EAAE,MAAO,sBAAA,cAACI,uBAAAA;MAAsBC,UAAUL,QAAQM;;EACjF,CAAA;EACAZ,cAAc;IACZC,IAAI,GAAGC,KAAKD,EAAE;IACdE,MAAM;IACNM,WAAW,MAAM,sBAAA,cAACI,eAAAA,IAAAA;EACpB,CAAA;CACD;",
|
|
6
|
-
"names": ["React", "Capabilities", "contributes", "createSurface", "SettingsStore", "contributes", "Capabilities", "ReactSurface", "createSurface", "id", "meta", "role", "filter", "data", "subject", "SettingsStore", "prefix", "component", "ObservabilitySettings", "settings", "value", "HelpContainer"]
|
|
7
|
-
}
|
|
@@ -1,26 +0,0 @@
|
|
|
1
|
-
import { createRequire } from 'node:module';const require = createRequire(import.meta.url);
|
|
2
|
-
import {
|
|
3
|
-
ObservabilitySettingsSchema
|
|
4
|
-
} from "./chunk-JJBWCCSZ.mjs";
|
|
5
|
-
import "./chunk-T5OWY73X.mjs";
|
|
6
|
-
import {
|
|
7
|
-
meta
|
|
8
|
-
} from "./chunk-AVJTLRX5.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-22NXJMTF.mjs.map
|
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"version": 3,
|
|
3
|
-
"sources": ["../../../src/capabilities/settings.ts"],
|
|
4
|
-
"sourcesContent": ["//\n// Copyright 2025 DXOS.org\n//\n\nimport { Capabilities, contributes } from '@dxos/app-framework';\nimport { live } from '@dxos/live-object';\n\nimport { type ObservabilitySettingsProps, ObservabilitySettingsSchema } from '../components';\nimport { meta } from '../meta';\n\nexport default () => {\n const settings = live<ObservabilitySettingsProps>({\n enabled: true,\n });\n\n return contributes(Capabilities.Settings, {\n prefix: meta.id,\n schema: ObservabilitySettingsSchema,\n value: settings,\n });\n};\n"],
|
|
5
|
-
"mappings": ";;;;;;;;;;AAIA,SAASA,cAAcC,mBAAmB;AAC1C,SAASC,YAAY;AAKrB,IAAA,oBAAe,MAAA;AACb,QAAMC,WAAWC,KAAiC;IAChDC,SAAS;EACX,CAAA;AAEA,SAAOC,YAAYC,aAAaC,UAAU;IACxCC,QAAQC,KAAKC;IACbC,QAAQC;IACRC,OAAOX;EACT,CAAA;AACF;",
|
|
6
|
-
"names": ["Capabilities", "contributes", "live", "settings", "live", "enabled", "contributes", "Capabilities", "Settings", "prefix", "meta", "id", "schema", "ObservabilitySettingsSchema", "value"]
|
|
7
|
-
}
|
|
@@ -1,27 +0,0 @@
|
|
|
1
|
-
import { createRequire } from 'node:module';const require = createRequire(import.meta.url);
|
|
2
|
-
import {
|
|
3
|
-
ObservabilityCapabilities
|
|
4
|
-
} from "./chunk-HACSZKXD.mjs";
|
|
5
|
-
import {
|
|
6
|
-
meta
|
|
7
|
-
} from "./chunk-AVJTLRX5.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(meta.id);
|
|
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-XNBMNLB7.mjs.map
|
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"version": 3,
|
|
3
|
-
"sources": ["../../../src/capabilities/state.ts"],
|
|
4
|
-
"sourcesContent": ["//\n// Copyright 2025 DXOS.org\n//\n\nimport { contributes } from '@dxos/app-framework';\nimport { LocalStorageStore } from '@dxos/local-storage';\nimport { getObservabilityGroup } from '@dxos/observability';\n\nimport { meta } from '../meta';\n\nimport { ObservabilityCapabilities } from './capabilities';\n\nexport default async ({ namespace }: { namespace: string }) => {\n const state = new LocalStorageStore<ObservabilityCapabilities.State>(meta.id);\n\n state.prop({ key: 'notified', type: LocalStorageStore.bool({ allowUndefined: true }) });\n\n // NOTE: This is not stored in local storage such that it can be accessed by workers.\n state.values.group = await getObservabilityGroup(namespace);\n\n return contributes(ObservabilityCapabilities.State, state.values, () => state.close());\n};\n"],
|
|
5
|
-
"mappings": ";;;;;;;;;AAIA,SAASA,mBAAmB;AAC5B,SAASC,yBAAyB;AAClC,SAASC,6BAA6B;AAMtC,IAAA,iBAAe,OAAO,EAAEC,UAAS,MAAyB;AACxD,QAAMC,QAAQ,IAAIC,kBAAmDC,KAAKC,EAAE;AAE5EH,QAAMI,KAAK;IAAEC,KAAK;IAAYC,MAAML,kBAAkBM,KAAK;MAAEC,gBAAgB;IAAK,CAAA;EAAG,CAAA;AAGrFR,QAAMS,OAAOC,QAAQ,MAAMC,sBAAsBZ,SAAAA;AAEjD,SAAOa,YAAYC,0BAA0BC,OAAOd,MAAMS,QAAQ,MAAMT,MAAMe,MAAK,CAAA;AACrF;",
|
|
6
|
-
"names": ["contributes", "LocalStorageStore", "getObservabilityGroup", "namespace", "state", "LocalStorageStore", "meta", "id", "prop", "key", "type", "bool", "allowUndefined", "values", "group", "getObservabilityGroup", "contributes", "ObservabilityCapabilities", "State", "close"]
|
|
7
|
-
}
|
|
@@ -1,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-framework").InterfaceDef<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":"AAQA,OAAO,EAAgB,KAAK,aAAa,EAAe,MAAM,qBAAqB,CAAC;yBAUpE,UAAU,aAAa;AAAvC,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,mDAAyD,CAAC;IAErE,MAAM,aAAa,2DAAyE,CAAC;CACrG;AAID,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<import("@dxos/app-framework").InterfaceDef<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,EAGL,KAAK,aAAa,EAInB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAAE,KAAK,aAAa,EAA2B,MAAM,qBAAqB,CAAC;AAOlF,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<import("@dxos/app-framework").InterfaceDef<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,EAAgB,KAAK,aAAa,EAA+B,MAAM,qBAAqB,CAAC;yBAUlG,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,EAA8B,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/app-framework").InterfaceDef<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":"AAUA,OAAO,EAAE,yBAAyB,EAAE,MAAM,gBAAgB,CAAC;yBAErC,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,+CAAmC,CAAC;CAC5D;AAGD,eAAO,MAAM,gBAAgB,+CAA2D,CAAC"}
|
|
@@ -1,47 +0,0 @@
|
|
|
1
|
-
//
|
|
2
|
-
// Copyright 2025 DXOS.org
|
|
3
|
-
//
|
|
4
|
-
|
|
5
|
-
import { Atom } from '@effect-atom/atom-react';
|
|
6
|
-
import * as Function from 'effect/Function';
|
|
7
|
-
import * as Option from 'effect/Option';
|
|
8
|
-
|
|
9
|
-
import { Capabilities, type PluginContext, contributes } from '@dxos/app-framework';
|
|
10
|
-
import { ROOT_ID, createExtension } from '@dxos/plugin-graph';
|
|
11
|
-
|
|
12
|
-
import { meta } from '../meta';
|
|
13
|
-
|
|
14
|
-
// NOTE: Copied from @dxos/plugin-deck to break circular dependency.
|
|
15
|
-
const ATTENDABLE_PATH_SEPARATOR = '~';
|
|
16
|
-
|
|
17
|
-
const DECK_COMPANION_TYPE = 'dxos.org/plugin/deck/deck-companion';
|
|
18
|
-
|
|
19
|
-
export default (_context: PluginContext) =>
|
|
20
|
-
contributes(Capabilities.AppGraphBuilder, [
|
|
21
|
-
createExtension({
|
|
22
|
-
id: `${meta.id}/help`,
|
|
23
|
-
connector: (node) =>
|
|
24
|
-
Atom.make((get) =>
|
|
25
|
-
Function.pipe(
|
|
26
|
-
get(node),
|
|
27
|
-
Option.flatMap((node) => (node.id === ROOT_ID ? Option.some(node) : Option.none())),
|
|
28
|
-
Option.map((node) => {
|
|
29
|
-
return [
|
|
30
|
-
{
|
|
31
|
-
id: [node.id, 'help'].join(ATTENDABLE_PATH_SEPARATOR),
|
|
32
|
-
type: DECK_COMPANION_TYPE,
|
|
33
|
-
data: null,
|
|
34
|
-
properties: {
|
|
35
|
-
label: ['help label', { ns: meta.id }],
|
|
36
|
-
icon: 'ph--question--regular',
|
|
37
|
-
disposition: 'hidden',
|
|
38
|
-
position: 'hoist',
|
|
39
|
-
},
|
|
40
|
-
},
|
|
41
|
-
];
|
|
42
|
-
}),
|
|
43
|
-
Option.getOrElse(() => []),
|
|
44
|
-
),
|
|
45
|
-
),
|
|
46
|
-
}),
|
|
47
|
-
]);
|
|
@@ -1,23 +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 { meta } from '../meta';
|
|
10
|
-
|
|
11
|
-
export namespace ObservabilityCapabilities {
|
|
12
|
-
export type State = {
|
|
13
|
-
group?: string;
|
|
14
|
-
notified?: boolean;
|
|
15
|
-
};
|
|
16
|
-
export const State = defineCapability<State>(`${meta.id}/capability/state`);
|
|
17
|
-
|
|
18
|
-
export const Observability = defineCapability<Observability>(`${meta.id}/capability/observability`);
|
|
19
|
-
}
|
|
20
|
-
|
|
21
|
-
// NOTE: This is cloned from the client plugin to avoid circular dependencies.
|
|
22
|
-
// TODO(burdon): Figure out how to share defs.
|
|
23
|
-
export const ClientCapability = defineCapability<Client>('dxos.org/plugin/client/capability/client');
|
|
@@ -1,98 +0,0 @@
|
|
|
1
|
-
//
|
|
2
|
-
// Copyright 2025 DXOS.org
|
|
3
|
-
//
|
|
4
|
-
|
|
5
|
-
import {
|
|
6
|
-
Capabilities,
|
|
7
|
-
LayoutAction,
|
|
8
|
-
type PluginContext,
|
|
9
|
-
SettingsAction,
|
|
10
|
-
contributes,
|
|
11
|
-
createIntent,
|
|
12
|
-
} from '@dxos/app-framework';
|
|
13
|
-
import { type Observability, setupTelemetryListeners } from '@dxos/observability';
|
|
14
|
-
|
|
15
|
-
import { meta } from '../meta';
|
|
16
|
-
import { ObservabilityAction } from '../types';
|
|
17
|
-
|
|
18
|
-
import { ClientCapability, ObservabilityCapabilities } from './capabilities';
|
|
19
|
-
|
|
20
|
-
type ClientReadyOptions = {
|
|
21
|
-
context: PluginContext;
|
|
22
|
-
namespace: string;
|
|
23
|
-
observability: Observability;
|
|
24
|
-
};
|
|
25
|
-
|
|
26
|
-
export default async ({ context, namespace, observability }: ClientReadyOptions) => {
|
|
27
|
-
const manager = context.getCapability(Capabilities.PluginManager);
|
|
28
|
-
const { dispatchPromise: dispatch } = context.getCapability(Capabilities.IntentDispatcher);
|
|
29
|
-
const state = context.getCapability(ObservabilityCapabilities.State);
|
|
30
|
-
const client = context.getCapability(ClientCapability);
|
|
31
|
-
|
|
32
|
-
const sendPrivacyNotice = async () => {
|
|
33
|
-
const environment = client?.config?.values.runtime?.app?.env?.DX_ENVIRONMENT;
|
|
34
|
-
const notify =
|
|
35
|
-
environment && environment !== 'ci' && !environment.endsWith('.local') && !environment.endsWith('.lan');
|
|
36
|
-
if (!state.notified && notify) {
|
|
37
|
-
await dispatch(
|
|
38
|
-
createIntent(LayoutAction.AddToast, {
|
|
39
|
-
part: 'toast',
|
|
40
|
-
subject: {
|
|
41
|
-
id: `${meta.id}/notice`,
|
|
42
|
-
title: ['observability toast label', { ns: meta.id }],
|
|
43
|
-
description: ['observability toast description', { ns: meta.id }],
|
|
44
|
-
duration: Infinity,
|
|
45
|
-
icon: 'ph--info--regular',
|
|
46
|
-
actionLabel: ['observability toast action label', { ns: meta.id }],
|
|
47
|
-
actionAlt: ['observability toast action alt', { ns: meta.id }],
|
|
48
|
-
closeLabel: ['observability toast close label', { ns: meta.id }],
|
|
49
|
-
onAction: () => dispatch(createIntent(SettingsAction.Open, { plugin: meta.id })),
|
|
50
|
-
},
|
|
51
|
-
}),
|
|
52
|
-
);
|
|
53
|
-
|
|
54
|
-
state.notified = true;
|
|
55
|
-
}
|
|
56
|
-
};
|
|
57
|
-
|
|
58
|
-
// Ensure errors are tagged with enabled plugins to help with reproductions.
|
|
59
|
-
manager.enabled.map((plugin) => observability?.setTag(`pluginEnabled-${plugin}`, 'true', 'errors'));
|
|
60
|
-
|
|
61
|
-
await dispatch(
|
|
62
|
-
createIntent(ObservabilityAction.SendEvent, {
|
|
63
|
-
name: 'page.load',
|
|
64
|
-
properties: {
|
|
65
|
-
// TODO(wittjosiah): These apis are deprecated. Is there a better way to find this information?
|
|
66
|
-
loadDuration: window.performance.timing.loadEventEnd - window.performance.timing.loadEventStart,
|
|
67
|
-
},
|
|
68
|
-
}),
|
|
69
|
-
);
|
|
70
|
-
|
|
71
|
-
// Start client observability (i.e. not running as shared worker)
|
|
72
|
-
// TODO(nf): how to prevent multiple instances for single shared worker?
|
|
73
|
-
const cleanup = setupTelemetryListeners(namespace, client, observability);
|
|
74
|
-
|
|
75
|
-
await Promise.all([
|
|
76
|
-
observability.setIdentityTags(client.services.services),
|
|
77
|
-
observability.startRuntimeMetrics(client),
|
|
78
|
-
observability.startNetworkMetrics(client.services.services),
|
|
79
|
-
observability.startSpacesMetrics(client, namespace),
|
|
80
|
-
]);
|
|
81
|
-
|
|
82
|
-
if (client.halo.identity.get()) {
|
|
83
|
-
await sendPrivacyNotice();
|
|
84
|
-
} else {
|
|
85
|
-
const subscription = client.halo.identity.subscribe(async (identity) => {
|
|
86
|
-
if (identity && observability) {
|
|
87
|
-
await sendPrivacyNotice();
|
|
88
|
-
await observability.setIdentityTags(client.services.services);
|
|
89
|
-
subscription.unsubscribe();
|
|
90
|
-
}
|
|
91
|
-
});
|
|
92
|
-
}
|
|
93
|
-
|
|
94
|
-
return contributes(ObservabilityCapabilities.Observability, observability, async () => {
|
|
95
|
-
cleanup();
|
|
96
|
-
await observability.close();
|
|
97
|
-
});
|
|
98
|
-
};
|