@dxos/plugin-observability 0.8.4-main.f9ba587 → 0.8.4-main.fcc0d83b33
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/ObservabilitySettings-H6UKYDDT.mjs +27 -0
- package/dist/lib/browser/ObservabilitySettings-H6UKYDDT.mjs.map +7 -0
- package/dist/lib/browser/capture-user-feedback-3BXDUCZM.mjs +24 -0
- package/dist/lib/browser/capture-user-feedback-3BXDUCZM.mjs.map +7 -0
- package/dist/lib/browser/chunk-DLBA63VM.mjs +83 -0
- package/dist/lib/browser/chunk-DLBA63VM.mjs.map +7 -0
- package/dist/lib/browser/chunk-J5LGTIGS.mjs +10 -0
- package/dist/lib/browser/chunk-VQC6DG6V.mjs +53 -0
- package/dist/lib/browser/chunk-VQC6DG6V.mjs.map +7 -0
- package/dist/lib/browser/cli/index.mjs +20 -0
- package/dist/lib/browser/cli/index.mjs.map +7 -0
- package/dist/lib/browser/index.mjs +105 -114
- package/dist/lib/browser/index.mjs.map +4 -4
- package/dist/lib/browser/meta.json +1 -1
- package/dist/lib/browser/operations/index.mjs +15 -0
- package/dist/lib/browser/operations/index.mjs.map +7 -0
- package/dist/lib/browser/send-event-F3D32CJX.mjs +22 -0
- package/dist/lib/browser/send-event-F3D32CJX.mjs.map +7 -0
- package/dist/lib/browser/toggle-PPNDFGWJ.mjs +47 -0
- package/dist/lib/browser/toggle-PPNDFGWJ.mjs.map +7 -0
- package/dist/lib/browser/translations.mjs +33 -0
- package/dist/lib/browser/translations.mjs.map +7 -0
- package/dist/lib/browser/types/index.mjs +16 -0
- package/dist/lib/node-esm/ObservabilitySettings-HXTWPHHR.mjs +28 -0
- package/dist/lib/node-esm/ObservabilitySettings-HXTWPHHR.mjs.map +7 -0
- package/dist/lib/node-esm/capture-user-feedback-LUPWJWGK.mjs +25 -0
- package/dist/lib/node-esm/capture-user-feedback-LUPWJWGK.mjs.map +7 -0
- package/dist/lib/node-esm/chunk-3B7HMSKM.mjs +84 -0
- package/dist/lib/node-esm/chunk-3B7HMSKM.mjs.map +7 -0
- package/dist/lib/node-esm/chunk-HSLMI22Q.mjs +11 -0
- package/dist/lib/node-esm/chunk-HSLMI22Q.mjs.map +7 -0
- package/dist/lib/node-esm/chunk-NCIKZY6L.mjs +54 -0
- package/dist/lib/node-esm/chunk-NCIKZY6L.mjs.map +7 -0
- package/dist/lib/node-esm/cli/index.mjs +21 -0
- package/dist/lib/node-esm/cli/index.mjs.map +7 -0
- package/dist/lib/node-esm/index.mjs +105 -114
- package/dist/lib/node-esm/index.mjs.map +4 -4
- package/dist/lib/node-esm/meta.json +1 -1
- package/dist/lib/node-esm/operations/index.mjs +16 -0
- package/dist/lib/node-esm/operations/index.mjs.map +7 -0
- package/dist/lib/node-esm/send-event-OKTEXC7M.mjs +23 -0
- package/dist/lib/node-esm/send-event-OKTEXC7M.mjs.map +7 -0
- package/dist/lib/node-esm/toggle-YS2KFMXS.mjs +48 -0
- package/dist/lib/node-esm/toggle-YS2KFMXS.mjs.map +7 -0
- package/dist/lib/node-esm/translations.mjs +34 -0
- package/dist/lib/node-esm/translations.mjs.map +7 -0
- package/dist/lib/node-esm/types/index.mjs +17 -0
- package/dist/lib/node-esm/types/index.mjs.map +7 -0
- package/dist/types/src/ObservabilityPlugin.d.ts +10 -3
- package/dist/types/src/ObservabilityPlugin.d.ts.map +1 -1
- package/dist/types/src/capabilities/app-graph-builder.d.ts +4 -2
- package/dist/types/src/capabilities/app-graph-builder.d.ts.map +1 -1
- package/dist/types/src/capabilities/client-ready.d.ts +5 -5
- package/dist/types/src/capabilities/client-ready.d.ts.map +1 -1
- package/dist/types/src/capabilities/index.d.ts +16 -15
- package/dist/types/src/capabilities/index.d.ts.map +1 -1
- package/dist/types/src/capabilities/operation-handler.d.ts +6 -0
- package/dist/types/src/capabilities/operation-handler.d.ts.map +1 -0
- package/dist/types/src/capabilities/react-surface.d.ts +3 -2
- package/dist/types/src/capabilities/react-surface.d.ts.map +1 -1
- package/dist/types/src/capabilities/settings.d.ts +5 -2
- package/dist/types/src/capabilities/settings.d.ts.map +1 -1
- package/dist/types/src/capabilities/state.d.ts +10 -3
- package/dist/types/src/capabilities/state.d.ts.map +1 -1
- 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/FeedbackForm.d.ts +9 -0
- package/dist/types/src/components/FeedbackForm/FeedbackForm.d.ts.map +1 -0
- package/dist/types/src/components/FeedbackForm/FeedbackForm.stories.d.ts +36 -0
- package/dist/types/src/components/FeedbackForm/FeedbackForm.stories.d.ts.map +1 -0
- package/dist/types/src/components/FeedbackForm/index.d.ts +2 -0
- package/dist/types/src/components/FeedbackForm/index.d.ts.map +1 -0
- package/dist/types/src/components/ObservabilitySettings/ObservabilitySettings.d.ts +6 -0
- package/dist/types/src/components/ObservabilitySettings/ObservabilitySettings.d.ts.map +1 -0
- package/dist/types/src/components/ObservabilitySettings/ObservabilitySettings.stories.d.ts +36 -0
- package/dist/types/src/components/ObservabilitySettings/ObservabilitySettings.stories.d.ts.map +1 -0
- package/dist/types/src/components/ObservabilitySettings/index.d.ts +2 -0
- package/dist/types/src/components/ObservabilitySettings/index.d.ts.map +1 -0
- package/dist/types/src/components/index.d.ts +2 -2
- package/dist/types/src/components/index.d.ts.map +1 -1
- package/dist/types/src/containers/HelpContainer/HelpContainer.d.ts +4 -0
- package/dist/types/src/containers/HelpContainer/HelpContainer.d.ts.map +1 -0
- package/dist/types/src/containers/HelpContainer/index.d.ts +2 -0
- package/dist/types/src/containers/HelpContainer/index.d.ts.map +1 -0
- package/dist/types/src/containers/index.d.ts +3 -0
- package/dist/types/src/containers/index.d.ts.map +1 -0
- package/dist/types/src/index.d.ts +1 -2
- package/dist/types/src/index.d.ts.map +1 -1
- package/dist/types/src/meta.d.ts +2 -3
- package/dist/types/src/meta.d.ts.map +1 -1
- package/dist/types/src/operations/capture-user-feedback.d.ts +5 -0
- package/dist/types/src/operations/capture-user-feedback.d.ts.map +1 -0
- package/dist/types/src/operations/definitions.d.ts +23 -0
- package/dist/types/src/operations/definitions.d.ts.map +1 -0
- package/dist/types/src/operations/index.d.ts +5 -0
- package/dist/types/src/operations/index.d.ts.map +1 -0
- package/dist/types/src/operations/send-event.d.ts +5 -0
- package/dist/types/src/operations/send-event.d.ts.map +1 -0
- package/dist/types/src/operations/toggle.d.ts +5 -0
- package/dist/types/src/operations/toggle.d.ts.map +1 -0
- package/dist/types/src/translations.d.ts +17 -16
- package/dist/types/src/translations.d.ts.map +1 -1
- package/dist/types/src/types/Settings.d.ts +7 -0
- package/dist/types/src/types/Settings.d.ts.map +1 -0
- package/dist/types/src/types/capabilities.d.ts +31 -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 +4 -0
- package/dist/types/src/types/index.d.ts.map +1 -0
- package/dist/types/tsconfig.tsbuildinfo +1 -1
- package/package.json +73 -45
- package/src/ObservabilityPlugin.ts +72 -54
- package/src/capabilities/app-graph-builder.ts +28 -37
- package/src/capabilities/client-ready.ts +89 -79
- package/src/capabilities/index.ts +12 -8
- package/src/capabilities/operation-handler.ts +16 -0
- package/src/capabilities/react-surface.tsx +33 -19
- package/src/capabilities/settings.ts +26 -14
- package/src/capabilities/state.ts +20 -12
- package/src/cli/index.ts +5 -0
- package/src/cli/plugin.ts +31 -0
- package/src/components/FeedbackForm/FeedbackForm.stories.tsx +44 -0
- package/src/components/FeedbackForm/FeedbackForm.tsx +49 -0
- package/src/components/FeedbackForm/index.ts +5 -0
- package/src/components/ObservabilitySettings/ObservabilitySettings.stories.tsx +34 -0
- package/src/components/ObservabilitySettings/ObservabilitySettings.tsx +34 -0
- package/src/components/ObservabilitySettings/index.ts +5 -0
- package/src/components/index.ts +4 -2
- package/src/containers/HelpContainer/HelpContainer.tsx +57 -0
- package/src/containers/HelpContainer/index.ts +5 -0
- package/src/containers/index.ts +7 -0
- package/src/index.ts +1 -2
- package/src/meta.ts +8 -5
- package/src/operations/capture-user-feedback.ts +22 -0
- package/src/operations/definitions.ts +76 -0
- package/src/operations/index.ts +14 -0
- package/src/operations/send-event.ts +24 -0
- package/src/operations/toggle.ts +47 -0
- package/src/translations.ts +17 -16
- package/src/types/Settings.ts +22 -0
- package/src/types/capabilities.ts +44 -0
- package/src/types/events.ts +15 -0
- package/src/types/index.ts +7 -0
- package/dist/lib/browser/app-graph-builder-DCOBBL5B.mjs +0 -43
- package/dist/lib/browser/app-graph-builder-DCOBBL5B.mjs.map +0 -7
- package/dist/lib/browser/chunk-57RVSKYP.mjs +0 -13
- package/dist/lib/browser/chunk-57RVSKYP.mjs.map +0 -7
- package/dist/lib/browser/chunk-D7WLH4F5.mjs +0 -179
- package/dist/lib/browser/chunk-D7WLH4F5.mjs.map +0 -7
- package/dist/lib/browser/chunk-N3VKS2LF.mjs +0 -175
- package/dist/lib/browser/chunk-N3VKS2LF.mjs.map +0 -7
- package/dist/lib/browser/chunk-UUOBAWT2.mjs +0 -18
- package/dist/lib/browser/chunk-UUOBAWT2.mjs.map +0 -7
- package/dist/lib/browser/client-ready-KK3EWEBV.mjs +0 -102
- package/dist/lib/browser/client-ready-KK3EWEBV.mjs.map +0 -7
- package/dist/lib/browser/intent-resolver-A4EV25OK.mjs +0 -77
- package/dist/lib/browser/intent-resolver-A4EV25OK.mjs.map +0 -7
- package/dist/lib/browser/react-surface-FUXMXVYO.mjs +0 -32
- package/dist/lib/browser/react-surface-FUXMXVYO.mjs.map +0 -7
- package/dist/lib/browser/settings-OSMKJOUM.mjs +0 -25
- package/dist/lib/browser/settings-OSMKJOUM.mjs.map +0 -7
- package/dist/lib/browser/state-VIOQS2IL.mjs +0 -26
- package/dist/lib/browser/state-VIOQS2IL.mjs.map +0 -7
- package/dist/lib/browser/types.mjs +0 -10
- package/dist/lib/node-esm/app-graph-builder-6JT2RPVM.mjs +0 -44
- package/dist/lib/node-esm/app-graph-builder-6JT2RPVM.mjs.map +0 -7
- package/dist/lib/node-esm/chunk-4BFWCQJ5.mjs +0 -180
- package/dist/lib/node-esm/chunk-4BFWCQJ5.mjs.map +0 -7
- package/dist/lib/node-esm/chunk-7XR7KMAA.mjs +0 -15
- package/dist/lib/node-esm/chunk-7XR7KMAA.mjs.map +0 -7
- package/dist/lib/node-esm/chunk-JTKEM7PT.mjs +0 -19
- package/dist/lib/node-esm/chunk-JTKEM7PT.mjs.map +0 -7
- package/dist/lib/node-esm/chunk-RG73SOOD.mjs +0 -176
- package/dist/lib/node-esm/chunk-RG73SOOD.mjs.map +0 -7
- package/dist/lib/node-esm/client-ready-EZVAX7D5.mjs +0 -103
- package/dist/lib/node-esm/client-ready-EZVAX7D5.mjs.map +0 -7
- package/dist/lib/node-esm/intent-resolver-7HLSOM7X.mjs +0 -78
- package/dist/lib/node-esm/intent-resolver-7HLSOM7X.mjs.map +0 -7
- package/dist/lib/node-esm/react-surface-TYVAHN2E.mjs +0 -33
- package/dist/lib/node-esm/react-surface-TYVAHN2E.mjs.map +0 -7
- package/dist/lib/node-esm/settings-S2OXVO3G.mjs +0 -26
- package/dist/lib/node-esm/settings-S2OXVO3G.mjs.map +0 -7
- package/dist/lib/node-esm/state-J2WS6L64.mjs +0 -27
- package/dist/lib/node-esm/state-J2WS6L64.mjs.map +0 -7
- package/dist/lib/node-esm/types.mjs +0 -11
- 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/intent-resolver.d.ts +0 -7
- package/dist/types/src/capabilities/intent-resolver.d.ts.map +0 -1
- package/dist/types/src/components/FeedbackForm.d.ts +0 -6
- package/dist/types/src/components/FeedbackForm.d.ts.map +0 -1
- package/dist/types/src/components/HelpContainer.d.ts +0 -3
- package/dist/types/src/components/HelpContainer.d.ts.map +0 -1
- package/dist/types/src/components/ObservabilitySettings.d.ts +0 -10
- package/dist/types/src/components/ObservabilitySettings.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/dist/types/src/types.d.ts +0 -286
- package/dist/types/src/types.d.ts.map +0 -1
- package/src/capabilities/capabilities.ts +0 -22
- package/src/capabilities/intent-resolver.ts +0 -68
- package/src/components/FeedbackForm.tsx +0 -82
- package/src/components/HelpContainer.tsx +0 -40
- package/src/components/ObservabilitySettings.tsx +0 -48
- package/src/events.ts +0 -14
- package/src/types.ts +0 -203
- /package/dist/lib/browser/{types.mjs.map → chunk-J5LGTIGS.mjs.map} +0 -0
- /package/dist/lib/{node-esm/types.mjs.map → browser/types/index.mjs.map} +0 -0
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
//
|
|
2
|
+
// Copyright 2025 DXOS.org
|
|
3
|
+
//
|
|
4
|
+
|
|
5
|
+
import * as Effect from 'effect/Effect';
|
|
6
|
+
|
|
7
|
+
import { Capabilities, Capability } from '@dxos/app-framework';
|
|
8
|
+
import { AppCapabilities } from '@dxos/app-toolkit';
|
|
9
|
+
import { Operation } from '@dxos/compute';
|
|
10
|
+
import { Observability } from '@dxos/observability';
|
|
11
|
+
|
|
12
|
+
import { meta } from '#meta';
|
|
13
|
+
|
|
14
|
+
import { ObservabilityCapabilities, type Settings } from '../types';
|
|
15
|
+
import { Toggle } from './definitions';
|
|
16
|
+
|
|
17
|
+
const handler: Operation.WithHandler<typeof Toggle> = Toggle.pipe(
|
|
18
|
+
Operation.withHandler(
|
|
19
|
+
Effect.fnUntraced(function* (input) {
|
|
20
|
+
const namespace = yield* Capability.get(ObservabilityCapabilities.Namespace);
|
|
21
|
+
const observability = yield* Capability.get(ObservabilityCapabilities.Observability);
|
|
22
|
+
const capabilities = yield* Capability.Service;
|
|
23
|
+
const registry = capabilities.get(Capabilities.AtomRegistry);
|
|
24
|
+
const allSettings = capabilities.getAll(AppCapabilities.Settings);
|
|
25
|
+
const settingsObj = allSettings.find((s: AppCapabilities.Settings) => s.prefix === meta.id);
|
|
26
|
+
if (!settingsObj) {
|
|
27
|
+
return false;
|
|
28
|
+
}
|
|
29
|
+
const settings = registry.get(settingsObj.atom) as Settings.Settings;
|
|
30
|
+
const newEnabled = input.state ?? !settings.enabled;
|
|
31
|
+
registry.set(settingsObj.atom, { ...settings, enabled: newEnabled });
|
|
32
|
+
observability.events.captureEvent('observability.toggle', {
|
|
33
|
+
enabled: newEnabled,
|
|
34
|
+
});
|
|
35
|
+
|
|
36
|
+
if (newEnabled) {
|
|
37
|
+
yield* observability.enable();
|
|
38
|
+
} else {
|
|
39
|
+
yield* observability.disable();
|
|
40
|
+
}
|
|
41
|
+
yield* Effect.promise(() => Observability.storeObservabilityDisabled(namespace, !newEnabled));
|
|
42
|
+
return newEnabled;
|
|
43
|
+
}),
|
|
44
|
+
),
|
|
45
|
+
);
|
|
46
|
+
|
|
47
|
+
export default handler;
|
package/src/translations.ts
CHANGED
|
@@ -4,30 +4,31 @@
|
|
|
4
4
|
|
|
5
5
|
import { type Resource } from '@dxos/react-ui';
|
|
6
6
|
|
|
7
|
-
import { meta } from '
|
|
7
|
+
import { meta } from '#meta';
|
|
8
8
|
|
|
9
9
|
export const translations = [
|
|
10
10
|
{
|
|
11
11
|
'en-US': {
|
|
12
12
|
[meta.id]: {
|
|
13
|
-
'plugin
|
|
14
|
-
'
|
|
15
|
-
'observability
|
|
13
|
+
'plugin.name': 'Telemetry',
|
|
14
|
+
'settings.title': 'Telemetry settings',
|
|
15
|
+
'observability-toast.label': 'Privacy Notice',
|
|
16
|
+
'observability-toast.description':
|
|
16
17
|
'Composer collects usage and performance metrics to improve the product. No user data is collected.',
|
|
17
|
-
'observability
|
|
18
|
-
'observability
|
|
19
|
-
'observability
|
|
20
|
-
'observability enabled label': 'Enable telemetry',
|
|
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
21
|
// TODO: Add link about telemetry privacy. Make it clearer that user data is not collected.
|
|
22
|
-
'observability
|
|
22
|
+
'observability.description':
|
|
23
23
|
'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
|
-
|
|
25
|
-
'
|
|
26
|
-
'feedback
|
|
27
|
-
'
|
|
28
|
-
'send
|
|
29
|
-
'
|
|
30
|
-
'feedback
|
|
24
|
+
'help.label': 'Feedback & Support',
|
|
25
|
+
'feedback-textarea.label': 'Feedback',
|
|
26
|
+
'feedback-textarea.placeholder': 'Please enter your feedback, technical issue, or feature request.',
|
|
27
|
+
'include-debug-logs.label': 'Include debug logs',
|
|
28
|
+
'send-feedback.label': 'Send Feedback',
|
|
29
|
+
'download-logs.label': 'Download logs',
|
|
30
|
+
'feedback-toast.label': 'Thank you for your feedback!',
|
|
31
|
+
'feedback-toast.description': 'We will review your feedback and get back to you as soon as possible.',
|
|
31
32
|
},
|
|
32
33
|
},
|
|
33
34
|
},
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
//
|
|
2
|
+
// Copyright 2023 DXOS.org
|
|
3
|
+
//
|
|
4
|
+
|
|
5
|
+
// @import-as-namespace
|
|
6
|
+
|
|
7
|
+
import * as Schema from 'effect/Schema';
|
|
8
|
+
|
|
9
|
+
export const Settings = Schema.mutable(
|
|
10
|
+
Schema.Struct({
|
|
11
|
+
enabled: Schema.Boolean.annotations({
|
|
12
|
+
title: 'Enable telemetry',
|
|
13
|
+
description: 'Send anonymous usage and performance data to help improve the product.',
|
|
14
|
+
}),
|
|
15
|
+
// TODO(wittjosiah): Separate settings for each observability feature.
|
|
16
|
+
// metrics?: boolean;
|
|
17
|
+
// telemetry?: boolean;
|
|
18
|
+
// errors?: boolean;
|
|
19
|
+
}),
|
|
20
|
+
);
|
|
21
|
+
|
|
22
|
+
export interface Settings extends Schema.Schema.Type<typeof Settings> {}
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
//
|
|
2
|
+
// Copyright 2025 DXOS.org
|
|
3
|
+
//
|
|
4
|
+
|
|
5
|
+
import { type Atom } from '@effect-atom/atom-react';
|
|
6
|
+
import * as Schema from 'effect/Schema';
|
|
7
|
+
|
|
8
|
+
import { Capability } from '@dxos/app-framework';
|
|
9
|
+
import { type Client } from '@dxos/client';
|
|
10
|
+
import { type Observability } from '@dxos/observability';
|
|
11
|
+
|
|
12
|
+
import { meta } from '#meta';
|
|
13
|
+
|
|
14
|
+
import * as Settings from './Settings';
|
|
15
|
+
|
|
16
|
+
export namespace ObservabilityCapabilities {
|
|
17
|
+
export const Namespace = Capability.make<string>(`${meta.id}.capability.namespace`);
|
|
18
|
+
|
|
19
|
+
export const Settings = Capability.make<Atom.Writable<Settings.Settings>>(`${meta.id}.capability.settings`);
|
|
20
|
+
|
|
21
|
+
export const StateSchema = Schema.mutable(
|
|
22
|
+
Schema.Struct({
|
|
23
|
+
group: Schema.optional(Schema.String),
|
|
24
|
+
notified: Schema.optional(Schema.Boolean),
|
|
25
|
+
}),
|
|
26
|
+
);
|
|
27
|
+
|
|
28
|
+
export type State = Schema.Schema.Type<typeof StateSchema>;
|
|
29
|
+
|
|
30
|
+
export const State = Capability.make<Atom.Writable<State>>(`${meta.id}.capability.state`);
|
|
31
|
+
|
|
32
|
+
export const Observability = Capability.make<Observability.Observability>(`${meta.id}.capability.observability`);
|
|
33
|
+
|
|
34
|
+
/**
|
|
35
|
+
* Optional capability — when contributed, the help/feedback UI exposes a "Download logs" action.
|
|
36
|
+
* The callback is responsible for the entire download (read store, encode, save file).
|
|
37
|
+
*/
|
|
38
|
+
export type LogDownloader = () => void | Promise<void>;
|
|
39
|
+
export const LogDownloader = Capability.make<LogDownloader>(`${meta.id}.capability.log-downloader`);
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
// NOTE: This is cloned from the client plugin to avoid circular dependencies.
|
|
43
|
+
// TODO(burdon): Figure out how to share defs.
|
|
44
|
+
export const ClientCapability = Capability.make<Client>('org.dxos.plugin.client.capability.client');
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
//
|
|
2
|
+
// Copyright 2025 DXOS.org
|
|
3
|
+
//
|
|
4
|
+
|
|
5
|
+
import { ActivationEvent } from '@dxos/app-framework';
|
|
6
|
+
import { AppActivationEvents } from '@dxos/app-toolkit';
|
|
7
|
+
|
|
8
|
+
import { meta } from '#meta';
|
|
9
|
+
|
|
10
|
+
export namespace ObservabilityEvents {
|
|
11
|
+
export const StateReady: ActivationEvent.ActivationEvent = AppActivationEvents.createStateEvent(meta.id);
|
|
12
|
+
}
|
|
13
|
+
|
|
14
|
+
// NOTE: This is cloned from the client plugin to avoid circular dependencies.
|
|
15
|
+
export const ClientReadyEvent = ActivationEvent.make('org.dxos.plugin.client.event.client-ready');
|
|
@@ -1,43 +0,0 @@
|
|
|
1
|
-
import {
|
|
2
|
-
OBSERVABILITY_PLUGIN
|
|
3
|
-
} from "./chunk-57RVSKYP.mjs";
|
|
4
|
-
|
|
5
|
-
// src/capabilities/app-graph-builder.ts
|
|
6
|
-
import { Rx } from "@effect-rx/rx-react";
|
|
7
|
-
import { Option, pipe } from "effect";
|
|
8
|
-
import { Capabilities, contributes } from "@dxos/app-framework";
|
|
9
|
-
import { createExtension, ROOT_ID } from "@dxos/plugin-graph";
|
|
10
|
-
var ATTENDABLE_PATH_SEPARATOR = "~";
|
|
11
|
-
var DECK_COMPANION_TYPE = "dxos.org/plugin/deck/deck-companion";
|
|
12
|
-
var app_graph_builder_default = (context) => contributes(Capabilities.AppGraphBuilder, [
|
|
13
|
-
createExtension({
|
|
14
|
-
id: `${OBSERVABILITY_PLUGIN}/help`,
|
|
15
|
-
connector: (node) => Rx.make((get) => pipe(get(node), Option.flatMap((node2) => node2.id === ROOT_ID ? Option.some(node2) : Option.none()), Option.map((node2) => {
|
|
16
|
-
return [
|
|
17
|
-
{
|
|
18
|
-
id: [
|
|
19
|
-
node2.id,
|
|
20
|
-
"help"
|
|
21
|
-
].join(ATTENDABLE_PATH_SEPARATOR),
|
|
22
|
-
type: DECK_COMPANION_TYPE,
|
|
23
|
-
data: null,
|
|
24
|
-
properties: {
|
|
25
|
-
label: [
|
|
26
|
-
"help label",
|
|
27
|
-
{
|
|
28
|
-
ns: OBSERVABILITY_PLUGIN
|
|
29
|
-
}
|
|
30
|
-
],
|
|
31
|
-
icon: "ph--question--regular",
|
|
32
|
-
disposition: "hidden",
|
|
33
|
-
position: "hoist"
|
|
34
|
-
}
|
|
35
|
-
}
|
|
36
|
-
];
|
|
37
|
-
}), Option.getOrElse(() => [])))
|
|
38
|
-
})
|
|
39
|
-
]);
|
|
40
|
-
export {
|
|
41
|
-
app_graph_builder_default as default
|
|
42
|
-
};
|
|
43
|
-
//# sourceMappingURL=app-graph-builder-DCOBBL5B.mjs.map
|
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"version": 3,
|
|
3
|
-
"sources": ["../../../src/capabilities/app-graph-builder.ts"],
|
|
4
|
-
"sourcesContent": ["//\n// Copyright 2025 DXOS.org\n//\n\nimport { Rx } from '@effect-rx/rx-react';\nimport { Option, pipe } from 'effect';\n\nimport { Capabilities, contributes, type PluginContext } from '@dxos/app-framework';\nimport { createExtension, ROOT_ID } from '@dxos/plugin-graph';\n\nimport { OBSERVABILITY_PLUGIN } from '../meta';\n\n// NOTE: Copied from @dxos/plugin-deck to break circular dependency.\nconst ATTENDABLE_PATH_SEPARATOR = '~';\nconst DECK_COMPANION_TYPE = 'dxos.org/plugin/deck/deck-companion';\n\nexport default (context: PluginContext) =>\n contributes(Capabilities.AppGraphBuilder, [\n createExtension({\n id: `${OBSERVABILITY_PLUGIN}/help`,\n connector: (node) =>\n Rx.make((get) =>\n pipe(\n get(node),\n Option.flatMap((node) => (node.id === ROOT_ID ? Option.some(node) : Option.none())),\n Option.map((node) => {\n return [\n {\n id: [node.id, 'help'].join(ATTENDABLE_PATH_SEPARATOR),\n type: DECK_COMPANION_TYPE,\n data: null,\n properties: {\n label: ['help label', { ns: OBSERVABILITY_PLUGIN }],\n icon: 'ph--question--regular',\n disposition: 'hidden',\n position: 'hoist',\n },\n },\n ];\n }),\n Option.getOrElse(() => []),\n ),\n ),\n }),\n ]);\n"],
|
|
5
|
-
"mappings": ";;;;;AAIA,SAASA,UAAU;AACnB,SAASC,QAAQC,YAAY;AAE7B,SAASC,cAAcC,mBAAuC;AAC9D,SAASC,iBAAiBC,eAAe;AAKzC,IAAMC,4BAA4B;AAClC,IAAMC,sBAAsB;AAE5B,IAAA,4BAAe,CAACC,YACdC,YAAYC,aAAaC,iBAAiB;EACxCC,gBAAgB;IACdC,IAAI,GAAGC,oBAAAA;IACPC,WAAW,CAACC,SACVC,GAAGC,KAAK,CAACC,QACPC,KACED,IAAIH,IAAAA,GACJK,OAAOC,QAAQ,CAACN,UAAUA,MAAKH,OAAOU,UAAUF,OAAOG,KAAKR,KAAAA,IAAQK,OAAOI,KAAI,CAAA,GAC/EJ,OAAOK,IAAI,CAACV,UAAAA;AACV,aAAO;QACL;UACEH,IAAI;YAACG,MAAKH;YAAI;YAAQc,KAAKrB,yBAAAA;UAC3BsB,MAAMrB;UACNsB,MAAM;UACNC,YAAY;YACVC,OAAO;cAAC;cAAc;gBAAEC,IAAIlB;cAAqB;;YACjDmB,MAAM;YACNC,aAAa;YACbC,UAAU;UACZ;QACF;;IAEJ,CAAA,GACAd,OAAOe,UAAU,MAAM,CAAA,CAAE,CAAA,CAAA;EAGjC,CAAA;CACD;",
|
|
6
|
-
"names": ["Rx", "Option", "pipe", "Capabilities", "contributes", "createExtension", "ROOT_ID", "ATTENDABLE_PATH_SEPARATOR", "DECK_COMPANION_TYPE", "context", "contributes", "Capabilities", "AppGraphBuilder", "createExtension", "id", "OBSERVABILITY_PLUGIN", "connector", "node", "Rx", "make", "get", "pipe", "Option", "flatMap", "ROOT_ID", "some", "none", "map", "join", "type", "data", "properties", "label", "ns", "icon", "disposition", "position", "getOrElse"]
|
|
7
|
-
}
|
|
@@ -1,13 +0,0 @@
|
|
|
1
|
-
// src/meta.ts
|
|
2
|
-
var OBSERVABILITY_PLUGIN = "dxos.org/plugin/observability";
|
|
3
|
-
var meta = {
|
|
4
|
-
id: OBSERVABILITY_PLUGIN,
|
|
5
|
-
name: "Telemetry",
|
|
6
|
-
icon: "ph--eye--regular"
|
|
7
|
-
};
|
|
8
|
-
|
|
9
|
-
export {
|
|
10
|
-
OBSERVABILITY_PLUGIN,
|
|
11
|
-
meta
|
|
12
|
-
};
|
|
13
|
-
//# sourceMappingURL=chunk-57RVSKYP.mjs.map
|
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"version": 3,
|
|
3
|
-
"sources": ["../../../src/meta.ts"],
|
|
4
|
-
"sourcesContent": ["//\n// Copyright 2023 DXOS.org\n//\n\nimport { type PluginMeta } from '@dxos/app-framework';\n\nexport const OBSERVABILITY_PLUGIN = 'dxos.org/plugin/observability';\n\nexport const meta: PluginMeta = {\n id: OBSERVABILITY_PLUGIN,\n name: 'Telemetry',\n icon: 'ph--eye--regular',\n};\n"],
|
|
5
|
-
"mappings": ";AAMO,IAAMA,uBAAuB;AAE7B,IAAMC,OAAmB;EAC9BC,IAAIF;EACJG,MAAM;EACNC,MAAM;AACR;",
|
|
6
|
-
"names": ["OBSERVABILITY_PLUGIN", "meta", "id", "name", "icon"]
|
|
7
|
-
}
|
|
@@ -1,179 +0,0 @@
|
|
|
1
|
-
import {
|
|
2
|
-
OBSERVABILITY_PLUGIN
|
|
3
|
-
} from "./chunk-57RVSKYP.mjs";
|
|
4
|
-
|
|
5
|
-
// src/types.ts
|
|
6
|
-
import { Schema } from "effect";
|
|
7
|
-
import { Type } from "@dxos/echo";
|
|
8
|
-
var nonEmpty = (field) => Schema.nonEmptyString({
|
|
9
|
-
message: () => `Missing field: ${field}`
|
|
10
|
-
});
|
|
11
|
-
var maxLength = (field, length) => Schema.maxLength(length, {
|
|
12
|
-
message: () => `Exceeds max length (${length}): ${field}`
|
|
13
|
-
});
|
|
14
|
-
var UserFeedback = Schema.Struct({
|
|
15
|
-
message: Schema.String.pipe(nonEmpty("Feedback"), maxLength("Feedback", 32768))
|
|
16
|
-
});
|
|
17
|
-
var OBSERVABILITY_ACTION = `${OBSERVABILITY_PLUGIN}/action`;
|
|
18
|
-
(function(ObservabilityAction2) {
|
|
19
|
-
class Toggle extends Schema.TaggedClass()(`${OBSERVABILITY_ACTION}/toggle`, {
|
|
20
|
-
input: Schema.Struct({
|
|
21
|
-
state: Schema.optional(Schema.Boolean)
|
|
22
|
-
}),
|
|
23
|
-
output: Schema.Boolean
|
|
24
|
-
}) {
|
|
25
|
-
}
|
|
26
|
-
ObservabilityAction2.Toggle = Toggle;
|
|
27
|
-
class CaptureUserFeedback extends Schema.TaggedClass()(`${OBSERVABILITY_ACTION}/capture-feedback`, {
|
|
28
|
-
input: UserFeedback,
|
|
29
|
-
output: Schema.Void
|
|
30
|
-
}) {
|
|
31
|
-
}
|
|
32
|
-
ObservabilityAction2.CaptureUserFeedback = CaptureUserFeedback;
|
|
33
|
-
class BaseSendEvent extends Schema.TaggedClass()(`${OBSERVABILITY_ACTION}/send-event`, {
|
|
34
|
-
input: Schema.Struct({
|
|
35
|
-
name: Schema.String,
|
|
36
|
-
properties: Schema.optional(Schema.Object)
|
|
37
|
-
}),
|
|
38
|
-
output: Schema.Void
|
|
39
|
-
}) {
|
|
40
|
-
}
|
|
41
|
-
ObservabilityAction2.BaseSendEvent = BaseSendEvent;
|
|
42
|
-
class SendEvent extends Schema.TaggedClass()(`${OBSERVABILITY_ACTION}/send-event`, {
|
|
43
|
-
// NOTE: Sort alphabetically by name.
|
|
44
|
-
input: Schema.Union(Schema.Struct({
|
|
45
|
-
name: Schema.Literal("identity.create")
|
|
46
|
-
}), Schema.Struct({
|
|
47
|
-
name: Schema.Literal("identity.join")
|
|
48
|
-
}), Schema.Struct({
|
|
49
|
-
name: Schema.Literal("identity.recover")
|
|
50
|
-
}), Schema.Struct({
|
|
51
|
-
name: Schema.Literal("identity.share")
|
|
52
|
-
}), Schema.Struct({
|
|
53
|
-
name: Schema.Literal("navigation.activate"),
|
|
54
|
-
properties: Schema.Struct({
|
|
55
|
-
subjectId: Schema.String,
|
|
56
|
-
typename: Schema.optional(Schema.String)
|
|
57
|
-
})
|
|
58
|
-
}), Schema.Struct({
|
|
59
|
-
name: Schema.Literal("page.load"),
|
|
60
|
-
properties: Schema.Struct({
|
|
61
|
-
loadDuration: Schema.Number
|
|
62
|
-
})
|
|
63
|
-
}), Schema.Struct({
|
|
64
|
-
name: Schema.Literal("plugins.toggle"),
|
|
65
|
-
properties: Schema.Struct({
|
|
66
|
-
plugin: Schema.String,
|
|
67
|
-
enabled: Schema.Boolean
|
|
68
|
-
})
|
|
69
|
-
}), Schema.Struct({
|
|
70
|
-
name: Schema.Literal("space.create"),
|
|
71
|
-
properties: Schema.Struct({
|
|
72
|
-
spaceId: Type.SpaceId
|
|
73
|
-
})
|
|
74
|
-
}), Schema.Struct({
|
|
75
|
-
name: Schema.Literal("space.join"),
|
|
76
|
-
properties: Schema.Struct({
|
|
77
|
-
spaceId: Type.SpaceId
|
|
78
|
-
})
|
|
79
|
-
}), Schema.Struct({
|
|
80
|
-
name: Schema.Literal("space.limit"),
|
|
81
|
-
properties: Schema.Struct({
|
|
82
|
-
spaceId: Type.SpaceId
|
|
83
|
-
})
|
|
84
|
-
}), Schema.Struct({
|
|
85
|
-
name: Schema.Literal("space.lock"),
|
|
86
|
-
properties: Schema.Struct({
|
|
87
|
-
spaceId: Type.SpaceId
|
|
88
|
-
})
|
|
89
|
-
}), Schema.Struct({
|
|
90
|
-
name: Schema.Literal("space.migrate"),
|
|
91
|
-
properties: Schema.Struct({
|
|
92
|
-
spaceId: Type.SpaceId,
|
|
93
|
-
targetVersion: Schema.optional(Schema.String),
|
|
94
|
-
version: Schema.optional(Schema.String)
|
|
95
|
-
})
|
|
96
|
-
}), Schema.Struct({
|
|
97
|
-
name: Schema.Literal("space.object.add"),
|
|
98
|
-
properties: Schema.Struct({
|
|
99
|
-
spaceId: Type.SpaceId,
|
|
100
|
-
objectId: Schema.String,
|
|
101
|
-
typename: Schema.optional(Schema.String)
|
|
102
|
-
})
|
|
103
|
-
}), Schema.Struct({
|
|
104
|
-
name: Schema.Literal("space.share"),
|
|
105
|
-
properties: Schema.Struct({
|
|
106
|
-
spaceId: Type.SpaceId
|
|
107
|
-
})
|
|
108
|
-
}), Schema.Struct({
|
|
109
|
-
name: Schema.Literal("space.unlock"),
|
|
110
|
-
properties: Schema.Struct({
|
|
111
|
-
spaceId: Type.SpaceId
|
|
112
|
-
})
|
|
113
|
-
}), Schema.Struct({
|
|
114
|
-
name: Schema.Literal("threads.create"),
|
|
115
|
-
properties: Schema.Struct({
|
|
116
|
-
spaceId: Type.SpaceId,
|
|
117
|
-
threadId: Schema.String
|
|
118
|
-
})
|
|
119
|
-
}), Schema.Struct({
|
|
120
|
-
name: Schema.Literal("threads.delete"),
|
|
121
|
-
properties: Schema.Struct({
|
|
122
|
-
spaceId: Type.SpaceId,
|
|
123
|
-
threadId: Schema.String
|
|
124
|
-
})
|
|
125
|
-
}), Schema.Struct({
|
|
126
|
-
name: Schema.Literal("threads.message.add"),
|
|
127
|
-
properties: Schema.Struct({
|
|
128
|
-
spaceId: Type.SpaceId,
|
|
129
|
-
threadId: Schema.String,
|
|
130
|
-
threadLength: Schema.Number,
|
|
131
|
-
messageId: Schema.String,
|
|
132
|
-
messageLength: Schema.Number
|
|
133
|
-
})
|
|
134
|
-
}), Schema.Struct({
|
|
135
|
-
name: Schema.Literal("threads.message.delete"),
|
|
136
|
-
properties: Schema.Struct({
|
|
137
|
-
spaceId: Type.SpaceId,
|
|
138
|
-
threadId: Schema.String,
|
|
139
|
-
messageId: Schema.String
|
|
140
|
-
})
|
|
141
|
-
}), Schema.Struct({
|
|
142
|
-
name: Schema.Literal("threads.message.undo-delete"),
|
|
143
|
-
properties: Schema.Struct({
|
|
144
|
-
spaceId: Type.SpaceId,
|
|
145
|
-
threadId: Schema.String,
|
|
146
|
-
messageId: Schema.String
|
|
147
|
-
})
|
|
148
|
-
}), Schema.Struct({
|
|
149
|
-
name: Schema.Literal("threads.message.update"),
|
|
150
|
-
properties: Schema.Struct({
|
|
151
|
-
spaceId: Type.SpaceId,
|
|
152
|
-
messageId: Schema.String,
|
|
153
|
-
messageLength: Schema.Number
|
|
154
|
-
})
|
|
155
|
-
}), Schema.Struct({
|
|
156
|
-
name: Schema.Literal("threads.toggle-resolved"),
|
|
157
|
-
properties: Schema.Struct({
|
|
158
|
-
spaceId: Type.SpaceId,
|
|
159
|
-
threadId: Schema.String
|
|
160
|
-
})
|
|
161
|
-
}), Schema.Struct({
|
|
162
|
-
name: Schema.Literal("threads.undo-delete"),
|
|
163
|
-
properties: Schema.Struct({
|
|
164
|
-
spaceId: Type.SpaceId,
|
|
165
|
-
threadId: Schema.String
|
|
166
|
-
})
|
|
167
|
-
})),
|
|
168
|
-
output: Schema.Void
|
|
169
|
-
}) {
|
|
170
|
-
}
|
|
171
|
-
ObservabilityAction2.SendEvent = SendEvent;
|
|
172
|
-
})(ObservabilityAction || (ObservabilityAction = {}));
|
|
173
|
-
var ObservabilityAction;
|
|
174
|
-
|
|
175
|
-
export {
|
|
176
|
-
UserFeedback,
|
|
177
|
-
ObservabilityAction
|
|
178
|
-
};
|
|
179
|
-
//# sourceMappingURL=chunk-D7WLH4F5.mjs.map
|
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"version": 3,
|
|
3
|
-
"sources": ["../../../src/types.ts"],
|
|
4
|
-
"sourcesContent": ["//\n// Copyright 2024 DXOS.org\n//\n\nimport { Schema } from 'effect';\n\nimport { Type } from '@dxos/echo';\n\nimport { OBSERVABILITY_PLUGIN } from './meta';\n\nconst nonEmpty = <S extends Schema.Schema.Any>(field: string) =>\n Schema.nonEmptyString<S>({ message: () => `Missing field: ${field}` });\n\nconst maxLength = <S extends Schema.Schema.Any>(field: string, length: number) =>\n Schema.maxLength<S>(length, { message: () => `Exceeds max length (${length}): ${field}` });\n\nexport const UserFeedback = Schema.Struct({\n message: Schema.String.pipe(nonEmpty('Feedback'), maxLength('Feedback', 32_768)),\n});\n\nexport type UserFeedback = Schema.Schema.Type<typeof UserFeedback>;\n\nconst OBSERVABILITY_ACTION = `${OBSERVABILITY_PLUGIN}/action`;\n\nexport namespace ObservabilityAction {\n export class Toggle extends Schema.TaggedClass<Toggle>()(`${OBSERVABILITY_ACTION}/toggle`, {\n input: Schema.Struct({\n state: Schema.optional(Schema.Boolean),\n }),\n output: Schema.Boolean,\n }) {}\n\n export class CaptureUserFeedback extends Schema.TaggedClass<CaptureUserFeedback>()(\n `${OBSERVABILITY_ACTION}/capture-feedback`,\n {\n input: UserFeedback,\n output: Schema.Void,\n },\n ) {}\n\n /** Base intent for sending events. */\n export class BaseSendEvent extends Schema.TaggedClass<BaseSendEvent>()(`${OBSERVABILITY_ACTION}/send-event`, {\n input: Schema.Struct({\n name: Schema.String,\n properties: Schema.optional(Schema.Object),\n }),\n output: Schema.Void,\n }) {}\n\n /** Intent with strict types for first-party events. */\n export class SendEvent extends Schema.TaggedClass<SendEvent>()(`${OBSERVABILITY_ACTION}/send-event`, {\n // NOTE: Sort alphabetically by name.\n input: Schema.Union(\n Schema.Struct({\n name: Schema.Literal('identity.create'),\n }),\n Schema.Struct({\n name: Schema.Literal('identity.join'),\n }),\n Schema.Struct({\n name: Schema.Literal('identity.recover'),\n }),\n Schema.Struct({\n name: Schema.Literal('identity.share'),\n }),\n Schema.Struct({\n name: Schema.Literal('navigation.activate'),\n properties: Schema.Struct({\n subjectId: Schema.String,\n typename: Schema.optional(Schema.String),\n }),\n }),\n Schema.Struct({\n name: Schema.Literal('page.load'),\n properties: Schema.Struct({\n loadDuration: Schema.Number,\n }),\n }),\n Schema.Struct({\n name: Schema.Literal('plugins.toggle'),\n properties: Schema.Struct({\n plugin: Schema.String,\n enabled: Schema.Boolean,\n }),\n }),\n Schema.Struct({\n name: Schema.Literal('space.create'),\n properties: Schema.Struct({\n spaceId: Type.SpaceId,\n }),\n }),\n Schema.Struct({\n name: Schema.Literal('space.join'),\n properties: Schema.Struct({\n spaceId: Type.SpaceId,\n }),\n }),\n Schema.Struct({\n name: Schema.Literal('space.limit'),\n properties: Schema.Struct({\n spaceId: Type.SpaceId,\n }),\n }),\n Schema.Struct({\n name: Schema.Literal('space.lock'),\n properties: Schema.Struct({\n spaceId: Type.SpaceId,\n }),\n }),\n Schema.Struct({\n name: Schema.Literal('space.migrate'),\n properties: Schema.Struct({\n spaceId: Type.SpaceId,\n targetVersion: Schema.optional(Schema.String),\n version: Schema.optional(Schema.String),\n }),\n }),\n Schema.Struct({\n name: Schema.Literal('space.object.add'),\n properties: Schema.Struct({\n spaceId: Type.SpaceId,\n objectId: Schema.String,\n typename: Schema.optional(Schema.String),\n }),\n }),\n Schema.Struct({\n name: Schema.Literal('space.share'),\n properties: Schema.Struct({\n spaceId: Type.SpaceId,\n }),\n }),\n Schema.Struct({\n name: Schema.Literal('space.unlock'),\n properties: Schema.Struct({\n spaceId: Type.SpaceId,\n }),\n }),\n Schema.Struct({\n name: Schema.Literal('threads.create'),\n properties: Schema.Struct({\n spaceId: Type.SpaceId,\n threadId: Schema.String,\n }),\n }),\n Schema.Struct({\n name: Schema.Literal('threads.delete'),\n properties: Schema.Struct({\n spaceId: Type.SpaceId,\n threadId: Schema.String,\n }),\n }),\n Schema.Struct({\n name: Schema.Literal('threads.message.add'),\n properties: Schema.Struct({\n spaceId: Type.SpaceId,\n threadId: Schema.String,\n threadLength: Schema.Number,\n messageId: Schema.String,\n messageLength: Schema.Number,\n }),\n }),\n Schema.Struct({\n name: Schema.Literal('threads.message.delete'),\n properties: Schema.Struct({\n spaceId: Type.SpaceId,\n threadId: Schema.String,\n messageId: Schema.String,\n }),\n }),\n Schema.Struct({\n name: Schema.Literal('threads.message.undo-delete'),\n properties: Schema.Struct({\n spaceId: Type.SpaceId,\n threadId: Schema.String,\n messageId: Schema.String,\n }),\n }),\n Schema.Struct({\n name: Schema.Literal('threads.message.update'),\n properties: Schema.Struct({\n spaceId: Type.SpaceId,\n messageId: Schema.String,\n messageLength: Schema.Number,\n }),\n }),\n Schema.Struct({\n name: Schema.Literal('threads.toggle-resolved'),\n properties: Schema.Struct({\n spaceId: Type.SpaceId,\n threadId: Schema.String,\n }),\n }),\n Schema.Struct({\n name: Schema.Literal('threads.undo-delete'),\n properties: Schema.Struct({\n spaceId: Type.SpaceId,\n threadId: Schema.String,\n }),\n }),\n ),\n output: Schema.Void,\n }) {}\n}\n"],
|
|
5
|
-
"mappings": "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",
|
|
6
|
-
"names": ["Schema", "Type", "nonEmpty", "field", "Schema", "nonEmptyString", "message", "maxLength", "length", "UserFeedback", "Struct", "String", "pipe", "OBSERVABILITY_ACTION", "OBSERVABILITY_PLUGIN", "ObservabilityAction", "Toggle", "TaggedClass", "input", "state", "optional", "Boolean", "output", "CaptureUserFeedback", "Void", "BaseSendEvent", "name", "properties", "Object", "SendEvent", "Union", "Literal", "subjectId", "typename", "loadDuration", "Number", "plugin", "enabled", "spaceId", "Type", "SpaceId", "targetVersion", "version", "objectId", "threadId", "threadLength", "messageId", "messageLength"]
|
|
7
|
-
}
|
|
@@ -1,175 +0,0 @@
|
|
|
1
|
-
import {
|
|
2
|
-
ObservabilityAction,
|
|
3
|
-
UserFeedback
|
|
4
|
-
} from "./chunk-D7WLH4F5.mjs";
|
|
5
|
-
import {
|
|
6
|
-
OBSERVABILITY_PLUGIN
|
|
7
|
-
} from "./chunk-57RVSKYP.mjs";
|
|
8
|
-
|
|
9
|
-
// src/components/FeedbackForm.tsx
|
|
10
|
-
import { useSignals as _useSignals } from "@preact-signals/safe-react/tracking";
|
|
11
|
-
import React, { useCallback, useRef, useState } from "react";
|
|
12
|
-
import { getSnapshot } from "@dxos/echo-schema";
|
|
13
|
-
import { IconButton, Input, useTranslation } from "@dxos/react-ui";
|
|
14
|
-
import { FormProvider, useFormContext, useInputProps } from "@dxos/react-ui-form";
|
|
15
|
-
var defaultValues = {
|
|
16
|
-
message: ""
|
|
17
|
-
};
|
|
18
|
-
var FormContent = () => {
|
|
19
|
-
var _effect = _useSignals();
|
|
20
|
-
try {
|
|
21
|
-
const { t } = useTranslation(OBSERVABILITY_PLUGIN);
|
|
22
|
-
const { handleSave, canSave } = useFormContext();
|
|
23
|
-
const messageProps = useInputProps([
|
|
24
|
-
"message"
|
|
25
|
-
]);
|
|
26
|
-
return /* @__PURE__ */ React.createElement("div", {
|
|
27
|
-
role: "form",
|
|
28
|
-
className: "p-3 flex flex-col gap-2"
|
|
29
|
-
}, /* @__PURE__ */ React.createElement("div", {
|
|
30
|
-
role: "none",
|
|
31
|
-
className: "space-b-1"
|
|
32
|
-
}, /* @__PURE__ */ React.createElement(Input.Root, {
|
|
33
|
-
validationValence: messageProps.getStatus().status
|
|
34
|
-
}, /* @__PURE__ */ React.createElement(Input.Label, null, t("feedback text area label")), /* @__PURE__ */ React.createElement(Input.TextArea, {
|
|
35
|
-
classNames: "text-sm",
|
|
36
|
-
rows: 5,
|
|
37
|
-
cols: 30,
|
|
38
|
-
placeholder: t("feedback text area placeholder"),
|
|
39
|
-
value: messageProps.getValue() ?? "",
|
|
40
|
-
onChange: (e) => messageProps.onValueChange("string", e.target.value),
|
|
41
|
-
// TODO(wittjosiah): This aggressively shows validation errors.
|
|
42
|
-
onBlur: messageProps.onBlur
|
|
43
|
-
}), /* @__PURE__ */ React.createElement(Input.DescriptionAndValidation, null, /* @__PURE__ */ React.createElement(Input.Validation, null, messageProps.getStatus().error)))), /* @__PURE__ */ React.createElement("div", {
|
|
44
|
-
role: "none",
|
|
45
|
-
className: "space-b-2"
|
|
46
|
-
}, /* @__PURE__ */ React.createElement(IconButton, {
|
|
47
|
-
icon: "ph--paper-plane-tilt--regular",
|
|
48
|
-
label: t("send feedback label"),
|
|
49
|
-
variant: "primary",
|
|
50
|
-
type: "submit",
|
|
51
|
-
classNames: "is-full",
|
|
52
|
-
disabled: !canSave,
|
|
53
|
-
onClick: handleSave
|
|
54
|
-
})));
|
|
55
|
-
} finally {
|
|
56
|
-
_effect.f();
|
|
57
|
-
}
|
|
58
|
-
};
|
|
59
|
-
var FeedbackForm = ({ onSave }) => {
|
|
60
|
-
var _effect = _useSignals();
|
|
61
|
-
try {
|
|
62
|
-
const formRef = useRef(null);
|
|
63
|
-
const [_, update] = useState({});
|
|
64
|
-
const forceRender = useCallback(() => update({}), [
|
|
65
|
-
update
|
|
66
|
-
]);
|
|
67
|
-
const handleSave = useCallback((values) => {
|
|
68
|
-
onSave(values);
|
|
69
|
-
forceRender();
|
|
70
|
-
}, [
|
|
71
|
-
forceRender,
|
|
72
|
-
onSave
|
|
73
|
-
]);
|
|
74
|
-
const initialValues = getSnapshot(defaultValues);
|
|
75
|
-
return /* @__PURE__ */ React.createElement(FormProvider, {
|
|
76
|
-
formRef,
|
|
77
|
-
schema: UserFeedback,
|
|
78
|
-
initialValues,
|
|
79
|
-
onSave: handleSave
|
|
80
|
-
}, /* @__PURE__ */ React.createElement("div", {
|
|
81
|
-
ref: formRef
|
|
82
|
-
}, /* @__PURE__ */ React.createElement(FormContent, null)));
|
|
83
|
-
} finally {
|
|
84
|
-
_effect.f();
|
|
85
|
-
}
|
|
86
|
-
};
|
|
87
|
-
|
|
88
|
-
// src/components/HelpContainer.tsx
|
|
89
|
-
import { useSignals as _useSignals2 } from "@preact-signals/safe-react/tracking";
|
|
90
|
-
import { pipe } from "effect";
|
|
91
|
-
import React2, { useCallback as useCallback2 } from "react";
|
|
92
|
-
import { chain, createIntent, LayoutAction, useIntentDispatcher } from "@dxos/app-framework";
|
|
93
|
-
var HelpContainer = () => {
|
|
94
|
-
var _effect = _useSignals2();
|
|
95
|
-
try {
|
|
96
|
-
const { dispatchPromise: dispatch } = useIntentDispatcher();
|
|
97
|
-
const handleSave = useCallback2((values) => dispatch(pipe(createIntent(ObservabilityAction.CaptureUserFeedback, values), chain(LayoutAction.UpdateComplementary, {
|
|
98
|
-
part: "complementary",
|
|
99
|
-
options: {
|
|
100
|
-
state: "collapsed"
|
|
101
|
-
}
|
|
102
|
-
}), chain(LayoutAction.AddToast, {
|
|
103
|
-
part: "toast",
|
|
104
|
-
subject: {
|
|
105
|
-
id: `${OBSERVABILITY_PLUGIN}/feedback-success`,
|
|
106
|
-
icon: "ph--paper-plane-tilt--regular",
|
|
107
|
-
duration: 3e3,
|
|
108
|
-
title: [
|
|
109
|
-
"feedback toast label",
|
|
110
|
-
{
|
|
111
|
-
ns: OBSERVABILITY_PLUGIN
|
|
112
|
-
}
|
|
113
|
-
],
|
|
114
|
-
description: [
|
|
115
|
-
"feedback toast description",
|
|
116
|
-
{
|
|
117
|
-
ns: OBSERVABILITY_PLUGIN
|
|
118
|
-
}
|
|
119
|
-
],
|
|
120
|
-
closeLabel: [
|
|
121
|
-
"close label",
|
|
122
|
-
{
|
|
123
|
-
ns: "os"
|
|
124
|
-
}
|
|
125
|
-
]
|
|
126
|
-
}
|
|
127
|
-
}))), [
|
|
128
|
-
dispatch
|
|
129
|
-
]);
|
|
130
|
-
return /* @__PURE__ */ React2.createElement(FeedbackForm, {
|
|
131
|
-
onSave: handleSave
|
|
132
|
-
});
|
|
133
|
-
} finally {
|
|
134
|
-
_effect.f();
|
|
135
|
-
}
|
|
136
|
-
};
|
|
137
|
-
|
|
138
|
-
// src/components/ObservabilitySettings.tsx
|
|
139
|
-
import { useSignals as _useSignals3 } from "@preact-signals/safe-react/tracking";
|
|
140
|
-
import { Schema } from "effect";
|
|
141
|
-
import React3 from "react";
|
|
142
|
-
import { createIntent as createIntent2, useIntentDispatcher as useIntentDispatcher2 } from "@dxos/app-framework";
|
|
143
|
-
import { Input as Input2, Message, useTranslation as useTranslation2 } from "@dxos/react-ui";
|
|
144
|
-
import { DeprecatedFormContainer, DeprecatedFormInput } from "@dxos/react-ui-form";
|
|
145
|
-
var ObservabilitySettingsSchema = Schema.mutable(Schema.Struct({
|
|
146
|
-
enabled: Schema.Boolean
|
|
147
|
-
}));
|
|
148
|
-
var ObservabilitySettings = ({ settings }) => {
|
|
149
|
-
var _effect = _useSignals3();
|
|
150
|
-
try {
|
|
151
|
-
const { t } = useTranslation2(OBSERVABILITY_PLUGIN);
|
|
152
|
-
const { dispatchPromise: dispatch } = useIntentDispatcher2();
|
|
153
|
-
return /* @__PURE__ */ React3.createElement(DeprecatedFormContainer, null, /* @__PURE__ */ React3.createElement(DeprecatedFormInput, {
|
|
154
|
-
label: t("observability enabled label"),
|
|
155
|
-
secondary: /* @__PURE__ */ React3.createElement(Message.Root, {
|
|
156
|
-
valence: "info"
|
|
157
|
-
}, /* @__PURE__ */ React3.createElement(Message.Content, null, t("observability description")))
|
|
158
|
-
}, /* @__PURE__ */ React3.createElement(Input2.Switch, {
|
|
159
|
-
checked: settings.enabled,
|
|
160
|
-
onCheckedChange: (checked) => dispatch(createIntent2(ObservabilityAction.Toggle, {
|
|
161
|
-
state: !!checked
|
|
162
|
-
}))
|
|
163
|
-
})));
|
|
164
|
-
} finally {
|
|
165
|
-
_effect.f();
|
|
166
|
-
}
|
|
167
|
-
};
|
|
168
|
-
|
|
169
|
-
export {
|
|
170
|
-
FeedbackForm,
|
|
171
|
-
HelpContainer,
|
|
172
|
-
ObservabilitySettingsSchema,
|
|
173
|
-
ObservabilitySettings
|
|
174
|
-
};
|
|
175
|
-
//# sourceMappingURL=chunk-N3VKS2LF.mjs.map
|