@dxos/plugin-observability 0.8.4-main.3a94e84 → 0.8.4-main.3c1ae3b
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-DCOBBL5B.mjs → app-graph-builder-3I6HZ5AR.mjs} +12 -11
- package/dist/lib/browser/app-graph-builder-3I6HZ5AR.mjs.map +7 -0
- package/dist/lib/browser/{chunk-UUOBAWT2.mjs → chunk-EC7HTFA5.mjs} +5 -5
- package/dist/lib/browser/chunk-EC7HTFA5.mjs.map +7 -0
- package/dist/lib/browser/chunk-RLY6UZDS.mjs +123 -0
- package/dist/lib/browser/chunk-RLY6UZDS.mjs.map +7 -0
- package/dist/lib/browser/{chunk-AL5RST75.mjs → chunk-RRMLEY35.mjs} +56 -29
- package/dist/lib/browser/chunk-RRMLEY35.mjs.map +7 -0
- package/dist/lib/browser/chunk-W7QWKVS3.mjs +16 -0
- package/dist/lib/browser/chunk-W7QWKVS3.mjs.map +7 -0
- package/dist/lib/browser/{client-ready-TAII5PYS.mjs → client-ready-XT27JB7J.mjs} +15 -15
- package/dist/lib/browser/client-ready-XT27JB7J.mjs.map +7 -0
- package/dist/lib/browser/index.mjs +21 -49
- package/dist/lib/browser/index.mjs.map +4 -4
- package/dist/lib/browser/{intent-resolver-5SA443WX.mjs → intent-resolver-QRKGLMMT.mjs} +10 -10
- package/dist/lib/browser/intent-resolver-QRKGLMMT.mjs.map +7 -0
- package/dist/lib/browser/meta.json +1 -1
- package/dist/lib/browser/{react-surface-GQC3M7XY.mjs → react-surface-F5GY7AAC.mjs} +11 -11
- package/dist/lib/browser/react-surface-F5GY7AAC.mjs.map +7 -0
- package/dist/lib/browser/{settings-BG3S45SS.mjs → settings-SAFMS6TG.mjs} +6 -6
- package/dist/lib/browser/{settings-BG3S45SS.mjs.map → settings-SAFMS6TG.mjs.map} +1 -1
- package/dist/lib/browser/{state-VIOQS2IL.mjs → state-FJD6K3ZZ.mjs} +7 -7
- package/dist/lib/browser/state-FJD6K3ZZ.mjs.map +7 -0
- package/dist/lib/browser/types/index.mjs +2 -2
- package/dist/lib/node-esm/{app-graph-builder-6JT2RPVM.mjs → app-graph-builder-KH2GA6G7.mjs} +12 -11
- package/dist/lib/node-esm/app-graph-builder-KH2GA6G7.mjs.map +7 -0
- package/dist/lib/node-esm/chunk-AVJTLRX5.mjs +18 -0
- package/dist/lib/node-esm/chunk-AVJTLRX5.mjs.map +7 -0
- package/dist/lib/node-esm/{chunk-JTKEM7PT.mjs → chunk-HACSZKXD.mjs} +5 -5
- package/dist/lib/node-esm/chunk-HACSZKXD.mjs.map +7 -0
- package/dist/lib/node-esm/chunk-JJBWCCSZ.mjs +124 -0
- package/dist/lib/node-esm/chunk-JJBWCCSZ.mjs.map +7 -0
- package/dist/lib/node-esm/{chunk-5W5V4TVX.mjs → chunk-T5OWY73X.mjs} +56 -29
- package/dist/lib/node-esm/chunk-T5OWY73X.mjs.map +7 -0
- package/dist/lib/node-esm/{client-ready-KER2HNME.mjs → client-ready-AXZXR5EX.mjs} +15 -15
- package/dist/lib/node-esm/client-ready-AXZXR5EX.mjs.map +7 -0
- package/dist/lib/node-esm/index.mjs +21 -49
- package/dist/lib/node-esm/index.mjs.map +4 -4
- package/dist/lib/node-esm/{intent-resolver-YYBRI4TZ.mjs → intent-resolver-WXZEG7SP.mjs} +10 -10
- package/dist/lib/node-esm/intent-resolver-WXZEG7SP.mjs.map +7 -0
- package/dist/lib/node-esm/meta.json +1 -1
- package/dist/lib/node-esm/{react-surface-ZYMR7TMY.mjs → react-surface-DNASLRFA.mjs} +11 -11
- package/dist/lib/node-esm/react-surface-DNASLRFA.mjs.map +7 -0
- package/dist/lib/node-esm/{settings-HSLQO3OC.mjs → settings-22NXJMTF.mjs} +6 -6
- package/dist/lib/node-esm/{settings-HSLQO3OC.mjs.map → settings-22NXJMTF.mjs.map} +1 -1
- package/dist/lib/node-esm/{state-J2WS6L64.mjs → state-XNBMNLB7.mjs} +7 -7
- package/dist/lib/node-esm/state-XNBMNLB7.mjs.map +7 -0
- package/dist/lib/node-esm/types/index.mjs +2 -2
- 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.d.ts +1 -1
- package/dist/types/src/capabilities/app-graph-builder.d.ts.map +1 -1
- package/dist/types/src/capabilities/capabilities.d.ts.map +1 -1
- package/dist/types/src/capabilities/client-ready.d.ts +1 -1
- package/dist/types/src/capabilities/client-ready.d.ts.map +1 -1
- package/dist/types/src/capabilities/index.d.ts +6 -6
- package/dist/types/src/capabilities/index.d.ts.map +1 -1
- package/dist/types/src/capabilities/intent-resolver.d.ts +1 -1
- package/dist/types/src/capabilities/intent-resolver.d.ts.map +1 -1
- package/dist/types/src/capabilities/react-surface.d.ts +1 -1
- package/dist/types/src/capabilities/react-surface.d.ts.map +1 -1
- package/dist/types/src/capabilities/settings.d.ts +1 -1
- package/dist/types/src/capabilities/state.d.ts +1 -1
- package/dist/types/src/capabilities/state.d.ts.map +1 -1
- package/dist/types/src/components/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 +34 -0
- package/dist/types/src/components/FeedbackForm.stories.d.ts.map +1 -0
- package/dist/types/src/components/HelpContainer.d.ts.map +1 -1
- package/dist/types/src/components/ObservabilitySettings.d.ts +1 -1
- package/dist/types/src/components/ObservabilitySettings.d.ts.map +1 -1
- package/dist/types/src/events.d.ts.map +1 -1
- package/dist/types/src/meta.d.ts +0 -1
- package/dist/types/src/meta.d.ts.map +1 -1
- package/dist/types/src/translations.d.ts +3 -2
- package/dist/types/src/translations.d.ts.map +1 -1
- package/dist/types/src/types/schema.d.ts +112 -112
- package/dist/types/src/types/schema.d.ts.map +1 -1
- package/dist/types/tsconfig.tsbuildinfo +1 -1
- package/package.json +33 -32
- package/src/ObservabilityPlugin.ts +52 -49
- package/src/capabilities/app-graph-builder.ts +12 -10
- package/src/capabilities/capabilities.ts +4 -3
- package/src/capabilities/client-ready.ts +14 -13
- package/src/capabilities/intent-resolver.ts +5 -4
- package/src/capabilities/react-surface.tsx +5 -5
- package/src/capabilities/state.ts +3 -2
- package/src/components/FeedbackForm.stories.tsx +33 -0
- package/src/components/FeedbackForm.tsx +13 -69
- package/src/components/HelpContainer.tsx +10 -8
- package/src/components/ObservabilitySettings.tsx +21 -20
- package/src/events.ts +3 -3
- package/src/meta.ts +6 -3
- package/src/translations.ts +3 -2
- package/src/types/schema.ts +30 -26
- 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.map +0 -7
- 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.map +0 -7
- package/dist/lib/browser/intent-resolver-5SA443WX.mjs.map +0 -7
- package/dist/lib/browser/react-surface-GQC3M7XY.mjs.map +0 -7
- package/dist/lib/browser/state-VIOQS2IL.mjs.map +0 -7
- package/dist/lib/node-esm/app-graph-builder-6JT2RPVM.mjs.map +0 -7
- 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.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.map +0 -7
- package/dist/lib/node-esm/intent-resolver-YYBRI4TZ.mjs.map +0 -7
- package/dist/lib/node-esm/react-surface-ZYMR7TMY.mjs.map +0 -7
- package/dist/lib/node-esm/state-J2WS6L64.mjs.map +0 -7
|
@@ -1,18 +1,19 @@
|
|
|
1
1
|
import {
|
|
2
|
-
|
|
3
|
-
} from "./chunk-
|
|
2
|
+
meta
|
|
3
|
+
} from "./chunk-W7QWKVS3.mjs";
|
|
4
4
|
|
|
5
5
|
// src/capabilities/app-graph-builder.ts
|
|
6
|
-
import {
|
|
7
|
-
import
|
|
6
|
+
import { Atom } from "@effect-atom/atom-react";
|
|
7
|
+
import * as Function from "effect/Function";
|
|
8
|
+
import * as Option from "effect/Option";
|
|
8
9
|
import { Capabilities, contributes } from "@dxos/app-framework";
|
|
9
|
-
import {
|
|
10
|
+
import { ROOT_ID, createExtension } from "@dxos/plugin-graph";
|
|
10
11
|
var ATTENDABLE_PATH_SEPARATOR = "~";
|
|
11
12
|
var DECK_COMPANION_TYPE = "dxos.org/plugin/deck/deck-companion";
|
|
12
|
-
var app_graph_builder_default = (
|
|
13
|
+
var app_graph_builder_default = ((_context) => contributes(Capabilities.AppGraphBuilder, [
|
|
13
14
|
createExtension({
|
|
14
|
-
id: `${
|
|
15
|
-
connector: (node) =>
|
|
15
|
+
id: `${meta.id}/help`,
|
|
16
|
+
connector: (node) => Atom.make((get) => Function.pipe(get(node), Option.flatMap((node2) => node2.id === ROOT_ID ? Option.some(node2) : Option.none()), Option.map((node2) => {
|
|
16
17
|
return [
|
|
17
18
|
{
|
|
18
19
|
id: [
|
|
@@ -25,7 +26,7 @@ var app_graph_builder_default = (context) => contributes(Capabilities.AppGraphBu
|
|
|
25
26
|
label: [
|
|
26
27
|
"help label",
|
|
27
28
|
{
|
|
28
|
-
ns:
|
|
29
|
+
ns: meta.id
|
|
29
30
|
}
|
|
30
31
|
],
|
|
31
32
|
icon: "ph--question--regular",
|
|
@@ -36,8 +37,8 @@ var app_graph_builder_default = (context) => contributes(Capabilities.AppGraphBu
|
|
|
36
37
|
];
|
|
37
38
|
}), Option.getOrElse(() => [])))
|
|
38
39
|
})
|
|
39
|
-
]);
|
|
40
|
+
]));
|
|
40
41
|
export {
|
|
41
42
|
app_graph_builder_default as default
|
|
42
43
|
};
|
|
43
|
-
//# sourceMappingURL=app-graph-builder-
|
|
44
|
+
//# sourceMappingURL=app-graph-builder-3I6HZ5AR.mjs.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../../src/capabilities/app-graph-builder.ts"],
|
|
4
|
+
"sourcesContent": ["//\n// Copyright 2025 DXOS.org\n//\n\nimport { Atom } from '@effect-atom/atom-react';\nimport * as Function from 'effect/Function';\nimport * as Option from 'effect/Option';\n\nimport { Capabilities, type PluginContext, contributes } from '@dxos/app-framework';\nimport { ROOT_ID, createExtension } from '@dxos/plugin-graph';\n\nimport { meta } from '../meta';\n\n// NOTE: Copied from @dxos/plugin-deck to break circular dependency.\nconst ATTENDABLE_PATH_SEPARATOR = '~';\n\nconst DECK_COMPANION_TYPE = 'dxos.org/plugin/deck/deck-companion';\n\nexport default (_context: PluginContext) =>\n contributes(Capabilities.AppGraphBuilder, [\n createExtension({\n id: `${meta.id}/help`,\n connector: (node) =>\n Atom.make((get) =>\n Function.pipe(\n get(node),\n Option.flatMap((node) => (node.id === ROOT_ID ? Option.some(node) : Option.none())),\n Option.map((node) => {\n return [\n {\n id: [node.id, 'help'].join(ATTENDABLE_PATH_SEPARATOR),\n type: DECK_COMPANION_TYPE,\n data: null,\n properties: {\n label: ['help label', { ns: meta.id }],\n icon: 'ph--question--regular',\n disposition: 'hidden',\n position: 'hoist',\n },\n },\n ];\n }),\n Option.getOrElse(() => []),\n ),\n ),\n }),\n ]);\n"],
|
|
5
|
+
"mappings": ";;;;;AAIA,SAASA,YAAY;AACrB,YAAYC,cAAc;AAC1B,YAAYC,YAAY;AAExB,SAASC,cAAkCC,mBAAmB;AAC9D,SAASC,SAASC,uBAAuB;AAKzC,IAAMC,4BAA4B;AAElC,IAAMC,sBAAsB;AAE5B,IAAA,6BAAe,CAACC,aACdC,YAAYC,aAAaC,iBAAiB;EACxCC,gBAAgB;IACdC,IAAI,GAAGC,KAAKD,EAAE;IACdE,WAAW,CAACC,SACVC,KAAKC,KAAK,CAACC,QACAC,cACPD,IAAIH,IAAAA,GACGK,eAAQ,CAACL,UAAUA,MAAKH,OAAOS,UAAiBC,YAAKP,KAAAA,IAAeQ,YAAI,CAAA,GACxEC,WAAI,CAACT,UAAAA;AACV,aAAO;QACL;UACEH,IAAI;YAACG,MAAKH;YAAI;YAAQa,KAAKpB,yBAAAA;UAC3BqB,MAAMpB;UACNqB,MAAM;UACNC,YAAY;YACVC,OAAO;cAAC;cAAc;gBAAEC,IAAIjB,KAAKD;cAAG;;YACpCmB,MAAM;YACNC,aAAa;YACbC,UAAU;UACZ;QACF;;IAEJ,CAAA,GACOC,iBAAU,MAAM,CAAA,CAAE,CAAA,CAAA;EAGjC,CAAA;CACD;",
|
|
6
|
+
"names": ["Atom", "Function", "Option", "Capabilities", "contributes", "ROOT_ID", "createExtension", "ATTENDABLE_PATH_SEPARATOR", "DECK_COMPANION_TYPE", "_context", "contributes", "Capabilities", "AppGraphBuilder", "createExtension", "id", "meta", "connector", "node", "Atom", "make", "get", "pipe", "flatMap", "ROOT_ID", "some", "none", "map", "join", "type", "data", "properties", "label", "ns", "icon", "disposition", "position", "getOrElse"]
|
|
7
|
+
}
|
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
import {
|
|
2
|
-
|
|
3
|
-
} from "./chunk-
|
|
2
|
+
meta
|
|
3
|
+
} from "./chunk-W7QWKVS3.mjs";
|
|
4
4
|
|
|
5
5
|
// src/capabilities/capabilities.ts
|
|
6
6
|
import { defineCapability } from "@dxos/app-framework";
|
|
7
7
|
(function(ObservabilityCapabilities2) {
|
|
8
|
-
ObservabilityCapabilities2.State = defineCapability(`${
|
|
9
|
-
ObservabilityCapabilities2.Observability = defineCapability(`${
|
|
8
|
+
ObservabilityCapabilities2.State = defineCapability(`${meta.id}/capability/state`);
|
|
9
|
+
ObservabilityCapabilities2.Observability = defineCapability(`${meta.id}/capability/observability`);
|
|
10
10
|
})(ObservabilityCapabilities || (ObservabilityCapabilities = {}));
|
|
11
11
|
var ClientCapability = defineCapability("dxos.org/plugin/client/capability/client");
|
|
12
12
|
var ObservabilityCapabilities;
|
|
@@ -15,4 +15,4 @@ export {
|
|
|
15
15
|
ClientCapability,
|
|
16
16
|
ObservabilityCapabilities
|
|
17
17
|
};
|
|
18
|
-
//# sourceMappingURL=chunk-
|
|
18
|
+
//# sourceMappingURL=chunk-EC7HTFA5.mjs.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../../src/capabilities/capabilities.ts"],
|
|
4
|
+
"sourcesContent": ["//\n// Copyright 2025 DXOS.org\n//\n\nimport { defineCapability } from '@dxos/app-framework';\nimport { type Client } from '@dxos/client';\nimport { type Observability } from '@dxos/observability';\n\nimport { meta } from '../meta';\n\nexport namespace ObservabilityCapabilities {\n export type State = {\n group?: string;\n notified?: boolean;\n };\n export const State = defineCapability<State>(`${meta.id}/capability/state`);\n\n export const Observability = defineCapability<Observability>(`${meta.id}/capability/observability`);\n}\n\n// NOTE: This is cloned from the client plugin to avoid circular dependencies.\n// TODO(burdon): Figure out how to share defs.\nexport const ClientCapability = defineCapability<Client>('dxos.org/plugin/client/capability/client');\n"],
|
|
5
|
+
"mappings": ";;;;;AAIA,SAASA,wBAAwB;UAMhBC,4BAAAA;6BAKFC,QAAQC,iBAAwB,GAAGC,KAAKC,EAAE,mBAAmB;6BAE7DC,gBAAgBH,iBAAgC,GAAGC,KAAKC,EAAE,2BAA2B;AACpG,GARiBJ,8BAAAA,4BAAAA,CAAAA,EAAAA;AAYV,IAAMM,mBAAmBJ,iBAAyB,0CAAA;;",
|
|
6
|
+
"names": ["defineCapability", "ObservabilityCapabilities", "State", "defineCapability", "meta", "id", "Observability", "ClientCapability"]
|
|
7
|
+
}
|
|
@@ -0,0 +1,123 @@
|
|
|
1
|
+
import {
|
|
2
|
+
ObservabilityAction,
|
|
3
|
+
UserFeedback
|
|
4
|
+
} from "./chunk-RRMLEY35.mjs";
|
|
5
|
+
import {
|
|
6
|
+
meta
|
|
7
|
+
} from "./chunk-W7QWKVS3.mjs";
|
|
8
|
+
|
|
9
|
+
// src/components/FeedbackForm.tsx
|
|
10
|
+
import { useSignals as _useSignals } from "@preact-signals/safe-react/tracking";
|
|
11
|
+
import React from "react";
|
|
12
|
+
import { useTranslation } from "@dxos/react-ui";
|
|
13
|
+
import { Form } from "@dxos/react-ui-form";
|
|
14
|
+
var FeedbackForm = ({ onSave }) => {
|
|
15
|
+
var _effect = _useSignals();
|
|
16
|
+
try {
|
|
17
|
+
const { t } = useTranslation(meta.id);
|
|
18
|
+
return /* @__PURE__ */ React.createElement(Form.Root, {
|
|
19
|
+
schema: UserFeedback,
|
|
20
|
+
onSave
|
|
21
|
+
}, /* @__PURE__ */ React.createElement(Form.Content, null, /* @__PURE__ */ React.createElement(Form.FieldSet, null), /* @__PURE__ */ React.createElement(Form.Submit, {
|
|
22
|
+
icon: "ph--paper-plane-tilt--regular",
|
|
23
|
+
label: t("send feedback label")
|
|
24
|
+
})));
|
|
25
|
+
} finally {
|
|
26
|
+
_effect.f();
|
|
27
|
+
}
|
|
28
|
+
};
|
|
29
|
+
|
|
30
|
+
// src/components/HelpContainer.tsx
|
|
31
|
+
import { useSignals as _useSignals2 } from "@preact-signals/safe-react/tracking";
|
|
32
|
+
import * as Function from "effect/Function";
|
|
33
|
+
import React2, { useCallback } from "react";
|
|
34
|
+
import { LayoutAction, chain, createIntent } from "@dxos/app-framework";
|
|
35
|
+
import { useIntentDispatcher } from "@dxos/app-framework/react";
|
|
36
|
+
var HelpContainer = () => {
|
|
37
|
+
var _effect = _useSignals2();
|
|
38
|
+
try {
|
|
39
|
+
const { dispatchPromise: dispatch } = useIntentDispatcher();
|
|
40
|
+
const handleSave = useCallback((values) => dispatch(Function.pipe(createIntent(ObservabilityAction.CaptureUserFeedback, values), chain(LayoutAction.UpdateComplementary, {
|
|
41
|
+
part: "complementary",
|
|
42
|
+
options: {
|
|
43
|
+
state: "collapsed"
|
|
44
|
+
}
|
|
45
|
+
}), chain(LayoutAction.AddToast, {
|
|
46
|
+
part: "toast",
|
|
47
|
+
subject: {
|
|
48
|
+
id: `${meta.id}/feedback-success`,
|
|
49
|
+
icon: "ph--paper-plane-tilt--regular",
|
|
50
|
+
duration: 3e3,
|
|
51
|
+
title: [
|
|
52
|
+
"feedback toast label",
|
|
53
|
+
{
|
|
54
|
+
ns: meta.id
|
|
55
|
+
}
|
|
56
|
+
],
|
|
57
|
+
description: [
|
|
58
|
+
"feedback toast description",
|
|
59
|
+
{
|
|
60
|
+
ns: meta.id
|
|
61
|
+
}
|
|
62
|
+
],
|
|
63
|
+
closeLabel: [
|
|
64
|
+
"close label",
|
|
65
|
+
{
|
|
66
|
+
ns: "os"
|
|
67
|
+
}
|
|
68
|
+
]
|
|
69
|
+
}
|
|
70
|
+
}))), [
|
|
71
|
+
dispatch
|
|
72
|
+
]);
|
|
73
|
+
return /* @__PURE__ */ React2.createElement(FeedbackForm, {
|
|
74
|
+
onSave: handleSave
|
|
75
|
+
});
|
|
76
|
+
} finally {
|
|
77
|
+
_effect.f();
|
|
78
|
+
}
|
|
79
|
+
};
|
|
80
|
+
|
|
81
|
+
// src/components/ObservabilitySettings.tsx
|
|
82
|
+
import { useSignals as _useSignals3 } from "@preact-signals/safe-react/tracking";
|
|
83
|
+
import * as Schema from "effect/Schema";
|
|
84
|
+
import React3 from "react";
|
|
85
|
+
import { createIntent as createIntent2 } from "@dxos/app-framework";
|
|
86
|
+
import { useIntentDispatcher as useIntentDispatcher2 } from "@dxos/app-framework/react";
|
|
87
|
+
import { Input, Message, useTranslation as useTranslation2 } from "@dxos/react-ui";
|
|
88
|
+
import { ControlGroup, ControlItemInput, ControlPage, ControlSection } from "@dxos/react-ui-form";
|
|
89
|
+
var ObservabilitySettingsSchema = Schema.mutable(Schema.Struct({
|
|
90
|
+
enabled: Schema.Boolean
|
|
91
|
+
}));
|
|
92
|
+
var ObservabilitySettings = ({ settings }) => {
|
|
93
|
+
var _effect = _useSignals3();
|
|
94
|
+
try {
|
|
95
|
+
const { t } = useTranslation2(meta.id);
|
|
96
|
+
const { dispatchPromise: dispatch } = useIntentDispatcher2();
|
|
97
|
+
return /* @__PURE__ */ React3.createElement(ControlPage, null, /* @__PURE__ */ React3.createElement(ControlSection, {
|
|
98
|
+
title: t("settings title", {
|
|
99
|
+
ns: meta.id
|
|
100
|
+
})
|
|
101
|
+
}, /* @__PURE__ */ React3.createElement(Message.Root, {
|
|
102
|
+
valence: "info",
|
|
103
|
+
classNames: "container-max-width mbe-cardSpacingBlock"
|
|
104
|
+
}, /* @__PURE__ */ React3.createElement(Message.Content, null, t("observability description"))), /* @__PURE__ */ React3.createElement(ControlGroup, null, /* @__PURE__ */ React3.createElement(ControlItemInput, {
|
|
105
|
+
title: t("observability enabled label")
|
|
106
|
+
}, /* @__PURE__ */ React3.createElement(Input.Switch, {
|
|
107
|
+
checked: settings.enabled,
|
|
108
|
+
onCheckedChange: (checked) => dispatch(createIntent2(ObservabilityAction.Toggle, {
|
|
109
|
+
state: !!checked
|
|
110
|
+
}))
|
|
111
|
+
})))));
|
|
112
|
+
} finally {
|
|
113
|
+
_effect.f();
|
|
114
|
+
}
|
|
115
|
+
};
|
|
116
|
+
|
|
117
|
+
export {
|
|
118
|
+
FeedbackForm,
|
|
119
|
+
HelpContainer,
|
|
120
|
+
ObservabilitySettingsSchema,
|
|
121
|
+
ObservabilitySettings
|
|
122
|
+
};
|
|
123
|
+
//# sourceMappingURL=chunk-RLY6UZDS.mjs.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../../src/components/FeedbackForm.tsx", "../../../src/components/HelpContainer.tsx", "../../../src/components/ObservabilitySettings.tsx"],
|
|
4
|
+
"sourcesContent": ["//\n// Copyright 2024 DXOS.org\n//\n\nimport React from 'react';\n\nimport { useTranslation } from '@dxos/react-ui';\nimport { Form, type FormRootProps } from '@dxos/react-ui-form';\n\nimport { meta } from '../meta';\nimport { UserFeedback } from '../types';\n\nexport type FeedbackFormProps = Pick<FormRootProps<UserFeedback>, 'onSave'>;\n\nexport const FeedbackForm = ({ onSave }: FeedbackFormProps) => {\n const { t } = useTranslation(meta.id);\n\n return (\n <Form.Root schema={UserFeedback} onSave={onSave}>\n <Form.Content>\n <Form.FieldSet />\n <Form.Submit icon='ph--paper-plane-tilt--regular' label={t('send feedback label')} />\n </Form.Content>\n </Form.Root>\n );\n};\n", "//\n// Copyright 2025 DXOS.org\n//\n\nimport * as Function from 'effect/Function';\nimport React, { useCallback } from 'react';\n\nimport { LayoutAction, chain, createIntent } from '@dxos/app-framework';\nimport { useIntentDispatcher } from '@dxos/app-framework/react';\n\nimport { meta } from '../meta';\nimport { ObservabilityAction, type UserFeedback } from '../types';\n\nimport { FeedbackForm } from './FeedbackForm';\n\nexport const HelpContainer = () => {\n const { dispatchPromise: dispatch } = useIntentDispatcher();\n\n const handleSave = useCallback(\n (values: UserFeedback) =>\n dispatch(\n Function.pipe(\n createIntent(ObservabilityAction.CaptureUserFeedback, values),\n chain(LayoutAction.UpdateComplementary, { part: 'complementary', options: { state: 'collapsed' } }),\n chain(LayoutAction.AddToast, {\n part: 'toast',\n subject: {\n id: `${meta.id}/feedback-success`,\n icon: 'ph--paper-plane-tilt--regular',\n duration: 3000,\n title: ['feedback toast label', { ns: meta.id }],\n description: ['feedback toast description', { ns: meta.id }],\n closeLabel: ['close label', { ns: 'os' }],\n },\n }),\n ),\n ),\n [dispatch],\n );\n\n return <FeedbackForm onSave={handleSave} />;\n};\n", "//\n// Copyright 2023 DXOS.org\n//\n\nimport * as Schema from 'effect/Schema';\nimport React from 'react';\n\nimport { createIntent } from '@dxos/app-framework';\nimport { useIntentDispatcher } from '@dxos/app-framework/react';\nimport { Input, Message, useTranslation } from '@dxos/react-ui';\nimport { ControlGroup, ControlItemInput, ControlPage, ControlSection } from '@dxos/react-ui-form';\n\nimport { meta } from '../meta';\nimport { ObservabilityAction } from '../types';\n\nexport const ObservabilitySettingsSchema = Schema.mutable(\n Schema.Struct({\n enabled: Schema.Boolean,\n // TODO(wittjosiah): Separate settings for each observability feature.\n // metrics?: boolean;\n // telemetry?: boolean;\n // errors?: boolean;\n }),\n);\n\nexport type ObservabilitySettingsProps = Schema.Schema.Type<typeof ObservabilitySettingsSchema>;\n\nexport const ObservabilitySettings = ({ settings }: { settings: ObservabilitySettingsProps }) => {\n const { t } = useTranslation(meta.id);\n const { dispatchPromise: dispatch } = useIntentDispatcher();\n\n return (\n <ControlPage>\n <ControlSection title={t('settings title', { ns: meta.id })}>\n <Message.Root valence='info' classNames='container-max-width mbe-cardSpacingBlock'>\n <Message.Content>{t('observability description')}</Message.Content>\n </Message.Root>\n <ControlGroup>\n <ControlItemInput title={t('observability enabled label')}>\n <Input.Switch\n checked={settings.enabled}\n onCheckedChange={(checked) => dispatch(createIntent(ObservabilityAction.Toggle, { state: !!checked }))}\n />\n </ControlItemInput>\n </ControlGroup>\n </ControlSection>\n </ControlPage>\n );\n};\n"],
|
|
5
|
+
"mappings": ";;;;;;;;;;AAIA,OAAOA,WAAW;AAElB,SAASC,sBAAsB;AAC/B,SAASC,YAAgC;AAOlC,IAAMC,eAAe,CAAC,EAAEC,OAAM,MAAqB;;;AACxD,UAAM,EAAEC,EAAC,IAAKC,eAAeC,KAAKC,EAAE;AAEpC,WACE,sBAAA,cAACC,KAAKC,MAAI;MAACC,QAAQC;MAAcR;OAC/B,sBAAA,cAACK,KAAKI,SAAO,MACX,sBAAA,cAACJ,KAAKK,UAAQ,IAAA,GACd,sBAAA,cAACL,KAAKM,QAAM;MAACC,MAAK;MAAgCC,OAAOZ,EAAE,qBAAA;;;;;AAInE;;;;ACrBA,YAAYa,cAAc;AAC1B,OAAOC,UAASC,mBAAmB;AAEnC,SAASC,cAAcC,OAAOC,oBAAoB;AAClD,SAASC,2BAA2B;AAO7B,IAAMC,gBAAgB,MAAA;;;AAC3B,UAAM,EAAEC,iBAAiBC,SAAQ,IAAKC,oBAAAA;AAEtC,UAAMC,aAAaC,YACjB,CAACC,WACCJ,SACWK,cACPC,aAAaC,oBAAoBC,qBAAqBJ,MAAAA,GACtDK,MAAMC,aAAaC,qBAAqB;MAAEC,MAAM;MAAiBC,SAAS;QAAEC,OAAO;MAAY;IAAE,CAAA,GACjGL,MAAMC,aAAaK,UAAU;MAC3BH,MAAM;MACNI,SAAS;QACPC,IAAI,GAAGC,KAAKD,EAAE;QACdE,MAAM;QACNC,UAAU;QACVC,OAAO;UAAC;UAAwB;YAAEC,IAAIJ,KAAKD;UAAG;;QAC9CM,aAAa;UAAC;UAA8B;YAAED,IAAIJ,KAAKD;UAAG;;QAC1DO,YAAY;UAAC;UAAe;YAAEF,IAAI;UAAK;;MACzC;IACF,CAAA,CAAA,CAAA,GAGN;MAACtB;KAAS;AAGZ,WAAO,gBAAAyB,OAAA,cAACC,cAAAA;MAAaC,QAAQzB;;;;;AAC/B;;;;ACrCA,YAAY0B,YAAY;AACxB,OAAOC,YAAW;AAElB,SAASC,gBAAAA,qBAAoB;AAC7B,SAASC,uBAAAA,4BAA2B;AACpC,SAASC,OAAOC,SAASC,kBAAAA,uBAAsB;AAC/C,SAASC,cAAcC,kBAAkBC,aAAaC,sBAAsB;AAKrE,IAAMC,8BAAqCC,eACzCC,cAAO;EACZC,SAAgBC;AAKlB,CAAA,CAAA;AAKK,IAAMC,wBAAwB,CAAC,EAAEC,SAAQ,MAA4C;;;AAC1F,UAAM,EAAEC,EAAC,IAAKC,gBAAeC,KAAKC,EAAE;AACpC,UAAM,EAAEC,iBAAiBC,SAAQ,IAAKC,qBAAAA;AAEtC,WACE,gBAAAC,OAAA,cAACC,aAAAA,MACC,gBAAAD,OAAA,cAACE,gBAAAA;MAAeC,OAAOV,EAAE,kBAAkB;QAAEW,IAAIT,KAAKC;MAAG,CAAA;OACvD,gBAAAI,OAAA,cAACK,QAAQC,MAAI;MAACC,SAAQ;MAAOC,YAAW;OACtC,gBAAAR,OAAA,cAACK,QAAQI,SAAO,MAAEhB,EAAE,2BAAA,CAAA,CAAA,GAEtB,gBAAAO,OAAA,cAACU,cAAAA,MACC,gBAAAV,OAAA,cAACW,kBAAAA;MAAiBR,OAAOV,EAAE,6BAAA;OACzB,gBAAAO,OAAA,cAACY,MAAMC,QAAM;MACXC,SAAStB,SAASH;MAClB0B,iBAAiB,CAACD,YAAYhB,SAASkB,cAAaC,oBAAoBC,QAAQ;QAAEC,OAAO,CAAC,CAACL;MAAQ,CAAA,CAAA;;;;;AAOjH;",
|
|
6
|
+
"names": ["React", "useTranslation", "Form", "FeedbackForm", "onSave", "t", "useTranslation", "meta", "id", "Form", "Root", "schema", "UserFeedback", "Content", "FieldSet", "Submit", "icon", "label", "Function", "React", "useCallback", "LayoutAction", "chain", "createIntent", "useIntentDispatcher", "HelpContainer", "dispatchPromise", "dispatch", "useIntentDispatcher", "handleSave", "useCallback", "values", "pipe", "createIntent", "ObservabilityAction", "CaptureUserFeedback", "chain", "LayoutAction", "UpdateComplementary", "part", "options", "state", "AddToast", "subject", "id", "meta", "icon", "duration", "title", "ns", "description", "closeLabel", "React", "FeedbackForm", "onSave", "Schema", "React", "createIntent", "useIntentDispatcher", "Input", "Message", "useTranslation", "ControlGroup", "ControlItemInput", "ControlPage", "ControlSection", "ObservabilitySettingsSchema", "mutable", "Struct", "enabled", "Boolean", "ObservabilitySettings", "settings", "t", "useTranslation", "meta", "id", "dispatchPromise", "dispatch", "useIntentDispatcher", "React", "ControlPage", "ControlSection", "title", "ns", "Message", "Root", "valence", "classNames", "Content", "ControlGroup", "ControlItemInput", "Input", "Switch", "checked", "onCheckedChange", "createIntent", "ObservabilityAction", "Toggle", "state"]
|
|
7
|
+
}
|
|
@@ -1,18 +1,44 @@
|
|
|
1
1
|
import {
|
|
2
2
|
meta
|
|
3
|
-
} from "./chunk-
|
|
3
|
+
} from "./chunk-W7QWKVS3.mjs";
|
|
4
4
|
|
|
5
5
|
// src/types/schema.ts
|
|
6
|
-
import
|
|
7
|
-
import {
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
6
|
+
import * as Schema from "effect/Schema";
|
|
7
|
+
import { Format, Key } from "@dxos/echo";
|
|
8
|
+
|
|
9
|
+
// src/translations.ts
|
|
10
|
+
var translations = [
|
|
11
|
+
{
|
|
12
|
+
"en-US": {
|
|
13
|
+
[meta.id]: {
|
|
14
|
+
"plugin name": "Telemetry",
|
|
15
|
+
"settings title": "Telemetry settings",
|
|
16
|
+
"observability toast label": "Privacy Notice",
|
|
17
|
+
"observability toast description": "Composer collects usage and performance metrics to improve the product. No user data is collected.",
|
|
18
|
+
"observability toast action label": "Settings",
|
|
19
|
+
"observability toast action alt": "Open settings to learn more or to disable.",
|
|
20
|
+
"observability toast close label": "Okay",
|
|
21
|
+
"observability enabled label": "Enable telemetry",
|
|
22
|
+
// TODO: Add link about telemetry privacy. Make it clearer that user data is not collected.
|
|
23
|
+
"observability description": "When enabled, basic usage data will used to improve the product. This may include performance metrics, error logs, and usage data. No personally identifiable information, other than your public key, is included with this data and no private data ever leaves your devices.",
|
|
24
|
+
"help label": "Feedback & Support",
|
|
25
|
+
"feedback textarea label": "Feedback",
|
|
26
|
+
"feedback textarea placeholder": "Please enter your feedback, technical issue, or feature request.",
|
|
27
|
+
"send feedback label": "Send Feedback",
|
|
28
|
+
"feedback toast label": "Thank you for your feedback!",
|
|
29
|
+
"feedback toast description": "We will review your feedback and get back to you as soon as possible."
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
];
|
|
34
|
+
|
|
35
|
+
// src/types/schema.ts
|
|
36
|
+
var t = translations[0]["en-US"][meta.id];
|
|
14
37
|
var UserFeedback = Schema.Struct({
|
|
15
|
-
message:
|
|
38
|
+
message: Format.Text.pipe(Schema.nonEmptyString(), Schema.maxLength(4096), Schema.annotations({
|
|
39
|
+
title: t["feedback textarea label"],
|
|
40
|
+
description: t["feedback textarea placeholder"]
|
|
41
|
+
}))
|
|
16
42
|
});
|
|
17
43
|
(function(ObservabilityAction2) {
|
|
18
44
|
class Toggle extends Schema.TaggedClass()(`${meta.id}/action/toggle`, {
|
|
@@ -68,76 +94,76 @@ var UserFeedback = Schema.Struct({
|
|
|
68
94
|
}), Schema.Struct({
|
|
69
95
|
name: Schema.Literal("space.create"),
|
|
70
96
|
properties: Schema.Struct({
|
|
71
|
-
spaceId:
|
|
97
|
+
spaceId: Key.SpaceId
|
|
72
98
|
})
|
|
73
99
|
}), Schema.Struct({
|
|
74
100
|
name: Schema.Literal("space.join"),
|
|
75
101
|
properties: Schema.Struct({
|
|
76
|
-
spaceId:
|
|
102
|
+
spaceId: Key.SpaceId
|
|
77
103
|
})
|
|
78
104
|
}), Schema.Struct({
|
|
79
105
|
name: Schema.Literal("space.limit"),
|
|
80
106
|
properties: Schema.Struct({
|
|
81
|
-
spaceId:
|
|
107
|
+
spaceId: Key.SpaceId
|
|
82
108
|
})
|
|
83
109
|
}), Schema.Struct({
|
|
84
110
|
name: Schema.Literal("space.lock"),
|
|
85
111
|
properties: Schema.Struct({
|
|
86
|
-
spaceId:
|
|
112
|
+
spaceId: Key.SpaceId
|
|
87
113
|
})
|
|
88
114
|
}), Schema.Struct({
|
|
89
115
|
name: Schema.Literal("space.migrate"),
|
|
90
116
|
properties: Schema.Struct({
|
|
91
|
-
spaceId:
|
|
117
|
+
spaceId: Key.SpaceId,
|
|
92
118
|
targetVersion: Schema.optional(Schema.String),
|
|
93
119
|
version: Schema.optional(Schema.String)
|
|
94
120
|
})
|
|
95
121
|
}), Schema.Struct({
|
|
96
122
|
name: Schema.Literal("space.schema.use"),
|
|
97
123
|
properties: Schema.Struct({
|
|
98
|
-
spaceId:
|
|
124
|
+
spaceId: Key.SpaceId,
|
|
99
125
|
typename: Schema.String
|
|
100
126
|
})
|
|
101
127
|
}), Schema.Struct({
|
|
102
128
|
name: Schema.Literal("space.schema.add"),
|
|
103
129
|
properties: Schema.Struct({
|
|
104
|
-
spaceId:
|
|
130
|
+
spaceId: Key.SpaceId,
|
|
105
131
|
objectId: Schema.String,
|
|
106
132
|
typename: Schema.String
|
|
107
133
|
})
|
|
108
134
|
}), Schema.Struct({
|
|
109
135
|
name: Schema.Literal("space.object.add"),
|
|
110
136
|
properties: Schema.Struct({
|
|
111
|
-
spaceId:
|
|
137
|
+
spaceId: Key.SpaceId,
|
|
112
138
|
objectId: Schema.String,
|
|
113
139
|
typename: Schema.optional(Schema.String)
|
|
114
140
|
})
|
|
115
141
|
}), Schema.Struct({
|
|
116
142
|
name: Schema.Literal("space.share"),
|
|
117
143
|
properties: Schema.Struct({
|
|
118
|
-
spaceId:
|
|
144
|
+
spaceId: Key.SpaceId
|
|
119
145
|
})
|
|
120
146
|
}), Schema.Struct({
|
|
121
147
|
name: Schema.Literal("space.unlock"),
|
|
122
148
|
properties: Schema.Struct({
|
|
123
|
-
spaceId:
|
|
149
|
+
spaceId: Key.SpaceId
|
|
124
150
|
})
|
|
125
151
|
}), Schema.Struct({
|
|
126
152
|
name: Schema.Literal("threads.create"),
|
|
127
153
|
properties: Schema.Struct({
|
|
128
|
-
spaceId:
|
|
154
|
+
spaceId: Key.SpaceId,
|
|
129
155
|
threadId: Schema.String
|
|
130
156
|
})
|
|
131
157
|
}), Schema.Struct({
|
|
132
158
|
name: Schema.Literal("threads.delete"),
|
|
133
159
|
properties: Schema.Struct({
|
|
134
|
-
spaceId:
|
|
160
|
+
spaceId: Key.SpaceId,
|
|
135
161
|
threadId: Schema.String
|
|
136
162
|
})
|
|
137
163
|
}), Schema.Struct({
|
|
138
164
|
name: Schema.Literal("threads.message.add"),
|
|
139
165
|
properties: Schema.Struct({
|
|
140
|
-
spaceId:
|
|
166
|
+
spaceId: Key.SpaceId,
|
|
141
167
|
threadId: Schema.String,
|
|
142
168
|
threadLength: Schema.Number,
|
|
143
169
|
messageId: Schema.String,
|
|
@@ -146,34 +172,34 @@ var UserFeedback = Schema.Struct({
|
|
|
146
172
|
}), Schema.Struct({
|
|
147
173
|
name: Schema.Literal("threads.message.delete"),
|
|
148
174
|
properties: Schema.Struct({
|
|
149
|
-
spaceId:
|
|
175
|
+
spaceId: Key.SpaceId,
|
|
150
176
|
threadId: Schema.String,
|
|
151
177
|
messageId: Schema.String
|
|
152
178
|
})
|
|
153
179
|
}), Schema.Struct({
|
|
154
180
|
name: Schema.Literal("threads.message.undo-delete"),
|
|
155
181
|
properties: Schema.Struct({
|
|
156
|
-
spaceId:
|
|
182
|
+
spaceId: Key.SpaceId,
|
|
157
183
|
threadId: Schema.String,
|
|
158
184
|
messageId: Schema.String
|
|
159
185
|
})
|
|
160
186
|
}), Schema.Struct({
|
|
161
187
|
name: Schema.Literal("threads.message.update"),
|
|
162
188
|
properties: Schema.Struct({
|
|
163
|
-
spaceId:
|
|
189
|
+
spaceId: Key.SpaceId,
|
|
164
190
|
messageId: Schema.String,
|
|
165
191
|
messageLength: Schema.Number
|
|
166
192
|
})
|
|
167
193
|
}), Schema.Struct({
|
|
168
194
|
name: Schema.Literal("threads.toggle-resolved"),
|
|
169
195
|
properties: Schema.Struct({
|
|
170
|
-
spaceId:
|
|
196
|
+
spaceId: Key.SpaceId,
|
|
171
197
|
threadId: Schema.String
|
|
172
198
|
})
|
|
173
199
|
}), Schema.Struct({
|
|
174
200
|
name: Schema.Literal("threads.undo-delete"),
|
|
175
201
|
properties: Schema.Struct({
|
|
176
|
-
spaceId:
|
|
202
|
+
spaceId: Key.SpaceId,
|
|
177
203
|
threadId: Schema.String
|
|
178
204
|
})
|
|
179
205
|
})),
|
|
@@ -185,7 +211,8 @@ var UserFeedback = Schema.Struct({
|
|
|
185
211
|
var ObservabilityAction;
|
|
186
212
|
|
|
187
213
|
export {
|
|
214
|
+
translations,
|
|
188
215
|
UserFeedback,
|
|
189
216
|
ObservabilityAction
|
|
190
217
|
};
|
|
191
|
-
//# sourceMappingURL=chunk-
|
|
218
|
+
//# sourceMappingURL=chunk-RRMLEY35.mjs.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../../src/types/schema.ts", "../../../src/translations.ts"],
|
|
4
|
+
"sourcesContent": ["//\n// Copyright 2024 DXOS.org\n//\n\nimport * as Schema from 'effect/Schema';\n\nimport { Format, Key } from '@dxos/echo';\n\nimport { meta } from '../meta';\nimport { translations } from '../translations';\n\nconst t = translations[0]['en-US'][meta.id];\n\nexport const UserFeedback = Schema.Struct({\n message: Format.Text.pipe(\n Schema.nonEmptyString(),\n Schema.maxLength(4_096),\n Schema.annotations({\n title: t['feedback textarea label'],\n description: t['feedback textarea placeholder'],\n }),\n ),\n});\n\nexport type UserFeedback = Schema.Schema.Type<typeof UserFeedback>;\n\nexport namespace ObservabilityAction {\n export class Toggle extends Schema.TaggedClass<Toggle>()(`${meta.id}/action/toggle`, {\n input: Schema.Struct({\n state: Schema.optional(Schema.Boolean),\n }),\n output: Schema.Boolean,\n }) {}\n\n export class CaptureUserFeedback extends Schema.TaggedClass<CaptureUserFeedback>()(\n `${meta.id}/action/capture-feedback`,\n {\n input: UserFeedback,\n output: Schema.Void,\n },\n ) {}\n\n /** Base intent for sending events. */\n export class BaseSendEvent extends Schema.TaggedClass<BaseSendEvent>()(`${meta.id}/action/send-event`, {\n input: Schema.Struct({\n name: Schema.String,\n properties: Schema.optional(Schema.Object),\n }),\n output: Schema.Void,\n }) {}\n\n /** Intent with strict types for first-party events. */\n export class SendEvent extends Schema.TaggedClass<SendEvent>()(`${meta.id}/action/send-event`, {\n // NOTE: Sort alphabetically by name.\n input: Schema.Union(\n Schema.Struct({\n name: Schema.Literal('identity.create'),\n }),\n Schema.Struct({\n name: Schema.Literal('identity.join'),\n }),\n Schema.Struct({\n name: Schema.Literal('identity.recover'),\n }),\n Schema.Struct({\n name: Schema.Literal('identity.share'),\n }),\n Schema.Struct({\n name: Schema.Literal('navigation.activate'),\n properties: Schema.Struct({\n subjectId: Schema.String,\n typename: Schema.optional(Schema.String),\n }),\n }),\n Schema.Struct({\n name: Schema.Literal('page.load'),\n properties: Schema.Struct({\n loadDuration: Schema.Number,\n }),\n }),\n Schema.Struct({\n name: Schema.Literal('plugins.toggle'),\n properties: Schema.Struct({\n plugin: Schema.String,\n enabled: Schema.Boolean,\n }),\n }),\n Schema.Struct({\n name: Schema.Literal('space.create'),\n properties: Schema.Struct({\n spaceId: Key.SpaceId,\n }),\n }),\n Schema.Struct({\n name: Schema.Literal('space.join'),\n properties: Schema.Struct({\n spaceId: Key.SpaceId,\n }),\n }),\n Schema.Struct({\n name: Schema.Literal('space.limit'),\n properties: Schema.Struct({\n spaceId: Key.SpaceId,\n }),\n }),\n Schema.Struct({\n name: Schema.Literal('space.lock'),\n properties: Schema.Struct({\n spaceId: Key.SpaceId,\n }),\n }),\n Schema.Struct({\n name: Schema.Literal('space.migrate'),\n properties: Schema.Struct({\n spaceId: Key.SpaceId,\n targetVersion: Schema.optional(Schema.String),\n version: Schema.optional(Schema.String),\n }),\n }),\n Schema.Struct({\n name: Schema.Literal('space.schema.use'),\n properties: Schema.Struct({\n spaceId: Key.SpaceId,\n typename: Schema.String,\n }),\n }),\n Schema.Struct({\n name: Schema.Literal('space.schema.add'),\n properties: Schema.Struct({\n spaceId: Key.SpaceId,\n objectId: Schema.String,\n typename: Schema.String,\n }),\n }),\n Schema.Struct({\n name: Schema.Literal('space.object.add'),\n properties: Schema.Struct({\n spaceId: Key.SpaceId,\n objectId: Schema.String,\n typename: Schema.optional(Schema.String),\n }),\n }),\n Schema.Struct({\n name: Schema.Literal('space.share'),\n properties: Schema.Struct({\n spaceId: Key.SpaceId,\n }),\n }),\n Schema.Struct({\n name: Schema.Literal('space.unlock'),\n properties: Schema.Struct({\n spaceId: Key.SpaceId,\n }),\n }),\n Schema.Struct({\n name: Schema.Literal('threads.create'),\n properties: Schema.Struct({\n spaceId: Key.SpaceId,\n threadId: Schema.String,\n }),\n }),\n Schema.Struct({\n name: Schema.Literal('threads.delete'),\n properties: Schema.Struct({\n spaceId: Key.SpaceId,\n threadId: Schema.String,\n }),\n }),\n Schema.Struct({\n name: Schema.Literal('threads.message.add'),\n properties: Schema.Struct({\n spaceId: Key.SpaceId,\n threadId: Schema.String,\n threadLength: Schema.Number,\n messageId: Schema.String,\n messageLength: Schema.Number,\n }),\n }),\n Schema.Struct({\n name: Schema.Literal('threads.message.delete'),\n properties: Schema.Struct({\n spaceId: Key.SpaceId,\n threadId: Schema.String,\n messageId: Schema.String,\n }),\n }),\n Schema.Struct({\n name: Schema.Literal('threads.message.undo-delete'),\n properties: Schema.Struct({\n spaceId: Key.SpaceId,\n threadId: Schema.String,\n messageId: Schema.String,\n }),\n }),\n Schema.Struct({\n name: Schema.Literal('threads.message.update'),\n properties: Schema.Struct({\n spaceId: Key.SpaceId,\n messageId: Schema.String,\n messageLength: Schema.Number,\n }),\n }),\n Schema.Struct({\n name: Schema.Literal('threads.toggle-resolved'),\n properties: Schema.Struct({\n spaceId: Key.SpaceId,\n threadId: Schema.String,\n }),\n }),\n Schema.Struct({\n name: Schema.Literal('threads.undo-delete'),\n properties: Schema.Struct({\n spaceId: Key.SpaceId,\n threadId: Schema.String,\n }),\n }),\n ),\n output: Schema.Void,\n }) {}\n}\n", "//\n// Copyright 2023 DXOS.org\n//\n\nimport { type Resource } from '@dxos/react-ui';\n\nimport { meta } from './meta';\n\nexport const translations = [\n {\n 'en-US': {\n [meta.id]: {\n 'plugin name': 'Telemetry',\n 'settings title': 'Telemetry settings',\n 'observability toast label': 'Privacy Notice',\n 'observability toast description':\n 'Composer collects usage and performance metrics to improve the product. No user data is collected.',\n 'observability toast action label': 'Settings',\n 'observability toast action alt': 'Open settings to learn more or to disable.',\n 'observability toast close label': 'Okay',\n 'observability enabled label': 'Enable telemetry',\n // TODO: Add link about telemetry privacy. Make it clearer that user data is not collected.\n 'observability description':\n 'When enabled, basic usage data will used to improve the product. This may include performance metrics, error logs, and usage data. No personally identifiable information, other than your public key, is included with this data and no private data ever leaves your devices.',\n\n 'help label': 'Feedback & Support',\n 'feedback textarea label': 'Feedback',\n 'feedback textarea placeholder': 'Please enter your feedback, technical issue, or feature request.',\n 'send feedback label': 'Send Feedback',\n 'feedback toast label': 'Thank you for your feedback!',\n 'feedback toast description': 'We will review your feedback and get back to you as soon as possible.',\n },\n },\n },\n] as const satisfies Resource[];\n"],
|
|
5
|
+
"mappings": "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",
|
|
6
|
+
"names": ["Schema", "Format", "Key", "translations", "meta", "id", "t", "translations", "meta", "id", "UserFeedback", "Struct", "message", "Format", "Text", "pipe", "nonEmptyString", "maxLength", "annotations", "title", "description", "ObservabilityAction", "Toggle", "TaggedClass", "input", "state", "optional", "Boolean", "output", "CaptureUserFeedback", "Void", "BaseSendEvent", "name", "String", "properties", "Object", "SendEvent", "Union", "Literal", "subjectId", "typename", "loadDuration", "Number", "plugin", "enabled", "spaceId", "Key", "SpaceId", "targetVersion", "version", "objectId", "threadId", "threadLength", "messageId", "messageLength"]
|
|
7
|
+
}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
// src/meta.ts
|
|
2
|
+
import { trim } from "@dxos/util";
|
|
3
|
+
var meta = {
|
|
4
|
+
id: "dxos.org/plugin/observability",
|
|
5
|
+
name: "Telemetry",
|
|
6
|
+
description: trim`
|
|
7
|
+
Application observability and telemetry collection for monitoring performance and usage patterns.
|
|
8
|
+
Track metrics, logs, and traces for system health and analytics.
|
|
9
|
+
`,
|
|
10
|
+
icon: "ph--eye--regular"
|
|
11
|
+
};
|
|
12
|
+
|
|
13
|
+
export {
|
|
14
|
+
meta
|
|
15
|
+
};
|
|
16
|
+
//# sourceMappingURL=chunk-W7QWKVS3.mjs.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../../src/meta.ts"],
|
|
4
|
+
"sourcesContent": ["//\n// Copyright 2023 DXOS.org\n//\n\nimport { type PluginMeta } from '@dxos/app-framework';\nimport { trim } from '@dxos/util';\n\nexport const meta: PluginMeta = {\n id: 'dxos.org/plugin/observability',\n name: 'Telemetry',\n description: trim`\n Application observability and telemetry collection for monitoring performance and usage patterns.\n Track metrics, logs, and traces for system health and analytics.\n `,\n icon: 'ph--eye--regular',\n};\n"],
|
|
5
|
+
"mappings": ";AAKA,SAASA,YAAY;AAEd,IAAMC,OAAmB;EAC9BC,IAAI;EACJC,MAAM;EACNC,aAAaC;;;;EAIbC,MAAM;AACR;",
|
|
6
|
+
"names": ["trim", "meta", "id", "name", "description", "trim", "icon"]
|
|
7
|
+
}
|
|
@@ -1,18 +1,18 @@
|
|
|
1
1
|
import {
|
|
2
2
|
ObservabilityAction
|
|
3
|
-
} from "./chunk-
|
|
3
|
+
} from "./chunk-RRMLEY35.mjs";
|
|
4
4
|
import {
|
|
5
5
|
ClientCapability,
|
|
6
6
|
ObservabilityCapabilities
|
|
7
|
-
} from "./chunk-
|
|
7
|
+
} from "./chunk-EC7HTFA5.mjs";
|
|
8
8
|
import {
|
|
9
|
-
|
|
10
|
-
} from "./chunk-
|
|
9
|
+
meta
|
|
10
|
+
} from "./chunk-W7QWKVS3.mjs";
|
|
11
11
|
|
|
12
12
|
// src/capabilities/client-ready.ts
|
|
13
|
-
import { Capabilities,
|
|
13
|
+
import { Capabilities, LayoutAction, SettingsAction, contributes, createIntent } from "@dxos/app-framework";
|
|
14
14
|
import { setupTelemetryListeners } from "@dxos/observability";
|
|
15
|
-
var client_ready_default = async ({ context, namespace, observability }) => {
|
|
15
|
+
var client_ready_default = (async ({ context, namespace, observability }) => {
|
|
16
16
|
const manager = context.getCapability(Capabilities.PluginManager);
|
|
17
17
|
const { dispatchPromise: dispatch } = context.getCapability(Capabilities.IntentDispatcher);
|
|
18
18
|
const state = context.getCapability(ObservabilityCapabilities.State);
|
|
@@ -24,17 +24,17 @@ var client_ready_default = async ({ context, namespace, observability }) => {
|
|
|
24
24
|
await dispatch(createIntent(LayoutAction.AddToast, {
|
|
25
25
|
part: "toast",
|
|
26
26
|
subject: {
|
|
27
|
-
id: `${
|
|
27
|
+
id: `${meta.id}/notice`,
|
|
28
28
|
title: [
|
|
29
29
|
"observability toast label",
|
|
30
30
|
{
|
|
31
|
-
ns:
|
|
31
|
+
ns: meta.id
|
|
32
32
|
}
|
|
33
33
|
],
|
|
34
34
|
description: [
|
|
35
35
|
"observability toast description",
|
|
36
36
|
{
|
|
37
|
-
ns:
|
|
37
|
+
ns: meta.id
|
|
38
38
|
}
|
|
39
39
|
],
|
|
40
40
|
duration: Infinity,
|
|
@@ -42,23 +42,23 @@ var client_ready_default = async ({ context, namespace, observability }) => {
|
|
|
42
42
|
actionLabel: [
|
|
43
43
|
"observability toast action label",
|
|
44
44
|
{
|
|
45
|
-
ns:
|
|
45
|
+
ns: meta.id
|
|
46
46
|
}
|
|
47
47
|
],
|
|
48
48
|
actionAlt: [
|
|
49
49
|
"observability toast action alt",
|
|
50
50
|
{
|
|
51
|
-
ns:
|
|
51
|
+
ns: meta.id
|
|
52
52
|
}
|
|
53
53
|
],
|
|
54
54
|
closeLabel: [
|
|
55
55
|
"observability toast close label",
|
|
56
56
|
{
|
|
57
|
-
ns:
|
|
57
|
+
ns: meta.id
|
|
58
58
|
}
|
|
59
59
|
],
|
|
60
60
|
onAction: () => dispatch(createIntent(SettingsAction.Open, {
|
|
61
|
-
plugin:
|
|
61
|
+
plugin: meta.id
|
|
62
62
|
}))
|
|
63
63
|
}
|
|
64
64
|
}));
|
|
@@ -95,8 +95,8 @@ var client_ready_default = async ({ context, namespace, observability }) => {
|
|
|
95
95
|
cleanup();
|
|
96
96
|
await observability.close();
|
|
97
97
|
});
|
|
98
|
-
};
|
|
98
|
+
});
|
|
99
99
|
export {
|
|
100
100
|
client_ready_default as default
|
|
101
101
|
};
|
|
102
|
-
//# sourceMappingURL=client-ready-
|
|
102
|
+
//# sourceMappingURL=client-ready-XT27JB7J.mjs.map
|
|
@@ -0,0 +1,7 @@
|
|
|
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
|
+
}
|