@dxos/plugin-observability 0.8.2-main.f11618f → 0.8.2-staging.42af850

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.
Files changed (110) hide show
  1. package/dist/lib/browser/app-graph-builder-3ROXVPV2.mjs +43 -0
  2. package/dist/lib/browser/app-graph-builder-3ROXVPV2.mjs.map +7 -0
  3. package/dist/lib/browser/chunk-A7FGEPI3.mjs +175 -0
  4. package/dist/lib/{node-esm/chunk-Z22V3GLC.mjs.map → browser/chunk-A7FGEPI3.mjs.map} +3 -3
  5. package/dist/lib/browser/{chunk-ECWB7E2O.mjs → chunk-BJ2ZWVOH.mjs} +4 -4
  6. package/dist/lib/{node-esm/chunk-U3JYGK3O.mjs.map → browser/chunk-BJ2ZWVOH.mjs.map} +1 -1
  7. package/dist/lib/browser/chunk-P7VVCZOC.mjs +179 -0
  8. package/dist/lib/browser/chunk-P7VVCZOC.mjs.map +7 -0
  9. package/dist/lib/browser/{client-ready-LRY24QM5.mjs → client-ready-LP3YSSAH.mjs} +7 -7
  10. package/dist/lib/browser/client-ready-LP3YSSAH.mjs.map +7 -0
  11. package/dist/lib/browser/index.mjs +10 -10
  12. package/dist/lib/browser/index.mjs.map +1 -1
  13. package/dist/lib/browser/{intent-resolver-ZKNJCLDV.mjs → intent-resolver-JESDDMKB.mjs} +8 -8
  14. package/dist/lib/browser/intent-resolver-JESDDMKB.mjs.map +7 -0
  15. package/dist/lib/browser/meta.json +1 -1
  16. package/dist/lib/browser/{react-surface-QMP4YECT.mjs → react-surface-6RWNGDFA.mjs} +3 -3
  17. package/dist/lib/browser/{settings-V5C5V5EJ.mjs → settings-5UNGZSKH.mjs} +3 -3
  18. package/dist/lib/browser/{state-GHBXMIQI.mjs → state-LG4FXJD2.mjs} +2 -2
  19. package/dist/lib/browser/types.mjs +1 -1
  20. package/dist/lib/node/{app-graph-builder-JPUTX4LQ.cjs → app-graph-builder-EXZP366Q.cjs} +28 -25
  21. package/dist/lib/node/app-graph-builder-EXZP366Q.cjs.map +7 -0
  22. package/dist/lib/node/chunk-6UA74KDI.cjs +200 -0
  23. package/dist/lib/node/chunk-6UA74KDI.cjs.map +7 -0
  24. package/dist/lib/node/{chunk-WJQ2MG7S.cjs → chunk-HAIMXBCH.cjs} +5 -5
  25. package/dist/lib/node/{chunk-WJQ2MG7S.cjs.map → chunk-HAIMXBCH.cjs.map} +1 -1
  26. package/dist/lib/node/chunk-UMH4JAVS.cjs +199 -0
  27. package/dist/lib/node/chunk-UMH4JAVS.cjs.map +7 -0
  28. package/dist/lib/node/{client-ready-KHGLQOQZ.cjs → client-ready-CTPKWHMP.cjs} +12 -12
  29. package/dist/lib/node/client-ready-CTPKWHMP.cjs.map +7 -0
  30. package/dist/lib/node/index.cjs +16 -16
  31. package/dist/lib/node/index.cjs.map +1 -1
  32. package/dist/lib/node/{intent-resolver-5SANBSGX.cjs → intent-resolver-7G4GEUOA.cjs} +15 -15
  33. package/dist/lib/node/intent-resolver-7G4GEUOA.cjs.map +7 -0
  34. package/dist/lib/node/meta.json +1 -1
  35. package/dist/lib/node/{react-surface-O6M5TFVP.cjs → react-surface-VZQ7EWYP.cjs} +8 -8
  36. package/dist/lib/node/{settings-CWIX7OVJ.cjs → settings-PMUXB3WF.cjs} +7 -7
  37. package/dist/lib/node/{state-5GZLUTX7.cjs → state-NXRP3P5D.cjs} +6 -6
  38. package/dist/lib/node/types.cjs +3 -3
  39. package/dist/lib/node/types.cjs.map +1 -1
  40. package/dist/lib/node-esm/app-graph-builder-T7J46NSQ.mjs +44 -0
  41. package/dist/lib/node-esm/app-graph-builder-T7J46NSQ.mjs.map +7 -0
  42. package/dist/lib/node-esm/chunk-OWGL3ALC.mjs +176 -0
  43. package/dist/lib/{browser/chunk-DWLES54T.mjs.map → node-esm/chunk-OWGL3ALC.mjs.map} +3 -3
  44. package/dist/lib/node-esm/chunk-S2MXYKCI.mjs +180 -0
  45. package/dist/lib/node-esm/chunk-S2MXYKCI.mjs.map +7 -0
  46. package/dist/lib/node-esm/{chunk-U3JYGK3O.mjs → chunk-X2U2ZHWX.mjs} +4 -4
  47. package/dist/lib/{browser/chunk-ECWB7E2O.mjs.map → node-esm/chunk-X2U2ZHWX.mjs.map} +1 -1
  48. package/dist/lib/node-esm/{client-ready-4BUMAISA.mjs → client-ready-FS62YRSD.mjs} +7 -7
  49. package/dist/lib/node-esm/client-ready-FS62YRSD.mjs.map +7 -0
  50. package/dist/lib/node-esm/index.mjs +10 -10
  51. package/dist/lib/node-esm/index.mjs.map +1 -1
  52. package/dist/lib/node-esm/{intent-resolver-5EFEXLWX.mjs → intent-resolver-MREOBMHB.mjs} +8 -8
  53. package/dist/lib/node-esm/intent-resolver-MREOBMHB.mjs.map +7 -0
  54. package/dist/lib/node-esm/meta.json +1 -1
  55. package/dist/lib/node-esm/{react-surface-JP4SJGWP.mjs → react-surface-ZHMNRVFJ.mjs} +3 -3
  56. package/dist/lib/node-esm/{settings-ZOKCFJET.mjs → settings-YF4AO2PI.mjs} +3 -3
  57. package/dist/lib/node-esm/{state-R2UVEG7B.mjs → state-IZNXQ5RA.mjs} +2 -2
  58. package/dist/lib/node-esm/types.mjs +1 -1
  59. package/dist/types/src/ObservabilityPlugin.d.ts.map +1 -1
  60. package/dist/types/src/capabilities/app-graph-builder.d.ts +2 -179
  61. package/dist/types/src/capabilities/app-graph-builder.d.ts.map +1 -1
  62. package/dist/types/src/capabilities/client-ready.d.ts +2 -2
  63. package/dist/types/src/capabilities/client-ready.d.ts.map +1 -1
  64. package/dist/types/src/capabilities/index.d.ts +3 -179
  65. package/dist/types/src/capabilities/index.d.ts.map +1 -1
  66. package/dist/types/src/capabilities/intent-resolver.d.ts +2 -2
  67. package/dist/types/src/capabilities/intent-resolver.d.ts.map +1 -1
  68. package/dist/types/src/capabilities/state.d.ts.map +1 -1
  69. package/dist/types/src/components/FeedbackForm.d.ts.map +1 -1
  70. package/dist/types/src/components/ObservabilitySettings.d.ts +4 -4
  71. package/dist/types/src/components/ObservabilitySettings.d.ts.map +1 -1
  72. package/dist/types/src/types.d.ts +258 -145
  73. package/dist/types/src/types.d.ts.map +1 -1
  74. package/dist/types/tsconfig.tsbuildinfo +1 -1
  75. package/package.json +31 -24
  76. package/src/capabilities/app-graph-builder.ts +29 -17
  77. package/src/capabilities/client-ready.ts +6 -6
  78. package/src/capabilities/intent-resolver.ts +7 -7
  79. package/src/components/ObservabilitySettings.tsx +5 -5
  80. package/src/types.ts +128 -126
  81. package/dist/lib/browser/app-graph-builder-OCAR3KUZ.mjs +0 -40
  82. package/dist/lib/browser/app-graph-builder-OCAR3KUZ.mjs.map +0 -7
  83. package/dist/lib/browser/chunk-DWLES54T.mjs +0 -152
  84. package/dist/lib/browser/chunk-RI4RE346.mjs +0 -178
  85. package/dist/lib/browser/chunk-RI4RE346.mjs.map +0 -7
  86. package/dist/lib/browser/client-ready-LRY24QM5.mjs.map +0 -7
  87. package/dist/lib/browser/intent-resolver-ZKNJCLDV.mjs.map +0 -7
  88. package/dist/lib/node/app-graph-builder-JPUTX4LQ.cjs.map +0 -7
  89. package/dist/lib/node/chunk-HF4SL56O.cjs +0 -177
  90. package/dist/lib/node/chunk-HF4SL56O.cjs.map +0 -7
  91. package/dist/lib/node/chunk-V4ZLLL5M.cjs +0 -198
  92. package/dist/lib/node/chunk-V4ZLLL5M.cjs.map +0 -7
  93. package/dist/lib/node/client-ready-KHGLQOQZ.cjs.map +0 -7
  94. package/dist/lib/node/intent-resolver-5SANBSGX.cjs.map +0 -7
  95. package/dist/lib/node-esm/app-graph-builder-RKURIIFT.mjs +0 -41
  96. package/dist/lib/node-esm/app-graph-builder-RKURIIFT.mjs.map +0 -7
  97. package/dist/lib/node-esm/chunk-M3MGU3DN.mjs +0 -179
  98. package/dist/lib/node-esm/chunk-M3MGU3DN.mjs.map +0 -7
  99. package/dist/lib/node-esm/chunk-Z22V3GLC.mjs +0 -153
  100. package/dist/lib/node-esm/client-ready-4BUMAISA.mjs.map +0 -7
  101. package/dist/lib/node-esm/intent-resolver-5EFEXLWX.mjs.map +0 -7
  102. /package/dist/lib/browser/{react-surface-QMP4YECT.mjs.map → react-surface-6RWNGDFA.mjs.map} +0 -0
  103. /package/dist/lib/browser/{settings-V5C5V5EJ.mjs.map → settings-5UNGZSKH.mjs.map} +0 -0
  104. /package/dist/lib/browser/{state-GHBXMIQI.mjs.map → state-LG4FXJD2.mjs.map} +0 -0
  105. /package/dist/lib/node/{react-surface-O6M5TFVP.cjs.map → react-surface-VZQ7EWYP.cjs.map} +0 -0
  106. /package/dist/lib/node/{settings-CWIX7OVJ.cjs.map → settings-PMUXB3WF.cjs.map} +0 -0
  107. /package/dist/lib/node/{state-5GZLUTX7.cjs.map → state-NXRP3P5D.cjs.map} +0 -0
  108. /package/dist/lib/node-esm/{react-surface-JP4SJGWP.mjs.map → react-surface-ZHMNRVFJ.mjs.map} +0 -0
  109. /package/dist/lib/node-esm/{settings-ZOKCFJET.mjs.map → settings-YF4AO2PI.mjs.map} +0 -0
  110. /package/dist/lib/node-esm/{state-R2UVEG7B.mjs.map → state-IZNXQ5RA.mjs.map} +0 -0
