@dxos/plugin-observability 0.8.4-main.4a85c3132b → 0.8.4-main.4f23b4e393

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 (263) hide show
  1. package/dist/lib/{browser/HelpContainer-FS6R75L5.mjs → neutral/HelpContainer-NYKOV3GM.mjs} +15 -21
  2. package/dist/lib/neutral/HelpContainer-NYKOV3GM.mjs.map +7 -0
  3. package/dist/lib/neutral/ObservabilityPlugin.mjs +62 -0
  4. package/dist/lib/neutral/ObservabilityPlugin.mjs.map +7 -0
  5. package/dist/lib/neutral/ObservabilityPlugin.node.mjs +22 -0
  6. package/dist/lib/neutral/ObservabilityPlugin.node.mjs.map +7 -0
  7. package/dist/lib/neutral/ObservabilitySettings-H6UKYDDT.mjs +27 -0
  8. package/dist/lib/neutral/ObservabilitySettings-H6UKYDDT.mjs.map +7 -0
  9. package/dist/lib/neutral/app-graph-builder-PTVHNKQY.mjs +37 -0
  10. package/dist/lib/neutral/app-graph-builder-PTVHNKQY.mjs.map +7 -0
  11. package/dist/lib/neutral/capabilities/index.mjs +19 -0
  12. package/dist/lib/neutral/capabilities/index.mjs.map +7 -0
  13. package/dist/lib/neutral/capture-user-feedback-M45PTVMA.mjs +22 -0
  14. package/dist/lib/neutral/capture-user-feedback-M45PTVMA.mjs.map +7 -0
  15. package/dist/lib/{browser/chunk-3XZDP7JS.mjs → neutral/chunk-ANCT53Y3.mjs} +6 -3
  16. package/dist/lib/{browser/chunk-3XZDP7JS.mjs.map → neutral/chunk-ANCT53Y3.mjs.map} +3 -3
  17. package/dist/lib/neutral/chunk-J5LGTIGS.mjs +10 -0
  18. package/dist/lib/neutral/chunk-LBYPFOE5.mjs +132 -0
  19. package/dist/lib/neutral/chunk-LBYPFOE5.mjs.map +7 -0
  20. package/dist/lib/neutral/chunk-YZMTBNAS.mjs +8 -0
  21. package/dist/lib/neutral/chunk-YZMTBNAS.mjs.map +7 -0
  22. package/dist/lib/{browser/client-ready-QVJQMW75.mjs → neutral/client-ready-TM7VE6CH.mjs} +31 -17
  23. package/dist/lib/neutral/client-ready-TM7VE6CH.mjs.map +7 -0
  24. package/dist/lib/neutral/components/index.mjs +44 -0
  25. package/dist/lib/neutral/components/index.mjs.map +7 -0
  26. package/dist/lib/neutral/containers/index.mjs +9 -0
  27. package/dist/lib/neutral/containers/index.mjs.map +7 -0
  28. package/dist/lib/neutral/index.mjs +18 -0
  29. package/dist/lib/neutral/meta.json +1 -0
  30. package/dist/lib/neutral/meta.mjs +8 -0
  31. package/dist/lib/neutral/meta.mjs.map +7 -0
  32. package/dist/lib/neutral/operation-handler-4WWRXOHR.mjs +13 -0
  33. package/dist/lib/neutral/operation-handler-4WWRXOHR.mjs.map +7 -0
  34. package/dist/lib/neutral/operations/index.mjs +8 -0
  35. package/dist/lib/neutral/operations/index.mjs.map +7 -0
  36. package/dist/lib/neutral/plugin.mjs +16 -0
  37. package/dist/lib/neutral/plugin.mjs.map +7 -0
  38. package/dist/lib/neutral/react-surface-2LUZ7EK5.mjs +41 -0
  39. package/dist/lib/neutral/react-surface-2LUZ7EK5.mjs.map +7 -0
  40. package/dist/lib/neutral/send-event-DPYXUUL5.mjs +20 -0
  41. package/dist/lib/neutral/send-event-DPYXUUL5.mjs.map +7 -0
  42. package/dist/lib/{browser/settings-K3HZEWSK.mjs → neutral/settings-MZYK2WQR.mjs} +7 -14
  43. package/dist/lib/neutral/settings-MZYK2WQR.mjs.map +7 -0
  44. package/dist/lib/{browser/state-YS5COCDC.mjs → neutral/state-5COCK3KV.mjs} +5 -8
  45. package/dist/lib/neutral/state-5COCK3KV.mjs.map +7 -0
  46. package/dist/lib/neutral/toggle-VKTFKVFC.mjs +45 -0
  47. package/dist/lib/neutral/toggle-VKTFKVFC.mjs.map +7 -0
  48. package/dist/lib/neutral/translations.mjs +33 -0
  49. package/dist/lib/neutral/translations.mjs.map +7 -0
  50. package/dist/lib/neutral/types/index.mjs +14 -0
  51. package/dist/lib/neutral/types/index.mjs.map +7 -0
  52. package/dist/types/src/ObservabilityPlugin.d.ts +6 -0
  53. package/dist/types/src/ObservabilityPlugin.d.ts.map +1 -1
  54. package/dist/types/src/{cli/plugin.d.ts → ObservabilityPlugin.node.d.ts} +2 -1
  55. package/dist/types/src/ObservabilityPlugin.node.d.ts.map +1 -0
  56. package/dist/types/src/ObservabilityPlugin.test.d.ts +2 -0
  57. package/dist/types/src/ObservabilityPlugin.test.d.ts.map +1 -0
  58. package/dist/types/src/capabilities/app-graph-builder.d.ts.map +1 -0
  59. package/dist/types/src/capabilities/client-ready.d.ts.map +1 -0
  60. package/dist/types/src/capabilities/index.d.ts +17 -6
  61. package/dist/types/src/capabilities/index.d.ts.map +1 -1
  62. package/dist/types/src/capabilities/operation-handler.d.ts +6 -0
  63. package/dist/types/src/capabilities/operation-handler.d.ts.map +1 -0
  64. package/dist/types/src/capabilities/react-surface.d.ts.map +1 -0
  65. package/dist/types/src/capabilities/{settings/settings.d.ts → settings.d.ts} +2 -5
  66. package/dist/types/src/capabilities/settings.d.ts.map +1 -0
  67. package/dist/types/src/capabilities/state.d.ts.map +1 -0
  68. package/dist/types/src/components/FeedbackForm/FeedbackForm.d.ts +9 -0
  69. package/dist/types/src/components/FeedbackForm/FeedbackForm.d.ts.map +1 -0
  70. package/dist/types/src/components/FeedbackForm/FeedbackForm.stories.d.ts +36 -0
  71. package/dist/types/src/components/FeedbackForm/FeedbackForm.stories.d.ts.map +1 -0
  72. package/dist/types/src/components/FeedbackForm/index.d.ts +2 -0
  73. package/dist/types/src/components/FeedbackForm/index.d.ts.map +1 -0
  74. package/dist/types/src/components/ObservabilitySettings/ObservabilitySettings.d.ts +6 -0
  75. package/dist/types/src/components/ObservabilitySettings/ObservabilitySettings.d.ts.map +1 -0
  76. package/dist/types/src/components/ObservabilitySettings/ObservabilitySettings.stories.d.ts +36 -0
  77. package/dist/types/src/components/ObservabilitySettings/ObservabilitySettings.stories.d.ts.map +1 -0
  78. package/dist/types/src/components/ObservabilitySettings/index.d.ts +2 -0
  79. package/dist/types/src/components/ObservabilitySettings/index.d.ts.map +1 -0
  80. package/dist/types/src/components/index.d.ts +2 -0
  81. package/dist/types/src/components/index.d.ts.map +1 -1
  82. package/dist/types/src/containers/HelpContainer/HelpContainer.d.ts.map +1 -1
  83. package/dist/types/src/containers/HelpContainer/index.d.ts +1 -2
  84. package/dist/types/src/containers/HelpContainer/index.d.ts.map +1 -1
  85. package/dist/types/src/containers/index.d.ts +0 -3
  86. package/dist/types/src/containers/index.d.ts.map +1 -1
  87. package/dist/types/src/index.d.ts +1 -3
  88. package/dist/types/src/index.d.ts.map +1 -1
  89. package/dist/types/src/meta.d.ts.map +1 -1
  90. package/dist/types/src/operations/capture-user-feedback.d.ts +5 -0
  91. package/dist/types/src/operations/capture-user-feedback.d.ts.map +1 -0
  92. package/dist/types/src/operations/index.d.ts +3 -0
  93. package/dist/types/src/operations/index.d.ts.map +1 -0
  94. package/dist/types/src/operations/send-event.d.ts +5 -0
  95. package/dist/types/src/operations/send-event.d.ts.map +1 -0
  96. package/dist/types/src/operations/toggle.d.ts +5 -0
  97. package/dist/types/src/operations/toggle.d.ts.map +1 -0
  98. package/dist/types/src/plugin.d.ts +4 -0
  99. package/dist/types/src/plugin.d.ts.map +1 -0
  100. package/dist/types/src/translations.d.ts +17 -18
  101. package/dist/types/src/translations.d.ts.map +1 -1
  102. package/dist/types/src/types/ObservabilityCapabilities.d.ts +28 -0
  103. package/dist/types/src/types/ObservabilityCapabilities.d.ts.map +1 -0
  104. package/dist/types/src/types/ObservabilityEvents.d.ts +4 -0
  105. package/dist/types/src/types/ObservabilityEvents.d.ts.map +1 -0
  106. package/dist/types/src/types/ObservabilityOperation.d.ts +20 -0
  107. package/dist/types/src/types/ObservabilityOperation.d.ts.map +1 -0
  108. package/dist/types/src/types/Settings.d.ts +7 -0
  109. package/dist/types/src/types/Settings.d.ts.map +1 -0
  110. package/dist/types/src/types/index.d.ts +4 -3
  111. package/dist/types/src/types/index.d.ts.map +1 -1
  112. package/dist/types/tsconfig.tsbuildinfo +1 -1
  113. package/package.json +89 -48
  114. package/src/ObservabilityPlugin.node.ts +33 -0
  115. package/src/ObservabilityPlugin.test.ts +25 -0
  116. package/src/ObservabilityPlugin.ts +27 -12
  117. package/src/capabilities/app-graph-builder.ts +36 -0
  118. package/src/capabilities/{client-ready/client-ready.ts → client-ready.ts} +32 -10
  119. package/src/capabilities/index.ts +14 -6
  120. package/src/capabilities/operation-handler.ts +16 -0
  121. package/src/capabilities/react-surface.tsx +41 -0
  122. package/src/capabilities/{settings/settings.ts → settings.ts} +4 -5
  123. package/src/capabilities/{state/state.ts → state.ts} +2 -2
  124. package/src/components/{FeedbackForm.stories.tsx → FeedbackForm/FeedbackForm.stories.tsx} +12 -1
  125. package/src/components/FeedbackForm/FeedbackForm.tsx +49 -0
  126. package/src/components/FeedbackForm/index.ts +5 -0
  127. package/src/components/ObservabilitySettings/ObservabilitySettings.stories.tsx +34 -0
  128. package/src/components/ObservabilitySettings/ObservabilitySettings.tsx +34 -0
  129. package/src/components/ObservabilitySettings/index.ts +5 -0
  130. package/src/components/index.ts +4 -0
  131. package/src/containers/HelpContainer/HelpContainer.tsx +12 -10
  132. package/src/containers/HelpContainer/index.ts +1 -3
  133. package/src/containers/index.ts +0 -7
  134. package/src/index.ts +1 -3
  135. package/src/meta.ts +2 -1
  136. package/src/operations/capture-user-feedback.ts +22 -0
  137. package/src/operations/index.ts +11 -0
  138. package/src/operations/send-event.ts +23 -0
  139. package/src/operations/toggle.ts +46 -0
  140. package/src/plugin.ts +11 -0
  141. package/src/translations.ts +17 -17
  142. package/src/types/ObservabilityCapabilities.ts +42 -0
  143. package/src/types/ObservabilityEvents.ts +15 -0
  144. package/src/types/ObservabilityOperation.ts +75 -0
  145. package/src/types/Settings.ts +22 -0
  146. package/src/types/index.ts +4 -3
  147. package/dist/lib/browser/HelpContainer-FS6R75L5.mjs.map +0 -7
  148. package/dist/lib/browser/ObservabilitySettings-M63CU4QW.mjs +0 -12
  149. package/dist/lib/browser/ObservabilitySettings-M63CU4QW.mjs.map +0 -7
  150. package/dist/lib/browser/app-graph-builder-7PBOGFFG.mjs +0 -45
  151. package/dist/lib/browser/app-graph-builder-7PBOGFFG.mjs.map +0 -7
  152. package/dist/lib/browser/chunk-BURIOTMF.mjs +0 -41
  153. package/dist/lib/browser/chunk-BURIOTMF.mjs.map +0 -7
  154. package/dist/lib/browser/chunk-TB4V5AI3.mjs +0 -138
  155. package/dist/lib/browser/chunk-TB4V5AI3.mjs.map +0 -7
  156. package/dist/lib/browser/chunk-WYDANA3A.mjs +0 -32
  157. package/dist/lib/browser/chunk-WYDANA3A.mjs.map +0 -7
  158. package/dist/lib/browser/chunk-X2MDAD6K.mjs +0 -10
  159. package/dist/lib/browser/chunk-X2MDAD6K.mjs.map +0 -7
  160. package/dist/lib/browser/cli/index.mjs +0 -24
  161. package/dist/lib/browser/cli/index.mjs.map +0 -7
  162. package/dist/lib/browser/client-ready-QVJQMW75.mjs.map +0 -7
  163. package/dist/lib/browser/index.mjs +0 -93
  164. package/dist/lib/browser/index.mjs.map +0 -7
  165. package/dist/lib/browser/meta.json +0 -1
  166. package/dist/lib/browser/operation-resolver-MDAGP5UW.mjs +0 -78
  167. package/dist/lib/browser/operation-resolver-MDAGP5UW.mjs.map +0 -7
  168. package/dist/lib/browser/react-surface-R2TPU5TH.mjs +0 -39
  169. package/dist/lib/browser/react-surface-R2TPU5TH.mjs.map +0 -7
  170. package/dist/lib/browser/settings-K3HZEWSK.mjs.map +0 -7
  171. package/dist/lib/browser/state-YS5COCDC.mjs.map +0 -7
  172. package/dist/lib/browser/types/index.mjs +0 -18
  173. package/dist/lib/node-esm/HelpContainer-XOCD23EA.mjs +0 -75
  174. package/dist/lib/node-esm/HelpContainer-XOCD23EA.mjs.map +0 -7
  175. package/dist/lib/node-esm/ObservabilitySettings-TONQ3AAW.mjs +0 -13
  176. package/dist/lib/node-esm/ObservabilitySettings-TONQ3AAW.mjs.map +0 -7
  177. package/dist/lib/node-esm/app-graph-builder-D77CGMCQ.mjs +0 -46
  178. package/dist/lib/node-esm/app-graph-builder-D77CGMCQ.mjs.map +0 -7
  179. package/dist/lib/node-esm/chunk-2ECMMPZY.mjs +0 -18
  180. package/dist/lib/node-esm/chunk-2ECMMPZY.mjs.map +0 -7
  181. package/dist/lib/node-esm/chunk-BGK3JUVL.mjs +0 -42
  182. package/dist/lib/node-esm/chunk-BGK3JUVL.mjs.map +0 -7
  183. package/dist/lib/node-esm/chunk-IDJN2AON.mjs +0 -33
  184. package/dist/lib/node-esm/chunk-IDJN2AON.mjs.map +0 -7
  185. package/dist/lib/node-esm/chunk-NH4PVNUO.mjs +0 -139
  186. package/dist/lib/node-esm/chunk-NH4PVNUO.mjs.map +0 -7
  187. package/dist/lib/node-esm/chunk-WYLPEENT.mjs +0 -12
  188. package/dist/lib/node-esm/chunk-WYLPEENT.mjs.map +0 -7
  189. package/dist/lib/node-esm/cli/index.mjs +0 -25
  190. package/dist/lib/node-esm/cli/index.mjs.map +0 -7
  191. package/dist/lib/node-esm/client-ready-LXKSSYVT.mjs +0 -103
  192. package/dist/lib/node-esm/client-ready-LXKSSYVT.mjs.map +0 -7
  193. package/dist/lib/node-esm/index.mjs +0 -94
  194. package/dist/lib/node-esm/index.mjs.map +0 -7
  195. package/dist/lib/node-esm/meta.json +0 -1
  196. package/dist/lib/node-esm/operation-resolver-MV5V25GK.mjs +0 -79
  197. package/dist/lib/node-esm/operation-resolver-MV5V25GK.mjs.map +0 -7
  198. package/dist/lib/node-esm/react-surface-XXT3YBYG.mjs +0 -40
  199. package/dist/lib/node-esm/react-surface-XXT3YBYG.mjs.map +0 -7
  200. package/dist/lib/node-esm/settings-M7JG6IRW.mjs +0 -38
  201. package/dist/lib/node-esm/settings-M7JG6IRW.mjs.map +0 -7
  202. package/dist/lib/node-esm/state-LU6EARPH.mjs +0 -31
  203. package/dist/lib/node-esm/state-LU6EARPH.mjs.map +0 -7
  204. package/dist/lib/node-esm/types/index.mjs +0 -19
  205. package/dist/types/src/capabilities/app-graph-builder/app-graph-builder.d.ts.map +0 -1
  206. package/dist/types/src/capabilities/app-graph-builder/index.d.ts +0 -3
  207. package/dist/types/src/capabilities/app-graph-builder/index.d.ts.map +0 -1
  208. package/dist/types/src/capabilities/client-ready/client-ready.d.ts.map +0 -1
  209. package/dist/types/src/capabilities/client-ready/index.d.ts +0 -4
  210. package/dist/types/src/capabilities/client-ready/index.d.ts.map +0 -1
  211. package/dist/types/src/capabilities/operation-resolver/index.d.ts +0 -5
  212. package/dist/types/src/capabilities/operation-resolver/index.d.ts.map +0 -1
  213. package/dist/types/src/capabilities/operation-resolver/operation-resolver.d.ts +0 -7
  214. package/dist/types/src/capabilities/operation-resolver/operation-resolver.d.ts.map +0 -1
  215. package/dist/types/src/capabilities/react-surface/index.d.ts +0 -3
  216. package/dist/types/src/capabilities/react-surface/index.d.ts.map +0 -1
  217. package/dist/types/src/capabilities/react-surface/react-surface.d.ts.map +0 -1
  218. package/dist/types/src/capabilities/settings/index.d.ts +0 -7
  219. package/dist/types/src/capabilities/settings/index.d.ts.map +0 -1
  220. package/dist/types/src/capabilities/settings/settings.d.ts.map +0 -1
  221. package/dist/types/src/capabilities/state/index.d.ts +0 -11
  222. package/dist/types/src/capabilities/state/index.d.ts.map +0 -1
  223. package/dist/types/src/capabilities/state/state.d.ts.map +0 -1
  224. package/dist/types/src/cli/index.d.ts +0 -2
  225. package/dist/types/src/cli/index.d.ts.map +0 -1
  226. package/dist/types/src/cli/plugin.d.ts.map +0 -1
  227. package/dist/types/src/components/FeedbackForm.d.ts +0 -6
  228. package/dist/types/src/components/FeedbackForm.d.ts.map +0 -1
  229. package/dist/types/src/components/FeedbackForm.stories.d.ts +0 -35
  230. package/dist/types/src/components/FeedbackForm.stories.d.ts.map +0 -1
  231. package/dist/types/src/containers/ObservabilitySettings/ObservabilitySettings.d.ts +0 -12
  232. package/dist/types/src/containers/ObservabilitySettings/ObservabilitySettings.d.ts.map +0 -1
  233. package/dist/types/src/containers/ObservabilitySettings/index.d.ts +0 -3
  234. package/dist/types/src/containers/ObservabilitySettings/index.d.ts.map +0 -1
  235. package/dist/types/src/types/capabilities.d.ts +0 -27
  236. package/dist/types/src/types/capabilities.d.ts.map +0 -1
  237. package/dist/types/src/types/events.d.ts +0 -6
  238. package/dist/types/src/types/events.d.ts.map +0 -1
  239. package/dist/types/src/types/schema.d.ts +0 -63
  240. package/dist/types/src/types/schema.d.ts.map +0 -1
  241. package/src/capabilities/app-graph-builder/app-graph-builder.ts +0 -43
  242. package/src/capabilities/app-graph-builder/index.ts +0 -7
  243. package/src/capabilities/client-ready/index.ts +0 -9
  244. package/src/capabilities/operation-resolver/index.ts +0 -7
  245. package/src/capabilities/operation-resolver/operation-resolver.ts +0 -76
  246. package/src/capabilities/react-surface/index.ts +0 -7
  247. package/src/capabilities/react-surface/react-surface.tsx +0 -35
  248. package/src/capabilities/settings/index.ts +0 -7
  249. package/src/capabilities/state/index.ts +0 -7
  250. package/src/cli/index.ts +0 -5
  251. package/src/cli/plugin.ts +0 -28
  252. package/src/components/FeedbackForm.tsx +0 -33
  253. package/src/containers/ObservabilitySettings/ObservabilitySettings.tsx +0 -53
  254. package/src/containers/ObservabilitySettings/index.ts +0 -7
  255. package/src/types/capabilities.ts +0 -34
  256. package/src/types/events.ts +0 -15
  257. package/src/types/schema.ts +0 -84
  258. /package/dist/lib/{browser/types/index.mjs.map → neutral/chunk-J5LGTIGS.mjs.map} +0 -0
  259. /package/dist/lib/{node-esm/types → neutral}/index.mjs.map +0 -0
  260. /package/dist/types/src/capabilities/{app-graph-builder/app-graph-builder.d.ts → app-graph-builder.d.ts} +0 -0
  261. /package/dist/types/src/capabilities/{client-ready/client-ready.d.ts → client-ready.d.ts} +0 -0
  262. /package/dist/types/src/capabilities/{react-surface/react-surface.d.ts → react-surface.d.ts} +0 -0
  263. /package/dist/types/src/capabilities/{state/state.d.ts → state.d.ts} +0 -0
