@dxos/plugin-observability 0.8.1 → 0.8.2-main.2f9c567

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 (78) hide show
  1. package/dist/lib/browser/{chunk-6Q6ZJ3N4.mjs → chunk-4HIP2OUG.mjs} +38 -9
  2. package/dist/lib/browser/chunk-4HIP2OUG.mjs.map +7 -0
  3. package/dist/lib/browser/chunk-E7NPL7UO.mjs +178 -0
  4. package/dist/lib/browser/chunk-E7NPL7UO.mjs.map +7 -0
  5. package/dist/lib/browser/{client-ready-LRY24QM5.mjs → client-ready-J2WRJ3NK.mjs} +2 -2
  6. package/dist/lib/browser/index.mjs +10 -8
  7. package/dist/lib/browser/index.mjs.map +2 -2
  8. package/dist/lib/browser/{intent-resolver-ZKNJCLDV.mjs → intent-resolver-2UTMIO2T.mjs} +2 -2
  9. package/dist/lib/browser/meta.json +1 -1
  10. package/dist/lib/browser/{react-surface-S36FDV7I.mjs → react-surface-L2EYSF4C.mjs} +3 -3
  11. package/dist/lib/browser/{settings-JFZJTDH7.mjs → settings-5EPL4O2V.mjs} +5 -5
  12. package/dist/lib/browser/settings-5EPL4O2V.mjs.map +7 -0
  13. package/dist/lib/browser/types.mjs +1 -1
  14. package/dist/lib/node/chunk-A7DUZZ5V.cjs +198 -0
  15. package/dist/lib/node/chunk-A7DUZZ5V.cjs.map +7 -0
  16. package/dist/lib/node/{chunk-FIL4BZE2.cjs → chunk-UCKA5GBZ.cjs} +42 -13
  17. package/dist/lib/node/chunk-UCKA5GBZ.cjs.map +7 -0
  18. package/dist/lib/node/{client-ready-KHGLQOQZ.cjs → client-ready-ENPTPI2O.cjs} +6 -6
  19. package/dist/lib/node/index.cjs +14 -12
  20. package/dist/lib/node/index.cjs.map +2 -2
  21. package/dist/lib/node/{intent-resolver-5SANBSGX.cjs → intent-resolver-KHM3CT62.cjs} +8 -8
  22. package/dist/lib/node/meta.json +1 -1
  23. package/dist/lib/node/{react-surface-MWJS6OMP.cjs → react-surface-D7JFIB3X.cjs} +8 -8
  24. package/dist/lib/node/{settings-ARLOGCYU.cjs → settings-QPCXX5RG.cjs} +8 -8
  25. package/dist/lib/node/settings-QPCXX5RG.cjs.map +7 -0
  26. package/dist/lib/node/types.cjs +3 -3
  27. package/dist/lib/node/types.cjs.map +1 -1
  28. package/dist/lib/node-esm/chunk-OIEISTZW.mjs +179 -0
  29. package/dist/lib/node-esm/chunk-OIEISTZW.mjs.map +7 -0
  30. package/dist/lib/node-esm/{chunk-MW737PHD.mjs → chunk-S22MQRWS.mjs} +38 -9
  31. package/dist/lib/node-esm/chunk-S22MQRWS.mjs.map +7 -0
  32. package/dist/lib/node-esm/{client-ready-4BUMAISA.mjs → client-ready-XZLBNPKH.mjs} +2 -2
  33. package/dist/lib/node-esm/index.mjs +10 -8
  34. package/dist/lib/node-esm/index.mjs.map +2 -2
  35. package/dist/lib/node-esm/{intent-resolver-5EFEXLWX.mjs → intent-resolver-R2FFQV6O.mjs} +2 -2
  36. package/dist/lib/node-esm/meta.json +1 -1
  37. package/dist/lib/node-esm/{react-surface-VLQBOZTX.mjs → react-surface-KG6WMUCA.mjs} +3 -3
  38. package/dist/lib/node-esm/{settings-765HDSFY.mjs → settings-BLLMFWKI.mjs} +5 -5
  39. package/dist/lib/node-esm/settings-BLLMFWKI.mjs.map +7 -0
  40. package/dist/lib/node-esm/types.mjs +1 -1
  41. package/dist/types/src/capabilities/app-graph-builder.d.ts.map +1 -1
  42. package/dist/types/src/capabilities/index.d.ts +1 -1
  43. package/dist/types/src/capabilities/index.d.ts.map +1 -1
  44. package/dist/types/src/capabilities/state.d.ts +1 -1
  45. package/dist/types/src/components/HelpContainer.d.ts.map +1 -1
  46. package/dist/types/src/components/ObservabilitySettings.d.ts +4 -4
  47. package/dist/types/src/components/ObservabilitySettings.d.ts.map +1 -1
  48. package/dist/types/src/translations.d.ts +2 -0
  49. package/dist/types/src/translations.d.ts.map +1 -1
  50. package/dist/types/src/types.d.ts +145 -145
  51. package/dist/types/src/types.d.ts.map +1 -1
  52. package/package.json +24 -21
  53. package/src/capabilities/settings.ts +2 -2
  54. package/src/components/HelpContainer.tsx +21 -4
  55. package/src/components/ObservabilitySettings.tsx +5 -5
  56. package/src/translations.ts +3 -1
  57. package/src/types.ts +126 -126
  58. package/dist/lib/browser/chunk-6Q6ZJ3N4.mjs.map +0 -7
  59. package/dist/lib/browser/chunk-RI4RE346.mjs +0 -178
  60. package/dist/lib/browser/chunk-RI4RE346.mjs.map +0 -7
  61. package/dist/lib/browser/settings-JFZJTDH7.mjs.map +0 -7
  62. package/dist/lib/node/chunk-FIL4BZE2.cjs.map +0 -7
  63. package/dist/lib/node/chunk-V4ZLLL5M.cjs +0 -198
  64. package/dist/lib/node/chunk-V4ZLLL5M.cjs.map +0 -7
  65. package/dist/lib/node/settings-ARLOGCYU.cjs.map +0 -7
  66. package/dist/lib/node-esm/chunk-M3MGU3DN.mjs +0 -179
  67. package/dist/lib/node-esm/chunk-M3MGU3DN.mjs.map +0 -7
  68. package/dist/lib/node-esm/chunk-MW737PHD.mjs.map +0 -7
  69. package/dist/lib/node-esm/settings-765HDSFY.mjs.map +0 -7
  70. /package/dist/lib/browser/{client-ready-LRY24QM5.mjs.map → client-ready-J2WRJ3NK.mjs.map} +0 -0
  71. /package/dist/lib/browser/{intent-resolver-ZKNJCLDV.mjs.map → intent-resolver-2UTMIO2T.mjs.map} +0 -0
  72. /package/dist/lib/browser/{react-surface-S36FDV7I.mjs.map → react-surface-L2EYSF4C.mjs.map} +0 -0
  73. /package/dist/lib/node/{client-ready-KHGLQOQZ.cjs.map → client-ready-ENPTPI2O.cjs.map} +0 -0
  74. /package/dist/lib/node/{intent-resolver-5SANBSGX.cjs.map → intent-resolver-KHM3CT62.cjs.map} +0 -0
  75. /package/dist/lib/node/{react-surface-MWJS6OMP.cjs.map → react-surface-D7JFIB3X.cjs.map} +0 -0
  76. /package/dist/lib/node-esm/{client-ready-4BUMAISA.mjs.map → client-ready-XZLBNPKH.mjs.map} +0 -0
  77. /package/dist/lib/node-esm/{intent-resolver-5EFEXLWX.mjs.map → intent-resolver-R2FFQV6O.mjs.map} +0 -0
  78. /package/dist/lib/node-esm/{react-surface-VLQBOZTX.mjs.map → react-surface-KG6WMUCA.mjs.map} +0 -0