@@ -2,7 +2,7 @@
2
2
  // Copyright 2025 DXOS.org
3
3
  //
4
4
 
5
- import { Capabilities, contributes, createResolver, IntentAction, type PluginsContext } from '@dxos/app-framework';
5
+ import { Capabilities, contributes, createResolver, IntentAction, type PluginContext } from '@dxos/app-framework';
6
6
  import { log } from '@dxos/log';
7
7
  import { getTelemetryIdentity, storeObservabilityDisabled } from '@dxos/observability';
8
8
 
@@ -11,7 +11,7 @@ import { type ObservabilitySettingsProps } from '../components';
11
11
  import { OBSERVABILITY_PLUGIN } from '../meta';
12
12
  import { ObservabilityAction } from '../types';
13
13
 
14
- export default ({ context, namespace }: { context: PluginsContext; namespace: string }) =>
14
+ export default ({ context, namespace }: { context: PluginContext; namespace: string }) =>
15
15
  contributes(Capabilities.IntentResolver, [
16
16
  createResolver({
17
17
  intent: IntentAction.Track,
@@ -22,10 +22,10 @@ export default ({ context, namespace }: { context: PluginsContext; namespace: st
22
22
  createResolver({
23
23
  intent: ObservabilityAction.Toggle,
24
24
  resolve: async ({ state }) => {
25
- const client = context.requestCapability(ClientCapability);
26
- const observability = context.requestCapability(ObservabilityCapabilities.Observability);
25
+ const client = context.getCapability(ClientCapability);
26
+ const observability = context.getCapability(ObservabilityCapabilities.Observability);
27
27
  const settings = context
28
- .requestCapability(Capabilities.SettingsStore)
28
+ .getCapability(Capabilities.SettingsStore)
29
29
  .getStore<ObservabilitySettingsProps>(OBSERVABILITY_PLUGIN)!.value;
30
30
  settings.enabled = state ?? !settings.enabled;
31
31
  observability.track({
@@ -43,7 +43,7 @@ export default ({ context, namespace }: { context: PluginsContext; namespace: st
43
43
  createResolver({
44
44
  intent: ObservabilityAction.SendEvent,
45
45
  resolve: (data) => {
46
- const client = context.requestCapability(ClientCapability);
46
+ const client = context.getCapability(ClientCapability);
47
47
  const properties = 'properties' in data ? data.properties : {};
48
48
 
49
49
  // NOTE: This is to ensure that events fired before observability is ready are still sent.
@@ -61,7 +61,7 @@ export default ({ context, namespace }: { context: PluginsContext; namespace: st
61
61
  createResolver({
62
62
  intent: ObservabilityAction.CaptureUserFeedback,
63
63
  resolve: async (data) => {
64
- const observability = context.requestCapability(ObservabilityCapabilities.Observability);
64
+ const observability = context.getCapability(ObservabilityCapabilities.Observability);
65
65
  observability.captureUserFeedback(data.message);
66
66
  },
67
67
  }),
@@ -2,19 +2,19 @@
2
2
  // Copyright 2023 DXOS.org
3
3
  //
4
4
 
5
+ import { Schema } from 'effect';
5
6
  import React from 'react';
6
7
 
7
8
  import { createIntent, useIntentDispatcher } from '@dxos/app-framework';
8
- import { S } from '@dxos/echo-schema';
9
9
  import { Input, Message, useTranslation } from '@dxos/react-ui';
10
10
  import { DeprecatedFormContainer, DeprecatedFormInput } from '@dxos/react-ui-form';
11
11
 
12
12
  import { OBSERVABILITY_PLUGIN } from '../meta';
13
13
  import { ObservabilityAction } from '../types';
14
14
 
15
- export const ObservabilitySettingsSchema = S.mutable(
16
- S.Struct({
17
- enabled: S.Boolean,
15
+ export const ObservabilitySettingsSchema = Schema.mutable(
16
+ Schema.Struct({
17
+ enabled: Schema.Boolean,
18
18
  // TODO(wittjosiah): Separate settings for each observability feature.
19
19
  // metrics?: boolean;
20
20
  // telemetry?: boolean;
@@ -22,7 +22,7 @@ export const ObservabilitySettingsSchema = S.mutable(
22
22
  }),
23
23
  );
24
24
 
25
- export type ObservabilitySettingsProps = S.Schema.Type<typeof ObservabilitySettingsSchema>;
25
+ export type ObservabilitySettingsProps = Schema.Schema.Type<typeof ObservabilitySettingsSchema>;
26
26
 
27
27
  export const ObservabilitySettings = ({ settings }: { settings: ObservabilitySettingsProps }) => {
28
28
  const { t } = useTranslation(OBSERVABILITY_PLUGIN);
package/src/types.ts CHANGED
@@ -2,200 +2,202 @@
2
2
  // Copyright 2024 DXOS.org
3
3
  //
4
4
 
5
- import { S } from '@dxos/echo-schema';
5
+ import { Schema } from 'effect';
6
+
7
+ import { Type } from '@dxos/echo';
6
8
 
7
9
  import { OBSERVABILITY_PLUGIN } from './meta';
8
10
 
9
- const nonEmpty = <S extends S.Schema.Any>(field: string) =>
10
- S.nonEmptyString<S>({ message: () => `Missing field: ${field}` });
11
+ const nonEmpty = <S extends Schema.Schema.Any>(field: string) =>
12
+ Schema.nonEmptyString<S>({ message: () => `Missing field: ${field}` });
11
13
 
12
- const maxLength = <S extends S.Schema.Any>(field: string, length: number) =>
13
- S.maxLength<S>(length, { message: () => `Exceeds max length (${length}): ${field}` });
14
+ const maxLength = <S extends Schema.Schema.Any>(field: string, length: number) =>
15
+ Schema.maxLength<S>(length, { message: () => `Exceeds max length (${length}): ${field}` });
14
16
 
15
- export const UserFeedback = S.Struct({
16
- message: S.String.pipe(nonEmpty('Feedback'), maxLength('Feedback', 32_768)),
17
+ export const UserFeedback = Schema.Struct({
18
+ message: Schema.String.pipe(nonEmpty('Feedback'), maxLength('Feedback', 32_768)),
17
19
  });
18
20
 
19
- export type UserFeedback = S.Schema.Type<typeof UserFeedback>;
21
+ export type UserFeedback = Schema.Schema.Type<typeof UserFeedback>;
20
22
 
21
23
  const OBSERVABILITY_ACTION = `${OBSERVABILITY_PLUGIN}/action`;
22
24
 
23
25
  export namespace ObservabilityAction {
24
- export class Toggle extends S.TaggedClass<Toggle>()(`${OBSERVABILITY_ACTION}/toggle`, {
25
- input: S.Struct({
26
- state: S.optional(S.Boolean),
26
+ export class Toggle extends Schema.TaggedClass<Toggle>()(`${OBSERVABILITY_ACTION}/toggle`, {
27
+ input: Schema.Struct({
28
+ state: Schema.optional(Schema.Boolean),
27
29
  }),
28
- output: S.Boolean,
30
+ output: Schema.Boolean,
29
31
  }) {}
30
32
 
31
- export class CaptureUserFeedback extends S.TaggedClass<CaptureUserFeedback>()(
33
+ export class CaptureUserFeedback extends Schema.TaggedClass<CaptureUserFeedback>()(
32
34
  `${OBSERVABILITY_ACTION}/capture-feedback`,
33
35
  {
34
36
  input: UserFeedback,
35
- output: S.Void,
37
+ output: Schema.Void,
36
38
  },
37
39
  ) {}
38
40
 
39
41
  /** Base intent for sending events. */
40
- export class BaseSendEvent extends S.TaggedClass<BaseSendEvent>()(`${OBSERVABILITY_ACTION}/send-event`, {
41
- input: S.Struct({
42
- name: S.String,
43
- properties: S.optional(S.Object),
42
+ export class BaseSendEvent extends Schema.TaggedClass<BaseSendEvent>()(`${OBSERVABILITY_ACTION}/send-event`, {
43
+ input: Schema.Struct({
44
+ name: Schema.String,
45
+ properties: Schema.optional(Schema.Object),
44
46
  }),
45
- output: S.Void,
47
+ output: Schema.Void,
46
48
  }) {}
47
49
 
48
50
  /** Intent with strict types for first-party events. */
49
- export class SendEvent extends S.TaggedClass<SendEvent>()(`${OBSERVABILITY_ACTION}/send-event`, {
51
+ export class SendEvent extends Schema.TaggedClass<SendEvent>()(`${OBSERVABILITY_ACTION}/send-event`, {
50
52
  // NOTE: Sort alphabetically by name.
51
- input: S.Union(
52
- S.Struct({
53
- name: S.Literal('identity.create'),
53
+ input: Schema.Union(
54
+ Schema.Struct({
55
+ name: Schema.Literal('identity.create'),
54
56
  }),
55
- S.Struct({
56
- name: S.Literal('identity.join'),
57
+ Schema.Struct({
58
+ name: Schema.Literal('identity.join'),
57
59
  }),
58
- S.Struct({
59
- name: S.Literal('identity.recover'),
60
+ Schema.Struct({
61
+ name: Schema.Literal('identity.recover'),
60
62
  }),
61
- S.Struct({
62
- name: S.Literal('identity.share'),
63
+ Schema.Struct({
64
+ name: Schema.Literal('identity.share'),
63
65
  }),
64
- S.Struct({
65
- name: S.Literal('navigation.activate'),
66
- properties: S.Struct({
67
- subjectId: S.String,
68
- typename: S.optional(S.String),
66
+ Schema.Struct({
67
+ name: Schema.Literal('navigation.activate'),
68
+ properties: Schema.Struct({
69
+ subjectId: Schema.String,
70
+ typename: Schema.optional(Schema.String),
69
71
  }),
70
72
  }),
71
- S.Struct({
72
- name: S.Literal('page.load'),
73
- properties: S.Struct({
74
- loadDuration: S.Number,
73
+ Schema.Struct({
74
+ name: Schema.Literal('page.load'),
75
+ properties: Schema.Struct({
76
+ loadDuration: Schema.Number,
75
77
  }),
76
78
  }),
77
- S.Struct({
78
- name: S.Literal('plugins.toggle'),
79
- properties: S.Struct({
80
- plugin: S.String,
81
- enabled: S.Boolean,
79
+ Schema.Struct({
80
+ name: Schema.Literal('plugins.toggle'),
81
+ properties: Schema.Struct({
82
+ plugin: Schema.String,
83
+ enabled: Schema.Boolean,
82
84
  }),
83
85
  }),
84
- S.Struct({
85
- name: S.Literal('space.create'),
86
- properties: S.Struct({
87
- spaceId: S.String,
86
+ Schema.Struct({
87
+ name: Schema.Literal('space.create'),
88
+ properties: Schema.Struct({
89
+ spaceId: Type.SpaceId,
88
90
  }),
89
91
  }),
90
- S.Struct({
91
- name: S.Literal('space.join'),
92
- properties: S.Struct({
93
- spaceId: S.String,
92
+ Schema.Struct({
93
+ name: Schema.Literal('space.join'),
94
+ properties: Schema.Struct({
95
+ spaceId: Type.SpaceId,
94
96
  }),
95
97
  }),
96
- S.Struct({
97
- name: S.Literal('space.limit'),
98
- properties: S.Struct({
99
- spaceId: S.String,
98
+ Schema.Struct({
99
+ name: Schema.Literal('space.limit'),
100
+ properties: Schema.Struct({
101
+ spaceId: Type.SpaceId,
100
102
  }),
101
103
  }),
102
- S.Struct({
103
- name: S.Literal('space.lock'),
104
- properties: S.Struct({
105
- spaceId: S.String,
104
+ Schema.Struct({
105
+ name: Schema.Literal('space.lock'),
106
+ properties: Schema.Struct({
107
+ spaceId: Type.SpaceId,
106
108
  }),
107
109
  }),
108
- S.Struct({
109
- name: S.Literal('space.migrate'),
110
- properties: S.Struct({
111
- spaceId: S.String,
112
- targetVersion: S.optional(S.String),
113
- version: S.optional(S.String),
110
+ Schema.Struct({
111
+ name: Schema.Literal('space.migrate'),
112
+ properties: Schema.Struct({
113
+ spaceId: Type.SpaceId,
114
+ targetVersion: Schema.optional(Schema.String),
115
+ version: Schema.optional(Schema.String),
114
116
  }),
115
117
  }),
116
- S.Struct({
117
- name: S.Literal('space.object.add'),
118
- properties: S.Struct({
119
- spaceId: S.String,
120
- objectId: S.String,
121
- typename: S.optional(S.String),
118
+ Schema.Struct({
119
+ name: Schema.Literal('space.object.add'),
120
+ properties: Schema.Struct({
121
+ spaceId: Type.SpaceId,
122
+ objectId: Schema.String,
123
+ typename: Schema.optional(Schema.String),
122
124
  }),
123
125
  }),
124
- S.Struct({
125
- name: S.Literal('space.share'),
126
- properties: S.Struct({
127
- spaceId: S.String,
126
+ Schema.Struct({
127
+ name: Schema.Literal('space.share'),
128
+ properties: Schema.Struct({
129
+ spaceId: Type.SpaceId,
128
130
  }),
129
131
  }),
130
- S.Struct({
131
- name: S.Literal('space.unlock'),
132
- properties: S.Struct({
133
- spaceId: S.String,
132
+ Schema.Struct({
133
+ name: Schema.Literal('space.unlock'),
134
+ properties: Schema.Struct({
135
+ spaceId: Type.SpaceId,
134
136
  }),
135
137
  }),
136
- S.Struct({
137
- name: S.Literal('threads.create'),
138
- properties: S.Struct({
139
- spaceId: S.String,
140
- threadId: S.String,
138
+ Schema.Struct({
139
+ name: Schema.Literal('threads.create'),
140
+ properties: Schema.Struct({
141
+ spaceId: Type.SpaceId,
142
+ threadId: Schema.String,
141
143
  }),
142
144
  }),
143
- S.Struct({
144
- name: S.Literal('threads.delete'),
145
- properties: S.Struct({
146
- spaceId: S.String,
147
- threadId: S.String,
145
+ Schema.Struct({
146
+ name: Schema.Literal('threads.delete'),
147
+ properties: Schema.Struct({
148
+ spaceId: Type.SpaceId,
149
+ threadId: Schema.String,
148
150
  }),
149
151
  }),
150
- S.Struct({
151
- name: S.Literal('threads.message.add'),
152
- properties: S.Struct({
153
- spaceId: S.String,
154
- threadId: S.String,
155
- threadLength: S.Number,
156
- messageId: S.String,
157
- messageLength: S.Number,
152
+ Schema.Struct({
153
+ name: Schema.Literal('threads.message.add'),
154
+ properties: Schema.Struct({
155
+ spaceId: Type.SpaceId,
156
+ threadId: Schema.String,
157
+ threadLength: Schema.Number,
158
+ messageId: Schema.String,
159
+ messageLength: Schema.Number,
158
160
  }),
159
161
  }),
160
- S.Struct({
161
- name: S.Literal('threads.message.delete'),
162
- properties: S.Struct({
163
- spaceId: S.String,
164
- threadId: S.String,
165
- messageId: S.String,
162
+ Schema.Struct({
163
+ name: Schema.Literal('threads.message.delete'),
164
+ properties: Schema.Struct({
165
+ spaceId: Type.SpaceId,
166
+ threadId: Schema.String,
167
+ messageId: Schema.String,
166
168
  }),
167
169
  }),
168
- S.Struct({
169
- name: S.Literal('threads.message.undo-delete'),
170
- properties: S.Struct({
171
- spaceId: S.String,
172
- threadId: S.String,
173
- messageId: S.String,
170
+ Schema.Struct({
171
+ name: Schema.Literal('threads.message.undo-delete'),
172
+ properties: Schema.Struct({
173
+ spaceId: Type.SpaceId,
174
+ threadId: Schema.String,
175
+ messageId: Schema.String,
174
176
  }),
175
177
  }),
176
- S.Struct({
177
- name: S.Literal('threads.message.update'),
178
- properties: S.Struct({
179
- spaceId: S.String,
180
- messageId: S.String,
181
- messageLength: S.Number,
178
+ Schema.Struct({
179
+ name: Schema.Literal('threads.message.update'),
180
+ properties: Schema.Struct({
181
+ spaceId: Type.SpaceId,
182
+ messageId: Schema.String,
183
+ messageLength: Schema.Number,
182
184
  }),
183
185
  }),
184
- S.Struct({
185
- name: S.Literal('threads.toggle-resolved'),
186
- properties: S.Struct({
187
- spaceId: S.String,
188
- threadId: S.String,
186
+ Schema.Struct({
187
+ name: Schema.Literal('threads.toggle-resolved'),
188
+ properties: Schema.Struct({
189
+ spaceId: Type.SpaceId,
190
+ threadId: Schema.String,
189
191
  }),
190
192
  }),
191
- S.Struct({
192
- name: S.Literal('threads.undo-delete'),
193
- properties: S.Struct({
194
- spaceId: S.String,
195
- threadId: S.String,
193
+ Schema.Struct({
194
+ name: Schema.Literal('threads.undo-delete'),
195
+ properties: Schema.Struct({
196
+ spaceId: Type.SpaceId,
197
+ threadId: Schema.String,
196
198
  }),
197
199
  }),
198
200
  ),
199
- output: S.Void,
201
+ output: Schema.Void,
200
202
  }) {}
201
203
  }
@@ -1,40 +0,0 @@
1
- import {
2
- OBSERVABILITY_PLUGIN
3
- } from "./chunk-RKH5BBR4.mjs";
4
-
5
- // packages/plugins/plugin-observability/src/capabilities/app-graph-builder.ts
6
- import { Capabilities, contributes } from "@dxos/app-framework";
7
- import { createExtension } from "@dxos/plugin-graph";
8
- var ATTENDABLE_PATH_SEPARATOR = "~";
9
- var DECK_COMPANION_TYPE = "dxos.org/plugin/deck/deck-companion";
10
- var app_graph_builder_default = (context) => contributes(Capabilities.AppGraphBuilder, [
11
- createExtension({
12
- id: `${OBSERVABILITY_PLUGIN}/help`,
13
- filter: (node) => node.id === "root",
14
- connector: ({ node }) => [
15
- {
16
- id: [
17
- node.id,
18
- "help"
19
- ].join(ATTENDABLE_PATH_SEPARATOR),
20
- type: DECK_COMPANION_TYPE,
21
- data: null,
22
- properties: {
23
- label: [
24
- "help label",
25
- {
26
- ns: OBSERVABILITY_PLUGIN
27
- }
28
- ],
29
- icon: "ph--question--regular",
30
- disposition: "hidden",
31
- position: "hoist"
32
- }
33
- }
34
- ]
35
- })
36
- ]);
37
- export {
38
- app_graph_builder_default as default
39
- };
40
- //# sourceMappingURL=app-graph-builder-OCAR3KUZ.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 { Capabilities, contributes, type PluginsContext } from '@dxos/app-framework';\nimport { createExtension, type Node } 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: PluginsContext) =>\n contributes(Capabilities.AppGraphBuilder, [\n createExtension({\n id: `${OBSERVABILITY_PLUGIN}/help`,\n filter: (node): node is Node<null> => node.id === 'root',\n connector: ({ node }) => [\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 ]);\n"],
5
- "mappings": ";;;;;AAIA,SAASA,cAAcC,mBAAwC;AAC/D,SAASC,uBAAkC;AAK3C,IAAMC,4BAA4B;AAClC,IAAMC,sBAAsB;AAE5B,IAAA,4BAAe,CAACC,YACdC,YAAYC,aAAaC,iBAAiB;EACxCC,gBAAgB;IACdC,IAAI,GAAGC,oBAAAA;IACPC,QAAQ,CAACC,SAA6BA,KAAKH,OAAO;IAClDI,WAAW,CAAC,EAAED,KAAI,MAAO;MACvB;QACEH,IAAI;UAACG,KAAKH;UAAI;UAAQK,KAAKZ,yBAAAA;QAC3Ba,MAAMZ;QACNa,MAAM;QACNC,YAAY;UACVC,OAAO;YAAC;YAAc;cAAEC,IAAIT;YAAqB;;UACjDU,MAAM;UACNC,aAAa;UACbC,UAAU;QACZ;MACF;;EAEJ,CAAA;CACD;",
6
- "names": ["Capabilities", "contributes", "createExtension", "ATTENDABLE_PATH_SEPARATOR", "DECK_COMPANION_TYPE", "context", "contributes", "Capabilities", "AppGraphBuilder", "createExtension", "id", "OBSERVABILITY_PLUGIN", "filter", "node", "connector", "join", "type", "data", "properties", "label", "ns", "icon", "disposition", "position"]
7
- }
@@ -1,152 +0,0 @@
1
- import {
2
- ObservabilityAction,
3
- UserFeedback
4
- } from "./chunk-RI4RE346.mjs";
5
- import {
6
- OBSERVABILITY_PLUGIN
7
- } from "./chunk-RKH5BBR4.mjs";
8
-
9
- // packages/plugins/plugin-observability/src/components/FeedbackForm.tsx
10
- import React, { useCallback, useRef, useState } from "react";
11
- import { getSnapshot } from "@dxos/echo-schema";
12
- import { IconButton, Input, useTranslation } from "@dxos/react-ui";
13
- import { FormProvider, useFormContext, useInputProps } from "@dxos/react-ui-form";
14
- var defaultValues = {
15
- message: ""
16
- };
17
- var FormContent = () => {
18
- const { t } = useTranslation(OBSERVABILITY_PLUGIN);
19
- const { handleSave, canSave } = useFormContext();
20
- const messageProps = useInputProps([
21
- "message"
22
- ]);
23
- return /* @__PURE__ */ React.createElement("div", {
24
- role: "form",
25
- className: "p-3 flex flex-col gap-2"
26
- }, /* @__PURE__ */ React.createElement("div", {
27
- role: "none",
28
- className: "space-b-1"
29
- }, /* @__PURE__ */ React.createElement(Input.Root, {
30
- validationValence: messageProps.getStatus().status
31
- }, /* @__PURE__ */ React.createElement(Input.Label, null, t("feedback text area label")), /* @__PURE__ */ React.createElement(Input.TextArea, {
32
- classNames: "text-sm",
33
- rows: 5,
34
- cols: 30,
35
- placeholder: t("feedback text area placeholder"),
36
- value: messageProps.getValue() ?? "",
37
- onChange: (e) => messageProps.onValueChange("string", e.target.value),
38
- // TODO(wittjosiah): This aggressively shows validation errors.
39
- onBlur: messageProps.onBlur
40
- }), /* @__PURE__ */ React.createElement(Input.DescriptionAndValidation, null, /* @__PURE__ */ React.createElement(Input.Validation, null, messageProps.getStatus().error)))), /* @__PURE__ */ React.createElement("div", {
41
- role: "none",
42
- className: "space-b-2"
43
- }, /* @__PURE__ */ React.createElement(IconButton, {
44
- icon: "ph--paper-plane-tilt--regular",
45
- label: t("send feedback label"),
46
- variant: "primary",
47
- type: "submit",
48
- classNames: "is-full",
49
- disabled: !canSave,
50
- onClick: handleSave
51
- })));
52
- };
53
- var FeedbackForm = ({ onSave }) => {
54
- const formRef = useRef(null);
55
- const [_, update] = useState({});
56
- const forceRender = useCallback(() => update({}), [
57
- update
58
- ]);
59
- const handleSave = useCallback((values) => {
60
- onSave(values);
61
- forceRender();
62
- }, [
63
- forceRender,
64
- onSave
65
- ]);
66
- const initialValues = getSnapshot(defaultValues);
67
- return /* @__PURE__ */ React.createElement(FormProvider, {
68
- formRef,
69
- schema: UserFeedback,
70
- initialValues,
71
- onSave: handleSave
72
- }, /* @__PURE__ */ React.createElement("div", {
73
- ref: formRef
74
- }, /* @__PURE__ */ React.createElement(FormContent, null)));
75
- };
76
-
77
- // packages/plugins/plugin-observability/src/components/HelpContainer.tsx
78
- import { pipe } from "effect";
79
- import React2, { useCallback as useCallback2 } from "react";
80
- import { chain, createIntent, LayoutAction, useIntentDispatcher } from "@dxos/app-framework";
81
- var HelpContainer = () => {
82
- const { dispatchPromise: dispatch } = useIntentDispatcher();
83
- const handleSave = useCallback2((values) => dispatch(pipe(createIntent(ObservabilityAction.CaptureUserFeedback, values), chain(LayoutAction.UpdateComplementary, {
84
- part: "complementary",
85
- options: {
86
- state: "collapsed"
87
- }
88
- }), chain(LayoutAction.AddToast, {
89
- part: "toast",
90
- subject: {
91
- id: `${OBSERVABILITY_PLUGIN}/feedback-success`,
92
- icon: "ph--paper-plane-tilt--regular",
93
- duration: 3e3,
94
- title: [
95
- "feedback toast label",
96
- {
97
- ns: OBSERVABILITY_PLUGIN
98
- }
99
- ],
100
- description: [
101
- "feedback toast description",
102
- {
103
- ns: OBSERVABILITY_PLUGIN
104
- }
105
- ],
106
- closeLabel: [
107
- "close label",
108
- {
109
- ns: "os"
110
- }
111
- ]
112
- }
113
- }))), [
114
- dispatch
115
- ]);
116
- return /* @__PURE__ */ React2.createElement(FeedbackForm, {
117
- onSave: handleSave
118
- });
119
- };
120
-
121
- // packages/plugins/plugin-observability/src/components/ObservabilitySettings.tsx
122
- import React3 from "react";
123
- import { createIntent as createIntent2, useIntentDispatcher as useIntentDispatcher2 } from "@dxos/app-framework";
124
- import { S } from "@dxos/echo-schema";
125
- import { Input as Input2, Message, useTranslation as useTranslation2 } from "@dxos/react-ui";
126
- import { DeprecatedFormContainer, DeprecatedFormInput } from "@dxos/react-ui-form";
127
- var ObservabilitySettingsSchema = S.mutable(S.Struct({
128
- enabled: S.Boolean
129
- }));
130
- var ObservabilitySettings = ({ settings }) => {
131
- const { t } = useTranslation2(OBSERVABILITY_PLUGIN);
132
- const { dispatchPromise: dispatch } = useIntentDispatcher2();
133
- return /* @__PURE__ */ React3.createElement(DeprecatedFormContainer, null, /* @__PURE__ */ React3.createElement(DeprecatedFormInput, {
134
- label: t("observability enabled label"),
135
- secondary: /* @__PURE__ */ React3.createElement(Message.Root, {
136
- valence: "info"
137
- }, /* @__PURE__ */ React3.createElement(Message.Body, null, t("observability description")))
138
- }, /* @__PURE__ */ React3.createElement(Input2.Switch, {
139
- checked: settings.enabled,
140
- onCheckedChange: (checked) => dispatch(createIntent2(ObservabilityAction.Toggle, {
141
- state: !!checked
142
- }))
143
- })));
144
- };
145
-
146
- export {
147
- FeedbackForm,
148
- HelpContainer,
149
- ObservabilitySettingsSchema,
150
- ObservabilitySettings
151
- };
152
- //# sourceMappingURL=chunk-DWLES54T.mjs.map