@dxos/plugin-observability 0.8.4-main.70d3990 → 0.8.4-main.7996785055

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 (271) hide show
  1. package/dist/lib/browser/HelpContainer-2FYDP2J4.mjs +77 -0
  2. package/dist/lib/browser/HelpContainer-2FYDP2J4.mjs.map +7 -0
  3. package/dist/lib/browser/ObservabilitySettings-PV4ZSSDZ.mjs +13 -0
  4. package/dist/lib/browser/ObservabilitySettings-PV4ZSSDZ.mjs.map +7 -0
  5. package/dist/lib/browser/app-graph-builder-FJ7NEONF.mjs +41 -0
  6. package/dist/lib/browser/app-graph-builder-FJ7NEONF.mjs.map +7 -0
  7. package/dist/lib/browser/capture-user-feedback-52OBVQXF.mjs +24 -0
  8. package/dist/lib/browser/capture-user-feedback-52OBVQXF.mjs.map +7 -0
  9. package/dist/lib/browser/chunk-5VA3PEPS.mjs +36 -0
  10. package/dist/lib/browser/chunk-5VA3PEPS.mjs.map +7 -0
  11. package/dist/lib/browser/chunk-AQBCTSG2.mjs +110 -0
  12. package/dist/lib/browser/chunk-AQBCTSG2.mjs.map +7 -0
  13. package/dist/lib/browser/{chunk-W7QWKVS3.mjs → chunk-EZN4UVBW.mjs} +9 -2
  14. package/dist/lib/browser/chunk-EZN4UVBW.mjs.map +7 -0
  15. package/dist/lib/browser/chunk-II2Z4NW6.mjs +32 -0
  16. package/dist/lib/browser/chunk-II2Z4NW6.mjs.map +7 -0
  17. package/dist/lib/browser/chunk-JCEPLSD4.mjs +41 -0
  18. package/dist/lib/browser/chunk-JCEPLSD4.mjs.map +7 -0
  19. package/dist/lib/browser/chunk-MYIEIHOB.mjs +8 -0
  20. package/dist/lib/browser/chunk-MYIEIHOB.mjs.map +7 -0
  21. package/dist/lib/browser/chunk-P62HDKTZ.mjs +10 -0
  22. package/dist/lib/browser/chunk-P62HDKTZ.mjs.map +7 -0
  23. package/dist/lib/browser/cli/index.mjs +24 -0
  24. package/dist/lib/browser/cli/index.mjs.map +7 -0
  25. package/dist/lib/browser/client-ready-D7S65A4A.mjs +105 -0
  26. package/dist/lib/browser/client-ready-D7S65A4A.mjs.map +7 -0
  27. package/dist/lib/browser/index.mjs +79 -110
  28. package/dist/lib/browser/index.mjs.map +4 -4
  29. package/dist/lib/browser/meta.json +1 -1
  30. package/dist/lib/browser/operation-handler-BJPXGGUU.mjs +16 -0
  31. package/dist/lib/browser/operation-handler-BJPXGGUU.mjs.map +7 -0
  32. package/dist/lib/browser/operations/index.mjs +14 -0
  33. package/dist/lib/browser/operations/index.mjs.map +7 -0
  34. package/dist/lib/browser/react-surface-H2H42AZN.mjs +40 -0
  35. package/dist/lib/browser/react-surface-H2H42AZN.mjs.map +7 -0
  36. package/dist/lib/browser/send-event-VG4G6GLD.mjs +22 -0
  37. package/dist/lib/browser/send-event-VG4G6GLD.mjs.map +7 -0
  38. package/dist/lib/browser/settings-O35S3EAY.mjs +39 -0
  39. package/dist/lib/browser/settings-O35S3EAY.mjs.map +7 -0
  40. package/dist/lib/browser/state-FH4APQ7D.mjs +30 -0
  41. package/dist/lib/browser/state-FH4APQ7D.mjs.map +7 -0
  42. package/dist/lib/browser/toggle-UYNRZ7AN.mjs +48 -0
  43. package/dist/lib/browser/toggle-UYNRZ7AN.mjs.map +7 -0
  44. package/dist/lib/browser/types/index.mjs +10 -6
  45. package/dist/lib/node-esm/HelpContainer-ZBAPKRWN.mjs +78 -0
  46. package/dist/lib/node-esm/HelpContainer-ZBAPKRWN.mjs.map +7 -0
  47. package/dist/lib/node-esm/ObservabilitySettings-XXE55SI6.mjs +14 -0
  48. package/dist/lib/node-esm/ObservabilitySettings-XXE55SI6.mjs.map +7 -0
  49. package/dist/lib/node-esm/app-graph-builder-6SRZ27F3.mjs +42 -0
  50. package/dist/lib/node-esm/app-graph-builder-6SRZ27F3.mjs.map +7 -0
  51. package/dist/lib/node-esm/capture-user-feedback-KJZBMLCS.mjs +25 -0
  52. package/dist/lib/node-esm/capture-user-feedback-KJZBMLCS.mjs.map +7 -0
  53. package/dist/lib/node-esm/chunk-2FZEWT55.mjs +37 -0
  54. package/dist/lib/node-esm/chunk-2FZEWT55.mjs.map +7 -0
  55. package/dist/lib/node-esm/chunk-EV4RJG4X.mjs +10 -0
  56. package/dist/lib/node-esm/chunk-EV4RJG4X.mjs.map +7 -0
  57. package/dist/lib/node-esm/chunk-J3N65J6S.mjs +12 -0
  58. package/dist/lib/node-esm/chunk-J3N65J6S.mjs.map +7 -0
  59. package/dist/lib/node-esm/chunk-NBZXESR2.mjs +33 -0
  60. package/dist/lib/node-esm/chunk-NBZXESR2.mjs.map +7 -0
  61. package/dist/lib/node-esm/{chunk-AVJTLRX5.mjs → chunk-NRPR7RO6.mjs} +8 -2
  62. package/dist/lib/node-esm/chunk-NRPR7RO6.mjs.map +7 -0
  63. package/dist/lib/node-esm/chunk-O2FWX3U6.mjs +42 -0
  64. package/dist/lib/node-esm/chunk-O2FWX3U6.mjs.map +7 -0
  65. package/dist/lib/node-esm/chunk-PFYZRYI5.mjs +111 -0
  66. package/dist/lib/node-esm/chunk-PFYZRYI5.mjs.map +7 -0
  67. package/dist/lib/node-esm/cli/index.mjs +25 -0
  68. package/dist/lib/node-esm/cli/index.mjs.map +7 -0
  69. package/dist/lib/node-esm/client-ready-2IDY2LT7.mjs +106 -0
  70. package/dist/lib/node-esm/client-ready-2IDY2LT7.mjs.map +7 -0
  71. package/dist/lib/node-esm/index.mjs +79 -110
  72. package/dist/lib/node-esm/index.mjs.map +4 -4
  73. package/dist/lib/node-esm/meta.json +1 -1
  74. package/dist/lib/node-esm/operation-handler-UAYZDYTH.mjs +17 -0
  75. package/dist/lib/node-esm/operation-handler-UAYZDYTH.mjs.map +7 -0
  76. package/dist/lib/node-esm/operations/index.mjs +15 -0
  77. package/dist/lib/node-esm/operations/index.mjs.map +7 -0
  78. package/dist/lib/node-esm/react-surface-5SDD7GHG.mjs +41 -0
  79. package/dist/lib/node-esm/react-surface-5SDD7GHG.mjs.map +7 -0
  80. package/dist/lib/node-esm/send-event-2EOZICTS.mjs +23 -0
  81. package/dist/lib/node-esm/send-event-2EOZICTS.mjs.map +7 -0
  82. package/dist/lib/node-esm/settings-RTRZZI74.mjs +40 -0
  83. package/dist/lib/node-esm/settings-RTRZZI74.mjs.map +7 -0
  84. package/dist/lib/node-esm/state-GTAZ3K25.mjs +31 -0
  85. package/dist/lib/node-esm/state-GTAZ3K25.mjs.map +7 -0
  86. package/dist/lib/node-esm/toggle-YUPWPW6E.mjs +49 -0
  87. package/dist/lib/node-esm/toggle-YUPWPW6E.mjs.map +7 -0
  88. package/dist/lib/node-esm/types/index.mjs +10 -6
  89. package/dist/types/src/ObservabilityPlugin.d.ts +3 -2
  90. package/dist/types/src/ObservabilityPlugin.d.ts.map +1 -1
  91. package/dist/types/src/capabilities/app-graph-builder/app-graph-builder.d.ts +6 -0
  92. package/dist/types/src/capabilities/app-graph-builder/app-graph-builder.d.ts.map +1 -0
  93. package/dist/types/src/capabilities/app-graph-builder/index.d.ts +3 -0
  94. package/dist/types/src/capabilities/app-graph-builder/index.d.ts.map +1 -0
  95. package/dist/types/src/capabilities/client-ready/client-ready.d.ts +10 -0
  96. package/dist/types/src/capabilities/client-ready/client-ready.d.ts.map +1 -0
  97. package/dist/types/src/capabilities/client-ready/index.d.ts +4 -0
  98. package/dist/types/src/capabilities/client-ready/index.d.ts.map +1 -0
  99. package/dist/types/src/capabilities/index.d.ts +6 -16
  100. package/dist/types/src/capabilities/index.d.ts.map +1 -1
  101. package/dist/types/src/capabilities/operation-handler/index.d.ts +4 -0
  102. package/dist/types/src/capabilities/operation-handler/index.d.ts.map +1 -0
  103. package/dist/types/src/capabilities/operation-handler/operation-handler.d.ts +6 -0
  104. package/dist/types/src/capabilities/operation-handler/operation-handler.d.ts.map +1 -0
  105. package/dist/types/src/capabilities/react-surface/index.d.ts +3 -0
  106. package/dist/types/src/capabilities/react-surface/index.d.ts.map +1 -0
  107. package/dist/types/src/capabilities/react-surface/react-surface.d.ts +5 -0
  108. package/dist/types/src/capabilities/react-surface/react-surface.d.ts.map +1 -0
  109. package/dist/types/src/capabilities/settings/index.d.ts +7 -0
  110. package/dist/types/src/capabilities/settings/index.d.ts.map +1 -0
  111. package/dist/types/src/capabilities/settings/settings.d.ts +10 -0
  112. package/dist/types/src/capabilities/settings/settings.d.ts.map +1 -0
  113. package/dist/types/src/capabilities/state/index.d.ts +11 -0
  114. package/dist/types/src/capabilities/state/index.d.ts.map +1 -0
  115. package/dist/types/src/capabilities/state/state.d.ts +13 -0
  116. package/dist/types/src/capabilities/state/state.d.ts.map +1 -0
  117. package/dist/types/src/cli/index.d.ts +2 -0
  118. package/dist/types/src/cli/index.d.ts.map +1 -0
  119. package/dist/types/src/cli/plugin.d.ts +3 -0
  120. package/dist/types/src/cli/plugin.d.ts.map +1 -0
  121. package/dist/types/src/components/FeedbackForm/FeedbackForm.d.ts +6 -0
  122. package/dist/types/src/components/FeedbackForm/FeedbackForm.d.ts.map +1 -0
  123. package/dist/types/src/components/FeedbackForm/FeedbackForm.stories.d.ts +35 -0
  124. package/dist/types/src/components/FeedbackForm/FeedbackForm.stories.d.ts.map +1 -0
  125. package/dist/types/src/components/FeedbackForm/index.d.ts +2 -0
  126. package/dist/types/src/components/FeedbackForm/index.d.ts.map +1 -0
  127. package/dist/types/src/components/index.d.ts +0 -2
  128. package/dist/types/src/components/index.d.ts.map +1 -1
  129. package/dist/types/src/containers/HelpContainer/HelpContainer.d.ts +4 -0
  130. package/dist/types/src/containers/HelpContainer/HelpContainer.d.ts.map +1 -0
  131. package/dist/types/src/containers/HelpContainer/index.d.ts +3 -0
  132. package/dist/types/src/containers/HelpContainer/index.d.ts.map +1 -0
  133. package/dist/types/src/{components → containers/ObservabilitySettings}/ObservabilitySettings.d.ts +4 -2
  134. package/dist/types/src/containers/ObservabilitySettings/ObservabilitySettings.d.ts.map +1 -0
  135. package/dist/types/src/containers/ObservabilitySettings/index.d.ts +3 -0
  136. package/dist/types/src/containers/ObservabilitySettings/index.d.ts.map +1 -0
  137. package/dist/types/src/containers/index.d.ts +6 -0
  138. package/dist/types/src/containers/index.d.ts.map +1 -0
  139. package/dist/types/src/index.d.ts +2 -2
  140. package/dist/types/src/index.d.ts.map +1 -1
  141. package/dist/types/src/meta.d.ts +2 -2
  142. package/dist/types/src/meta.d.ts.map +1 -1
  143. package/dist/types/src/operations/capture-user-feedback.d.ts +5 -0
  144. package/dist/types/src/operations/capture-user-feedback.d.ts.map +1 -0
  145. package/dist/types/src/operations/definitions.d.ts +23 -0
  146. package/dist/types/src/operations/definitions.d.ts.map +1 -0
  147. package/dist/types/src/operations/index.d.ts +5 -0
  148. package/dist/types/src/operations/index.d.ts.map +1 -0
  149. package/dist/types/src/operations/send-event.d.ts +5 -0
  150. package/dist/types/src/operations/send-event.d.ts.map +1 -0
  151. package/dist/types/src/operations/toggle.d.ts +5 -0
  152. package/dist/types/src/operations/toggle.d.ts.map +1 -0
  153. package/dist/types/src/translations.d.ts +3 -2
  154. package/dist/types/src/translations.d.ts.map +1 -1
  155. package/dist/types/src/types/capabilities.d.ts +28 -0
  156. package/dist/types/src/types/capabilities.d.ts.map +1 -0
  157. package/dist/types/src/types/events.d.ts +6 -0
  158. package/dist/types/src/types/events.d.ts.map +1 -0
  159. package/dist/types/src/types/index.d.ts +2 -1
  160. package/dist/types/src/types/index.d.ts.map +1 -1
  161. package/dist/types/tsconfig.tsbuildinfo +1 -1
  162. package/package.json +55 -34
  163. package/src/ObservabilityPlugin.ts +48 -46
  164. package/src/capabilities/app-graph-builder/app-graph-builder.ts +40 -0
  165. package/src/capabilities/app-graph-builder/index.ts +7 -0
  166. package/src/capabilities/client-ready/client-ready.ts +85 -0
  167. package/src/capabilities/client-ready/index.ts +9 -0
  168. package/src/capabilities/index.ts +6 -10
  169. package/src/capabilities/operation-handler/index.ts +11 -0
  170. package/src/capabilities/operation-handler/operation-handler.ts +16 -0
  171. package/src/capabilities/react-surface/index.ts +7 -0
  172. package/src/capabilities/react-surface/react-surface.tsx +35 -0
  173. package/src/capabilities/settings/index.ts +7 -0
  174. package/src/capabilities/settings/settings.ts +34 -0
  175. package/src/capabilities/state/index.ts +7 -0
  176. package/src/capabilities/state/state.ts +29 -0
  177. package/src/cli/index.ts +5 -0
  178. package/src/cli/plugin.ts +31 -0
  179. package/src/components/FeedbackForm/FeedbackForm.stories.tsx +33 -0
  180. package/src/components/FeedbackForm/FeedbackForm.tsx +33 -0
  181. package/src/components/FeedbackForm/index.ts +5 -0
  182. package/src/components/index.ts +0 -2
  183. package/src/containers/HelpContainer/HelpContainer.tsx +56 -0
  184. package/src/containers/HelpContainer/index.ts +7 -0
  185. package/src/containers/ObservabilitySettings/ObservabilitySettings.tsx +53 -0
  186. package/src/containers/ObservabilitySettings/index.ts +11 -0
  187. package/src/containers/index.ts +11 -0
  188. package/src/index.ts +2 -2
  189. package/src/meta.ts +3 -3
  190. package/src/operations/capture-user-feedback.ts +23 -0
  191. package/src/operations/definitions.ts +76 -0
  192. package/src/operations/index.ts +14 -0
  193. package/src/operations/send-event.ts +25 -0
  194. package/src/operations/toggle.ts +48 -0
  195. package/src/translations.ts +3 -3
  196. package/src/types/capabilities.ts +36 -0
  197. package/src/types/events.ts +15 -0
  198. package/src/types/index.ts +2 -1
  199. package/dist/lib/browser/app-graph-builder-3I6HZ5AR.mjs +0 -44
  200. package/dist/lib/browser/app-graph-builder-3I6HZ5AR.mjs.map +0 -7
  201. package/dist/lib/browser/chunk-EC7HTFA5.mjs +0 -18
  202. package/dist/lib/browser/chunk-EC7HTFA5.mjs.map +0 -7
  203. package/dist/lib/browser/chunk-I32JO7N6.mjs +0 -191
  204. package/dist/lib/browser/chunk-I32JO7N6.mjs.map +0 -7
  205. package/dist/lib/browser/chunk-W7QWKVS3.mjs.map +0 -7
  206. package/dist/lib/browser/chunk-ZPNE2QLZ.mjs +0 -181
  207. package/dist/lib/browser/chunk-ZPNE2QLZ.mjs.map +0 -7
  208. package/dist/lib/browser/client-ready-SGUJYKFO.mjs +0 -102
  209. package/dist/lib/browser/client-ready-SGUJYKFO.mjs.map +0 -7
  210. package/dist/lib/browser/intent-resolver-7AS3LQUD.mjs +0 -77
  211. package/dist/lib/browser/intent-resolver-7AS3LQUD.mjs.map +0 -7
  212. package/dist/lib/browser/react-surface-D7OCQATN.mjs +0 -32
  213. package/dist/lib/browser/react-surface-D7OCQATN.mjs.map +0 -7
  214. package/dist/lib/browser/settings-ILBB3GCR.mjs +0 -25
  215. package/dist/lib/browser/settings-ILBB3GCR.mjs.map +0 -7
  216. package/dist/lib/browser/state-FJD6K3ZZ.mjs +0 -26
  217. package/dist/lib/browser/state-FJD6K3ZZ.mjs.map +0 -7
  218. package/dist/lib/node-esm/app-graph-builder-KH2GA6G7.mjs +0 -45
  219. package/dist/lib/node-esm/app-graph-builder-KH2GA6G7.mjs.map +0 -7
  220. package/dist/lib/node-esm/chunk-AVJTLRX5.mjs.map +0 -7
  221. package/dist/lib/node-esm/chunk-HACSZKXD.mjs +0 -19
  222. package/dist/lib/node-esm/chunk-HACSZKXD.mjs.map +0 -7
  223. package/dist/lib/node-esm/chunk-HDEVP6Z4.mjs +0 -182
  224. package/dist/lib/node-esm/chunk-HDEVP6Z4.mjs.map +0 -7
  225. package/dist/lib/node-esm/chunk-JA6DTCPS.mjs +0 -192
  226. package/dist/lib/node-esm/chunk-JA6DTCPS.mjs.map +0 -7
  227. package/dist/lib/node-esm/client-ready-AQWXCEF7.mjs +0 -103
  228. package/dist/lib/node-esm/client-ready-AQWXCEF7.mjs.map +0 -7
  229. package/dist/lib/node-esm/intent-resolver-JI4234E7.mjs +0 -78
  230. package/dist/lib/node-esm/intent-resolver-JI4234E7.mjs.map +0 -7
  231. package/dist/lib/node-esm/react-surface-KRRSSVTP.mjs +0 -33
  232. package/dist/lib/node-esm/react-surface-KRRSSVTP.mjs.map +0 -7
  233. package/dist/lib/node-esm/settings-LRA7DFLS.mjs +0 -26
  234. package/dist/lib/node-esm/settings-LRA7DFLS.mjs.map +0 -7
  235. package/dist/lib/node-esm/state-XNBMNLB7.mjs +0 -27
  236. package/dist/lib/node-esm/state-XNBMNLB7.mjs.map +0 -7
  237. package/dist/types/src/capabilities/app-graph-builder.d.ts +0 -4
  238. package/dist/types/src/capabilities/app-graph-builder.d.ts.map +0 -1
  239. package/dist/types/src/capabilities/capabilities.d.ts +0 -12
  240. package/dist/types/src/capabilities/capabilities.d.ts.map +0 -1
  241. package/dist/types/src/capabilities/client-ready.d.ts +0 -10
  242. package/dist/types/src/capabilities/client-ready.d.ts.map +0 -1
  243. package/dist/types/src/capabilities/intent-resolver.d.ts +0 -7
  244. package/dist/types/src/capabilities/intent-resolver.d.ts.map +0 -1
  245. package/dist/types/src/capabilities/react-surface.d.ts +0 -4
  246. package/dist/types/src/capabilities/react-surface.d.ts.map +0 -1
  247. package/dist/types/src/capabilities/settings.d.ts +0 -4
  248. package/dist/types/src/capabilities/settings.d.ts.map +0 -1
  249. package/dist/types/src/capabilities/state.d.ts +0 -6
  250. package/dist/types/src/capabilities/state.d.ts.map +0 -1
  251. package/dist/types/src/components/FeedbackForm.d.ts +0 -6
  252. package/dist/types/src/components/FeedbackForm.d.ts.map +0 -1
  253. package/dist/types/src/components/HelpContainer.d.ts +0 -3
  254. package/dist/types/src/components/HelpContainer.d.ts.map +0 -1
  255. package/dist/types/src/components/ObservabilitySettings.d.ts.map +0 -1
  256. package/dist/types/src/events.d.ts +0 -5
  257. package/dist/types/src/events.d.ts.map +0 -1
  258. package/dist/types/src/types/schema.d.ts +0 -313
  259. package/dist/types/src/types/schema.d.ts.map +0 -1
  260. package/src/capabilities/app-graph-builder.ts +0 -47
  261. package/src/capabilities/capabilities.ts +0 -23
  262. package/src/capabilities/client-ready.ts +0 -98
  263. package/src/capabilities/intent-resolver.ts +0 -69
  264. package/src/capabilities/react-surface.tsx +0 -27
  265. package/src/capabilities/settings.ts +0 -21
  266. package/src/capabilities/state.ts +0 -22
  267. package/src/components/FeedbackForm.tsx +0 -82
  268. package/src/components/HelpContainer.tsx +0 -42
  269. package/src/components/ObservabilitySettings.tsx +0 -49
  270. package/src/events.ts +0 -14
  271. package/src/types/schema.ts +0 -216
