@dxos/plugin-observability 0.8.4-main.3f58842 → 0.8.4-main.52d7546f51

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 (195) hide show
  1. package/dist/lib/browser/app-graph-builder-7PBOGFFG.mjs +45 -0
  2. package/dist/lib/browser/app-graph-builder-7PBOGFFG.mjs.map +7 -0
  3. package/dist/lib/browser/chunk-3XZDP7JS.mjs +16 -0
  4. package/dist/lib/browser/chunk-3XZDP7JS.mjs.map +7 -0
  5. package/dist/lib/browser/chunk-T3EKFAAB.mjs +138 -0
  6. package/dist/lib/browser/chunk-T3EKFAAB.mjs.map +7 -0
  7. package/dist/lib/browser/chunk-UTYAG5Z3.mjs +123 -0
  8. package/dist/lib/browser/chunk-UTYAG5Z3.mjs.map +7 -0
  9. package/dist/lib/browser/cli/index.mjs +24 -0
  10. package/dist/lib/browser/cli/index.mjs.map +7 -0
  11. package/dist/lib/browser/client-ready-ZVLSHDH6.mjs +103 -0
  12. package/dist/lib/browser/client-ready-ZVLSHDH6.mjs.map +7 -0
  13. package/dist/lib/browser/index.mjs +73 -104
  14. package/dist/lib/browser/index.mjs.map +4 -4
  15. package/dist/lib/browser/meta.json +1 -1
  16. package/dist/lib/browser/operation-resolver-GJYJZPY3.mjs +79 -0
  17. package/dist/lib/browser/operation-resolver-GJYJZPY3.mjs.map +7 -0
  18. package/dist/lib/browser/react-surface-4RABGTCC.mjs +38 -0
  19. package/dist/lib/browser/react-surface-4RABGTCC.mjs.map +7 -0
  20. package/dist/lib/browser/settings-QQBXDLBH.mjs +36 -0
  21. package/dist/lib/browser/settings-QQBXDLBH.mjs.map +7 -0
  22. package/dist/lib/browser/state-SSUNAB2P.mjs +31 -0
  23. package/dist/lib/browser/state-SSUNAB2P.mjs.map +7 -0
  24. package/dist/lib/browser/types/index.mjs +12 -4
  25. package/dist/lib/node-esm/app-graph-builder-D77CGMCQ.mjs +46 -0
  26. package/dist/lib/node-esm/app-graph-builder-D77CGMCQ.mjs.map +7 -0
  27. package/dist/lib/node-esm/chunk-2ECMMPZY.mjs +18 -0
  28. package/dist/lib/node-esm/chunk-2ECMMPZY.mjs.map +7 -0
  29. package/dist/lib/node-esm/chunk-PE6CKAA6.mjs +124 -0
  30. package/dist/lib/node-esm/chunk-PE6CKAA6.mjs.map +7 -0
  31. package/dist/lib/node-esm/chunk-VC5HVE77.mjs +139 -0
  32. package/dist/lib/node-esm/chunk-VC5HVE77.mjs.map +7 -0
  33. package/dist/lib/node-esm/cli/index.mjs +25 -0
  34. package/dist/lib/node-esm/cli/index.mjs.map +7 -0
  35. package/dist/lib/node-esm/client-ready-JXG727PH.mjs +104 -0
  36. package/dist/lib/node-esm/client-ready-JXG727PH.mjs.map +7 -0
  37. package/dist/lib/node-esm/index.mjs +73 -104
  38. package/dist/lib/node-esm/index.mjs.map +4 -4
  39. package/dist/lib/node-esm/meta.json +1 -1
  40. package/dist/lib/node-esm/operation-resolver-NB7XDO3M.mjs +80 -0
  41. package/dist/lib/node-esm/operation-resolver-NB7XDO3M.mjs.map +7 -0
  42. package/dist/lib/node-esm/react-surface-ZHTRUHHM.mjs +39 -0
  43. package/dist/lib/node-esm/react-surface-ZHTRUHHM.mjs.map +7 -0
  44. package/dist/lib/node-esm/settings-IZ2DBP4E.mjs +37 -0
  45. package/dist/lib/node-esm/settings-IZ2DBP4E.mjs.map +7 -0
  46. package/dist/lib/node-esm/state-3HUC5SJV.mjs +32 -0
  47. package/dist/lib/node-esm/state-3HUC5SJV.mjs.map +7 -0
  48. package/dist/lib/node-esm/types/index.mjs +12 -4
  49. package/dist/types/src/ObservabilityPlugin.d.ts +5 -3
  50. package/dist/types/src/ObservabilityPlugin.d.ts.map +1 -1
  51. package/dist/types/src/capabilities/app-graph-builder/app-graph-builder.d.ts +6 -0
  52. package/dist/types/src/capabilities/app-graph-builder/app-graph-builder.d.ts.map +1 -0
  53. package/dist/types/src/capabilities/app-graph-builder/index.d.ts +3 -0
  54. package/dist/types/src/capabilities/app-graph-builder/index.d.ts.map +1 -0
  55. package/dist/types/src/capabilities/client-ready/client-ready.d.ts +10 -0
  56. package/dist/types/src/capabilities/client-ready/client-ready.d.ts.map +1 -0
  57. package/dist/types/src/capabilities/client-ready/index.d.ts +4 -0
  58. package/dist/types/src/capabilities/client-ready/index.d.ts.map +1 -0
  59. package/dist/types/src/capabilities/index.d.ts +6 -16
  60. package/dist/types/src/capabilities/index.d.ts.map +1 -1
  61. package/dist/types/src/capabilities/operation-resolver/index.d.ts +5 -0
  62. package/dist/types/src/capabilities/operation-resolver/index.d.ts.map +1 -0
  63. package/dist/types/src/capabilities/operation-resolver/operation-resolver.d.ts +7 -0
  64. package/dist/types/src/capabilities/operation-resolver/operation-resolver.d.ts.map +1 -0
  65. package/dist/types/src/capabilities/react-surface/index.d.ts +3 -0
  66. package/dist/types/src/capabilities/react-surface/index.d.ts.map +1 -0
  67. package/dist/types/src/capabilities/react-surface/react-surface.d.ts +5 -0
  68. package/dist/types/src/capabilities/react-surface/react-surface.d.ts.map +1 -0
  69. package/dist/types/src/capabilities/settings/index.d.ts +7 -0
  70. package/dist/types/src/capabilities/settings/index.d.ts.map +1 -0
  71. package/dist/types/src/capabilities/settings/settings.d.ts +10 -0
  72. package/dist/types/src/capabilities/settings/settings.d.ts.map +1 -0
  73. package/dist/types/src/capabilities/state/index.d.ts +11 -0
  74. package/dist/types/src/capabilities/state/index.d.ts.map +1 -0
  75. package/dist/types/src/capabilities/state/state.d.ts +13 -0
  76. package/dist/types/src/capabilities/state/state.d.ts.map +1 -0
  77. package/dist/types/src/cli/index.d.ts +2 -0
  78. package/dist/types/src/cli/index.d.ts.map +1 -0
  79. package/dist/types/src/cli/plugin.d.ts +3 -0
  80. package/dist/types/src/cli/plugin.d.ts.map +1 -0
  81. package/dist/types/src/components/FeedbackForm.d.ts +3 -3
  82. package/dist/types/src/components/FeedbackForm.d.ts.map +1 -1
  83. package/dist/types/src/components/FeedbackForm.stories.d.ts +35 -0
  84. package/dist/types/src/components/FeedbackForm.stories.d.ts.map +1 -0
  85. package/dist/types/src/components/HelpContainer.d.ts +1 -0
  86. package/dist/types/src/components/HelpContainer.d.ts.map +1 -1
  87. package/dist/types/src/components/ObservabilitySettings.d.ts +5 -3
  88. package/dist/types/src/components/ObservabilitySettings.d.ts.map +1 -1
  89. package/dist/types/src/index.d.ts +1 -2
  90. package/dist/types/src/index.d.ts.map +1 -1
  91. package/dist/types/src/meta.d.ts +2 -3
  92. package/dist/types/src/meta.d.ts.map +1 -1
  93. package/dist/types/src/translations.d.ts +4 -2
  94. package/dist/types/src/translations.d.ts.map +1 -1
  95. package/dist/types/src/types/capabilities.d.ts +27 -0
  96. package/dist/types/src/types/capabilities.d.ts.map +1 -0
  97. package/dist/types/src/types/events.d.ts +6 -0
  98. package/dist/types/src/types/events.d.ts.map +1 -0
  99. package/dist/types/src/types/index.d.ts +2 -0
  100. package/dist/types/src/types/index.d.ts.map +1 -1
  101. package/dist/types/src/types/schema.d.ts +58 -308
  102. package/dist/types/src/types/schema.d.ts.map +1 -1
  103. package/dist/types/tsconfig.tsbuildinfo +1 -1
  104. package/package.json +48 -35
  105. package/src/ObservabilityPlugin.ts +55 -51
  106. package/src/capabilities/app-graph-builder/app-graph-builder.ts +43 -0
  107. package/src/capabilities/app-graph-builder/index.ts +7 -0
  108. package/src/capabilities/client-ready/client-ready.ts +85 -0
  109. package/src/capabilities/client-ready/index.ts +9 -0
  110. package/src/capabilities/index.ts +6 -10
  111. package/src/capabilities/operation-resolver/index.ts +7 -0
  112. package/src/capabilities/operation-resolver/operation-resolver.ts +77 -0
  113. package/src/capabilities/react-surface/index.ts +7 -0
  114. package/src/capabilities/react-surface/react-surface.tsx +35 -0
  115. package/src/capabilities/settings/index.ts +7 -0
  116. package/src/capabilities/settings/settings.ts +34 -0
  117. package/src/capabilities/state/index.ts +7 -0
  118. package/src/capabilities/state/state.ts +30 -0
  119. package/src/cli/index.ts +5 -0
  120. package/src/cli/plugin.ts +28 -0
  121. package/src/components/FeedbackForm.stories.tsx +33 -0
  122. package/src/components/FeedbackForm.tsx +16 -67
  123. package/src/components/HelpContainer.tsx +42 -26
  124. package/src/components/ObservabilitySettings.tsx +28 -23
  125. package/src/index.ts +1 -2
  126. package/src/meta.ts +8 -5
  127. package/src/translations.ts +4 -2
  128. package/src/types/capabilities.ts +34 -0
  129. package/src/types/events.ts +15 -0
  130. package/src/types/index.ts +2 -0
  131. package/src/types/schema.ts +63 -195
  132. package/dist/lib/browser/app-graph-builder-DCOBBL5B.mjs +0 -43
  133. package/dist/lib/browser/app-graph-builder-DCOBBL5B.mjs.map +0 -7
  134. package/dist/lib/browser/chunk-57RVSKYP.mjs +0 -13
  135. package/dist/lib/browser/chunk-57RVSKYP.mjs.map +0 -7
  136. package/dist/lib/browser/chunk-AL5RST75.mjs +0 -191
  137. package/dist/lib/browser/chunk-AL5RST75.mjs.map +0 -7
  138. package/dist/lib/browser/chunk-UUOBAWT2.mjs +0 -18
  139. package/dist/lib/browser/chunk-UUOBAWT2.mjs.map +0 -7
  140. package/dist/lib/browser/chunk-YVKMVVGP.mjs +0 -175
  141. package/dist/lib/browser/chunk-YVKMVVGP.mjs.map +0 -7
  142. package/dist/lib/browser/client-ready-TAII5PYS.mjs +0 -102
  143. package/dist/lib/browser/client-ready-TAII5PYS.mjs.map +0 -7
  144. package/dist/lib/browser/intent-resolver-5SA443WX.mjs +0 -77
  145. package/dist/lib/browser/intent-resolver-5SA443WX.mjs.map +0 -7
  146. package/dist/lib/browser/react-surface-GQC3M7XY.mjs +0 -32
  147. package/dist/lib/browser/react-surface-GQC3M7XY.mjs.map +0 -7
  148. package/dist/lib/browser/settings-BG3S45SS.mjs +0 -25
  149. package/dist/lib/browser/settings-BG3S45SS.mjs.map +0 -7
  150. package/dist/lib/browser/state-VIOQS2IL.mjs +0 -26
  151. package/dist/lib/browser/state-VIOQS2IL.mjs.map +0 -7
  152. package/dist/lib/node-esm/app-graph-builder-6JT2RPVM.mjs +0 -44
  153. package/dist/lib/node-esm/app-graph-builder-6JT2RPVM.mjs.map +0 -7
  154. package/dist/lib/node-esm/chunk-5W5V4TVX.mjs +0 -192
  155. package/dist/lib/node-esm/chunk-5W5V4TVX.mjs.map +0 -7
  156. package/dist/lib/node-esm/chunk-7XR7KMAA.mjs +0 -15
  157. package/dist/lib/node-esm/chunk-7XR7KMAA.mjs.map +0 -7
  158. package/dist/lib/node-esm/chunk-JTKEM7PT.mjs +0 -19
  159. package/dist/lib/node-esm/chunk-JTKEM7PT.mjs.map +0 -7
  160. package/dist/lib/node-esm/chunk-TYZLSIA4.mjs +0 -176
  161. package/dist/lib/node-esm/chunk-TYZLSIA4.mjs.map +0 -7
  162. package/dist/lib/node-esm/client-ready-KER2HNME.mjs +0 -103
  163. package/dist/lib/node-esm/client-ready-KER2HNME.mjs.map +0 -7
  164. package/dist/lib/node-esm/intent-resolver-YYBRI4TZ.mjs +0 -78
  165. package/dist/lib/node-esm/intent-resolver-YYBRI4TZ.mjs.map +0 -7
  166. package/dist/lib/node-esm/react-surface-ZYMR7TMY.mjs +0 -33
  167. package/dist/lib/node-esm/react-surface-ZYMR7TMY.mjs.map +0 -7
  168. package/dist/lib/node-esm/settings-HSLQO3OC.mjs +0 -26
  169. package/dist/lib/node-esm/settings-HSLQO3OC.mjs.map +0 -7
  170. package/dist/lib/node-esm/state-J2WS6L64.mjs +0 -27
  171. package/dist/lib/node-esm/state-J2WS6L64.mjs.map +0 -7
  172. package/dist/types/src/capabilities/app-graph-builder.d.ts +0 -4
  173. package/dist/types/src/capabilities/app-graph-builder.d.ts.map +0 -1
  174. package/dist/types/src/capabilities/capabilities.d.ts +0 -12
  175. package/dist/types/src/capabilities/capabilities.d.ts.map +0 -1
  176. package/dist/types/src/capabilities/client-ready.d.ts +0 -10
  177. package/dist/types/src/capabilities/client-ready.d.ts.map +0 -1
  178. package/dist/types/src/capabilities/intent-resolver.d.ts +0 -7
  179. package/dist/types/src/capabilities/intent-resolver.d.ts.map +0 -1
  180. package/dist/types/src/capabilities/react-surface.d.ts +0 -4
  181. package/dist/types/src/capabilities/react-surface.d.ts.map +0 -1
  182. package/dist/types/src/capabilities/settings.d.ts +0 -4
  183. package/dist/types/src/capabilities/settings.d.ts.map +0 -1
  184. package/dist/types/src/capabilities/state.d.ts +0 -6
  185. package/dist/types/src/capabilities/state.d.ts.map +0 -1
  186. package/dist/types/src/events.d.ts +0 -5
  187. package/dist/types/src/events.d.ts.map +0 -1
  188. package/src/capabilities/app-graph-builder.ts +0 -45
  189. package/src/capabilities/capabilities.ts +0 -22
  190. package/src/capabilities/client-ready.ts +0 -97
  191. package/src/capabilities/intent-resolver.ts +0 -68
  192. package/src/capabilities/react-surface.tsx +0 -27
  193. package/src/capabilities/settings.ts +0 -21
  194. package/src/capabilities/state.ts +0 -21
  195. package/src/events.ts +0 -14