package/src/types.ts CHANGED
@@ -2,200 +2,200 @@
2
2
  // Copyright 2024 DXOS.org
3
3
  //
4
4
 
5
- import { S } from '@dxos/echo-schema';
5
+ import { Schema } from 'effect';
6
6
 
7
7
  import { OBSERVABILITY_PLUGIN } from './meta';
8
8
 
9
- const nonEmpty = <S extends S.Schema.Any>(field: string) =>
10
- S.nonEmptyString<S>({ message: () => `Missing field: ${field}` });
9
+ const nonEmpty = <S extends Schema.Schema.Any>(field: string) =>
10
+ Schema.nonEmptyString<S>({ message: () => `Missing field: ${field}` });
11
11
 
12
- const maxLength = <S extends S.Schema.Any>(field: string, length: number) =>
13
- S.maxLength<S>(length, { message: () => `Exceeds max length (${length}): ${field}` });
12
+ const maxLength = <S extends Schema.Schema.Any>(field: string, length: number) =>
13
+ Schema.maxLength<S>(length, { message: () => `Exceeds max length (${length}): ${field}` });
14
14
 
15
- export const UserFeedback = S.Struct({
16
- message: S.String.pipe(nonEmpty('Feedback'), maxLength('Feedback', 32_768)),
15
+ export const UserFeedback = Schema.Struct({
16
+ message: Schema.String.pipe(nonEmpty('Feedback'), maxLength('Feedback', 32_768)),
17
17
  });
18
18
 
19
- export type UserFeedback = S.Schema.Type<typeof UserFeedback>;
19
+ export type UserFeedback = Schema.Schema.Type<typeof UserFeedback>;
20
20
 
21
21
  const OBSERVABILITY_ACTION = `${OBSERVABILITY_PLUGIN}/action`;
22
22
 
23
23
  export namespace ObservabilityAction {
24
- export class Toggle extends S.TaggedClass<Toggle>()(`${OBSERVABILITY_ACTION}/toggle`, {
25
- input: S.Struct({
26
- state: S.optional(S.Boolean),
24
+ export class Toggle extends Schema.TaggedClass<Toggle>()(`${OBSERVABILITY_ACTION}/toggle`, {
25
+ input: Schema.Struct({
26
+ state: Schema.optional(Schema.Boolean),
27
27
  }),
28
- output: S.Boolean,
28
+ output: Schema.Boolean,
29
29
  }) {}
30
30
 
31
- export class CaptureUserFeedback extends S.TaggedClass<CaptureUserFeedback>()(
31
+ export class CaptureUserFeedback extends Schema.TaggedClass<CaptureUserFeedback>()(
32
32
  `${OBSERVABILITY_ACTION}/capture-feedback`,
33
33
  {
34
34
  input: UserFeedback,
35
- output: S.Void,
35
+ output: Schema.Void,
36
36
  },
37
37
  ) {}
38
38
 
39
39
  /** 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),
40
+ export class BaseSendEvent extends Schema.TaggedClass<BaseSendEvent>()(`${OBSERVABILITY_ACTION}/send-event`, {
41
+ input: Schema.Struct({
42
+ name: Schema.String,
43
+ properties: Schema.optional(Schema.Object),
44
44
  }),
45
- output: S.Void,
45
+ output: Schema.Void,
46
46
  }) {}
47
47
 
48
48
  /** Intent with strict types for first-party events. */
49
- export class SendEvent extends S.TaggedClass<SendEvent>()(`${OBSERVABILITY_ACTION}/send-event`, {
49
+ export class SendEvent extends Schema.TaggedClass<SendEvent>()(`${OBSERVABILITY_ACTION}/send-event`, {
50
50
  // NOTE: Sort alphabetically by name.
51
- input: S.Union(
52
- S.Struct({
53
- name: S.Literal('identity.create'),
51
+ input: Schema.Union(
52
+ Schema.Struct({
53
+ name: Schema.Literal('identity.create'),
54
54
  }),
55
- S.Struct({
56
- name: S.Literal('identity.join'),
55
+ Schema.Struct({
56
+ name: Schema.Literal('identity.join'),
57
57
  }),
58
- S.Struct({
59
- name: S.Literal('identity.recover'),
58
+ Schema.Struct({
59
+ name: Schema.Literal('identity.recover'),
60
60
  }),
61
- S.Struct({
62
- name: S.Literal('identity.share'),
61
+ Schema.Struct({
62
+ name: Schema.Literal('identity.share'),
63
63
  }),
64
- S.Struct({
65
- name: S.Literal('navigation.activate'),
66
- properties: S.Struct({
67
- subjectId: S.String,
68
- typename: S.optional(S.String),
64
+ Schema.Struct({
65
+ name: Schema.Literal('navigation.activate'),
66
+ properties: Schema.Struct({
67
+ subjectId: Schema.String,
68
+ typename: Schema.optional(Schema.String),
69
69
  }),
70
70
  }),
71
- S.Struct({
72
- name: S.Literal('page.load'),
73
- properties: S.Struct({
74
- loadDuration: S.Number,
71
+ Schema.Struct({
72
+ name: Schema.Literal('page.load'),
73
+ properties: Schema.Struct({
74
+ loadDuration: Schema.Number,
75
75
  }),
76
76
  }),
77
- S.Struct({
78
- name: S.Literal('plugins.toggle'),
79
- properties: S.Struct({
80
- plugin: S.String,
81
- enabled: S.Boolean,
77
+ Schema.Struct({
78
+ name: Schema.Literal('plugins.toggle'),
79
+ properties: Schema.Struct({
80
+ plugin: Schema.String,
81
+ enabled: Schema.Boolean,
82
82
  }),
83
83
  }),
84
- S.Struct({
85
- name: S.Literal('space.create'),
86
- properties: S.Struct({
87
- spaceId: S.String,
84
+ Schema.Struct({
85
+ name: Schema.Literal('space.create'),
86
+ properties: Schema.Struct({
87
+ spaceId: Schema.String,
88
88
  }),
89
89
  }),
90
- S.Struct({
91
- name: S.Literal('space.join'),
92
- properties: S.Struct({
93
- spaceId: S.String,
90
+ Schema.Struct({
91
+ name: Schema.Literal('space.join'),
92
+ properties: Schema.Struct({
93
+ spaceId: Schema.String,
94
94
  }),
95
95
  }),
96
- S.Struct({
97
- name: S.Literal('space.limit'),
98
- properties: S.Struct({
99
- spaceId: S.String,
96
+ Schema.Struct({
97
+ name: Schema.Literal('space.limit'),
98
+ properties: Schema.Struct({
99
+ spaceId: Schema.String,
100
100
  }),
101
101
  }),
102
- S.Struct({
103
- name: S.Literal('space.lock'),
104
- properties: S.Struct({
105
- spaceId: S.String,
102
+ Schema.Struct({
103
+ name: Schema.Literal('space.lock'),
104
+ properties: Schema.Struct({
105
+ spaceId: Schema.String,
106
106
  }),
107
107
  }),
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),
108
+ Schema.Struct({
109
+ name: Schema.Literal('space.migrate'),
110
+ properties: Schema.Struct({
111
+ spaceId: Schema.String,
112
+ targetVersion: Schema.optional(Schema.String),
113
+ version: Schema.optional(Schema.String),
114
114
  }),
115
115
  }),
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),
116
+ Schema.Struct({
117
+ name: Schema.Literal('space.object.add'),
118
+ properties: Schema.Struct({
119
+ spaceId: Schema.String,
120
+ objectId: Schema.String,
121
+ typename: Schema.optional(Schema.String),
122
122
  }),
123
123
  }),
124
- S.Struct({
125
- name: S.Literal('space.share'),
126
- properties: S.Struct({
127
- spaceId: S.String,
124
+ Schema.Struct({
125
+ name: Schema.Literal('space.share'),
126
+ properties: Schema.Struct({
127
+ spaceId: Schema.String,
128
128
  }),
129
129
  }),
130
- S.Struct({
131
- name: S.Literal('space.unlock'),
132
- properties: S.Struct({
133
- spaceId: S.String,
130
+ Schema.Struct({
131
+ name: Schema.Literal('space.unlock'),
132
+ properties: Schema.Struct({
133
+ spaceId: Schema.String,
134
134
  }),
135
135
  }),
136
- S.Struct({
137
- name: S.Literal('threads.create'),
138
- properties: S.Struct({
139
- spaceId: S.String,
140
- threadId: S.String,
136
+ Schema.Struct({
137
+ name: Schema.Literal('threads.create'),
138
+ properties: Schema.Struct({
139
+ spaceId: Schema.String,
140
+ threadId: Schema.String,
141
141
  }),
142
142
  }),
143
- S.Struct({
144
- name: S.Literal('threads.delete'),
145
- properties: S.Struct({
146
- spaceId: S.String,
147
- threadId: S.String,
143
+ Schema.Struct({
144
+ name: Schema.Literal('threads.delete'),
145
+ properties: Schema.Struct({
146
+ spaceId: Schema.String,
147
+ threadId: Schema.String,
148
148
  }),
149
149
  }),
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,
150
+ Schema.Struct({
151
+ name: Schema.Literal('threads.message.add'),
152
+ properties: Schema.Struct({
153
+ spaceId: Schema.String,
154
+ threadId: Schema.String,
155
+ threadLength: Schema.Number,
156
+ messageId: Schema.String,
157
+ messageLength: Schema.Number,
158
158
  }),
159
159
  }),
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,
160
+ Schema.Struct({
161
+ name: Schema.Literal('threads.message.delete'),
162
+ properties: Schema.Struct({
163
+ spaceId: Schema.String,
164
+ threadId: Schema.String,
165
+ messageId: Schema.String,
166
166
  }),
167
167
  }),
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,
168
+ Schema.Struct({
169
+ name: Schema.Literal('threads.message.undo-delete'),
170
+ properties: Schema.Struct({
171
+ spaceId: Schema.String,
172
+ threadId: Schema.String,
173
+ messageId: Schema.String,
174
174
  }),
175
175
  }),
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,
176
+ Schema.Struct({
177
+ name: Schema.Literal('threads.message.update'),
178
+ properties: Schema.Struct({
179
+ spaceId: Schema.String,
180
+ messageId: Schema.String,
181
+ messageLength: Schema.Number,
182
182
  }),
183
183
  }),
184
- S.Struct({
185
- name: S.Literal('threads.toggle-resolved'),
186
- properties: S.Struct({
187
- spaceId: S.String,
188
- threadId: S.String,
184
+ Schema.Struct({
185
+ name: Schema.Literal('threads.toggle-resolved'),
186
+ properties: Schema.Struct({
187
+ spaceId: Schema.String,
188
+ threadId: Schema.String,
189
189
  }),
190
190
  }),
191
- S.Struct({
192
- name: S.Literal('threads.undo-delete'),
193
- properties: S.Struct({
194
- spaceId: S.String,
195
- threadId: S.String,
191
+ Schema.Struct({
192
+ name: Schema.Literal('threads.undo-delete'),
193
+ properties: Schema.Struct({
194
+ spaceId: Schema.String,
195
+ threadId: Schema.String,
196
196
  }),
197
197
  }),
198
198
  ),
199
- output: S.Void,
199
+ output: Schema.Void,
200
200
  }) {}
201
201
  }
@@ -1,7 +0,0 @@
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, { useCallback, useRef, useState } from 'react';\n\nimport { getSnapshot } from '@dxos/echo-schema';\nimport { IconButton, Input, useTranslation } from '@dxos/react-ui';\nimport { FormProvider, useFormContext, useInputProps } from '@dxos/react-ui-form';\n\nimport { OBSERVABILITY_PLUGIN } from '../meta';\nimport { UserFeedback } from '../types';\n\nconst defaultValues: UserFeedback = { message: '' };\n\nconst FormContent = () => {\n const { t } = useTranslation(OBSERVABILITY_PLUGIN);\n const { handleSave, canSave } = useFormContext<UserFeedback>();\n\n const messageProps = useInputProps(['message']);\n\n return (\n <div role='form' className='p-3 flex flex-col gap-2'>\n <div role='none' className='space-b-1'>\n <Input.Root validationValence={messageProps.getStatus().status}>\n <Input.Label>{t('feedback text area label')}</Input.Label>\n <Input.TextArea\n classNames={'text-sm'}\n rows={5}\n cols={30}\n placeholder={t('feedback text area placeholder')}\n value={messageProps.getValue() ?? ''}\n onChange={(e) => messageProps.onValueChange('string', e.target.value)}\n // TODO(wittjosiah): This aggressively shows validation errors.\n onBlur={messageProps.onBlur}\n />\n <Input.DescriptionAndValidation>\n <Input.Validation>{messageProps.getStatus().error}</Input.Validation>\n </Input.DescriptionAndValidation>\n </Input.Root>\n </div>\n\n <div role='none' className='space-b-2'>\n <IconButton\n icon='ph--paper-plane-tilt--regular'\n label={t('send feedback label')}\n variant='primary'\n type='submit'\n classNames='is-full'\n disabled={!canSave}\n onClick={handleSave}\n />\n </div>\n </div>\n );\n};\n\n// TODO(wittjosiah): Use `Form`?\nexport const FeedbackForm = ({ onSave }: { onSave: (values: UserFeedback) => void }) => {\n const formRef = useRef<HTMLDivElement>(null);\n const [_, update] = useState({});\n const forceRender = useCallback(() => update({}), [update]);\n\n const handleSave = useCallback(\n (values: UserFeedback) => {\n onSave(values);\n // TODO(wittjosiah): Force re-render to clear the form.\n forceRender();\n },\n [forceRender, onSave],\n );\n\n const initialValues = getSnapshot(defaultValues);\n\n return (\n <FormProvider formRef={formRef} schema={UserFeedback} initialValues={initialValues} onSave={handleSave}>\n <div ref={formRef}>\n <FormContent />\n </div>\n </FormProvider>\n );\n};\n", "//\n// Copyright 2025 DXOS.org\n//\n\nimport React, { useCallback } from 'react';\n\nimport { createIntent, useIntentDispatcher } from '@dxos/app-framework';\n\nimport { FeedbackForm } from './FeedbackForm';\nimport { ObservabilityAction, type UserFeedback } from '../types';\n\nexport const HelpContainer = () => {\n const { dispatchPromise: dispatch } = useIntentDispatcher();\n\n const handleSave = useCallback(\n (values: UserFeedback) => {\n void dispatch(createIntent(ObservabilityAction.CaptureUserFeedback, values));\n },\n [dispatch],\n );\n\n return <FeedbackForm onSave={handleSave} />;\n};\n", "//\n// Copyright 2023 DXOS.org\n//\n\nimport React from 'react';\n\nimport { createIntent, useIntentDispatcher } from '@dxos/app-framework';\nimport { S } from '@dxos/echo-schema';\nimport { Input, Message, useTranslation } from '@dxos/react-ui';\nimport { DeprecatedFormContainer, DeprecatedFormInput } from '@dxos/react-ui-form';\n\nimport { OBSERVABILITY_PLUGIN } from '../meta';\nimport { ObservabilityAction } from '../types';\n\nexport const ObservabilitySettingsSchema = S.mutable(\n S.Struct({\n enabled: S.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 = S.Schema.Type<typeof ObservabilitySettingsSchema>;\n\nexport const ObservabilitySettings = ({ settings }: { settings: ObservabilitySettingsProps }) => {\n const { t } = useTranslation(OBSERVABILITY_PLUGIN);\n const { dispatchPromise: dispatch } = useIntentDispatcher();\n\n return (\n <DeprecatedFormContainer>\n <DeprecatedFormInput\n label={t('observability enabled label')}\n secondary={\n <Message.Root valence='info'>\n <Message.Body>{t('observability description')}</Message.Body>\n </Message.Root>\n }\n >\n <Input.Switch\n checked={settings.enabled}\n onCheckedChange={(checked) => dispatch(createIntent(ObservabilityAction.Toggle, { state: !!checked }))}\n />\n </DeprecatedFormInput>\n </DeprecatedFormContainer>\n );\n};\n"],
5
- "mappings": "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",
6
- "names": ["React", "useCallback", "useRef", "useState", "getSnapshot", "IconButton", "Input", "useTranslation", "FormProvider", "useFormContext", "useInputProps", "defaultValues", "message", "FormContent", "t", "useTranslation", "OBSERVABILITY_PLUGIN", "handleSave", "canSave", "useFormContext", "messageProps", "useInputProps", "div", "role", "className", "Input", "Root", "validationValence", "getStatus", "status", "Label", "TextArea", "classNames", "rows", "cols", "placeholder", "value", "getValue", "onChange", "e", "onValueChange", "target", "onBlur", "DescriptionAndValidation", "Validation", "error", "IconButton", "icon", "label", "variant", "type", "disabled", "onClick", "FeedbackForm", "onSave", "formRef", "useRef", "_", "update", "useState", "forceRender", "useCallback", "values", "initialValues", "getSnapshot", "FormProvider", "schema", "UserFeedback", "ref", "React", "useCallback", "createIntent", "useIntentDispatcher", "HelpContainer", "dispatchPromise", "dispatch", "useIntentDispatcher", "handleSave", "useCallback", "values", "createIntent", "ObservabilityAction", "CaptureUserFeedback", "React", "FeedbackForm", "onSave", "React", "createIntent", "useIntentDispatcher", "S", "Input", "Message", "useTranslation", "DeprecatedFormContainer", "DeprecatedFormInput", "ObservabilitySettingsSchema", "S", "mutable", "Struct", "enabled", "Boolean", "ObservabilitySettings", "settings", "t", "useTranslation", "OBSERVABILITY_PLUGIN", "dispatchPromise", "dispatch", "useIntentDispatcher", "React", "DeprecatedFormContainer", "DeprecatedFormInput", "label", "secondary", "Message", "Root", "valence", "Body", "Input", "Switch", "checked", "onCheckedChange", "createIntent", "ObservabilityAction", "Toggle", "state"]
7
- }
@@ -1,178 +0,0 @@
1
- import {
2
- OBSERVABILITY_PLUGIN
3
- } from "./chunk-RKH5BBR4.mjs";
4
-
5
- // packages/plugins/plugin-observability/src/types.ts
6
- import { S } from "@dxos/echo-schema";
7
- var nonEmpty = (field) => S.nonEmptyString({
8
- message: () => `Missing field: ${field}`
9
- });
10
- var maxLength = (field, length) => S.maxLength(length, {
11
- message: () => `Exceeds max length (${length}): ${field}`
12
- });
13
- var UserFeedback = S.Struct({
14
- message: S.String.pipe(nonEmpty("Feedback"), maxLength("Feedback", 32768))
15
- });
16
- var OBSERVABILITY_ACTION = `${OBSERVABILITY_PLUGIN}/action`;
17
- var ObservabilityAction;
18
- (function(ObservabilityAction2) {
19
- class Toggle extends S.TaggedClass()(`${OBSERVABILITY_ACTION}/toggle`, {
20
- input: S.Struct({
21
- state: S.optional(S.Boolean)
22
- }),
23
- output: S.Boolean
24
- }) {
25
- }
26
- ObservabilityAction2.Toggle = Toggle;
27
- class CaptureUserFeedback extends S.TaggedClass()(`${OBSERVABILITY_ACTION}/capture-feedback`, {
28
- input: UserFeedback,
29
- output: S.Void
30
- }) {
31
- }
32
- ObservabilityAction2.CaptureUserFeedback = CaptureUserFeedback;
33
- class BaseSendEvent extends S.TaggedClass()(`${OBSERVABILITY_ACTION}/send-event`, {
34
- input: S.Struct({
35
- name: S.String,
36
- properties: S.optional(S.Object)
37
- }),
38
- output: S.Void
39
- }) {
40
- }
41
- ObservabilityAction2.BaseSendEvent = BaseSendEvent;
42
- class SendEvent extends S.TaggedClass()(`${OBSERVABILITY_ACTION}/send-event`, {
43
- // NOTE: Sort alphabetically by name.
44
- input: S.Union(S.Struct({
45
- name: S.Literal("identity.create")
46
- }), S.Struct({
47
- name: S.Literal("identity.join")
48
- }), S.Struct({
49
- name: S.Literal("identity.recover")
50
- }), S.Struct({
51
- name: S.Literal("identity.share")
52
- }), S.Struct({
53
- name: S.Literal("navigation.activate"),
54
- properties: S.Struct({
55
- subjectId: S.String,
56
- typename: S.optional(S.String)
57
- })
58
- }), S.Struct({
59
- name: S.Literal("page.load"),
60
- properties: S.Struct({
61
- loadDuration: S.Number
62
- })
63
- }), S.Struct({
64
- name: S.Literal("plugins.toggle"),
65
- properties: S.Struct({
66
- plugin: S.String,
67
- enabled: S.Boolean
68
- })
69
- }), S.Struct({
70
- name: S.Literal("space.create"),
71
- properties: S.Struct({
72
- spaceId: S.String
73
- })
74
- }), S.Struct({
75
- name: S.Literal("space.join"),
76
- properties: S.Struct({
77
- spaceId: S.String
78
- })
79
- }), S.Struct({
80
- name: S.Literal("space.limit"),
81
- properties: S.Struct({
82
- spaceId: S.String
83
- })
84
- }), S.Struct({
85
- name: S.Literal("space.lock"),
86
- properties: S.Struct({
87
- spaceId: S.String
88
- })
89
- }), S.Struct({
90
- name: S.Literal("space.migrate"),
91
- properties: S.Struct({
92
- spaceId: S.String,
93
- targetVersion: S.optional(S.String),
94
- version: S.optional(S.String)
95
- })
96
- }), S.Struct({
97
- name: S.Literal("space.object.add"),
98
- properties: S.Struct({
99
- spaceId: S.String,
100
- objectId: S.String,
101
- typename: S.optional(S.String)
102
- })
103
- }), S.Struct({
104
- name: S.Literal("space.share"),
105
- properties: S.Struct({
106
- spaceId: S.String
107
- })
108
- }), S.Struct({
109
- name: S.Literal("space.unlock"),
110
- properties: S.Struct({
111
- spaceId: S.String
112
- })
113
- }), S.Struct({
114
- name: S.Literal("threads.create"),
115
- properties: S.Struct({
116
- spaceId: S.String,
117
- threadId: S.String
118
- })
119
- }), S.Struct({
120
- name: S.Literal("threads.delete"),
121
- properties: S.Struct({
122
- spaceId: S.String,
123
- threadId: S.String
124
- })
125
- }), S.Struct({
126
- name: S.Literal("threads.message.add"),
127
- properties: S.Struct({
128
- spaceId: S.String,
129
- threadId: S.String,
130
- threadLength: S.Number,
131
- messageId: S.String,
132
- messageLength: S.Number
133
- })
134
- }), S.Struct({
135
- name: S.Literal("threads.message.delete"),
136
- properties: S.Struct({
137
- spaceId: S.String,
138
- threadId: S.String,
139
- messageId: S.String
140
- })
141
- }), S.Struct({
142
- name: S.Literal("threads.message.undo-delete"),
143
- properties: S.Struct({
144
- spaceId: S.String,
145
- threadId: S.String,
146
- messageId: S.String
147
- })
148
- }), S.Struct({
149
- name: S.Literal("threads.message.update"),
150
- properties: S.Struct({
151
- spaceId: S.String,
152
- messageId: S.String,
153
- messageLength: S.Number
154
- })
155
- }), S.Struct({
156
- name: S.Literal("threads.toggle-resolved"),
157
- properties: S.Struct({
158
- spaceId: S.String,
159
- threadId: S.String
160
- })
161
- }), S.Struct({
162
- name: S.Literal("threads.undo-delete"),
163
- properties: S.Struct({
164
- spaceId: S.String,
165
- threadId: S.String
166
- })
167
- })),
168
- output: S.Void
169
- }) {
170
- }
171
- ObservabilityAction2.SendEvent = SendEvent;
172
- })(ObservabilityAction || (ObservabilityAction = {}));
173
-
174
- export {
175
- UserFeedback,
176
- ObservabilityAction
177
- };
178
- //# sourceMappingURL=chunk-RI4RE346.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 { S } from '@dxos/echo-schema';\n\nimport { OBSERVABILITY_PLUGIN } from './meta';\n\nconst nonEmpty = <S extends S.Schema.Any>(field: string) =>\n S.nonEmptyString<S>({ message: () => `Missing field: ${field}` });\n\nconst maxLength = <S extends S.Schema.Any>(field: string, length: number) =>\n S.maxLength<S>(length, { message: () => `Exceeds max length (${length}): ${field}` });\n\nexport const UserFeedback = S.Struct({\n message: S.String.pipe(nonEmpty('Feedback'), maxLength('Feedback', 32_768)),\n});\n\nexport type UserFeedback = S.Schema.Type<typeof UserFeedback>;\n\nconst OBSERVABILITY_ACTION = `${OBSERVABILITY_PLUGIN}/action`;\n\nexport namespace ObservabilityAction {\n export class Toggle extends S.TaggedClass<Toggle>()(`${OBSERVABILITY_ACTION}/toggle`, {\n input: S.Struct({\n state: S.optional(S.Boolean),\n }),\n output: S.Boolean,\n }) {}\n\n export class CaptureUserFeedback extends S.TaggedClass<CaptureUserFeedback>()(\n `${OBSERVABILITY_ACTION}/capture-feedback`,\n {\n input: UserFeedback,\n output: S.Void,\n },\n ) {}\n\n /** Base intent for sending events. */\n export class BaseSendEvent extends S.TaggedClass<BaseSendEvent>()(`${OBSERVABILITY_ACTION}/send-event`, {\n input: S.Struct({\n name: S.String,\n properties: S.optional(S.Object),\n }),\n output: S.Void,\n }) {}\n\n /** Intent with strict types for first-party events. */\n export class SendEvent extends S.TaggedClass<SendEvent>()(`${OBSERVABILITY_ACTION}/send-event`, {\n // NOTE: Sort alphabetically by name.\n input: S.Union(\n S.Struct({\n name: S.Literal('identity.create'),\n }),\n S.Struct({\n name: S.Literal('identity.join'),\n }),\n S.Struct({\n name: S.Literal('identity.recover'),\n }),\n S.Struct({\n name: S.Literal('identity.share'),\n }),\n S.Struct({\n name: S.Literal('navigation.activate'),\n properties: S.Struct({\n subjectId: S.String,\n typename: S.optional(S.String),\n }),\n }),\n S.Struct({\n name: S.Literal('page.load'),\n properties: S.Struct({\n loadDuration: S.Number,\n }),\n }),\n S.Struct({\n name: S.Literal('plugins.toggle'),\n properties: S.Struct({\n plugin: S.String,\n enabled: S.Boolean,\n }),\n }),\n S.Struct({\n name: S.Literal('space.create'),\n properties: S.Struct({\n spaceId: S.String,\n }),\n }),\n S.Struct({\n name: S.Literal('space.join'),\n properties: S.Struct({\n spaceId: S.String,\n }),\n }),\n S.Struct({\n name: S.Literal('space.limit'),\n properties: S.Struct({\n spaceId: S.String,\n }),\n }),\n S.Struct({\n name: S.Literal('space.lock'),\n properties: S.Struct({\n spaceId: S.String,\n }),\n }),\n S.Struct({\n name: S.Literal('space.migrate'),\n properties: S.Struct({\n spaceId: S.String,\n targetVersion: S.optional(S.String),\n version: S.optional(S.String),\n }),\n }),\n S.Struct({\n name: S.Literal('space.object.add'),\n properties: S.Struct({\n spaceId: S.String,\n objectId: S.String,\n typename: S.optional(S.String),\n }),\n }),\n S.Struct({\n name: S.Literal('space.share'),\n properties: S.Struct({\n spaceId: S.String,\n }),\n }),\n S.Struct({\n name: S.Literal('space.unlock'),\n properties: S.Struct({\n spaceId: S.String,\n }),\n }),\n S.Struct({\n name: S.Literal('threads.create'),\n properties: S.Struct({\n spaceId: S.String,\n threadId: S.String,\n }),\n }),\n S.Struct({\n name: S.Literal('threads.delete'),\n properties: S.Struct({\n spaceId: S.String,\n threadId: S.String,\n }),\n }),\n S.Struct({\n name: S.Literal('threads.message.add'),\n properties: S.Struct({\n spaceId: S.String,\n threadId: S.String,\n threadLength: S.Number,\n messageId: S.String,\n messageLength: S.Number,\n }),\n }),\n S.Struct({\n name: S.Literal('threads.message.delete'),\n properties: S.Struct({\n spaceId: S.String,\n threadId: S.String,\n messageId: S.String,\n }),\n }),\n S.Struct({\n name: S.Literal('threads.message.undo-delete'),\n properties: S.Struct({\n spaceId: S.String,\n threadId: S.String,\n messageId: S.String,\n }),\n }),\n S.Struct({\n name: S.Literal('threads.message.update'),\n properties: S.Struct({\n spaceId: S.String,\n messageId: S.String,\n messageLength: S.Number,\n }),\n }),\n S.Struct({\n name: S.Literal('threads.toggle-resolved'),\n properties: S.Struct({\n spaceId: S.String,\n threadId: S.String,\n }),\n }),\n S.Struct({\n name: S.Literal('threads.undo-delete'),\n properties: S.Struct({\n spaceId: S.String,\n threadId: S.String,\n }),\n }),\n ),\n output: S.Void,\n }) {}\n}\n"],
5
- "mappings": "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",
6
- "names": ["S", "nonEmpty", "field", "S", "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", "targetVersion", "version", "objectId", "threadId", "threadLength", "messageId", "messageLength"]
7
- }
@@ -1,7 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../../../src/capabilities/settings.ts"],
4
- "sourcesContent": ["//\n// Copyright 2025 DXOS.org\n//\n\nimport { Capabilities, contributes } from '@dxos/app-framework';\nimport { create } from '@dxos/live-object';\n\nimport { type ObservabilitySettingsProps, ObservabilitySettingsSchema } from '../components';\nimport { OBSERVABILITY_PLUGIN } from '../meta';\n\nexport default () => {\n const settings = create<ObservabilitySettingsProps>({ enabled: true });\n\n return contributes(Capabilities.Settings, {\n schema: ObservabilitySettingsSchema,\n prefix: OBSERVABILITY_PLUGIN,\n value: settings,\n });\n};\n"],
5
- "mappings": ";;;;;;;;;AAIA,SAASA,cAAcC,mBAAmB;AAC1C,SAASC,cAAc;AAKvB,IAAA,mBAAe,MAAA;AACb,QAAMC,WAAWC,OAAmC;IAAEC,SAAS;EAAK,CAAA;AAEpE,SAAOC,YAAYC,aAAaC,UAAU;IACxCC,QAAQC;IACRC,QAAQC;IACRC,OAAOV;EACT,CAAA;AACF;",
6
- "names": ["Capabilities", "contributes", "create", "settings", "create", "enabled", "contributes", "Capabilities", "Settings", "schema", "ObservabilitySettingsSchema", "prefix", "OBSERVABILITY_PLUGIN", "value"]
7
- }
@@ -1,7 +0,0 @@
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, { useCallback, useRef, useState } from 'react';\n\nimport { getSnapshot } from '@dxos/echo-schema';\nimport { IconButton, Input, useTranslation } from '@dxos/react-ui';\nimport { FormProvider, useFormContext, useInputProps } from '@dxos/react-ui-form';\n\nimport { OBSERVABILITY_PLUGIN } from '../meta';\nimport { UserFeedback } from '../types';\n\nconst defaultValues: UserFeedback = { message: '' };\n\nconst FormContent = () => {\n const { t } = useTranslation(OBSERVABILITY_PLUGIN);\n const { handleSave, canSave } = useFormContext<UserFeedback>();\n\n const messageProps = useInputProps(['message']);\n\n return (\n <div role='form' className='p-3 flex flex-col gap-2'>\n <div role='none' className='space-b-1'>\n <Input.Root validationValence={messageProps.getStatus().status}>\n <Input.Label>{t('feedback text area label')}</Input.Label>\n <Input.TextArea\n classNames={'text-sm'}\n rows={5}\n cols={30}\n placeholder={t('feedback text area placeholder')}\n value={messageProps.getValue() ?? ''}\n onChange={(e) => messageProps.onValueChange('string', e.target.value)}\n // TODO(wittjosiah): This aggressively shows validation errors.\n onBlur={messageProps.onBlur}\n />\n <Input.DescriptionAndValidation>\n <Input.Validation>{messageProps.getStatus().error}</Input.Validation>\n </Input.DescriptionAndValidation>\n </Input.Root>\n </div>\n\n <div role='none' className='space-b-2'>\n <IconButton\n icon='ph--paper-plane-tilt--regular'\n label={t('send feedback label')}\n variant='primary'\n type='submit'\n classNames='is-full'\n disabled={!canSave}\n onClick={handleSave}\n />\n </div>\n </div>\n );\n};\n\n// TODO(wittjosiah): Use `Form`?\nexport const FeedbackForm = ({ onSave }: { onSave: (values: UserFeedback) => void }) => {\n const formRef = useRef<HTMLDivElement>(null);\n const [_, update] = useState({});\n const forceRender = useCallback(() => update({}), [update]);\n\n const handleSave = useCallback(\n (values: UserFeedback) => {\n onSave(values);\n // TODO(wittjosiah): Force re-render to clear the form.\n forceRender();\n },\n [forceRender, onSave],\n );\n\n const initialValues = getSnapshot(defaultValues);\n\n return (\n <FormProvider formRef={formRef} schema={UserFeedback} initialValues={initialValues} onSave={handleSave}>\n <div ref={formRef}>\n <FormContent />\n </div>\n </FormProvider>\n );\n};\n", "//\n// Copyright 2025 DXOS.org\n//\n\nimport React, { useCallback } from 'react';\n\nimport { createIntent, useIntentDispatcher } from '@dxos/app-framework';\n\nimport { FeedbackForm } from './FeedbackForm';\nimport { ObservabilityAction, type UserFeedback } from '../types';\n\nexport const HelpContainer = () => {\n const { dispatchPromise: dispatch } = useIntentDispatcher();\n\n const handleSave = useCallback(\n (values: UserFeedback) => {\n void dispatch(createIntent(ObservabilityAction.CaptureUserFeedback, values));\n },\n [dispatch],\n );\n\n return <FeedbackForm onSave={handleSave} />;\n};\n", "//\n// Copyright 2023 DXOS.org\n//\n\nimport React from 'react';\n\nimport { createIntent, useIntentDispatcher } from '@dxos/app-framework';\nimport { S } from '@dxos/echo-schema';\nimport { Input, Message, useTranslation } from '@dxos/react-ui';\nimport { DeprecatedFormContainer, DeprecatedFormInput } from '@dxos/react-ui-form';\n\nimport { OBSERVABILITY_PLUGIN } from '../meta';\nimport { ObservabilityAction } from '../types';\n\nexport const ObservabilitySettingsSchema = S.mutable(\n S.Struct({\n enabled: S.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 = S.Schema.Type<typeof ObservabilitySettingsSchema>;\n\nexport const ObservabilitySettings = ({ settings }: { settings: ObservabilitySettingsProps }) => {\n const { t } = useTranslation(OBSERVABILITY_PLUGIN);\n const { dispatchPromise: dispatch } = useIntentDispatcher();\n\n return (\n <DeprecatedFormContainer>\n <DeprecatedFormInput\n label={t('observability enabled label')}\n secondary={\n <Message.Root valence='info'>\n <Message.Body>{t('observability description')}</Message.Body>\n </Message.Root>\n }\n >\n <Input.Switch\n checked={settings.enabled}\n onCheckedChange={(checked) => dispatch(createIntent(ObservabilityAction.Toggle, { state: !!checked }))}\n />\n </DeprecatedFormInput>\n </DeprecatedFormContainer>\n );\n};\n"],
5
- "mappings": "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",
6
- "names": ["import_react", "import_app_framework", "import_echo_schema", "import_react_ui", "import_react_ui_form", "defaultValues", "message", "FormContent", "t", "useTranslation", "OBSERVABILITY_PLUGIN", "handleSave", "canSave", "useFormContext", "messageProps", "useInputProps", "React", "div", "role", "className", "Input", "Root", "validationValence", "getStatus", "status", "Label", "TextArea", "classNames", "rows", "cols", "placeholder", "value", "getValue", "onChange", "e", "onValueChange", "target", "onBlur", "DescriptionAndValidation", "Validation", "error", "IconButton", "icon", "label", "variant", "type", "disabled", "onClick", "FeedbackForm", "onSave", "formRef", "useRef", "_", "update", "useState", "forceRender", "useCallback", "values", "initialValues", "getSnapshot", "FormProvider", "schema", "UserFeedback", "ref", "HelpContainer", "dispatchPromise", "dispatch", "useIntentDispatcher", "createIntent", "ObservabilityAction", "CaptureUserFeedback", "ObservabilitySettingsSchema", "S", "mutable", "Struct", "enabled", "Boolean", "ObservabilitySettings", "settings", "DeprecatedFormContainer", "DeprecatedFormInput", "secondary", "Message", "valence", "Body", "Switch", "checked", "onCheckedChange", "Toggle", "state"]
7
- }