@@ -0,0 +1,33 @@
1
+ import { createRequire } from 'node:module';const require = createRequire(import.meta.url);
2
+ import {
3
+ UserFeedback
4
+ } from "./chunk-PFYZRYI5.mjs";
5
+ import {
6
+ meta
7
+ } from "./chunk-NRPR7RO6.mjs";
8
+
9
+ // src/components/FeedbackForm/FeedbackForm.tsx
10
+ import React from "react";
11
+ import { useTranslation } from "@dxos/react-ui";
12
+ import { Form } from "@dxos/react-ui-form";
13
+ var defaultValues = {
14
+ message: "",
15
+ includeLogs: true
16
+ };
17
+ var FeedbackForm = ({ onSave, disabled }) => {
18
+ const { t } = useTranslation(meta.id);
19
+ return /* @__PURE__ */ React.createElement(Form.Root, {
20
+ schema: UserFeedback,
21
+ defaultValues,
22
+ onSave
23
+ }, /* @__PURE__ */ React.createElement(Form.Viewport, null, /* @__PURE__ */ React.createElement(Form.Content, null, /* @__PURE__ */ React.createElement(Form.FieldSet, null), /* @__PURE__ */ React.createElement(Form.Submit, {
24
+ icon: "ph--paper-plane-tilt--regular",
25
+ label: t("send feedback label"),
26
+ disabled
27
+ }))));
28
+ };
29
+
30
+ export {
31
+ FeedbackForm
32
+ };
33
+ //# sourceMappingURL=chunk-NBZXESR2.mjs.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../src/components/FeedbackForm/FeedbackForm.tsx"],
4
+ "sourcesContent": ["//\n// Copyright 2024 DXOS.org\n//\n\nimport React from 'react';\n\nimport { useTranslation } from '@dxos/react-ui';\nimport { Form, type FormRootProps, type FormSubmitProps } from '@dxos/react-ui-form';\n\nimport { meta } from '../../meta';\nimport { UserFeedback } from '../../operations';\n\nexport type FeedbackFormProps = Pick<FormRootProps<UserFeedback>, 'onSave'> & Pick<FormSubmitProps, 'disabled'>;\n\nconst defaultValues: UserFeedback = {\n message: '',\n includeLogs: true,\n};\n\nexport const FeedbackForm = ({ onSave, disabled }: FeedbackFormProps) => {\n const { t } = useTranslation(meta.id);\n\n return (\n <Form.Root schema={UserFeedback} defaultValues={defaultValues} onSave={onSave}>\n <Form.Viewport>\n <Form.Content>\n <Form.FieldSet />\n <Form.Submit icon='ph--paper-plane-tilt--regular' label={t('send feedback label')} disabled={disabled} />\n </Form.Content>\n </Form.Viewport>\n </Form.Root>\n );\n};\n"],
5
+ "mappings": ";;;;;;;;;AAIA,OAAOA,WAAW;AAElB,SAASC,sBAAsB;AAC/B,SAASC,YAAsD;AAO/D,IAAMC,gBAA8B;EAClCC,SAAS;EACTC,aAAa;AACf;AAEO,IAAMC,eAAe,CAAC,EAAEC,QAAQC,SAAQ,MAAqB;AAClE,QAAM,EAAEC,EAAC,IAAKC,eAAeC,KAAKC,EAAE;AAEpC,SACE,sBAAA,cAACC,KAAKC,MAAI;IAACC,QAAQC;IAAcb;IAA8BI;KAC7D,sBAAA,cAACM,KAAKI,UAAQ,MACZ,sBAAA,cAACJ,KAAKK,SAAO,MACX,sBAAA,cAACL,KAAKM,UAAQ,IAAA,GACd,sBAAA,cAACN,KAAKO,QAAM;IAACC,MAAK;IAAgCC,OAAOb,EAAE,qBAAA;IAAwBD;;AAK7F;",
6
+ "names": ["React", "useTranslation", "Form", "defaultValues", "message", "includeLogs", "FeedbackForm", "onSave", "disabled", "t", "useTranslation", "meta", "id", "Form", "Root", "schema", "UserFeedback", "Viewport", "Content", "FieldSet", "Submit", "icon", "label"]
7
+ }
@@ -1,9 +1,14 @@
1
1
  import { createRequire } from 'node:module';const require = createRequire(import.meta.url);