@@ -1,25 +1,21 @@
1
- import {
2
- FeedbackForm
3
- } from "./chunk-WYDANA3A.mjs";
4
- import {
5
- ObservabilityCapabilities,
6
- ObservabilityOperation
7
- } from "./chunk-TB4V5AI3.mjs";
8
- import {
9
- meta
10
- } from "./chunk-3XZDP7JS.mjs";
1
+ import "./chunk-J5LGTIGS.mjs";
11
2
 
12
3
  // src/containers/HelpContainer/HelpContainer.tsx
13
4
  import * as Effect from "effect/Effect";
14
5
  import React, { useCallback, useState } from "react";
15
- import { useCapability, useOperationInvoker } from "@dxos/app-framework/ui";
6
+ import { useCapabilities, useCapability, useOperationInvoker } from "@dxos/app-framework/ui";
16
7
  import { LayoutOperation } from "@dxos/app-toolkit";
17
8
  import { runAndForwardErrors } from "@dxos/effect";
18
9
  import { useAsyncEffect } from "@dxos/react-hooks";
19
10
  import { osTranslations } from "@dxos/ui-theme";
11
+ import { FeedbackForm } from "#components";
12
+ import { meta } from "#meta";
13
+ import { ObservabilityOperation } from "#types";
14
+ import { ObservabilityCapabilities } from "#types";
20
15
  var HelpContainer = () => {
21
16
  const { invokePromise } = useOperationInvoker();
22
17
  const observability = useCapability(ObservabilityCapabilities.Observability);
18
+ const [downloadLogs] = useCapabilities(ObservabilityCapabilities.LogDownloader);
23
19
  const [feedbackAvailable, setFeedbackAvailable] = useState(false);
24
20
  useAsyncEffect(async (controller) => {
25
21
  const available = await observability.isAvailable("feedback").pipe(Effect.catchAll(() => Effect.succeed(false)), Effect.catchAllDefect(() => Effect.succeed(false)), runAndForwardErrors);
@@ -35,23 +31,23 @@ var HelpContainer = () => {
35
31
  state: "collapsed"
36
32
  });
37
33
  await invokePromise(LayoutOperation.AddToast, {
38
- id: `${meta.id}/feedback-success`,
34
+ id: `${meta.id}.feedback-success`,
39
35
  icon: "ph--paper-plane-tilt--regular",
40
36
  duration: 3e3,
41
37
  title: [
42
- "feedback toast label",
38
+ "feedback-toast.label",
43
39
  {
44
40
  ns: meta.id
45
41
  }
46
42
  ],
47
43
  description: [
48
- "feedback toast description",
44
+ "feedback-toast.description",
49
45
  {
50
46
  ns: meta.id
51
47
  }
52
48
  ],
53
49
  closeLabel: [
54
- "close label",
50
+ "close.label",
55
51
  {
56
52
  ns: osTranslations
57
53
  }
@@ -62,13 +58,11 @@ var HelpContainer = () => {
62
58
  ]);
63
59
  return /* @__PURE__ */ React.createElement(FeedbackForm, {
64
60
  onSave: handleSave,
65
- disabled: !feedbackAvailable
61
+ disabled: !feedbackAvailable,
62
+ onDownloadLogs: downloadLogs
66
63
  });
67
64
  };
68
-
69
- // src/containers/HelpContainer/index.ts
70
- var HelpContainer_default = HelpContainer;
71
65
  export {
72
- HelpContainer_default as default
66
+ HelpContainer as default
73
67
  };
74
- //# sourceMappingURL=HelpContainer-FS6R75L5.mjs.map
68
+ //# sourceMappingURL=HelpContainer-NYKOV3GM.mjs.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../src/containers/HelpContainer/HelpContainer.tsx"],
4
+ "sourcesContent": ["//\n// Copyright 2025 DXOS.org\n//\n\nimport * as Effect from 'effect/Effect';\nimport React, { useCallback, useState } from 'react';\n\nimport { useCapabilities, useCapability, useOperationInvoker } from '@dxos/app-framework/ui';\nimport { LayoutOperation } from '@dxos/app-toolkit';\nimport { runAndForwardErrors } from '@dxos/effect';\nimport { useAsyncEffect } from '@dxos/react-hooks';\nimport { osTranslations } from '@dxos/ui-theme';\n\nimport { FeedbackForm } from '#components';\nimport { meta } from '#meta';\nimport { ObservabilityOperation } from '#types';\nimport { ObservabilityCapabilities } from '#types';\n\n/** Renders the feedback form, disabling it when the feedback survey is unavailable. */\nexport const HelpContainer = () => {\n const { invokePromise } = useOperationInvoker();\n const observability = useCapability(ObservabilityCapabilities.Observability);\n const [downloadLogs] = useCapabilities(ObservabilityCapabilities.LogDownloader);\n const [feedbackAvailable, setFeedbackAvailable] = useState(false);\n\n useAsyncEffect(\n async (controller) => {\n const available = await observability.isAvailable('feedback').pipe(\n Effect.catchAll(() => Effect.succeed(false)),\n Effect.catchAllDefect(() => Effect.succeed(false)),\n runAndForwardErrors,\n );\n if (!controller.signal.aborted) {\n setFeedbackAvailable(available);\n }\n },\n [observability],\n );\n\n const handleSave = useCallback(\n async (values: ObservabilityOperation.UserFeedback) => {\n await invokePromise(ObservabilityOperation.CaptureUserFeedback, values);\n await invokePromise(LayoutOperation.UpdateComplementary, { state: 'collapsed' });\n await invokePromise(LayoutOperation.AddToast, {\n id: `${meta.id}.feedback-success`,\n icon: 'ph--paper-plane-tilt--regular',\n duration: 3000,\n title: ['feedback-toast.label', { ns: meta.id }],\n description: ['feedback-toast.description', { ns: meta.id }],\n closeLabel: ['close.label', { ns: osTranslations }],\n });\n },\n [invokePromise],\n );\n\n return <FeedbackForm onSave={handleSave} disabled={!feedbackAvailable} onDownloadLogs={downloadLogs} />;\n};\n"],
5
+ "mappings": ";;;AAIA,YAAYA,YAAY;AACxB,OAAOC,SAASC,aAAaC,gBAAgB;AAE7C,SAASC,iBAAiBC,eAAeC,2BAA2B;AACpE,SAASC,uBAAuB;AAChC,SAASC,2BAA2B;AACpC,SAASC,sBAAsB;AAC/B,SAASC,sBAAsB;AAE/B,SAASC,oBAAoB;AAC7B,SAASC,YAAY;AACrB,SAASC,8BAA8B;AACvC,SAASC,iCAAiC;AAGnC,IAAMC,gBAAgB,MAAA;AAC3B,QAAM,EAAEC,cAAa,IAAKV,oBAAAA;AAC1B,QAAMW,gBAAgBZ,cAAcS,0BAA0BI,aAAa;AAC3E,QAAM,CAACC,YAAAA,IAAgBf,gBAAgBU,0BAA0BM,aAAa;AAC9E,QAAM,CAACC,mBAAmBC,oBAAAA,IAAwBnB,SAAS,KAAA;AAE3DM,iBACE,OAAOc,eAAAA;AACL,UAAMC,YAAY,MAAMP,cAAcQ,YAAY,UAAA,EAAYC,KACrDC,gBAAS,MAAaC,eAAQ,KAAA,CAAA,GAC9BC,sBAAe,MAAaD,eAAQ,KAAA,CAAA,GAC3CpB,mBAAAA;AAEF,QAAI,CAACe,WAAWO,OAAOC,SAAS;AAC9BT,2BAAqBE,SAAAA;IACvB;EACF,GACA;IAACP;GAAc;AAGjB,QAAMe,aAAa9B,YACjB,OAAO+B,WAAAA;AACL,UAAMjB,cAAcH,uBAAuBqB,qBAAqBD,MAAAA;AAChE,UAAMjB,cAAcT,gBAAgB4B,qBAAqB;MAAEC,OAAO;IAAY,CAAA;AAC9E,UAAMpB,cAAcT,gBAAgB8B,UAAU;MAC5CC,IAAI,GAAG1B,KAAK0B,EAAE;MACdC,MAAM;MACNC,UAAU;MACVC,OAAO;QAAC;QAAwB;UAAEC,IAAI9B,KAAK0B;QAAG;;MAC9CK,aAAa;QAAC;QAA8B;UAAED,IAAI9B,KAAK0B;QAAG;;MAC1DM,YAAY;QAAC;QAAe;UAAEF,IAAIhC;QAAe;;IACnD,CAAA;EACF,GACA;IAACM;GAAc;AAGjB,SAAO,sBAAA,cAACL,cAAAA;IAAakC,QAAQb;IAAYc,UAAU,CAACzB;IAAmB0B,gBAAgB5B;;AACzF;",
6
+ "names": ["Effect", "React", "useCallback", "useState", "useCapabilities", "useCapability", "useOperationInvoker", "LayoutOperation", "runAndForwardErrors", "useAsyncEffect", "osTranslations", "FeedbackForm", "meta", "ObservabilityOperation", "ObservabilityCapabilities", "HelpContainer", "invokePromise", "observability", "Observability", "downloadLogs", "LogDownloader", "feedbackAvailable", "setFeedbackAvailable", "controller", "available", "isAvailable", "pipe", "catchAll", "succeed", "catchAllDefect", "signal", "aborted", "handleSave", "values", "CaptureUserFeedback", "UpdateComplementary", "state", "AddToast", "id", "icon", "duration", "title", "ns", "description", "closeLabel", "onSave", "disabled", "onDownloadLogs"]
7
+ }
@@ -0,0 +1,62 @@
1
+ import "./chunk-J5LGTIGS.mjs";
2
+
3
+ // src/ObservabilityPlugin.ts
4
+ import * as Effect from "effect/Effect";
5
+ import { ActivationEvent, ActivationEvents, Capability, Plugin } from "@dxos/app-framework";
6
+ import { AppActivationEvents, AppPlugin } from "@dxos/app-toolkit";
7
+ import { AppGraphBuilder, ClientReady, ObservabilitySettings, ObservabilityState, OperationHandler, ReactSurface } from "#capabilities";
8
+ import { meta } from "#meta";
9
+ import { translations } from "#translations";
10
+ import { ObservabilityCapabilities, ObservabilityEvents } from "#types";
11
+ var ObservabilityPlugin = Plugin.define(meta).pipe(AppPlugin.addAppGraphModule({
12
+ activate: AppGraphBuilder
13
+ }), AppPlugin.addSurfaceModule({
14
+ activate: ReactSurface
15
+ }), AppPlugin.addTranslationsModule({
16
+ translations
17
+ }), Plugin.addModule(({ observability }) => ({
18
+ id: "observability",
19
+ activatesOn: ActivationEvents.Startup,
20
+ activate: () => Effect.gen(function* () {
21
+ const obs = yield* Effect.tryPromise(() => observability());
22
+ return Capability.contributes(ObservabilityCapabilities.Observability, obs);
23
+ })
24
+ })), Plugin.addModule({
25
+ activatesOn: AppActivationEvents.SetupSettings,
26
+ activate: ObservabilitySettings
27
+ }), Plugin.addModule(({ namespace }) => ({
28
+ id: Capability.getModuleTag(ObservabilityState),
29
+ activatesOn: ActivationEvents.Startup,
30
+ firesAfterActivation: [
31
+ ObservabilityEvents.StateReady
32
+ ],
33
+ activate: () => ObservabilityState({
34
+ namespace
35
+ })
36
+ })), Plugin.addModule(({ namespace }) => ({
37
+ id: "namespace",
38
+ activatesOn: ActivationEvents.Startup,
39
+ activate: () => Effect.succeed(Capability.contributes(ObservabilityCapabilities.Namespace, namespace))
40
+ })), Plugin.addModule(({ downloadLogs }) => ({
41
+ id: "log-downloader",
42
+ activatesOn: ActivationEvents.Startup,
43
+ activate: () => Effect.succeed(downloadLogs !== void 0 ? Capability.contributes(ObservabilityCapabilities.LogDownloader, downloadLogs) : [])
44
+ })), AppPlugin.addOperationHandlerModule({
45
+ activate: OperationHandler
46
+ }), Plugin.addModule(({ namespace, observability }) => ({
47
+ id: Capability.getModuleTag(ClientReady),
48
+ activatesOn: ActivationEvent.allOf(ActivationEvents.OperationInvokerReady, ObservabilityEvents.StateReady, ObservabilityEvents.ClientReadyEvent),
49
+ activate: () => Effect.gen(function* () {
50
+ const obs = yield* Effect.tryPromise(() => observability());
51
+ return yield* ClientReady({
52
+ namespace,
53
+ observability: obs
54
+ });
55
+ })
56
+ })), Plugin.make);
57
+ var ObservabilityPlugin_default = ObservabilityPlugin;
58
+ export {
59
+ ObservabilityPlugin,
60
+ ObservabilityPlugin_default as default
61
+ };
62
+ //# sourceMappingURL=ObservabilityPlugin.mjs.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../src/ObservabilityPlugin.ts"],
4
+ "sourcesContent": ["//\n// Copyright 2025 DXOS.org\n//\n\nimport * as Effect from 'effect/Effect';\n\nimport { ActivationEvent, ActivationEvents, Capability, Plugin } from '@dxos/app-framework';\nimport { AppActivationEvents, AppPlugin } from '@dxos/app-toolkit';\nimport { type Observability } from '@dxos/observability';\n\nimport {\n AppGraphBuilder,\n ClientReady,\n ObservabilitySettings,\n ObservabilityState,\n OperationHandler,\n ReactSurface,\n} from '#capabilities';\nimport { meta } from '#meta';\nimport { translations } from '#translations';\nimport { ObservabilityCapabilities, ObservabilityEvents } from '#types';\n\nexport type ObservabilityPluginOptions = {\n namespace: string;\n observability: () => Promise<Observability.Observability>;\n /**\n * Optional callback invoked by the help/feedback UI to download captured logs.\n * When omitted the \"Download logs\" action is hidden.\n */\n downloadLogs?: () => void | Promise<void>;\n};\n\nexport const ObservabilityPlugin = Plugin.define<ObservabilityPluginOptions>(meta).pipe(\n AppPlugin.addAppGraphModule({ activate: AppGraphBuilder }),\n AppPlugin.addSurfaceModule({ activate: ReactSurface }),\n AppPlugin.addTranslationsModule({ translations }),\n Plugin.addModule(({ observability }) => ({\n id: 'observability',\n activatesOn: ActivationEvents.Startup,\n activate: () =>\n Effect.gen(function* () {\n const obs = yield* Effect.tryPromise(() => observability());\n return Capability.contributes(ObservabilityCapabilities.Observability, obs);\n }),\n })),\n Plugin.addModule({\n activatesOn: AppActivationEvents.SetupSettings,\n activate: ObservabilitySettings,\n }),\n Plugin.addModule(({ namespace }) => ({\n id: Capability.getModuleTag(ObservabilityState),\n activatesOn: ActivationEvents.Startup,\n firesAfterActivation: [ObservabilityEvents.StateReady],\n activate: () => ObservabilityState({ namespace }),\n })),\n Plugin.addModule(({ namespace }) => ({\n id: 'namespace',\n activatesOn: ActivationEvents.Startup,\n activate: () => Effect.succeed(Capability.contributes(ObservabilityCapabilities.Namespace, namespace)),\n })),\n Plugin.addModule(({ downloadLogs }) => ({\n id: 'log-downloader',\n activatesOn: ActivationEvents.Startup,\n activate: () =>\n Effect.succeed(\n downloadLogs !== undefined ? Capability.contributes(ObservabilityCapabilities.LogDownloader, downloadLogs) : [],\n ),\n })),\n AppPlugin.addOperationHandlerModule({ activate: OperationHandler }),\n Plugin.addModule(({ namespace, observability }) => ({\n id: Capability.getModuleTag(ClientReady),\n activatesOn: ActivationEvent.allOf(\n ActivationEvents.OperationInvokerReady,\n ObservabilityEvents.StateReady,\n ObservabilityEvents.ClientReadyEvent,\n ),\n activate: () =>\n Effect.gen(function* () {\n const obs = yield* Effect.tryPromise(() => observability());\n return yield* ClientReady({ namespace, observability: obs });\n }),\n })),\n Plugin.make,\n);\n\nexport default ObservabilityPlugin;\n"],
5
+ "mappings": ";;;AAIA,YAAYA,YAAY;AAExB,SAASC,iBAAiBC,kBAAkBC,YAAYC,cAAc;AACtE,SAASC,qBAAqBC,iBAAiB;AAG/C,SACEC,iBACAC,aACAC,uBACAC,oBACAC,kBACAC,oBACK;AACP,SAASC,YAAY;AACrB,SAASC,oBAAoB;AAC7B,SAASC,2BAA2BC,2BAA2B;AAYxD,IAAMC,sBAAsBb,OAAOc,OAAmCL,IAAAA,EAAMM,KACjFb,UAAUc,kBAAkB;EAAEC,UAAUd;AAAgB,CAAA,GACxDD,UAAUgB,iBAAiB;EAAED,UAAUT;AAAa,CAAA,GACpDN,UAAUiB,sBAAsB;EAAET;AAAa,CAAA,GAC/CV,OAAOoB,UAAU,CAAC,EAAEC,cAAa,OAAQ;EACvCC,IAAI;EACJC,aAAazB,iBAAiB0B;EAC9BP,UAAU,MACDQ,WAAI,aAAA;AACT,UAAMC,MAAM,OAAcC,kBAAW,MAAMN,cAAAA,CAAAA;AAC3C,WAAOtB,WAAW6B,YAAYjB,0BAA0BkB,eAAeH,GAAAA;EACzE,CAAA;AACJ,EAAA,GACA1B,OAAOoB,UAAU;EACfG,aAAatB,oBAAoB6B;EACjCb,UAAUZ;AACZ,CAAA,GACAL,OAAOoB,UAAU,CAAC,EAAEW,UAAS,OAAQ;EACnCT,IAAIvB,WAAWiC,aAAa1B,kBAAAA;EAC5BiB,aAAazB,iBAAiB0B;EAC9BS,sBAAsB;IAACrB,oBAAoBsB;;EAC3CjB,UAAU,MAAMX,mBAAmB;IAAEyB;EAAU,CAAA;AACjD,EAAA,GACA/B,OAAOoB,UAAU,CAAC,EAAEW,UAAS,OAAQ;EACnCT,IAAI;EACJC,aAAazB,iBAAiB0B;EAC9BP,UAAU,MAAakB,eAAQpC,WAAW6B,YAAYjB,0BAA0ByB,WAAWL,SAAAA,CAAAA;AAC7F,EAAA,GACA/B,OAAOoB,UAAU,CAAC,EAAEiB,aAAY,OAAQ;EACtCf,IAAI;EACJC,aAAazB,iBAAiB0B;EAC9BP,UAAU,MACDkB,eACLE,iBAAiBC,SAAYvC,WAAW6B,YAAYjB,0BAA0B4B,eAAeF,YAAAA,IAAgB,CAAA,CAAE;AAErH,EAAA,GACAnC,UAAUsC,0BAA0B;EAAEvB,UAAUV;AAAiB,CAAA,GACjEP,OAAOoB,UAAU,CAAC,EAAEW,WAAWV,cAAa,OAAQ;EAClDC,IAAIvB,WAAWiC,aAAa5B,WAAAA;EAC5BmB,aAAa1B,gBAAgB4C,MAC3B3C,iBAAiB4C,uBACjB9B,oBAAoBsB,YACpBtB,oBAAoB+B,gBAAgB;EAEtC1B,UAAU,MACDQ,WAAI,aAAA;AACT,UAAMC,MAAM,OAAcC,kBAAW,MAAMN,cAAAA,CAAAA;AAC3C,WAAO,OAAOjB,YAAY;MAAE2B;MAAWV,eAAeK;IAAI,CAAA;EAC5D,CAAA;AACJ,EAAA,GACA1B,OAAO4C,IAAI;AAGb,IAAA,8BAAe/B;",
6
+ "names": ["Effect", "ActivationEvent", "ActivationEvents", "Capability", "Plugin", "AppActivationEvents", "AppPlugin", "AppGraphBuilder", "ClientReady", "ObservabilitySettings", "ObservabilityState", "OperationHandler", "ReactSurface", "meta", "translations", "ObservabilityCapabilities", "ObservabilityEvents", "ObservabilityPlugin", "define", "pipe", "addAppGraphModule", "activate", "addSurfaceModule", "addTranslationsModule", "addModule", "observability", "id", "activatesOn", "Startup", "gen", "obs", "tryPromise", "contributes", "Observability", "SetupSettings", "namespace", "getModuleTag", "firesAfterActivation", "StateReady", "succeed", "Namespace", "downloadLogs", "undefined", "LogDownloader", "addOperationHandlerModule", "allOf", "OperationInvokerReady", "ClientReadyEvent", "make"]
7
+ }
@@ -0,0 +1,22 @@
1
+ import "./chunk-J5LGTIGS.mjs";
2
+
3
+ // src/ObservabilityPlugin.node.ts
4
+ import * as Effect from "effect/Effect";
5
+ import { Capabilities, Capability, Plugin } from "@dxos/app-framework";
6
+ import { AppPlugin } from "@dxos/app-toolkit";
7
+ import { Operation, OperationHandlerSet } from "@dxos/compute";
8
+ import { meta } from "#meta";
9
+ import { ObservabilityOperation } from "#types";
10
+ var ObservabilityPlugin = Plugin.define(meta).pipe(AppPlugin.addOperationHandlerModule({
11
+ activate: Capability.lazy("OperationHandler", () => Promise.resolve({
12
+ default: Capability.makeModule(Effect.fnUntraced(function* () {
13
+ return Capability.contributes(Capabilities.OperationHandler, OperationHandlerSet.make(Operation.withHandler(ObservabilityOperation.SendEvent, () => Effect.void)));
14
+ }))
15
+ }))
16
+ }), Plugin.make);
17
+ var ObservabilityPlugin_node_default = ObservabilityPlugin;
18
+ export {
19
+ ObservabilityPlugin,
20
+ ObservabilityPlugin_node_default as default
21
+ };
22
+ //# sourceMappingURL=ObservabilityPlugin.node.mjs.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../src/ObservabilityPlugin.node.ts"],
4
+ "sourcesContent": ["//\n// Copyright 2026 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/compute';\n\nimport { meta } from '#meta';\nimport { ObservabilityOperation } from '#types';\n\n// TODO(wittjosiah): Hook up.\nexport const ObservabilityPlugin = Plugin.define(meta).pipe(\n AppPlugin.addOperationHandlerModule({\n activate: Capability.lazy('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\nexport default ObservabilityPlugin;\n"],
5
+ "mappings": ";;;AAIA,YAAYA,YAAY;AAExB,SAASC,cAAcC,YAAYC,cAAc;AACjD,SAASC,iBAAiB;AAC1B,SAASC,WAAWC,2BAA2B;AAE/C,SAASC,YAAY;AACrB,SAASC,8BAA8B;AAGhC,IAAMC,sBAAsBN,OAAOO,OAAOH,IAAAA,EAAMI,KACrDP,UAAUQ,0BAA0B;EAClCC,UAAUX,WAAWY,KAAK,oBAAoB,MAC5CC,QAAQC,QAAQ;IACdC,SAASf,WAAWgB,WACXC,kBAAW,aAAA;AAChB,aAAOjB,WAAWkB,YAChBnB,aAAaoB,kBACbf,oBAAoBgB,KAAKjB,UAAUkB,YAAYf,uBAAuBgB,WAAW,MAAaC,WAAI,CAAA,CAAA;IAEtG,CAAA,CAAA;EAEJ,CAAA,CAAA;AAEJ,CAAA,GACAtB,OAAOmB,IAAI;AAGb,IAAA,mCAAeb;",
6
+ "names": ["Effect", "Capabilities", "Capability", "Plugin", "AppPlugin", "Operation", "OperationHandlerSet", "meta", "ObservabilityOperation", "ObservabilityPlugin", "define", "pipe", "addOperationHandlerModule", "activate", "lazy", "Promise", "resolve", "default", "makeModule", "fnUntraced", "contributes", "OperationHandler", "make", "withHandler", "SendEvent", "void"]
7
+ }
@@ -0,0 +1,27 @@
1
+ import "./chunk-J5LGTIGS.mjs";
2
+
3
+ // src/components/ObservabilitySettings/ObservabilitySettings.tsx
4
+ import React from "react";
5
+ import { Message, useTranslation } from "@dxos/react-ui";
6
+ import { Settings as SettingsForm } from "@dxos/react-ui-form";
7
+ import { meta } from "#meta";
8
+ import { Settings } from "#types";
9
+ var ObservabilitySettings = ({ settings, onSettingsChange }) => {
10
+ const { t } = useTranslation(meta.id);
11
+ return /* @__PURE__ */ React.createElement(SettingsForm.Viewport, null, /* @__PURE__ */ React.createElement(SettingsForm.Section, {
12
+ title: t("settings.title", {
13
+ ns: meta.id
14
+ })
15
+ }, /* @__PURE__ */ React.createElement(Message.Root, {
16
+ valence: "info"
17
+ }, /* @__PURE__ */ React.createElement(Message.Content, null, t("observability.description"))), /* @__PURE__ */ React.createElement(SettingsForm.FieldSet, {
18
+ readonly: !onSettingsChange,
19
+ schema: Settings.Settings,
20
+ values: settings,
21
+ onValuesChanged: (values) => onSettingsChange?.(() => values)
22
+ })));
23
+ };
24
+ export {
25
+ ObservabilitySettings as default
26
+ };
27
+ //# sourceMappingURL=ObservabilitySettings-H6UKYDDT.mjs.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../src/components/ObservabilitySettings/ObservabilitySettings.tsx"],
4
+ "sourcesContent": ["//\n// Copyright 2023 DXOS.org\n//\n\nimport React from 'react';\n\nimport { type AppSurface } from '@dxos/app-toolkit/ui';\nimport { Message, useTranslation } from '@dxos/react-ui';\nimport { Settings as SettingsForm } from '@dxos/react-ui-form';\n\nimport { meta } from '#meta';\nimport { Settings } from '#types';\n\nexport type ObservabilitySettingsProps = AppSurface.SettingsArticleProps<Settings.Settings>;\n\nexport const ObservabilitySettings = ({ settings, onSettingsChange }: ObservabilitySettingsProps) => {\n const { t } = useTranslation(meta.id);\n\n return (\n <SettingsForm.Viewport>\n <SettingsForm.Section title={t('settings.title', { ns: meta.id })}>\n <Message.Root valence='info'>\n <Message.Content>{t('observability.description')}</Message.Content>\n </Message.Root>\n <SettingsForm.FieldSet\n readonly={!onSettingsChange}\n schema={Settings.Settings}\n values={settings}\n onValuesChanged={(values) => onSettingsChange?.(() => values)}\n />\n </SettingsForm.Section>\n </SettingsForm.Viewport>\n );\n};\n"],
5
+ "mappings": ";;;AAIA,OAAOA,WAAW;AAGlB,SAASC,SAASC,sBAAsB;AACxC,SAASC,YAAYC,oBAAoB;AAEzC,SAASC,YAAY;AACrB,SAASF,gBAAgB;AAIlB,IAAMG,wBAAwB,CAAC,EAAEC,UAAUC,iBAAgB,MAA8B;AAC9F,QAAM,EAAEC,EAAC,IAAKP,eAAeG,KAAKK,EAAE;AAEpC,SACE,sBAAA,cAACN,aAAaO,UAAQ,MACpB,sBAAA,cAACP,aAAaQ,SAAO;IAACC,OAAOJ,EAAE,kBAAkB;MAAEK,IAAIT,KAAKK;IAAG,CAAA;KAC7D,sBAAA,cAACT,QAAQc,MAAI;IAACC,SAAQ;KACpB,sBAAA,cAACf,QAAQgB,SAAO,MAAER,EAAE,2BAAA,CAAA,CAAA,GAEtB,sBAAA,cAACL,aAAac,UAAQ;IACpBC,UAAU,CAACX;IACXY,QAAQjB,SAASA;IACjBkB,QAAQd;IACRe,iBAAiB,CAACD,WAAWb,mBAAmB,MAAMa,MAAAA;;AAKhE;",
6
+ "names": ["React", "Message", "useTranslation", "Settings", "SettingsForm", "meta", "ObservabilitySettings", "settings", "onSettingsChange", "t", "id", "Viewport", "Section", "title", "ns", "Root", "valence", "Content", "FieldSet", "readonly", "schema", "values", "onValuesChanged"]
7
+ }
@@ -0,0 +1,37 @@
1
+ import "./chunk-J5LGTIGS.mjs";
2
+
3
+ // src/capabilities/app-graph-builder.ts
4
+ import * as Effect from "effect/Effect";
5
+ import { Capability } from "@dxos/app-framework";
6
+ import { AppCapabilities, AppNode } from "@dxos/app-toolkit";
7
+ import { GraphBuilder, NodeMatcher } from "@dxos/plugin-graph";
8
+ import { linkedSegment } from "@dxos/react-ui-attention";
9
+ import { meta } from "#meta";
10
+ var app_graph_builder_default = Capability.makeModule(Effect.fnUntraced(function* () {
11
+ const extensions = yield* Effect.all([
12
+ GraphBuilder.createExtension({
13
+ id: "help",
14
+ match: NodeMatcher.whenRoot,
15
+ connector: (node) => Effect.succeed([
16
+ AppNode.makeDeckCompanion({
17
+ id: linkedSegment("help"),
18
+ label: [
19
+ "help.label",
20
+ {
21
+ ns: meta.id
22
+ }
23
+ ],
24
+ icon: "ph--question--regular",
25
+ data: null,
26
+ position: "hoist",
27
+ joyride: "welcome/feedback"
28
+ })
29
+ ])
30
+ })
31
+ ]);
32
+ return Capability.contributes(AppCapabilities.AppGraphBuilder, extensions);
33
+ }));
34
+ export {
35
+ app_graph_builder_default as default
36
+ };
37
+ //# sourceMappingURL=app-graph-builder-PTVHNKQY.mjs.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../src/capabilities/app-graph-builder.ts"],
4
+ "sourcesContent": ["//\n// Copyright 2025 DXOS.org\n//\n\nimport * as Effect from 'effect/Effect';\n\nimport { Capability } from '@dxos/app-framework';\nimport { AppCapabilities, AppNode } from '@dxos/app-toolkit';\nimport { GraphBuilder, NodeMatcher } from '@dxos/plugin-graph';\nimport { linkedSegment } from '@dxos/react-ui-attention';\n\nimport { meta } from '#meta';\n\nexport default Capability.makeModule(\n Effect.fnUntraced(function* () {\n const extensions = yield* Effect.all([\n GraphBuilder.createExtension({\n id: 'help',\n match: NodeMatcher.whenRoot,\n connector: (node) =>\n Effect.succeed([\n AppNode.makeDeckCompanion({\n id: linkedSegment('help'),\n label: ['help.label', { ns: meta.id }],\n icon: 'ph--question--regular',\n data: null,\n position: 'hoist',\n joyride: 'welcome/feedback',\n }),\n ]),\n }),\n ]);\n\n return Capability.contributes(AppCapabilities.AppGraphBuilder, extensions);\n }),\n);\n"],
5
+ "mappings": ";;;AAIA,YAAYA,YAAY;AAExB,SAASC,kBAAkB;AAC3B,SAASC,iBAAiBC,eAAe;AACzC,SAASC,cAAcC,mBAAmB;AAC1C,SAASC,qBAAqB;AAE9B,SAASC,YAAY;AAErB,IAAA,4BAAeN,WAAWO,WACjBC,kBAAW,aAAA;AAChB,QAAMC,aAAa,OAAcC,WAAI;IACnCP,aAAaQ,gBAAgB;MAC3BC,IAAI;MACJC,OAAOT,YAAYU;MACnBC,WAAW,CAACC,SACHC,eAAQ;QACbf,QAAQgB,kBAAkB;UACxBN,IAAIP,cAAc,MAAA;UAClBc,OAAO;YAAC;YAAc;cAAEC,IAAId,KAAKM;YAAG;;UACpCS,MAAM;UACNC,MAAM;UACNC,UAAU;UACVC,SAAS;QACX,CAAA;OACD;IACL,CAAA;GACD;AAED,SAAOxB,WAAWyB,YAAYxB,gBAAgByB,iBAAiBjB,UAAAA;AACjE,CAAA,CAAA;",
6
+ "names": ["Effect", "Capability", "AppCapabilities", "AppNode", "GraphBuilder", "NodeMatcher", "linkedSegment", "meta", "makeModule", "fnUntraced", "extensions", "all", "createExtension", "id", "match", "whenRoot", "connector", "node", "succeed", "makeDeckCompanion", "label", "ns", "icon", "data", "position", "joyride", "contributes", "AppGraphBuilder"]
7
+ }
@@ -0,0 +1,19 @@
1
+ import "../chunk-J5LGTIGS.mjs";
2
+
3
+ // src/capabilities/index.ts
4
+ import { Capability } from "@dxos/app-framework";
5
+ var AppGraphBuilder = Capability.lazy("AppGraphBuilder", () => import("../app-graph-builder-PTVHNKQY.mjs"));
6
+ var ClientReady = Capability.lazy("ClientReady", () => import("../client-ready-TM7VE6CH.mjs"));
7
+ var OperationHandler = Capability.lazy("OperationHandler", () => import("../operation-handler-4WWRXOHR.mjs"));
8
+ var ReactSurface = Capability.lazy("ReactSurface", () => import("../react-surface-2LUZ7EK5.mjs"));
9
+ var ObservabilitySettings = Capability.lazy("ObservabilitySettings", () => import("../settings-MZYK2WQR.mjs"));
10
+ var ObservabilityState = Capability.lazy("ObservabilityState", () => import("../state-5COCK3KV.mjs"));
11
+ export {
12
+ AppGraphBuilder,
13
+ ClientReady,
14
+ ObservabilitySettings,
15
+ ObservabilityState,
16
+ OperationHandler,
17
+ ReactSurface
18
+ };
19
+ //# sourceMappingURL=index.mjs.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../../src/capabilities/index.ts"],
4
+ "sourcesContent": ["//\n// Copyright 2025 DXOS.org\n//\n\nimport { Capability } from '@dxos/app-framework';\nimport { OperationHandlerSet } from '@dxos/compute';\n\nimport type { ClientReadyOptions } from './client-ready';\n\nexport const AppGraphBuilder = Capability.lazy('AppGraphBuilder', () => import('./app-graph-builder'));\nexport const ClientReady = Capability.lazy<ClientReadyOptions>('ClientReady', () => import('./client-ready'));\nexport const OperationHandler = Capability.lazy<OperationHandlerSet.OperationHandlerSet>(\n 'OperationHandler',\n () => import('./operation-handler'),\n);\nexport const ReactSurface = Capability.lazy('ReactSurface', () => import('./react-surface'));\nexport const ObservabilitySettings = Capability.lazy('ObservabilitySettings', () => import('./settings'));\nexport const ObservabilityState = Capability.lazy('ObservabilityState', () => import('./state'));\n"],
5
+ "mappings": ";;;AAIA,SAASA,kBAAkB;AAKpB,IAAMC,kBAAkBD,WAAWE,KAAK,mBAAmB,MAAM,OAAO,mCAAA,CAAA;AACxE,IAAMC,cAAcH,WAAWE,KAAyB,eAAe,MAAM,OAAO,8BAAA,CAAA;AACpF,IAAME,mBAAmBJ,WAAWE,KACzC,oBACA,MAAM,OAAO,mCAAA,CAAA;AAER,IAAMG,eAAeL,WAAWE,KAAK,gBAAgB,MAAM,OAAO,+BAAA,CAAA;AAClE,IAAMI,wBAAwBN,WAAWE,KAAK,yBAAyB,MAAM,OAAO,0BAAA,CAAA;AACpF,IAAMK,qBAAqBP,WAAWE,KAAK,sBAAsB,MAAM,OAAO,uBAAA,CAAA;",
6
+ "names": ["Capability", "AppGraphBuilder", "lazy", "ClientReady", "OperationHandler", "ReactSurface", "ObservabilitySettings", "ObservabilityState"]
7
+ }
@@ -0,0 +1,22 @@
1
+ import {
2
+ ObservabilityCapabilities_exports,
3
+ ObservabilityOperation_exports
4
+ } from "./chunk-LBYPFOE5.mjs";
5
+ import "./chunk-J5LGTIGS.mjs";
6
+
7
+ // src/operations/capture-user-feedback.ts
8
+ import * as Effect from "effect/Effect";
9
+ import { Capability } from "@dxos/app-framework";
10
+ import { Operation } from "@dxos/compute";
11
+ var handler = ObservabilityOperation_exports.CaptureUserFeedback.pipe(Operation.withHandler(Effect.fnUntraced(function* (input) {
12
+ const observability = yield* Capability.get(ObservabilityCapabilities_exports.Observability);
13
+ observability.feedback.captureUserFeedback({
14
+ message: input.message,
15
+ includeLogs: input.includeLogs
16
+ });
17
+ })));
18
+ var capture_user_feedback_default = handler;
19
+ export {
20
+ capture_user_feedback_default as default
21
+ };
22
+ //# sourceMappingURL=capture-user-feedback-M45PTVMA.mjs.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../src/operations/capture-user-feedback.ts"],
4
+ "sourcesContent": ["//\n// Copyright 2025 DXOS.org\n//\n\nimport * as Effect from 'effect/Effect';\n\nimport { Capability } from '@dxos/app-framework';\nimport { Operation } from '@dxos/compute';\n\nimport { ObservabilityCapabilities, ObservabilityOperation } from '../types';\n\nconst handler: Operation.WithHandler<typeof ObservabilityOperation.CaptureUserFeedback> =\n ObservabilityOperation.CaptureUserFeedback.pipe(\n Operation.withHandler(\n Effect.fnUntraced(function* (input) {\n const observability = yield* Capability.get(ObservabilityCapabilities.Observability);\n observability.feedback.captureUserFeedback({ message: input.message, includeLogs: input.includeLogs });\n }),\n ),\n );\n\nexport default handler;\n"],
5
+ "mappings": ";;;;;;;AAIA,YAAYA,YAAY;AAExB,SAASC,kBAAkB;AAC3B,SAASC,iBAAiB;AAI1B,IAAMC,UACJC,+BAAuBC,oBAAoBC,KACzCC,UAAUC,YACDC,kBAAW,WAAWC,OAAK;AAChC,QAAMC,gBAAgB,OAAOC,WAAWC,IAAIC,kCAA0BC,aAAa;AACnFJ,gBAAcK,SAASC,oBAAoB;IAAEC,SAASR,MAAMQ;IAASC,aAAaT,MAAMS;EAAY,CAAA;AACtG,CAAA,CAAA,CAAA;AAIN,IAAA,gCAAehB;",
6
+ "names": ["Effect", "Capability", "Operation", "handler", "ObservabilityOperation", "CaptureUserFeedback", "pipe", "Operation", "withHandler", "fnUntraced", "input", "observability", "Capability", "get", "ObservabilityCapabilities", "Observability", "feedback", "captureUserFeedback", "message", "includeLogs"]
7
+ }
@@ -1,16 +1,19 @@
1
1
  // src/meta.ts