@@ -1,175 +0,0 @@
1
- import {
2
- ObservabilityAction,
3
- UserFeedback
4
- } from "./chunk-AL5RST75.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-YVKMVVGP.mjs.map
@@ -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 { pipe } from 'effect';\nimport React, { useCallback } from 'react';\n\nimport { chain, createIntent, LayoutAction, useIntentDispatcher } from '@dxos/app-framework';\n\nimport { FeedbackForm } from './FeedbackForm';\nimport { OBSERVABILITY_PLUGIN } from '../meta';\nimport { ObservabilityAction, type UserFeedback } from '../types';\n\nexport const HelpContainer = () => {\n const { dispatchPromise: dispatch } = useIntentDispatcher();\n\n const handleSave = useCallback(\n (values: UserFeedback) =>\n dispatch(\n pipe(\n createIntent(ObservabilityAction.CaptureUserFeedback, values),\n chain(LayoutAction.UpdateComplementary, { part: 'complementary', options: { state: 'collapsed' } }),\n chain(LayoutAction.AddToast, {\n part: 'toast',\n subject: {\n id: `${OBSERVABILITY_PLUGIN}/feedback-success`,\n icon: 'ph--paper-plane-tilt--regular',\n duration: 3000,\n title: ['feedback toast label', { ns: OBSERVABILITY_PLUGIN }],\n description: ['feedback toast description', { ns: OBSERVABILITY_PLUGIN }],\n closeLabel: ['close label', { ns: 'os' }],\n },\n }),\n ),\n ),\n [dispatch],\n );\n\n return <FeedbackForm onSave={handleSave} />;\n};\n", "//\n// Copyright 2023 DXOS.org\n//\n\nimport { Schema } from 'effect';\nimport React from 'react';\n\nimport { createIntent, useIntentDispatcher } from '@dxos/app-framework';\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 = Schema.mutable(\n Schema.Struct({\n enabled: Schema.Boolean,\n // TODO(wittjosiah): Separate settings for each observability feature.\n // metrics?: boolean;\n // telemetry?: boolean;\n // errors?: boolean;\n }),\n);\n\nexport type ObservabilitySettingsProps = Schema.Schema.Type<typeof ObservabilitySettingsSchema>;\n\nexport const ObservabilitySettings = ({ settings }: { settings: ObservabilitySettingsProps }) => {\n const { t } = useTranslation(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.Content>{t('observability description')}</Message.Content>\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": ";;;;;;;;;;AAIA,OAAOA,SAASC,aAAaC,QAAQC,gBAAgB;AAErD,SAASC,mBAAmB;AAC5B,SAASC,YAAYC,OAAOC,sBAAsB;AAClD,SAASC,cAAcC,gBAAgBC,qBAAqB;AAK5D,IAAMC,gBAA8B;EAAEC,SAAS;AAAG;AAElD,IAAMC,cAAc,MAAA;;;AAClB,UAAM,EAAEC,EAAC,IAAKC,eAAeC,oBAAAA;AAC7B,UAAM,EAAEC,YAAYC,QAAO,IAAKC,eAAAA;AAEhC,UAAMC,eAAeC,cAAc;MAAC;KAAU;AAE9C,WACE,sBAAA,cAACC,OAAAA;MAAIC,MAAK;MAAOC,WAAU;OACzB,sBAAA,cAACF,OAAAA;MAAIC,MAAK;MAAOC,WAAU;OACzB,sBAAA,cAACC,MAAMC,MAAI;MAACC,mBAAmBP,aAAaQ,UAAS,EAAGC;OACtD,sBAAA,cAACJ,MAAMK,OAAK,MAAEhB,EAAE,0BAAA,CAAA,GAChB,sBAAA,cAACW,MAAMM,UAAQ;MACbC,YAAY;MACZC,MAAM;MACNC,MAAM;MACNC,aAAarB,EAAE,gCAAA;MACfsB,OAAOhB,aAAaiB,SAAQ,KAAM;MAClCC,UAAU,CAACC,MAAMnB,aAAaoB,cAAc,UAAUD,EAAEE,OAAOL,KAAK;;MAEpEM,QAAQtB,aAAasB;QAEvB,sBAAA,cAACjB,MAAMkB,0BAAwB,MAC7B,sBAAA,cAAClB,MAAMmB,YAAU,MAAExB,aAAaQ,UAAS,EAAGiB,KAAK,CAAA,CAAA,CAAA,GAKvD,sBAAA,cAACvB,OAAAA;MAAIC,MAAK;MAAOC,WAAU;OACzB,sBAAA,cAACsB,YAAAA;MACCC,MAAK;MACLC,OAAOlC,EAAE,qBAAA;MACTmC,SAAQ;MACRC,MAAK;MACLlB,YAAW;MACXmB,UAAU,CAACjC;MACXkC,SAASnC;;;;;AAKnB;AAGO,IAAMoC,eAAe,CAAC,EAAEC,OAAM,MAA8C;;;AACjF,UAAMC,UAAUC,OAAuB,IAAA;AACvC,UAAM,CAACC,GAAGC,MAAAA,IAAUC,SAAS,CAAC,CAAA;AAC9B,UAAMC,cAAcC,YAAY,MAAMH,OAAO,CAAC,CAAA,GAAI;MAACA;KAAO;AAE1D,UAAMzC,aAAa4C,YACjB,CAACC,WAAAA;AACCR,aAAOQ,MAAAA;AAEPF,kBAAAA;IACF,GACA;MAACA;MAAaN;KAAO;AAGvB,UAAMS,gBAAgBC,YAAYrD,aAAAA;AAElC,WACE,sBAAA,cAACsD,cAAAA;MAAaV;MAAkBW,QAAQC;MAAcJ;MAA8BT,QAAQrC;OAC1F,sBAAA,cAACK,OAAAA;MAAI8C,KAAKb;OACR,sBAAA,cAAC1C,aAAAA,IAAAA,CAAAA,CAAAA;;;;AAIT;;;;AC7EA,SAASwD,YAAY;AACrB,OAAOC,UAASC,eAAAA,oBAAmB;AAEnC,SAASC,OAAOC,cAAcC,cAAcC,2BAA2B;AAMhE,IAAMC,gBAAgB,MAAA;;;AAC3B,UAAM,EAAEC,iBAAiBC,SAAQ,IAAKC,oBAAAA;AAEtC,UAAMC,aAAaC,aACjB,CAACC,WACCJ,SACEK,KACEC,aAAaC,oBAAoBC,qBAAqBJ,MAAAA,GACtDK,MAAMC,aAAaC,qBAAqB;MAAEC,MAAM;MAAiBC,SAAS;QAAEC,OAAO;MAAY;IAAE,CAAA,GACjGL,MAAMC,aAAaK,UAAU;MAC3BH,MAAM;MACNI,SAAS;QACPC,IAAI,GAAGC,oBAAAA;QACPC,MAAM;QACNC,UAAU;QACVC,OAAO;UAAC;UAAwB;YAAEC,IAAIJ;UAAqB;;QAC3DK,aAAa;UAAC;UAA8B;YAAED,IAAIJ;UAAqB;;QACvEM,YAAY;UAAC;UAAe;YAAEF,IAAI;UAAK;;MACzC;IACF,CAAA,CAAA,CAAA,GAGN;MAACtB;KAAS;AAGZ,WAAO,gBAAAyB,OAAA,cAACC,cAAAA;MAAaC,QAAQzB;;;;;AAC/B;;;;ACnCA,SAAS0B,cAAc;AACvB,OAAOC,YAAW;AAElB,SAASC,gBAAAA,eAAcC,uBAAAA,4BAA2B;AAClD,SAASC,SAAAA,QAAOC,SAASC,kBAAAA,uBAAsB;AAC/C,SAASC,yBAAyBC,2BAA2B;AAKtD,IAAMC,8BAA8BC,OAAOC,QAChDD,OAAOE,OAAO;EACZC,SAASH,OAAOI;AAKlB,CAAA,CAAA;AAKK,IAAMC,wBAAwB,CAAC,EAAEC,SAAQ,MAA4C;;;AAC1F,UAAM,EAAEC,EAAC,IAAKC,gBAAeC,oBAAAA;AAC7B,UAAM,EAAEC,iBAAiBC,SAAQ,IAAKC,qBAAAA;AAEtC,WACE,gBAAAC,OAAA,cAACC,yBAAAA,MACC,gBAAAD,OAAA,cAACE,qBAAAA;MACCC,OAAOT,EAAE,6BAAA;MACTU,WACE,gBAAAJ,OAAA,cAACK,QAAQC,MAAI;QAACC,SAAQ;SACpB,gBAAAP,OAAA,cAACK,QAAQG,SAAO,MAAEd,EAAE,2BAAA,CAAA,CAAA;OAIxB,gBAAAM,OAAA,cAACS,OAAMC,QAAM;MACXC,SAASlB,SAASH;MAClBsB,iBAAiB,CAACD,YAAYb,SAASe,cAAaC,oBAAoBC,QAAQ;QAAEC,OAAO,CAAC,CAACL;MAAQ,CAAA,CAAA;;;;;AAK7G;",
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", "pipe", "React", "useCallback", "chain", "createIntent", "LayoutAction", "useIntentDispatcher", "HelpContainer", "dispatchPromise", "dispatch", "useIntentDispatcher", "handleSave", "useCallback", "values", "pipe", "createIntent", "ObservabilityAction", "CaptureUserFeedback", "chain", "LayoutAction", "UpdateComplementary", "part", "options", "state", "AddToast", "subject", "id", "OBSERVABILITY_PLUGIN", "icon", "duration", "title", "ns", "description", "closeLabel", "React", "FeedbackForm", "onSave", "Schema", "React", "createIntent", "useIntentDispatcher", "Input", "Message", "useTranslation", "DeprecatedFormContainer", "DeprecatedFormInput", "ObservabilitySettingsSchema", "Schema", "mutable", "Struct", "enabled", "Boolean", "ObservabilitySettings", "settings", "t", "useTranslation", "OBSERVABILITY_PLUGIN", "dispatchPromise", "dispatch", "useIntentDispatcher", "React", "DeprecatedFormContainer", "DeprecatedFormInput", "label", "secondary", "Message", "Root", "valence", "Content", "Input", "Switch", "checked", "onCheckedChange", "createIntent", "ObservabilityAction", "Toggle", "state"]
7
- }
@@ -1,102 +0,0 @@
1
- import {
2
- ObservabilityAction
3
- } from "./chunk-AL5RST75.mjs";
4
- import {
5
- ClientCapability,
6
- ObservabilityCapabilities
7
- } from "./chunk-UUOBAWT2.mjs";
8
- import {
9
- OBSERVABILITY_PLUGIN
10
- } from "./chunk-57RVSKYP.mjs";
11
-
12
- // src/capabilities/client-ready.ts
13
- import { Capabilities, contributes, createIntent, LayoutAction, SettingsAction } from "@dxos/app-framework";
14
- import { setupTelemetryListeners } from "@dxos/observability";
15
- var client_ready_default = async ({ context, namespace, observability }) => {
16
- const manager = context.getCapability(Capabilities.PluginManager);
17
- const { dispatchPromise: dispatch } = context.getCapability(Capabilities.IntentDispatcher);
18
- const state = context.getCapability(ObservabilityCapabilities.State);
19
- const client = context.getCapability(ClientCapability);
20
- const sendPrivacyNotice = async () => {
21
- const environment = client?.config?.values.runtime?.app?.env?.DX_ENVIRONMENT;
22
- const notify = environment && environment !== "ci" && !environment.endsWith(".local") && !environment.endsWith(".lan");
23
- if (!state.notified && notify) {
24
- await dispatch(createIntent(LayoutAction.AddToast, {
25
- part: "toast",
26
- subject: {
27
- id: `${OBSERVABILITY_PLUGIN}/notice`,
28
- title: [
29
- "observability toast label",
30
- {
31
- ns: OBSERVABILITY_PLUGIN
32
- }
33
- ],
34
- description: [
35
- "observability toast description",
36
- {
37
- ns: OBSERVABILITY_PLUGIN
38
- }
39
- ],
40
- duration: Infinity,
41
- icon: "ph--info--regular",
42
- actionLabel: [
43
- "observability toast action label",
44
- {
45
- ns: OBSERVABILITY_PLUGIN
46
- }
47
- ],
48
- actionAlt: [
49
- "observability toast action alt",
50
- {
51
- ns: OBSERVABILITY_PLUGIN
52
- }
53
- ],
54
- closeLabel: [
55
- "observability toast close label",
56
- {
57
- ns: OBSERVABILITY_PLUGIN
58
- }
59
- ],
60
- onAction: () => dispatch(createIntent(SettingsAction.Open, {
61
- plugin: OBSERVABILITY_PLUGIN
62
- }))
63
- }
64
- }));
65
- state.notified = true;
66
- }
67
- };
68
- manager.enabled.map((plugin) => observability?.setTag(`pluginEnabled-${plugin}`, "true", "errors"));
69
- await dispatch(createIntent(ObservabilityAction.SendEvent, {
70
- name: "page.load",
71
- properties: {
72
- // TODO(wittjosiah): These apis are deprecated. Is there a better way to find this information?
73
- loadDuration: window.performance.timing.loadEventEnd - window.performance.timing.loadEventStart
74
- }
75
- }));
76
- const cleanup = setupTelemetryListeners(namespace, client, observability);
77
- await Promise.all([
78
- observability.setIdentityTags(client.services.services),
79
- observability.startRuntimeMetrics(client),
80
- observability.startNetworkMetrics(client.services.services),
81
- observability.startSpacesMetrics(client, namespace)
82
- ]);
83
- if (client.halo.identity.get()) {
84
- await sendPrivacyNotice();
85
- } else {
86
- const subscription = client.halo.identity.subscribe(async (identity) => {
87
- if (identity && observability) {
88
- await sendPrivacyNotice();
89
- await observability.setIdentityTags(client.services.services);
90
- subscription.unsubscribe();
91
- }
92
- });
93
- }
94
- return contributes(ObservabilityCapabilities.Observability, observability, async () => {
95
- cleanup();
96
- await observability.close();
97
- });
98
- };
99
- export {
100
- client_ready_default as default
101
- };
102
- //# sourceMappingURL=client-ready-TAII5PYS.mjs.map
@@ -1,7 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../../../src/capabilities/client-ready.ts"],
4
- "sourcesContent": ["//\n// Copyright 2025 DXOS.org\n//\n\nimport {\n Capabilities,\n contributes,\n createIntent,\n LayoutAction,\n SettingsAction,\n type PluginContext,\n} from '@dxos/app-framework';\nimport { setupTelemetryListeners, type Observability } from '@dxos/observability';\n\nimport { ClientCapability, ObservabilityCapabilities } from './capabilities';\nimport { OBSERVABILITY_PLUGIN } from '../meta';\nimport { ObservabilityAction } from '../types';\n\ntype ClientReadyOptions = {\n context: PluginContext;\n namespace: string;\n observability: Observability;\n};\n\nexport default async ({ context, namespace, observability }: ClientReadyOptions) => {\n const manager = context.getCapability(Capabilities.PluginManager);\n const { dispatchPromise: dispatch } = context.getCapability(Capabilities.IntentDispatcher);\n const state = context.getCapability(ObservabilityCapabilities.State);\n const client = context.getCapability(ClientCapability);\n\n const sendPrivacyNotice = async () => {\n const environment = client?.config?.values.runtime?.app?.env?.DX_ENVIRONMENT;\n const notify =\n environment && environment !== 'ci' && !environment.endsWith('.local') && !environment.endsWith('.lan');\n if (!state.notified && notify) {\n await dispatch(\n createIntent(LayoutAction.AddToast, {\n part: 'toast',\n subject: {\n id: `${OBSERVABILITY_PLUGIN}/notice`,\n title: ['observability toast label', { ns: OBSERVABILITY_PLUGIN }],\n description: ['observability toast description', { ns: OBSERVABILITY_PLUGIN }],\n duration: Infinity,\n icon: 'ph--info--regular',\n actionLabel: ['observability toast action label', { ns: OBSERVABILITY_PLUGIN }],\n actionAlt: ['observability toast action alt', { ns: OBSERVABILITY_PLUGIN }],\n closeLabel: ['observability toast close label', { ns: OBSERVABILITY_PLUGIN }],\n onAction: () => dispatch(createIntent(SettingsAction.Open, { plugin: OBSERVABILITY_PLUGIN })),\n },\n }),\n );\n\n state.notified = true;\n }\n };\n\n // Ensure errors are tagged with enabled plugins to help with reproductions.\n manager.enabled.map((plugin) => observability?.setTag(`pluginEnabled-${plugin}`, 'true', 'errors'));\n\n await dispatch(\n createIntent(ObservabilityAction.SendEvent, {\n name: 'page.load',\n properties: {\n // TODO(wittjosiah): These apis are deprecated. Is there a better way to find this information?\n loadDuration: window.performance.timing.loadEventEnd - window.performance.timing.loadEventStart,\n },\n }),\n );\n\n // Start client observability (i.e. not running as shared worker)\n // TODO(nf): how to prevent multiple instances for single shared worker?\n const cleanup = setupTelemetryListeners(namespace, client, observability);\n\n await Promise.all([\n observability.setIdentityTags(client.services.services),\n observability.startRuntimeMetrics(client),\n observability.startNetworkMetrics(client.services.services),\n observability.startSpacesMetrics(client, namespace),\n ]);\n\n if (client.halo.identity.get()) {\n await sendPrivacyNotice();\n } else {\n const subscription = client.halo.identity.subscribe(async (identity) => {\n if (identity && observability) {\n await sendPrivacyNotice();\n await observability.setIdentityTags(client.services.services);\n subscription.unsubscribe();\n }\n });\n }\n\n return contributes(ObservabilityCapabilities.Observability, observability, async () => {\n cleanup();\n await observability.close();\n });\n};\n"],
5
- "mappings": ";;;;;;;;;;;;AAIA,SACEA,cACAC,aACAC,cACAC,cACAC,sBAEK;AACP,SAASC,+BAAmD;AAY5D,IAAA,uBAAe,OAAO,EAAEC,SAASC,WAAWC,cAAa,MAAsB;AAC7E,QAAMC,UAAUH,QAAQI,cAAcC,aAAaC,aAAa;AAChE,QAAM,EAAEC,iBAAiBC,SAAQ,IAAKR,QAAQI,cAAcC,aAAaI,gBAAgB;AACzF,QAAMC,QAAQV,QAAQI,cAAcO,0BAA0BC,KAAK;AACnE,QAAMC,SAASb,QAAQI,cAAcU,gBAAAA;AAErC,QAAMC,oBAAoB,YAAA;AACxB,UAAMC,cAAcH,QAAQI,QAAQC,OAAOC,SAASC,KAAKC,KAAKC;AAC9D,UAAMC,SACJP,eAAeA,gBAAgB,QAAQ,CAACA,YAAYQ,SAAS,QAAA,KAAa,CAACR,YAAYQ,SAAS,MAAA;AAClG,QAAI,CAACd,MAAMe,YAAYF,QAAQ;AAC7B,YAAMf,SACJkB,aAAaC,aAAaC,UAAU;QAClCC,MAAM;QACNC,SAAS;UACPC,IAAI,GAAGC,oBAAAA;UACPC,OAAO;YAAC;YAA6B;cAAEC,IAAIF;YAAqB;;UAChEG,aAAa;YAAC;YAAmC;cAAED,IAAIF;YAAqB;;UAC5EI,UAAUC;UACVC,MAAM;UACNC,aAAa;YAAC;YAAoC;cAAEL,IAAIF;YAAqB;;UAC7EQ,WAAW;YAAC;YAAkC;cAAEN,IAAIF;YAAqB;;UACzES,YAAY;YAAC;YAAmC;cAAEP,IAAIF;YAAqB;;UAC3EU,UAAU,MAAMlC,SAASkB,aAAaiB,eAAeC,MAAM;YAAEC,QAAQb;UAAqB,CAAA,CAAA;QAC5F;MACF,CAAA,CAAA;AAGFtB,YAAMe,WAAW;IACnB;EACF;AAGAtB,UAAQ2C,QAAQC,IAAI,CAACF,WAAW3C,eAAe8C,OAAO,iBAAiBH,MAAAA,IAAU,QAAQ,QAAA,CAAA;AAEzF,QAAMrC,SACJkB,aAAauB,oBAAoBC,WAAW;IAC1CC,MAAM;IACNC,YAAY;;MAEVC,cAAcC,OAAOC,YAAYC,OAAOC,eAAeH,OAAOC,YAAYC,OAAOE;IACnF;EACF,CAAA,CAAA;AAKF,QAAMC,UAAUC,wBAAwB3D,WAAWY,QAAQX,aAAAA;AAE3D,QAAM2D,QAAQC,IAAI;IAChB5D,cAAc6D,gBAAgBlD,OAAOmD,SAASA,QAAQ;IACtD9D,cAAc+D,oBAAoBpD,MAAAA;IAClCX,cAAcgE,oBAAoBrD,OAAOmD,SAASA,QAAQ;IAC1D9D,cAAciE,mBAAmBtD,QAAQZ,SAAAA;GAC1C;AAED,MAAIY,OAAOuD,KAAKC,SAASC,IAAG,GAAI;AAC9B,UAAMvD,kBAAAA;EACR,OAAO;AACL,UAAMwD,eAAe1D,OAAOuD,KAAKC,SAASG,UAAU,OAAOH,aAAAA;AACzD,UAAIA,YAAYnE,eAAe;AAC7B,cAAMa,kBAAAA;AACN,cAAMb,cAAc6D,gBAAgBlD,OAAOmD,SAASA,QAAQ;AAC5DO,qBAAaE,YAAW;MAC1B;IACF,CAAA;EACF;AAEA,SAAOC,YAAY/D,0BAA0BgE,eAAezE,eAAe,YAAA;AACzEyD,YAAAA;AACA,UAAMzD,cAAc0E,MAAK;EAC3B,CAAA;AACF;",
6
- "names": ["Capabilities", "contributes", "createIntent", "LayoutAction", "SettingsAction", "setupTelemetryListeners", "context", "namespace", "observability", "manager", "getCapability", "Capabilities", "PluginManager", "dispatchPromise", "dispatch", "IntentDispatcher", "state", "ObservabilityCapabilities", "State", "client", "ClientCapability", "sendPrivacyNotice", "environment", "config", "values", "runtime", "app", "env", "DX_ENVIRONMENT", "notify", "endsWith", "notified", "createIntent", "LayoutAction", "AddToast", "part", "subject", "id", "OBSERVABILITY_PLUGIN", "title", "ns", "description", "duration", "Infinity", "icon", "actionLabel", "actionAlt", "closeLabel", "onAction", "SettingsAction", "Open", "plugin", "enabled", "map", "setTag", "ObservabilityAction", "SendEvent", "name", "properties", "loadDuration", "window", "performance", "timing", "loadEventEnd", "loadEventStart", "cleanup", "setupTelemetryListeners", "Promise", "all", "setIdentityTags", "services", "startRuntimeMetrics", "startNetworkMetrics", "startSpacesMetrics", "halo", "identity", "get", "subscription", "subscribe", "unsubscribe", "contributes", "Observability", "close"]
7
- }
@@ -1,77 +0,0 @@
1
- import {
2
- ObservabilityAction
3
- } from "./chunk-AL5RST75.mjs";
4
- import {
5
- ClientCapability,
6
- ObservabilityCapabilities
7
- } from "./chunk-UUOBAWT2.mjs";
8
- import {
9
- OBSERVABILITY_PLUGIN
10
- } from "./chunk-57RVSKYP.mjs";
11
-
12
- // src/capabilities/intent-resolver.ts
13
- import { Capabilities, contributes, createResolver, IntentAction } from "@dxos/app-framework";
14
- import { log } from "@dxos/log";
15
- import { getTelemetryIdentity, storeObservabilityDisabled } from "@dxos/observability";
16
- var __dxlog_file = "/__w/dxos/dxos/packages/plugins/plugin-observability/src/capabilities/intent-resolver.ts";
17
- var intent_resolver_default = ({ context, namespace }) => contributes(Capabilities.IntentResolver, [
18
- createResolver({
19
- intent: IntentAction.Track,
20
- resolve: (intent) => {
21
- log.info("intent", {
22
- intent
23
- }, {
24
- F: __dxlog_file,
25
- L: 19,
26
- S: void 0,
27
- C: (f, a) => f(...a)
28
- });
29
- }
30
- }),
31
- createResolver({
32
- intent: ObservabilityAction.Toggle,
33
- resolve: async ({ state }) => {
34
- const client = context.getCapability(ClientCapability);
35
- const observability = context.getCapability(ObservabilityCapabilities.Observability);
36
- const settings = context.getCapability(Capabilities.SettingsStore).getStore(OBSERVABILITY_PLUGIN).value;
37
- settings.enabled = state ?? !settings.enabled;
38
- observability.track({
39
- ...getTelemetryIdentity(client),
40
- action: "observability.toggle",
41
- properties: {
42
- enabled: settings.enabled
43
- }
44
- });
45
- observability.setMode(settings.enabled ? "basic" : "disabled");
46
- await storeObservabilityDisabled(namespace, !settings.enabled);
47
- return {
48
- data: settings.enabled
49
- };
50
- }
51
- }),
52
- createResolver({
53
- intent: ObservabilityAction.SendEvent,
54
- resolve: (data) => {
55
- const client = context.getCapability(ClientCapability);
56
- const properties = "properties" in data ? data.properties : {};
57
- void context.waitForCapability(ObservabilityCapabilities.Observability).then((observability) => {
58
- observability.track({
59
- ...getTelemetryIdentity(client),
60
- action: data.name,
61
- properties
62
- });
63
- });
64
- }
65
- }),
66
- createResolver({
67
- intent: ObservabilityAction.CaptureUserFeedback,
68
- resolve: async (data) => {
69
- const observability = context.getCapability(ObservabilityCapabilities.Observability);
70
- observability.captureUserFeedback(data.message);
71
- }
72
- })
73
- ]);
74
- export {
75
- intent_resolver_default as default
76
- };
77
- //# sourceMappingURL=intent-resolver-5SA443WX.mjs.map
@@ -1,7 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../../../src/capabilities/intent-resolver.ts"],
4
- "sourcesContent": ["//\n// Copyright 2025 DXOS.org\n//\n\nimport { Capabilities, contributes, createResolver, IntentAction, type PluginContext } from '@dxos/app-framework';\nimport { log } from '@dxos/log';\nimport { getTelemetryIdentity, storeObservabilityDisabled } from '@dxos/observability';\n\nimport { ClientCapability, ObservabilityCapabilities } from './capabilities';\nimport { type ObservabilitySettingsProps } from '../components';\nimport { OBSERVABILITY_PLUGIN } from '../meta';\nimport { ObservabilityAction } from '../types';\n\nexport default ({ context, namespace }: { context: PluginContext; namespace: string }) =>\n contributes(Capabilities.IntentResolver, [\n createResolver({\n intent: IntentAction.Track,\n resolve: (intent) => {\n log.info('intent', { intent });\n },\n }),\n createResolver({\n intent: ObservabilityAction.Toggle,\n resolve: async ({ state }) => {\n const client = context.getCapability(ClientCapability);\n const observability = context.getCapability(ObservabilityCapabilities.Observability);\n const settings = context\n .getCapability(Capabilities.SettingsStore)\n .getStore<ObservabilitySettingsProps>(OBSERVABILITY_PLUGIN)!.value;\n settings.enabled = state ?? !settings.enabled;\n observability.track({\n ...getTelemetryIdentity(client),\n action: 'observability.toggle',\n properties: {\n enabled: settings.enabled,\n },\n });\n observability.setMode(settings.enabled ? 'basic' : 'disabled');\n await storeObservabilityDisabled(namespace, !settings.enabled);\n return { data: settings.enabled };\n },\n }),\n createResolver({\n intent: ObservabilityAction.SendEvent,\n resolve: (data) => {\n const client = context.getCapability(ClientCapability);\n const properties = 'properties' in data ? data.properties : {};\n\n // NOTE: This is to ensure that events fired before observability is ready are still sent.\n // TODO(wittjosiah): If the intent dispatcher supports concurrent actions in the future,\n // then this could be awaited still rather than voiding.\n void context.waitForCapability(ObservabilityCapabilities.Observability).then((observability) => {\n observability.track({\n ...getTelemetryIdentity(client),\n action: data.name,\n properties,\n });\n });\n },\n }),\n createResolver({\n intent: ObservabilityAction.CaptureUserFeedback,\n resolve: async (data) => {\n const observability = context.getCapability(ObservabilityCapabilities.Observability);\n observability.captureUserFeedback(data.message);\n },\n }),\n ]);\n"],
5
- "mappings": ";;;;;;;;;;;;AAIA,SAASA,cAAcC,aAAaC,gBAAgBC,oBAAwC;AAC5F,SAASC,WAAW;AACpB,SAASC,sBAAsBC,kCAAkC;;AAOjE,IAAA,0BAAe,CAAC,EAAEC,SAASC,UAAS,MAClCC,YAAYC,aAAaC,gBAAgB;EACvCC,eAAe;IACbC,QAAQC,aAAaC;IACrBC,SAAS,CAACH,WAAAA;AACRI,UAAIC,KAAK,UAAU;QAAEL;MAAO,GAAA;;;;;;IAC9B;EACF,CAAA;EACAD,eAAe;IACbC,QAAQM,oBAAoBC;IAC5BJ,SAAS,OAAO,EAAEK,MAAK,MAAE;AACvB,YAAMC,SAASf,QAAQgB,cAAcC,gBAAAA;AACrC,YAAMC,gBAAgBlB,QAAQgB,cAAcG,0BAA0BC,aAAa;AACnF,YAAMC,WAAWrB,QACdgB,cAAcb,aAAamB,aAAa,EACxCC,SAAqCC,oBAAAA,EAAuBC;AAC/DJ,eAASK,UAAUZ,SAAS,CAACO,SAASK;AACtCR,oBAAcS,MAAM;QAClB,GAAGC,qBAAqBb,MAAAA;QACxBc,QAAQ;QACRC,YAAY;UACVJ,SAASL,SAASK;QACpB;MACF,CAAA;AACAR,oBAAca,QAAQV,SAASK,UAAU,UAAU,UAAA;AACnD,YAAMM,2BAA2B/B,WAAW,CAACoB,SAASK,OAAO;AAC7D,aAAO;QAAEO,MAAMZ,SAASK;MAAQ;IAClC;EACF,CAAA;EACArB,eAAe;IACbC,QAAQM,oBAAoBsB;IAC5BzB,SAAS,CAACwB,SAAAA;AACR,YAAMlB,SAASf,QAAQgB,cAAcC,gBAAAA;AACrC,YAAMa,aAAa,gBAAgBG,OAAOA,KAAKH,aAAa,CAAC;AAK7D,WAAK9B,QAAQmC,kBAAkBhB,0BAA0BC,aAAa,EAAEgB,KAAK,CAAClB,kBAAAA;AAC5EA,sBAAcS,MAAM;UAClB,GAAGC,qBAAqBb,MAAAA;UACxBc,QAAQI,KAAKI;UACbP;QACF,CAAA;MACF,CAAA;IACF;EACF,CAAA;EACAzB,eAAe;IACbC,QAAQM,oBAAoB0B;IAC5B7B,SAAS,OAAOwB,SAAAA;AACd,YAAMf,gBAAgBlB,QAAQgB,cAAcG,0BAA0BC,aAAa;AACnFF,oBAAcqB,oBAAoBN,KAAKO,OAAO;IAChD;EACF,CAAA;CACD;",
6
- "names": ["Capabilities", "contributes", "createResolver", "IntentAction", "log", "getTelemetryIdentity", "storeObservabilityDisabled", "context", "namespace", "contributes", "Capabilities", "IntentResolver", "createResolver", "intent", "IntentAction", "Track", "resolve", "log", "info", "ObservabilityAction", "Toggle", "state", "client", "getCapability", "ClientCapability", "observability", "ObservabilityCapabilities", "Observability", "settings", "SettingsStore", "getStore", "OBSERVABILITY_PLUGIN", "value", "enabled", "track", "getTelemetryIdentity", "action", "properties", "setMode", "storeObservabilityDisabled", "data", "SendEvent", "waitForCapability", "then", "name", "CaptureUserFeedback", "captureUserFeedback", "message"]
7
- }
@@ -1,32 +0,0 @@
1
- import {
2
- HelpContainer,
3
- ObservabilitySettings
4
- } from "./chunk-YVKMVVGP.mjs";
5
- import "./chunk-AL5RST75.mjs";
6
- import {
7
- OBSERVABILITY_PLUGIN
8
- } from "./chunk-57RVSKYP.mjs";
9
-
10
- // src/capabilities/react-surface.tsx
11
- import React from "react";
12
- import { contributes, Capabilities, createSurface } from "@dxos/app-framework";
13
- import { SettingsStore } from "@dxos/local-storage";
14
- var react_surface_default = () => contributes(Capabilities.ReactSurface, [
15
- createSurface({
16
- id: OBSERVABILITY_PLUGIN,
17
- role: "article",
18
- filter: (data) => data.subject instanceof SettingsStore && data.subject.prefix === OBSERVABILITY_PLUGIN,
19
- component: ({ data: { subject } }) => /* @__PURE__ */ React.createElement(ObservabilitySettings, {
20
- settings: subject.value
21
- })
22
- }),
23
- createSurface({
24
- id: `${OBSERVABILITY_PLUGIN}/help`,
25
- role: "deck-companion--help",
26
- component: () => /* @__PURE__ */ React.createElement(HelpContainer, null)
27
- })
28
- ]);
29
- export {
30
- react_surface_default as default
31
- };
32
- //# sourceMappingURL=react-surface-GQC3M7XY.mjs.map
@@ -1,7 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../../../src/capabilities/react-surface.tsx"],
4
- "sourcesContent": ["//\n// Copyright 2025 DXOS.org\n//\n\nimport React from 'react';\n\nimport { contributes, Capabilities, createSurface } from '@dxos/app-framework';\nimport { SettingsStore } from '@dxos/local-storage';\n\nimport { HelpContainer, ObservabilitySettings, type ObservabilitySettingsProps } from '../components';\nimport { OBSERVABILITY_PLUGIN } from '../meta';\n\nexport default () =>\n contributes(Capabilities.ReactSurface, [\n createSurface({\n id: OBSERVABILITY_PLUGIN,\n role: 'article',\n filter: (data): data is { subject: SettingsStore<ObservabilitySettingsProps> } =>\n data.subject instanceof SettingsStore && data.subject.prefix === OBSERVABILITY_PLUGIN,\n component: ({ data: { subject } }) => <ObservabilitySettings settings={subject.value} />,\n }),\n createSurface({\n id: `${OBSERVABILITY_PLUGIN}/help`,\n role: 'deck-companion--help',\n component: () => <HelpContainer />,\n }),\n ]);\n"],
5
- "mappings": ";;;;;;;;;;AAIA,OAAOA,WAAW;AAElB,SAASC,aAAaC,cAAcC,qBAAqB;AACzD,SAASC,qBAAqB;AAK9B,IAAA,wBAAe,MACbC,YAAYC,aAAaC,cAAc;EACrCC,cAAc;IACZC,IAAIC;IACJC,MAAM;IACNC,QAAQ,CAACC,SACPA,KAAKC,mBAAmBC,iBAAiBF,KAAKC,QAAQE,WAAWN;IACnEO,WAAW,CAAC,EAAEJ,MAAM,EAAEC,QAAO,EAAE,MAAO,sBAAA,cAACI,uBAAAA;MAAsBC,UAAUL,QAAQM;;EACjF,CAAA;EACAZ,cAAc;IACZC,IAAI,GAAGC,oBAAAA;IACPC,MAAM;IACNM,WAAW,MAAM,sBAAA,cAACI,eAAAA,IAAAA;EACpB,CAAA;CACD;",
6
- "names": ["React", "contributes", "Capabilities", "createSurface", "SettingsStore", "contributes", "Capabilities", "ReactSurface", "createSurface", "id", "OBSERVABILITY_PLUGIN", "role", "filter", "data", "subject", "SettingsStore", "prefix", "component", "ObservabilitySettings", "settings", "value", "HelpContainer"]
7
- }
@@ -1,25 +0,0 @@
1
- import {
2
- ObservabilitySettingsSchema
3
- } from "./chunk-YVKMVVGP.mjs";
4
- import "./chunk-AL5RST75.mjs";
5
- import {
6
- meta
7
- } from "./chunk-57RVSKYP.mjs";
8
-
9
- // src/capabilities/settings.ts
10
- import { Capabilities, contributes } from "@dxos/app-framework";
11
- import { live } from "@dxos/live-object";
12
- var settings_default = () => {
13
- const settings = live({
14
- enabled: true
15
- });
16
- return contributes(Capabilities.Settings, {
17
- prefix: meta.id,
18
- schema: ObservabilitySettingsSchema,
19
- value: settings
20
- });
21
- };
22
- export {
23
- settings_default as default
24
- };
25
- //# sourceMappingURL=settings-BG3S45SS.mjs.map
@@ -1,7 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../../../src/capabilities/settings.ts"],
4
- "sourcesContent": ["//\n// Copyright 2025 DXOS.org\n//\n\nimport { Capabilities, contributes } from '@dxos/app-framework';\nimport { live } from '@dxos/live-object';\n\nimport { type ObservabilitySettingsProps, ObservabilitySettingsSchema } from '../components';\nimport { meta } from '../meta';\n\nexport default () => {\n const settings = live<ObservabilitySettingsProps>({\n enabled: true,\n });\n\n return contributes(Capabilities.Settings, {\n prefix: meta.id,\n schema: ObservabilitySettingsSchema,\n value: settings,\n });\n};\n"],
5
- "mappings": ";;;;;;;;;AAIA,SAASA,cAAcC,mBAAmB;AAC1C,SAASC,YAAY;AAKrB,IAAA,mBAAe,MAAA;AACb,QAAMC,WAAWC,KAAiC;IAChDC,SAAS;EACX,CAAA;AAEA,SAAOC,YAAYC,aAAaC,UAAU;IACxCC,QAAQC,KAAKC;IACbC,QAAQC;IACRC,OAAOX;EACT,CAAA;AACF;",
6
- "names": ["Capabilities", "contributes", "live", "settings", "live", "enabled", "contributes", "Capabilities", "Settings", "prefix", "meta", "id", "schema", "ObservabilitySettingsSchema", "value"]
7
- }
@@ -1,26 +0,0 @@
1
- import {
2
- ObservabilityCapabilities
3
- } from "./chunk-UUOBAWT2.mjs";
4
- import {
5
- OBSERVABILITY_PLUGIN
6
- } from "./chunk-57RVSKYP.mjs";
7
-
8
- // src/capabilities/state.ts
9
- import { contributes } from "@dxos/app-framework";
10
- import { LocalStorageStore } from "@dxos/local-storage";
11
- import { getObservabilityGroup } from "@dxos/observability";
12
- var state_default = async ({ namespace }) => {
13
- const state = new LocalStorageStore(OBSERVABILITY_PLUGIN);
14
- state.prop({
15
- key: "notified",
16
- type: LocalStorageStore.bool({
17
- allowUndefined: true
18
- })
19
- });
20
- state.values.group = await getObservabilityGroup(namespace);
21
- return contributes(ObservabilityCapabilities.State, state.values, () => state.close());
22
- };
23
- export {
24
- state_default as default
25
- };
26
- //# sourceMappingURL=state-VIOQS2IL.mjs.map
@@ -1,7 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../../../src/capabilities/state.ts"],
4
- "sourcesContent": ["//\n// Copyright 2025 DXOS.org\n//\n\nimport { contributes } from '@dxos/app-framework';\nimport { LocalStorageStore } from '@dxos/local-storage';\nimport { getObservabilityGroup } from '@dxos/observability';\n\nimport { ObservabilityCapabilities } from './capabilities';\nimport { OBSERVABILITY_PLUGIN } from '../meta';\n\nexport default async ({ namespace }: { namespace: string }) => {\n const state = new LocalStorageStore<ObservabilityCapabilities.State>(OBSERVABILITY_PLUGIN);\n\n state.prop({ key: 'notified', type: LocalStorageStore.bool({ allowUndefined: true }) });\n\n // NOTE: This is not stored in local storage such that it can be accessed by workers.\n state.values.group = await getObservabilityGroup(namespace);\n\n return contributes(ObservabilityCapabilities.State, state.values, () => state.close());\n};\n"],
5
- "mappings": ";;;;;;;;AAIA,SAASA,mBAAmB;AAC5B,SAASC,yBAAyB;AAClC,SAASC,6BAA6B;AAKtC,IAAA,gBAAe,OAAO,EAAEC,UAAS,MAAyB;AACxD,QAAMC,QAAQ,IAAIC,kBAAmDC,oBAAAA;AAErEF,QAAMG,KAAK;IAAEC,KAAK;IAAYC,MAAMJ,kBAAkBK,KAAK;MAAEC,gBAAgB;IAAK,CAAA;EAAG,CAAA;AAGrFP,QAAMQ,OAAOC,QAAQ,MAAMC,sBAAsBX,SAAAA;AAEjD,SAAOY,YAAYC,0BAA0BC,OAAOb,MAAMQ,QAAQ,MAAMR,MAAMc,MAAK,CAAA;AACrF;",
6
- "names": ["contributes", "LocalStorageStore", "getObservabilityGroup", "namespace", "state", "LocalStorageStore", "OBSERVABILITY_PLUGIN", "prop", "key", "type", "bool", "allowUndefined", "values", "group", "getObservabilityGroup", "contributes", "ObservabilityCapabilities", "State", "close"]
7
- }
@@ -1,44 +0,0 @@
1
- import { createRequire } from 'node:module';const require = createRequire(import.meta.url);
2
- import {
3
- OBSERVABILITY_PLUGIN
4
- } from "./chunk-7XR7KMAA.mjs";
5
-
6
- // src/capabilities/app-graph-builder.ts
7
- import { Rx } from "@effect-rx/rx-react";
8
- import { Option, pipe } from "effect";
9
- import { Capabilities, contributes } from "@dxos/app-framework";
10
- import { createExtension, ROOT_ID } from "@dxos/plugin-graph";
11
- var ATTENDABLE_PATH_SEPARATOR = "~";
12
- var DECK_COMPANION_TYPE = "dxos.org/plugin/deck/deck-companion";
13
- var app_graph_builder_default = (context) => contributes(Capabilities.AppGraphBuilder, [
14
- createExtension({
15
- id: `${OBSERVABILITY_PLUGIN}/help`,
16
- connector: (node) => Rx.make((get) => pipe(get(node), Option.flatMap((node2) => node2.id === ROOT_ID ? Option.some(node2) : Option.none()), Option.map((node2) => {
17
- return [
18
- {
19
- id: [
20
- node2.id,
21
- "help"
22
- ].join(ATTENDABLE_PATH_SEPARATOR),
23
- type: DECK_COMPANION_TYPE,
24
- data: null,
25
- properties: {
26
- label: [
27
- "help label",
28
- {
29
- ns: OBSERVABILITY_PLUGIN
30
- }
31
- ],
32
- icon: "ph--question--regular",
33
- disposition: "hidden",
34
- position: "hoist"
35
- }
36
- }
37
- ];
38
- }), Option.getOrElse(() => [])))
39
- })
40
- ]);
41
- export {
42
- app_graph_builder_default as default
43
- };
44
- //# sourceMappingURL=app-graph-builder-6JT2RPVM.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
- }