2
+ var __defProp = Object.defineProperty;
3
+ var __export = (target, all) => {
4
+ for (var name in all)
5
+ __defProp(target, name, { get: all[name], enumerable: true });
6
+ };
2
7
 
3
8
  // src/meta.ts
4
9
  import { trim } from "@dxos/util";
5
10
  var meta = {
6
- id: "dxos.org/plugin/observability",
11
+ id: "org.dxos.plugin.observability",
7
12
  name: "Telemetry",
8
13
  description: trim`
9
14
  Application observability and telemetry collection for monitoring performance and usage patterns.
@@ -13,6 +18,7 @@ var meta = {
13
18
  };
14
19
 
15
20
  export {
21
+ __export,
16
22
  meta
17
23
  };
18
- //# sourceMappingURL=chunk-AVJTLRX5.mjs.map
24
+ //# sourceMappingURL=chunk-NRPR7RO6.mjs.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../src/meta.ts"],
4
+ "sourcesContent": ["//\n// Copyright 2023 DXOS.org\n//\n\nimport { type Plugin } from '@dxos/app-framework';\nimport { trim } from '@dxos/util';\n\nexport const meta: Plugin.Meta = {\n id: 'org.dxos.plugin.observability',\n name: 'Telemetry',\n description: trim`\n Application observability and telemetry collection for monitoring performance and usage patterns.\n Track metrics, logs, and traces for system health and analytics.\n `,\n icon: 'ph--eye--regular',\n};\n"],
5
+ "mappings": ";;;;;;;;AAKA,SAASA,YAAY;AAEd,IAAMC,OAAoB;EAC/BC,IAAI;EACJC,MAAM;EACNC,aAAaC;;;;EAIbC,MAAM;AACR;",
6
+ "names": ["trim", "meta", "id", "name", "description", "trim", "icon"]
7
+ }
@@ -0,0 +1,42 @@
1
+ import { createRequire } from 'node:module';const require = createRequire(import.meta.url);
2
+ import {
3
+ definitions_exports
4
+ } from "./chunk-PFYZRYI5.mjs";
5
+ import {
6
+ meta
7
+ } from "./chunk-NRPR7RO6.mjs";
8
+
9
+ // src/containers/ObservabilitySettings/ObservabilitySettings.tsx
10
+ import * as Schema from "effect/Schema";
11
+ import React from "react";
12
+ import { useOperationInvoker } from "@dxos/app-framework/ui";
13
+ import { Input, Message, useTranslation } from "@dxos/react-ui";
14
+ import { Settings } from "@dxos/react-ui-form";
15
+ var ObservabilitySettingsSchema = Schema.mutable(Schema.Struct({
16
+ enabled: Schema.Boolean
17
+ }));
18
+ var ObservabilitySettings = ({ settings }) => {
19
+ const { t } = useTranslation(meta.id);
20
+ const { invokePromise } = useOperationInvoker();
21
+ return /* @__PURE__ */ React.createElement(Settings.Root, null, /* @__PURE__ */ React.createElement(Settings.Section, {
22
+ title: t("settings title", {
23
+ ns: meta.id
24
+ })
25
+ }, /* @__PURE__ */ React.createElement(Message.Root, {
26
+ valence: "info",
27
+ classNames: " mb-form-padding"
28
+ }, /* @__PURE__ */ React.createElement(Message.Content, null, t("observability description"))), /* @__PURE__ */ React.createElement(Settings.Group, null, /* @__PURE__ */ React.createElement(Settings.ItemInput, {
29
+ title: t("observability enabled label")
30
+ }, /* @__PURE__ */ React.createElement(Input.Switch, {
31
+ checked: settings.enabled,
32
+ onCheckedChange: (checked) => invokePromise(definitions_exports.Toggle, {
33
+ state: !!checked
34
+ })
35
+ })))));
36
+ };
37
+
38
+ export {
39
+ ObservabilitySettingsSchema,
40
+ ObservabilitySettings
41
+ };
42
+ //# sourceMappingURL=chunk-O2FWX3U6.mjs.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../src/containers/ObservabilitySettings/ObservabilitySettings.tsx"],
4
+ "sourcesContent": ["//\n// Copyright 2023 DXOS.org\n//\n\nimport * as Schema from 'effect/Schema';\nimport React from 'react';\n\nimport { useOperationInvoker } from '@dxos/app-framework/ui';\nimport { Input, Message, useTranslation } from '@dxos/react-ui';\nimport { Settings } from '@dxos/react-ui-form';\n\nimport { meta } from '../../meta';\nimport { ObservabilityOperation } from '../../operations';\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 type ObservabilitySettingsComponentProps = {\n settings: ObservabilitySettingsProps;\n onSettingsChange: (fn: (current: ObservabilitySettingsProps) => ObservabilitySettingsProps) => void;\n};\n\nexport const ObservabilitySettings = ({ settings }: ObservabilitySettingsComponentProps) => {\n const { t } = useTranslation(meta.id);\n const { invokePromise } = useOperationInvoker();\n\n return (\n <Settings.Root>\n <Settings.Section title={t('settings title', { ns: meta.id })}>\n <Message.Root valence='info' classNames=' mb-form-padding'>\n <Message.Content>{t('observability description')}</Message.Content>\n </Message.Root>\n <Settings.Group>\n <Settings.ItemInput title={t('observability enabled label')}>\n <Input.Switch\n checked={settings.enabled}\n onCheckedChange={(checked) => invokePromise(ObservabilityOperation.Toggle, { state: !!checked })}\n />\n </Settings.ItemInput>\n </Settings.Group>\n </Settings.Section>\n </Settings.Root>\n );\n};\n"],
5
+ "mappings": ";;;;;;;;;AAIA,YAAYA,YAAY;AACxB,OAAOC,WAAW;AAElB,SAASC,2BAA2B;AACpC,SAASC,OAAOC,SAASC,sBAAsB;AAC/C,SAASC,gBAAgB;AAKlB,IAAMC,8BAAqCC,eACzCC,cAAO;EACZC,SAAgBC;AAKlB,CAAA,CAAA;AAUK,IAAMC,wBAAwB,CAAC,EAAEC,SAAQ,MAAuC;AACrF,QAAM,EAAEC,EAAC,IAAKC,eAAeC,KAAKC,EAAE;AACpC,QAAM,EAAEC,cAAa,IAAKC,oBAAAA;AAE1B,SACE,sBAAA,cAACC,SAASC,MAAI,MACZ,sBAAA,cAACD,SAASE,SAAO;IAACC,OAAOT,EAAE,kBAAkB;MAAEU,IAAIR,KAAKC;IAAG,CAAA;KACzD,sBAAA,cAACQ,QAAQJ,MAAI;IAACK,SAAQ;IAAOC,YAAW;KACtC,sBAAA,cAACF,QAAQG,SAAO,MAAEd,EAAE,2BAAA,CAAA,CAAA,GAEtB,sBAAA,cAACM,SAASS,OAAK,MACb,sBAAA,cAACT,SAASU,WAAS;IAACP,OAAOT,EAAE,6BAAA;KAC3B,sBAAA,cAACiB,MAAMC,QAAM;IACXC,SAASpB,SAASH;IAClBwB,iBAAiB,CAACD,YAAYf,cAAciB,oBAAuBC,QAAQ;MAAEC,OAAO,CAAC,CAACJ;IAAQ,CAAA;;AAO5G;",
6
+ "names": ["Schema", "React", "useOperationInvoker", "Input", "Message", "useTranslation", "Settings", "ObservabilitySettingsSchema", "mutable", "Struct", "enabled", "Boolean", "ObservabilitySettings", "settings", "t", "useTranslation", "meta", "id", "invokePromise", "useOperationInvoker", "Settings", "Root", "Section", "title", "ns", "Message", "valence", "classNames", "Content", "Group", "ItemInput", "Input", "Switch", "checked", "onCheckedChange", "ObservabilityOperation", "Toggle", "state"]
7
+ }
@@ -0,0 +1,111 @@
1
+ import { createRequire } from 'node:module';const require = createRequire(import.meta.url);
2
+ import {
3
+ __export,
4
+ meta
5
+ } from "./chunk-NRPR7RO6.mjs";
6
+
7
+ // src/translations.ts
8
+ var translations = [
9
+ {
10
+ "en-US": {
11
+ [meta.id]: {
12
+ "plugin name": "Telemetry",
13
+ "settings title": "Telemetry settings",
14
+ "observability toast label": "Privacy Notice",
15
+ "observability toast description": "Composer collects usage and performance metrics to improve the product. No user data is collected.",
16
+ "observability toast action label": "Settings",
17
+ "observability toast action alt": "Open settings to learn more or to disable.",
18
+ "observability toast close label": "Okay",
19
+ "observability enabled label": "Enable telemetry",
20
+ // TODO: Add link about telemetry privacy. Make it clearer that user data is not collected.
21
+ "observability description": "When enabled, basic usage data will used to improve the product. This may include performance metrics, error logs, and usage data. No personally identifiable information, other than your public key, is included with this data and no private data ever leaves your devices.",
22
+ "help label": "Feedback & Support",
23
+ "feedback textarea label": "Feedback",
24
+ "feedback textarea placeholder": "Please enter your feedback, technical issue, or feature request.",
25
+ "include debug logs label": "Include debug logs",
26
+ "send feedback label": "Send Feedback",
27
+ "feedback toast label": "Thank you for your feedback!",
28
+ "feedback toast description": "We will review your feedback and get back to you as soon as possible."
29
+ }
30
+ }
31
+ }
32
+ ];
33
+
34
+ // src/operations/definitions.ts
35
+ var definitions_exports = {};
36
+ __export(definitions_exports, {
37
+ CaptureUserFeedback: () => CaptureUserFeedback,
38
+ SendEvent: () => SendEvent,
39
+ Toggle: () => Toggle,
40
+ UserFeedback: () => UserFeedback
41
+ });
42
+ import * as Schema from "effect/Schema";
43
+ import { Capability } from "@dxos/app-framework";
44
+ import { Format } from "@dxos/echo";
45
+ import { Operation } from "@dxos/operation";
46
+ var t = translations[0]["en-US"][meta.id];
47
+ var UserFeedback = Schema.Struct({
48
+ message: Format.Text.pipe(Schema.nonEmptyString(), Schema.maxLength(4096), Schema.annotations({
49
+ title: t["feedback textarea label"],
50
+ description: t["feedback textarea placeholder"]
51
+ })),
52
+ includeLogs: Schema.Boolean.pipe(Schema.annotations({
53
+ title: t["include debug logs label"]
54
+ }), Schema.optional)
55
+ });
56
+ var OBSERVABILITY_OPERATION = `${meta.id}.operation`;
57
+ var Toggle = Operation.make({
58
+ meta: {
59
+ key: `${OBSERVABILITY_OPERATION}.toggle`,
60
+ name: "Toggle Observability",
61
+ description: "Toggle observability on or off."
62
+ },
63
+ services: [
64
+ Capability.Service
65
+ ],
66
+ input: Schema.Struct({
67
+ state: Schema.optional(Schema.Boolean)
68
+ }),
69
+ output: Schema.Boolean
70
+ });
71
+ var CaptureUserFeedback = Operation.make({
72
+ meta: {
73
+ key: `${OBSERVABILITY_OPERATION}.capture-feedback`,
74
+ name: "Capture User Feedback",
75
+ description: "Capture user feedback."
76
+ },
77
+ services: [
78
+ Capability.Service
79
+ ],
80
+ input: UserFeedback,
81
+ output: Schema.Void
82
+ });
83
+ var SendEvent = Operation.make({
84
+ meta: {
85
+ key: `${OBSERVABILITY_OPERATION}.send-event`,
86
+ name: "Send Event",
87
+ description: "Send an observability event."
88
+ },
89
+ services: [
90
+ Capability.Service
91
+ ],
92
+ input: Schema.Struct({
93
+ name: Schema.String.annotations({
94
+ description: "The name of the event."
95
+ }),
96
+ properties: Schema.optional(Schema.Any).annotations({
97
+ description: "Event properties."
98
+ })
99
+ }),
100
+ output: Schema.Void
101
+ });
102
+
103
+ export {
104
+ translations,
105
+ UserFeedback,
106
+ Toggle,
107
+ CaptureUserFeedback,
108
+ SendEvent,
109
+ definitions_exports
110
+ };
111
+ //# sourceMappingURL=chunk-PFYZRYI5.mjs.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../src/translations.ts", "../../../src/operations/definitions.ts"],
4
+ "sourcesContent": ["//\n// Copyright 2023 DXOS.org\n//\n\nimport { type Resource } from '@dxos/react-ui';\n\nimport { meta } from './meta';\n\nexport const translations = [\n {\n 'en-US': {\n [meta.id]: {\n 'plugin name': 'Telemetry',\n 'settings title': 'Telemetry settings',\n 'observability toast label': 'Privacy Notice',\n 'observability toast description':\n 'Composer collects usage and performance metrics to improve the product. No user data is collected.',\n 'observability toast action label': 'Settings',\n 'observability toast action alt': 'Open settings to learn more or to disable.',\n 'observability toast close label': 'Okay',\n 'observability enabled label': 'Enable telemetry',\n // TODO: Add link about telemetry privacy. Make it clearer that user data is not collected.\n 'observability description':\n 'When enabled, basic usage data will used to improve the product. This may include performance metrics, error logs, and usage data. No personally identifiable information, other than your public key, is included with this data and no private data ever leaves your devices.',\n 'help label': 'Feedback & Support',\n 'feedback textarea label': 'Feedback',\n 'feedback textarea placeholder': 'Please enter your feedback, technical issue, or feature request.',\n 'include debug logs label': 'Include debug logs',\n 'send feedback label': 'Send Feedback',\n 'feedback toast label': 'Thank you for your feedback!',\n 'feedback toast description': 'We will review your feedback and get back to you as soon as possible.',\n },\n },\n },\n] as const satisfies Resource[];\n", "//\n// Copyright 2025 DXOS.org\n//\n\nimport * as Schema from 'effect/Schema';\n\nimport { Capability } from '@dxos/app-framework';\nimport { Format } from '@dxos/echo';\nimport { Operation } from '@dxos/operation';\n\nimport { meta } from '../meta';\nimport { translations } from '../translations';\n\nconst t = translations[0]['en-US'][meta.id];\n\nexport const UserFeedback = Schema.Struct({\n message: Format.Text.pipe(\n Schema.nonEmptyString(),\n Schema.maxLength(4_096),\n Schema.annotations({\n title: t['feedback textarea label'],\n description: t['feedback textarea placeholder'],\n }),\n ),\n includeLogs: Schema.Boolean.pipe(\n Schema.annotations({\n title: t['include debug logs label'],\n }),\n Schema.optional,\n ),\n});\n\nexport type UserFeedback = Schema.Schema.Type<typeof UserFeedback>;\n\nconst OBSERVABILITY_OPERATION = `${meta.id}.operation`;\n\n/**\n * Operations for the Observability plugin.\n */\nexport const Toggle = Operation.make({\n meta: {\n key: `${OBSERVABILITY_OPERATION}.toggle`,\n name: 'Toggle Observability',\n description: 'Toggle observability on or off.',\n },\n services: [Capability.Service],\n input: Schema.Struct({\n state: Schema.optional(Schema.Boolean),\n }),\n output: Schema.Boolean,\n});\n\nexport const CaptureUserFeedback = Operation.make({\n meta: {\n key: `${OBSERVABILITY_OPERATION}.capture-feedback`,\n name: 'Capture User Feedback',\n description: 'Capture user feedback.',\n },\n services: [Capability.Service],\n input: UserFeedback,\n output: Schema.Void,\n});\n\nexport const SendEvent = Operation.make({\n meta: {\n key: `${OBSERVABILITY_OPERATION}.send-event`,\n name: 'Send Event',\n description: 'Send an observability event.',\n },\n services: [Capability.Service],\n input: Schema.Struct({\n name: Schema.String.annotations({ description: 'The name of the event.' }),\n properties: Schema.optional(Schema.Any).annotations({ description: 'Event properties.' }),\n }),\n output: Schema.Void,\n});\n"],
5
+ "mappings": ";;;;;;;AAQO,IAAMA,eAAe;EAC1B;IACE,SAAS;MACP,CAACC,KAAKC,EAAE,GAAG;QACT,eAAe;QACf,kBAAkB;QAClB,6BAA6B;QAC7B,mCACE;QACF,oCAAoC;QACpC,kCAAkC;QAClC,mCAAmC;QACnC,+BAA+B;;QAE/B,6BACE;QACF,cAAc;QACd,2BAA2B;QAC3B,iCAAiC;QACjC,4BAA4B;QAC5B,uBAAuB;QACvB,wBAAwB;QACxB,8BAA8B;MAChC;IACF;EACF;;;;ACjCF;;;;;;;AAIA,YAAYC,YAAY;AAExB,SAASC,kBAAkB;AAC3B,SAASC,cAAc;AACvB,SAASC,iBAAiB;AAK1B,IAAMC,IAAIC,aAAa,CAAA,EAAG,OAAA,EAASC,KAAKC,EAAE;AAEnC,IAAMC,eAAsBC,cAAO;EACxCC,SAASC,OAAOC,KAAKC,KACZC,sBAAc,GACdC,iBAAU,IAAA,GACVC,mBAAY;IACjBC,OAAOb,EAAE,yBAAA;IACTc,aAAad,EAAE,+BAAA;EACjB,CAAA,CAAA;EAEFe,aAAoBC,eAAQP,KACnBG,mBAAY;IACjBC,OAAOb,EAAE,0BAAA;EACX,CAAA,GACOiB,eAAQ;AAEnB,CAAA;AAIA,IAAMC,0BAA0B,GAAGhB,KAAKC,EAAE;AAKnC,IAAMgB,SAASC,UAAUC,KAAK;EACnCnB,MAAM;IACJoB,KAAK,GAAGJ,uBAAAA;IACRK,MAAM;IACNT,aAAa;EACf;EACAU,UAAU;IAACC,WAAWC;;EACtBC,OAActB,cAAO;IACnBuB,OAAcX,gBAAgBD,cAAO;EACvC,CAAA;EACAa,QAAeb;AACjB,CAAA;AAEO,IAAMc,sBAAsBV,UAAUC,KAAK;EAChDnB,MAAM;IACJoB,KAAK,GAAGJ,uBAAAA;IACRK,MAAM;IACNT,aAAa;EACf;EACAU,UAAU;IAACC,WAAWC;;EACtBC,OAAOvB;EACPyB,QAAeE;AACjB,CAAA;AAEO,IAAMC,YAAYZ,UAAUC,KAAK;EACtCnB,MAAM;IACJoB,KAAK,GAAGJ,uBAAAA;IACRK,MAAM;IACNT,aAAa;EACf;EACAU,UAAU;IAACC,WAAWC;;EACtBC,OAActB,cAAO;IACnBkB,MAAaU,cAAOrB,YAAY;MAAEE,aAAa;IAAyB,CAAA;IACxEoB,YAAmBjB,gBAAgBkB,UAAG,EAAEvB,YAAY;MAAEE,aAAa;IAAoB,CAAA;EACzF,CAAA;EACAe,QAAeE;AACjB,CAAA;",
6
+ "names": ["translations", "meta", "id", "Schema", "Capability", "Format", "Operation", "t", "translations", "meta", "id", "UserFeedback", "Struct", "message", "Format", "Text", "pipe", "nonEmptyString", "maxLength", "annotations", "title", "description", "includeLogs", "Boolean", "optional", "OBSERVABILITY_OPERATION", "Toggle", "Operation", "make", "key", "name", "services", "Capability", "Service", "input", "state", "output", "CaptureUserFeedback", "Void", "SendEvent", "String", "properties", "Any"]
7
+ }
@@ -0,0 +1,25 @@
1
+ import { createRequire } from 'node:module';const require = createRequire(import.meta.url);
2
+ import "../chunk-EV4RJG4X.mjs";
3
+ import {
4
+ definitions_exports
5
+ } from "../chunk-PFYZRYI5.mjs";
6
+ import {
7
+ meta
8
+ } from "../chunk-NRPR7RO6.mjs";
9
+
10
+ // src/cli/plugin.ts
11
+ import * as Effect from "effect/Effect";
12
+ import { Capabilities, Capability, Plugin } from "@dxos/app-framework";
13
+ import { AppPlugin } from "@dxos/app-toolkit";
14
+ import { Operation, OperationHandlerSet } from "@dxos/operation";
15
+ var ObservabilityPlugin = Plugin.define(meta).pipe(AppPlugin.addOperationHandlerModule({
16
+ activate: Capability.lazy("OperationHandler", () => Promise.resolve({
17
+ default: Capability.makeModule(Effect.fnUntraced(function* () {
18
+ return Capability.contributes(Capabilities.OperationHandler, OperationHandlerSet.make(Operation.withHandler(definitions_exports.SendEvent, () => Effect.void)));
19
+ }))
20
+ }))
21
+ }), Plugin.make);
22
+ export {
23
+ ObservabilityPlugin
24
+ };
25
+ //# sourceMappingURL=index.mjs.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../../src/cli/plugin.ts"],
4
+ "sourcesContent": ["//\n// Copyright 2025 DXOS.org\n//\n\nimport * as Effect from 'effect/Effect';\n\nimport { Capabilities, Capability, Plugin } from '@dxos/app-framework';\nimport { AppPlugin } from '@dxos/app-toolkit';\nimport { Operation, OperationHandlerSet } from '@dxos/operation';\n\nimport { meta } from '../meta';\nimport { ObservabilityOperation } from '../operations';\n\n// TODO(wittjosiah): Hook up.\nexport const ObservabilityPlugin = Plugin.define(meta).pipe(\n AppPlugin.addOperationHandlerModule({\n activate: Capability.lazy<OperationHandlerSet.OperationHandlerSet>('OperationHandler', () =>\n Promise.resolve({\n default: Capability.makeModule<OperationHandlerSet.OperationHandlerSet>(\n Effect.fnUntraced(function* () {\n return Capability.contributes(\n Capabilities.OperationHandler,\n OperationHandlerSet.make(Operation.withHandler(ObservabilityOperation.SendEvent, () => Effect.void)),\n );\n }),\n ),\n }),\n ),\n }),\n Plugin.make,\n);\n"],
5
+ "mappings": ";;;;;;;;;;AAIA,YAAYA,YAAY;AAExB,SAASC,cAAcC,YAAYC,cAAc;AACjD,SAASC,iBAAiB;AAC1B,SAASC,WAAWC,2BAA2B;AAMxC,IAAMC,sBAAsBC,OAAOC,OAAOC,IAAAA,EAAMC,KACrDC,UAAUC,0BAA0B;EAClCC,UAAUC,WAAWC,KAA8C,oBAAoB,MACrFC,QAAQC,QAAQ;IACdC,SAASJ,WAAWK,WACXC,kBAAW,aAAA;AAChB,aAAON,WAAWO,YAChBC,aAAaC,kBACbC,oBAAoBC,KAAKC,UAAUC,YAAYC,oBAAuBC,WAAW,MAAaC,WAAI,CAAA,CAAA;IAEtG,CAAA,CAAA;EAEJ,CAAA,CAAA;AAEJ,CAAA,GACAvB,OAAOkB,IAAI;",
6
+ "names": ["Effect", "Capabilities", "Capability", "Plugin", "AppPlugin", "Operation", "OperationHandlerSet", "ObservabilityPlugin", "Plugin", "define", "meta", "pipe", "AppPlugin", "addOperationHandlerModule", "activate", "Capability", "lazy", "Promise", "resolve", "default", "makeModule", "fnUntraced", "contributes", "Capabilities", "OperationHandler", "OperationHandlerSet", "make", "Operation", "withHandler", "ObservabilityOperation", "SendEvent", "void"]
7
+ }
@@ -0,0 +1,106 @@
1
+ import { createRequire } from 'node:module';const require = createRequire(import.meta.url);
2
+ import "./chunk-EV4RJG4X.mjs";
3
+ import {
4
+ ClientCapability,
5
+ ObservabilityCapabilities
6
+ } from "./chunk-2FZEWT55.mjs";
7
+ import {
8
+ definitions_exports
9
+ } from "./chunk-PFYZRYI5.mjs";
10
+ import {
11
+ meta
12
+ } from "./chunk-NRPR7RO6.mjs";
13
+
14
+ // src/capabilities/client-ready/client-ready.ts
15
+ import * as Effect from "effect/Effect";
16
+ import { Capabilities, Capability } from "@dxos/app-framework";
17
+ import { LayoutOperation, SettingsOperation } from "@dxos/app-toolkit";
18
+ import { ObservabilityProvider } from "@dxos/observability";
19
+ var client_ready_default = Capability.makeModule(Effect.fnUntraced(function* ({ observability }) {
20
+ const manager = yield* Capability.get(Capabilities.PluginManager);
21
+ const { invokePromise } = yield* Capability.get(Capabilities.OperationInvoker);
22
+ const registry = yield* Capability.get(Capabilities.AtomRegistry);
23
+ const stateAtom = yield* Capability.get(ObservabilityCapabilities.State);
24
+ const client = yield* Capability.get(ClientCapability);
25
+ const sendPrivacyNotice = async () => {
26
+ const environment = client?.config?.values.runtime?.app?.env?.DX_ENVIRONMENT;
27
+ const notify = environment && environment !== "ci" && !environment.endsWith(".local") && !environment.endsWith(".lan");
28
+ const state = registry.get(stateAtom);
29
+ if (!state.notified && notify) {
30
+ await invokePromise(LayoutOperation.AddToast, {
31
+ id: `${meta.id}.notice`,
32
+ title: [
33
+ "observability toast label",
34
+ {
35
+ ns: meta.id
36
+ }
37
+ ],
38
+ description: [
39
+ "observability toast description",
40
+ {
41
+ ns: meta.id
42
+ }
43
+ ],
44
+ duration: Infinity,
45
+ icon: "ph--info--regular",
46
+ actionLabel: [
47
+ "observability toast action label",
48
+ {
49
+ ns: meta.id
50
+ }
51
+ ],
52
+ actionAlt: [
53
+ "observability toast action alt",
54
+ {
55
+ ns: meta.id
56
+ }
57
+ ],
58
+ closeLabel: [
59
+ "observability toast close label",
60
+ {
61
+ ns: meta.id
62
+ }
63
+ ],
64
+ onAction: () => invokePromise(SettingsOperation.Open, {
65
+ plugin: meta.id
66
+ })
67
+ });
68
+ registry.set(stateAtom, {
69
+ ...registry.get(stateAtom),
70
+ notified: true
71
+ });
72
+ }
73
+ };
74
+ const enabledPlugins = manager.getEnabled();
75
+ for (const plugin of enabledPlugins) {
76
+ observability.setTags({
77
+ [`pluginEnabled-${plugin}`]: "true"
78
+ }, "errors");
79
+ }
80
+ yield* Effect.tryPromise(() => invokePromise(definitions_exports.SendEvent, {
81
+ name: "page.load",
82
+ properties: {
83
+ // TODO(wittjosiah): These apis are deprecated. Is there a better way to find this information?
84
+ loadDuration: window.performance.timing.loadEventEnd - window.performance.timing.loadEventStart
85
+ }
86
+ }));
87
+ yield* observability.addDataProvider(ObservabilityProvider.Client.identityProvider(client.services.services));
88
+ yield* observability.addDataProvider(ObservabilityProvider.Client.networkMetricsProvider(client.services.services));
89
+ yield* observability.addDataProvider(ObservabilityProvider.Client.runtimeMetricsProvider(client.services.services));
90
+ yield* observability.addDataProvider(ObservabilityProvider.Client.spacesMetricsProvider(client));
91
+ if (client.halo.identity.get()) {
92
+ yield* Effect.tryPromise(() => sendPrivacyNotice());
93
+ } else {
94
+ const subscription = client.halo.identity.subscribe(async (identity) => {
95
+ if (identity && observability) {
96
+ await sendPrivacyNotice();
97
+ subscription.unsubscribe();
98
+ }
99
+ });
100
+ }
101
+ return Capability.contributes(ObservabilityCapabilities.Observability, observability, () => observability.close());
102
+ }));
103
+ export {
104
+ client_ready_default as default
105
+ };
106
+ //# sourceMappingURL=client-ready-2IDY2LT7.mjs.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../src/capabilities/client-ready/client-ready.ts"],
4
+ "sourcesContent": ["//\n// Copyright 2025 DXOS.org\n//\n\nimport * as Effect from 'effect/Effect';\n\nimport { Capabilities, Capability } from '@dxos/app-framework';\nimport { LayoutOperation, SettingsOperation } from '@dxos/app-toolkit';\nimport { type Observability, ObservabilityProvider } from '@dxos/observability';\n\nimport { meta } from '../../meta';\nimport { ClientCapability, ObservabilityCapabilities } from '../../types';\nimport { ObservabilityOperation } from '../../operations';\n\nexport type ClientReadyOptions = {\n namespace: string;\n observability: Observability.Observability;\n};\n\nexport default Capability.makeModule(\n Effect.fnUntraced(function* ({ observability }: ClientReadyOptions) {\n const manager = yield* Capability.get(Capabilities.PluginManager);\n const { invokePromise } = yield* Capability.get(Capabilities.OperationInvoker);\n const registry = yield* Capability.get(Capabilities.AtomRegistry);\n const stateAtom = yield* Capability.get(ObservabilityCapabilities.State);\n const client = yield* Capability.get(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 const state = registry.get(stateAtom);\n if (!state.notified && notify) {\n await invokePromise(LayoutOperation.AddToast, {\n id: `${meta.id}.notice`,\n title: ['observability toast label', { ns: meta.id }],\n description: ['observability toast description', { ns: meta.id }],\n duration: Infinity,\n icon: 'ph--info--regular',\n actionLabel: ['observability toast action label', { ns: meta.id }],\n actionAlt: ['observability toast action alt', { ns: meta.id }],\n closeLabel: ['observability toast close label', { ns: meta.id }],\n onAction: () => invokePromise(SettingsOperation.Open, { plugin: meta.id }),\n });\n\n registry.set(stateAtom, { ...registry.get(stateAtom), notified: true });\n }\n };\n\n // Ensure errors are tagged with enabled plugins to help with reproductions.\n const enabledPlugins = manager.getEnabled();\n for (const plugin of enabledPlugins) {\n observability.setTags({ [`pluginEnabled-${plugin}`]: 'true' }, 'errors');\n }\n\n yield* Effect.tryPromise(() =>\n invokePromise(ObservabilityOperation.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 // Add client data providers.\n yield* observability.addDataProvider(ObservabilityProvider.Client.identityProvider(client.services.services));\n yield* observability.addDataProvider(ObservabilityProvider.Client.networkMetricsProvider(client.services.services));\n yield* observability.addDataProvider(ObservabilityProvider.Client.runtimeMetricsProvider(client.services.services));\n yield* observability.addDataProvider(ObservabilityProvider.Client.spacesMetricsProvider(client));\n\n if (client.halo.identity.get()) {\n yield* Effect.tryPromise(() => sendPrivacyNotice());\n } else {\n const subscription = client.halo.identity.subscribe(async (identity) => {\n if (identity && observability) {\n await sendPrivacyNotice();\n subscription.unsubscribe();\n }\n });\n }\n\n return Capability.contributes(ObservabilityCapabilities.Observability, observability, () => observability.close());\n }),\n);\n"],
5
+ "mappings": ";;;;;;;;;;;;;;AAIA,YAAYA,YAAY;AAExB,SAASC,cAAcC,kBAAkB;AACzC,SAASC,iBAAiBC,yBAAyB;AACnD,SAA6BC,6BAA6B;AAW1D,IAAA,uBAAeC,WAAWC,WACjBC,kBAAW,WAAW,EAAEC,cAAa,GAAsB;AAChE,QAAMC,UAAU,OAAOJ,WAAWK,IAAIC,aAAaC,aAAa;AAChE,QAAM,EAAEC,cAAa,IAAK,OAAOR,WAAWK,IAAIC,aAAaG,gBAAgB;AAC7E,QAAMC,WAAW,OAAOV,WAAWK,IAAIC,aAAaK,YAAY;AAChE,QAAMC,YAAY,OAAOZ,WAAWK,IAAIQ,0BAA0BC,KAAK;AACvE,QAAMC,SAAS,OAAOf,WAAWK,IAAIW,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,UAAMC,QAAQjB,SAASL,IAAIO,SAAAA;AAC3B,QAAI,CAACe,MAAMC,YAAYH,QAAQ;AAC7B,YAAMjB,cAAcqB,gBAAgBC,UAAU;QAC5CC,IAAI,GAAGC,KAAKD,EAAE;QACdE,OAAO;UAAC;UAA6B;YAAEC,IAAIF,KAAKD;UAAG;;QACnDI,aAAa;UAAC;UAAmC;YAAED,IAAIF,KAAKD;UAAG;;QAC/DK,UAAUC;QACVC,MAAM;QACNC,aAAa;UAAC;UAAoC;YAAEL,IAAIF,KAAKD;UAAG;;QAChES,WAAW;UAAC;UAAkC;YAAEN,IAAIF,KAAKD;UAAG;;QAC5DU,YAAY;UAAC;UAAmC;YAAEP,IAAIF,KAAKD;UAAG;;QAC9DW,UAAU,MAAMlC,cAAcmC,kBAAkBC,MAAM;UAAEC,QAAQb,KAAKD;QAAG,CAAA;MAC1E,CAAA;AAEArB,eAASoC,IAAIlC,WAAW;QAAE,GAAGF,SAASL,IAAIO,SAAAA;QAAYgB,UAAU;MAAK,CAAA;IACvE;EACF;AAGA,QAAMmB,iBAAiB3C,QAAQ4C,WAAU;AACzC,aAAWH,UAAUE,gBAAgB;AACnC5C,kBAAc8C,QAAQ;MAAE,CAAC,iBAAiBJ,MAAAA,EAAQ,GAAG;IAAO,GAAG,QAAA;EACjE;AAEA,SAAcK,kBAAW,MACvB1C,cAAc2C,oBAAuBC,WAAW;IAC9CC,MAAM;IACNC,YAAY;;MAEVC,cAAcC,OAAOC,YAAYC,OAAOC,eAAeH,OAAOC,YAAYC,OAAOE;IACnF;EACF,CAAA,CAAA;AAIF,SAAOzD,cAAc0D,gBAAgBC,sBAAsBC,OAAOC,iBAAiBjD,OAAOkD,SAASA,QAAQ,CAAA;AAC3G,SAAO9D,cAAc0D,gBAAgBC,sBAAsBC,OAAOG,uBAAuBnD,OAAOkD,SAASA,QAAQ,CAAA;AACjH,SAAO9D,cAAc0D,gBAAgBC,sBAAsBC,OAAOI,uBAAuBpD,OAAOkD,SAASA,QAAQ,CAAA;AACjH,SAAO9D,cAAc0D,gBAAgBC,sBAAsBC,OAAOK,sBAAsBrD,MAAAA,CAAAA;AAExF,MAAIA,OAAOsD,KAAKC,SAASjE,IAAG,GAAI;AAC9B,WAAc6C,kBAAW,MAAMjC,kBAAAA,CAAAA;EACjC,OAAO;AACL,UAAMsD,eAAexD,OAAOsD,KAAKC,SAASE,UAAU,OAAOF,aAAAA;AACzD,UAAIA,YAAYnE,eAAe;AAC7B,cAAMc,kBAAAA;AACNsD,qBAAaE,YAAW;MAC1B;IACF,CAAA;EACF;AAEA,SAAOzE,WAAW0E,YAAY7D,0BAA0B8D,eAAexE,eAAe,MAAMA,cAAcyE,MAAK,CAAA;AACjH,CAAA,CAAA;",
6
+ "names": ["Effect", "Capabilities", "Capability", "LayoutOperation", "SettingsOperation", "ObservabilityProvider", "Capability", "makeModule", "fnUntraced", "observability", "manager", "get", "Capabilities", "PluginManager", "invokePromise", "OperationInvoker", "registry", "AtomRegistry", "stateAtom", "ObservabilityCapabilities", "State", "client", "ClientCapability", "sendPrivacyNotice", "environment", "config", "values", "runtime", "app", "env", "DX_ENVIRONMENT", "notify", "endsWith", "state", "notified", "LayoutOperation", "AddToast", "id", "meta", "title", "ns", "description", "duration", "Infinity", "icon", "actionLabel", "actionAlt", "closeLabel", "onAction", "SettingsOperation", "Open", "plugin", "set", "enabledPlugins", "getEnabled", "setTags", "tryPromise", "ObservabilityOperation", "SendEvent", "name", "properties", "loadDuration", "window", "performance", "timing", "loadEventEnd", "loadEventStart", "addDataProvider", "ObservabilityProvider", "Client", "identityProvider", "services", "networkMetricsProvider", "runtimeMetricsProvider", "spacesMetricsProvider", "halo", "identity", "subscription", "subscribe", "unsubscribe", "contributes", "Observability", "close"]
7
+ }