2
2
  import { trim } from "@dxos/util";
3
3
  var meta = {
4
- id: "dxos.org/plugin/observability",
4
+ id: "org.dxos.plugin.observability",
5
5
  name: "Telemetry",
6
6
  description: trim`
7
7
  Application observability and telemetry collection for monitoring performance and usage patterns.
8
8
  Track metrics, logs, and traces for system health and analytics.
9
9
  `,
10
- icon: "ph--eye--regular"
10
+ icon: "ph--eye--regular",
11
+ tags: [
12
+ "system"
13
+ ]
11
14
  };
12
15
 
13
16
  export {
14
17
  meta
15
18
  };
16
- //# sourceMappingURL=chunk-3XZDP7JS.mjs.map
19
+ //# sourceMappingURL=chunk-ANCT53Y3.mjs.map
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
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: 'dxos.org/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"]
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 tags: ['system'],\n};\n"],
5
+ "mappings": ";AAKA,SAASA,YAAY;AAEd,IAAMC,OAAoB;EAC/BC,IAAI;EACJC,MAAM;EACNC,aAAaJ;;;;EAIbK,MAAM;EACNC,MAAM;IAAC;;AACT;",
6
+ "names": ["trim", "meta", "id", "name", "description", "icon", "tags"]
7
7
  }
@@ -0,0 +1,10 @@
1
+ var __defProp = Object.defineProperty;
2
+ var __export = (target, all) => {
3
+ for (var name in all)
4
+ __defProp(target, name, { get: all[name], enumerable: true });
5
+ };
6
+
7
+ export {
8
+ __export
9
+ };
10
+ //# sourceMappingURL=chunk-J5LGTIGS.mjs.map
@@ -0,0 +1,132 @@
1
+ import {
2
+ __export
3
+ } from "./chunk-J5LGTIGS.mjs";
4
+
5
+ // src/types/ObservabilityCapabilities.ts
6
+ var ObservabilityCapabilities_exports = {};
7
+ __export(ObservabilityCapabilities_exports, {
8
+ ClientCapability: () => ClientCapability,
9
+ LogDownloader: () => LogDownloader,
10
+ Namespace: () => Namespace,
11
+ Observability: () => Observability,
12
+ Settings: () => Settings,
13
+ State: () => State,
14
+ StateSchema: () => StateSchema
15
+ });
16
+ import * as Schema from "effect/Schema";
17
+ import { Capability } from "@dxos/app-framework";
18
+ import { meta } from "#meta";
19
+ var Namespace = Capability.make(`${meta.id}.capability.namespace`);
20
+ var Settings = Capability.make(`${meta.id}.capability.settings`);
21
+ var StateSchema = Schema.mutable(Schema.Struct({
22
+ group: Schema.optional(Schema.String),
23
+ notified: Schema.optional(Schema.Boolean)
24
+ }));
25
+ var State = Capability.make(`${meta.id}.capability.state`);
26
+ var Observability = Capability.make(`${meta.id}.capability.observability`);
27
+ var LogDownloader = Capability.make(`${meta.id}.capability.log-downloader`);
28
+ var ClientCapability = Capability.make("org.dxos.plugin.client.capability.client");
29
+
30
+ // src/types/ObservabilityEvents.ts
31
+ var ObservabilityEvents_exports = {};
32
+ __export(ObservabilityEvents_exports, {
33
+ ClientReadyEvent: () => ClientReadyEvent,
34
+ StateReady: () => StateReady
35
+ });
36
+ import { ActivationEvent } from "@dxos/app-framework";
37
+ import { AppActivationEvents } from "@dxos/app-toolkit";
38
+ import { meta as meta2 } from "#meta";
39
+ var StateReady = AppActivationEvents.createStateEvent(meta2.id);
40
+ var ClientReadyEvent = ActivationEvent.make("org.dxos.plugin.client.event.client-ready");
41
+
42
+ // src/types/ObservabilityOperation.ts
43
+ var ObservabilityOperation_exports = {};
44
+ __export(ObservabilityOperation_exports, {
45
+ CaptureUserFeedback: () => CaptureUserFeedback,
46
+ SendEvent: () => SendEvent,
47
+ Toggle: () => Toggle,
48
+ UserFeedback: () => UserFeedback
49
+ });
50
+ import * as Schema2 from "effect/Schema";
51
+ import { Capability as Capability2 } from "@dxos/app-framework";
52
+ import { Operation } from "@dxos/compute";
53
+ import { Format } from "@dxos/echo";
54
+ import { meta as meta3 } from "#meta";
55
+ import { translations } from "#translations";
56
+ var t = translations[0]["en-US"][meta3.id];
57
+ var UserFeedback = Schema2.Struct({
58
+ message: Format.Text.pipe(Schema2.nonEmptyString(), Schema2.maxLength(4096), Schema2.annotations({
59
+ title: t["feedback-textarea.label"],
60
+ description: t["feedback-textarea.placeholder"]
61
+ })),
62
+ includeLogs: Schema2.Boolean.pipe(Schema2.annotations({
63
+ title: t["include-debug-logs.label"]
64
+ }), Schema2.optional)
65
+ });
66
+ var OBSERVABILITY_OPERATION = `${meta3.id}.operation`;
67
+ var Toggle = Operation.make({
68
+ meta: {
69
+ key: `${OBSERVABILITY_OPERATION}.toggle`,
70
+ name: "Toggle Observability",
71
+ description: "Toggle observability on or off."
72
+ },
73
+ services: [
74
+ Capability2.Service
75
+ ],
76
+ input: Schema2.Struct({
77
+ state: Schema2.optional(Schema2.Boolean)
78
+ }),
79
+ output: Schema2.Boolean
80
+ });
81
+ var CaptureUserFeedback = Operation.make({
82
+ meta: {
83
+ key: `${OBSERVABILITY_OPERATION}.capture-feedback`,
84
+ name: "Capture User Feedback",
85
+ description: "Capture user feedback."
86
+ },
87
+ services: [
88
+ Capability2.Service
89
+ ],
90
+ input: UserFeedback,
91
+ output: Schema2.Void
92
+ });
93
+ var SendEvent = Operation.make({
94
+ meta: {
95
+ key: `${OBSERVABILITY_OPERATION}.send-event`,
96
+ name: "Send Event",
97
+ description: "Send an observability event."
98
+ },
99
+ services: [
100
+ Capability2.Service
101
+ ],
102
+ input: Schema2.Struct({
103
+ name: Schema2.String.annotations({
104
+ description: "The name of the event."
105
+ }),
106
+ properties: Schema2.optional(Schema2.Any).annotations({
107
+ description: "Event properties."
108
+ })
109
+ }),
110
+ output: Schema2.Void
111
+ });
112
+
113
+ // src/types/Settings.ts
114
+ var Settings_exports = {};
115
+ __export(Settings_exports, {
116
+ Settings: () => Settings2
117
+ });
118
+ import * as Schema3 from "effect/Schema";
119
+ var Settings2 = Schema3.mutable(Schema3.Struct({
120
+ enabled: Schema3.Boolean.annotations({
121
+ title: "Enable telemetry",
122
+ description: "Send anonymous usage and performance data to help improve the product."
123
+ })
124
+ }));
125
+
126
+ export {
127
+ ObservabilityCapabilities_exports,
128
+ ObservabilityEvents_exports,
129
+ ObservabilityOperation_exports,
130
+ Settings_exports
131
+ };
132
+ //# sourceMappingURL=chunk-LBYPFOE5.mjs.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../src/types/ObservabilityCapabilities.ts", "../../../src/types/ObservabilityEvents.ts", "../../../src/types/ObservabilityOperation.ts", "../../../src/types/Settings.ts"],
4
+ "sourcesContent": ["//\n// Copyright 2025 DXOS.org\n//\n\n// @import-as-namespace\n\nimport { type Atom } from '@effect-atom/atom-react';\nimport * as Schema from 'effect/Schema';\n\nimport { Capability } from '@dxos/app-framework';\nimport { type Client } from '@dxos/client';\nimport { type Observability as ObservabilityNs } from '@dxos/observability';\n\nimport { meta } from '#meta';\n\nexport const Namespace = Capability.make<string>(`${meta.id}.capability.namespace`);\n\nexport const Settings = Capability.make<Atom.Writable<import('./Settings').Settings>>(`${meta.id}.capability.settings`);\n\nexport const StateSchema = Schema.mutable(\n Schema.Struct({\n group: Schema.optional(Schema.String),\n notified: Schema.optional(Schema.Boolean),\n }),\n);\n\nexport type State = Schema.Schema.Type<typeof StateSchema>;\n\nexport const State = Capability.make<Atom.Writable<State>>(`${meta.id}.capability.state`);\n\nexport const Observability = Capability.make<ObservabilityNs.Observability>(`${meta.id}.capability.observability`);\n\n/**\n * Optional capability — when contributed, the help/feedback UI exposes a \"Download logs\" action.\n * The callback is responsible for the entire download (read store, encode, save file).\n */\nexport type LogDownloader = () => void | Promise<void>;\nexport const LogDownloader = Capability.make<LogDownloader>(`${meta.id}.capability.log-downloader`);\n\n// NOTE: This is cloned from the client plugin to avoid circular dependencies.\n// TODO(burdon): Figure out how to share defs.\nexport const ClientCapability = Capability.make<Client>('org.dxos.plugin.client.capability.client');\n", "//\n// Copyright 2025 DXOS.org\n//\n\n// @import-as-namespace\n\nimport { ActivationEvent } from '@dxos/app-framework';\nimport { AppActivationEvents } from '@dxos/app-toolkit';\n\nimport { meta } from '#meta';\n\nexport const StateReady: ActivationEvent.ActivationEvent = AppActivationEvents.createStateEvent(meta.id);\n\n// NOTE: This is cloned from the client plugin to avoid circular dependencies.\nexport const ClientReadyEvent = ActivationEvent.make('org.dxos.plugin.client.event.client-ready');\n", "//\n// Copyright 2025 DXOS.org\n//\n\n// @import-as-namespace\n\nimport * as Schema from 'effect/Schema';\n\nimport { Capability } from '@dxos/app-framework';\nimport { Operation } from '@dxos/compute';\nimport { Format } from '@dxos/echo';\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\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", "//\n// Copyright 2023 DXOS.org\n//\n\n// @import-as-namespace\n\nimport * as Schema from 'effect/Schema';\n\nexport const Settings = Schema.mutable(\n Schema.Struct({\n enabled: Schema.Boolean.annotations({\n title: 'Enable telemetry',\n description: 'Send anonymous usage and performance data to help improve the product.',\n }),\n // TODO(wittjosiah): Separate settings for each observability feature.\n // metrics?: boolean;\n // telemetry?: boolean;\n // errors?: boolean;\n }),\n);\n\nexport interface Settings extends Schema.Schema.Type<typeof Settings> {}\n"],
5
+ "mappings": ";;;;;AAAA;;;;;;;;;;AAOA,YAAYA,YAAY;AAExB,SAASC,kBAAkB;AAI3B,SAASC,YAAY;AAEd,IAAMC,YAAYF,WAAWG,KAAa,GAAGF,KAAKG,EAAE,uBAAuB;AAE3E,IAAMC,WAAWL,WAAWG,KAAmD,GAAGF,KAAKG,EAAE,sBAAsB;AAE/G,IAAME,cAAqBC,eACzBC,cAAO;EACZC,OAAcC,gBAAgBC,aAAM;EACpCC,UAAiBF,gBAAgBG,cAAO;AAC1C,CAAA,CAAA;AAKK,IAAMC,QAAQd,WAAWG,KAA2B,GAAGF,KAAKG,EAAE,mBAAmB;AAEjF,IAAMW,gBAAgBf,WAAWG,KAAoC,GAAGF,KAAKG,EAAE,2BAA2B;AAO1G,IAAMY,gBAAgBhB,WAAWG,KAAoB,GAAGF,KAAKG,EAAE,4BAA4B;AAI3F,IAAMa,mBAAmBjB,WAAWG,KAAa,0CAAA;;;ACzCxD;;;;;AAMA,SAASe,uBAAuB;AAChC,SAASC,2BAA2B;AAEpC,SAASC,QAAAA,aAAY;AAEd,IAAMC,aAA8CF,oBAAoBG,iBAAiBF,MAAKG,EAAE;AAGhG,IAAMC,mBAAmBN,gBAAgBO,KAAK,2CAAA;;;ACdrD;;;;;;;AAMA,YAAYC,aAAY;AAExB,SAASC,cAAAA,mBAAkB;AAC3B,SAASC,iBAAiB;AAC1B,SAASC,cAAc;AAEvB,SAASC,QAAAA,aAAY;AACrB,SAASC,oBAAoB;AAE7B,IAAMC,IAAID,aAAa,CAAA,EAAG,OAAA,EAASD,MAAKG,EAAE;AAEnC,IAAMC,eAAsBC,eAAO;EACxCC,SAASP,OAAOQ,KAAKC,KACZC,uBAAc,GACdC,kBAAU,IAAA,GACVC,oBAAY;IACjBC,OAAOV,EAAE,yBAAA;IACTW,aAAaX,EAAE,+BAAA;EACjB,CAAA,CAAA;EAEFY,aAAoBC,gBAAQP,KACnBG,oBAAY;IACjBC,OAAOV,EAAE,0BAAA;EACX,CAAA,GACOc,gBAAQ;AAEnB,CAAA;AAIA,IAAMC,0BAA0B,GAAGjB,MAAKG,EAAE;AAEnC,IAAMe,SAASpB,UAAUqB,KAAK;EACnCnB,MAAM;IACJoB,KAAK,GAAGH,uBAAAA;IACRI,MAAM;IACNR,aAAa;EACf;EACAS,UAAU;IAACzB,YAAW0B;;EACtBC,OAAcnB,eAAO;IACnBoB,OAAcT,iBAAgBD,eAAO;EACvC,CAAA;EACAW,QAAeX;AACjB,CAAA;AAEO,IAAMY,sBAAsB7B,UAAUqB,KAAK;EAChDnB,MAAM;IACJoB,KAAK,GAAGH,uBAAAA;IACRI,MAAM;IACNR,aAAa;EACf;EACAS,UAAU;IAACzB,YAAW0B;;EACtBC,OAAOpB;EACPsB,QAAeE;AACjB,CAAA;AAEO,IAAMC,YAAY/B,UAAUqB,KAAK;EACtCnB,MAAM;IACJoB,KAAK,GAAGH,uBAAAA;IACRI,MAAM;IACNR,aAAa;EACf;EACAS,UAAU;IAACzB,YAAW0B;;EACtBC,OAAcnB,eAAO;IACnBgB,MAAaS,eAAOnB,YAAY;MAAEE,aAAa;IAAyB,CAAA;IACxEkB,YAAmBf,iBAAgBgB,WAAG,EAAErB,YAAY;MAAEE,aAAa;IAAoB,CAAA;EACzF,CAAA;EACAa,QAAeE;AACjB,CAAA;;;AC1EA;;kBAAAK;;AAMA,YAAYC,aAAY;AAEjB,IAAMD,YAAkBE,gBACtBC,eAAO;EACZC,SAAgBC,gBAAQC,YAAY;IAClCC,OAAO;IACPC,aAAa;EACf,CAAA;AAKF,CAAA,CAAA;",
6
+ "names": ["Schema", "Capability", "meta", "Namespace", "make", "id", "Settings", "StateSchema", "mutable", "Struct", "group", "optional", "String", "notified", "Boolean", "State", "Observability", "LogDownloader", "ClientCapability", "ActivationEvent", "AppActivationEvents", "meta", "StateReady", "createStateEvent", "id", "ClientReadyEvent", "make", "Schema", "Capability", "Operation", "Format", "meta", "translations", "t", "id", "UserFeedback", "Struct", "message", "Text", "pipe", "nonEmptyString", "maxLength", "annotations", "title", "description", "includeLogs", "Boolean", "optional", "OBSERVABILITY_OPERATION", "Toggle", "make", "key", "name", "services", "Service", "input", "state", "output", "CaptureUserFeedback", "Void", "SendEvent", "String", "properties", "Any", "Settings", "Schema", "mutable", "Struct", "enabled", "Boolean", "annotations", "title", "description"]
7
+ }
@@ -0,0 +1,8 @@
1
+ // src/operations/index.ts
2
+ import { OperationHandlerSet } from "@dxos/compute";
3
+ var ObservabilityOperationHandlerSet = OperationHandlerSet.lazy(() => import("./capture-user-feedback-M45PTVMA.mjs"), () => import("./send-event-DPYXUUL5.mjs"), () => import("./toggle-VKTFKVFC.mjs"));
4
+
5
+ export {
6
+ ObservabilityOperationHandlerSet
7
+ };
8
+ //# sourceMappingURL=chunk-YZMTBNAS.mjs.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../src/operations/index.ts"],
4
+ "sourcesContent": ["//\n// Copyright 2025 DXOS.org\n//\n\nimport { OperationHandlerSet } from '@dxos/compute';\n\nexport const ObservabilityOperationHandlerSet = OperationHandlerSet.lazy(\n () => import('./capture-user-feedback'),\n () => import('./send-event'),\n () => import('./toggle'),\n);\n"],
5
+ "mappings": ";AAIA,SAASA,2BAA2B;AAE7B,IAAMC,mCAAmCD,oBAAoBE,KAClE,MAAM,OAAO,sCAAA,GACb,MAAM,OAAO,2BAAA,GACb,MAAM,OAAO,uBAAA,CAAA;",
6
+ "names": ["OperationHandlerSet", "ObservabilityOperationHandlerSet", "lazy"]
7
+ }