@dxos/plugin-observability 0.8.4-main.c4373fc → 0.8.4-main.c85a9c8dae

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 (228) hide show
  1. package/dist/lib/browser/HelpContainer-FS6R75L5.mjs +74 -0
  2. package/dist/lib/browser/HelpContainer-FS6R75L5.mjs.map +7 -0
  3. package/dist/lib/browser/ObservabilitySettings-M63CU4QW.mjs +12 -0
  4. package/dist/lib/browser/ObservabilitySettings-M63CU4QW.mjs.map +7 -0
  5. package/dist/lib/browser/app-graph-builder-7PBOGFFG.mjs +45 -0
  6. package/dist/lib/browser/app-graph-builder-7PBOGFFG.mjs.map +7 -0
  7. package/dist/lib/browser/chunk-3XZDP7JS.mjs +16 -0
  8. package/dist/lib/browser/chunk-3XZDP7JS.mjs.map +7 -0
  9. package/dist/lib/browser/chunk-BURIOTMF.mjs +41 -0
  10. package/dist/lib/browser/chunk-BURIOTMF.mjs.map +7 -0
  11. package/dist/lib/browser/chunk-TB4V5AI3.mjs +138 -0
  12. package/dist/lib/browser/chunk-TB4V5AI3.mjs.map +7 -0
  13. package/dist/lib/browser/chunk-WYDANA3A.mjs +32 -0
  14. package/dist/lib/browser/chunk-WYDANA3A.mjs.map +7 -0
  15. package/dist/lib/browser/chunk-X2MDAD6K.mjs +10 -0
  16. package/dist/lib/browser/chunk-X2MDAD6K.mjs.map +7 -0
  17. package/dist/lib/browser/cli/index.mjs +24 -0
  18. package/dist/lib/browser/cli/index.mjs.map +7 -0
  19. package/dist/lib/browser/client-ready-QVJQMW75.mjs +102 -0
  20. package/dist/lib/browser/client-ready-QVJQMW75.mjs.map +7 -0
  21. package/dist/lib/browser/index.mjs +74 -109
  22. package/dist/lib/browser/index.mjs.map +4 -4
  23. package/dist/lib/browser/meta.json +1 -1
  24. package/dist/lib/browser/operation-resolver-MDAGP5UW.mjs +78 -0
  25. package/dist/lib/browser/operation-resolver-MDAGP5UW.mjs.map +7 -0
  26. package/dist/lib/browser/react-surface-R2TPU5TH.mjs +39 -0
  27. package/dist/lib/browser/react-surface-R2TPU5TH.mjs.map +7 -0
  28. package/dist/lib/browser/settings-K3HZEWSK.mjs +37 -0
  29. package/dist/lib/browser/settings-K3HZEWSK.mjs.map +7 -0
  30. package/dist/lib/browser/state-YS5COCDC.mjs +30 -0
  31. package/dist/lib/browser/state-YS5COCDC.mjs.map +7 -0
  32. package/dist/lib/browser/types/index.mjs +12 -4
  33. package/dist/lib/node-esm/HelpContainer-XOCD23EA.mjs +75 -0
  34. package/dist/lib/node-esm/HelpContainer-XOCD23EA.mjs.map +7 -0
  35. package/dist/lib/node-esm/ObservabilitySettings-TONQ3AAW.mjs +13 -0
  36. package/dist/lib/node-esm/ObservabilitySettings-TONQ3AAW.mjs.map +7 -0
  37. package/dist/lib/node-esm/app-graph-builder-D77CGMCQ.mjs +46 -0
  38. package/dist/lib/node-esm/app-graph-builder-D77CGMCQ.mjs.map +7 -0
  39. package/dist/lib/node-esm/chunk-2ECMMPZY.mjs +18 -0
  40. package/dist/lib/node-esm/chunk-2ECMMPZY.mjs.map +7 -0
  41. package/dist/lib/node-esm/chunk-BGK3JUVL.mjs +42 -0
  42. package/dist/lib/node-esm/chunk-BGK3JUVL.mjs.map +7 -0
  43. package/dist/lib/node-esm/chunk-IDJN2AON.mjs +33 -0
  44. package/dist/lib/node-esm/chunk-IDJN2AON.mjs.map +7 -0
  45. package/dist/lib/node-esm/chunk-NH4PVNUO.mjs +139 -0
  46. package/dist/lib/node-esm/chunk-NH4PVNUO.mjs.map +7 -0
  47. package/dist/lib/node-esm/chunk-WYLPEENT.mjs +12 -0
  48. package/dist/lib/node-esm/chunk-WYLPEENT.mjs.map +7 -0
  49. package/dist/lib/node-esm/cli/index.mjs +25 -0
  50. package/dist/lib/node-esm/cli/index.mjs.map +7 -0
  51. package/dist/lib/node-esm/client-ready-LXKSSYVT.mjs +103 -0
  52. package/dist/lib/node-esm/client-ready-LXKSSYVT.mjs.map +7 -0
  53. package/dist/lib/node-esm/index.mjs +74 -109
  54. package/dist/lib/node-esm/index.mjs.map +4 -4
  55. package/dist/lib/node-esm/meta.json +1 -1
  56. package/dist/lib/node-esm/operation-resolver-MV5V25GK.mjs +79 -0
  57. package/dist/lib/node-esm/operation-resolver-MV5V25GK.mjs.map +7 -0
  58. package/dist/lib/node-esm/react-surface-XXT3YBYG.mjs +40 -0
  59. package/dist/lib/node-esm/react-surface-XXT3YBYG.mjs.map +7 -0
  60. package/dist/lib/node-esm/settings-M7JG6IRW.mjs +38 -0
  61. package/dist/lib/node-esm/settings-M7JG6IRW.mjs.map +7 -0
  62. package/dist/lib/node-esm/state-LU6EARPH.mjs +31 -0
  63. package/dist/lib/node-esm/state-LU6EARPH.mjs.map +7 -0
  64. package/dist/lib/node-esm/types/index.mjs +12 -4
  65. package/dist/types/src/ObservabilityPlugin.d.ts +3 -2
  66. package/dist/types/src/ObservabilityPlugin.d.ts.map +1 -1
  67. package/dist/types/src/capabilities/app-graph-builder/app-graph-builder.d.ts +6 -0
  68. package/dist/types/src/capabilities/app-graph-builder/app-graph-builder.d.ts.map +1 -0
  69. package/dist/types/src/capabilities/app-graph-builder/index.d.ts +3 -0
  70. package/dist/types/src/capabilities/app-graph-builder/index.d.ts.map +1 -0
  71. package/dist/types/src/capabilities/client-ready/client-ready.d.ts +10 -0
  72. package/dist/types/src/capabilities/client-ready/client-ready.d.ts.map +1 -0
  73. package/dist/types/src/capabilities/client-ready/index.d.ts +4 -0
  74. package/dist/types/src/capabilities/client-ready/index.d.ts.map +1 -0
  75. package/dist/types/src/capabilities/index.d.ts +6 -16
  76. package/dist/types/src/capabilities/index.d.ts.map +1 -1
  77. package/dist/types/src/capabilities/operation-resolver/index.d.ts +5 -0
  78. package/dist/types/src/capabilities/operation-resolver/index.d.ts.map +1 -0
  79. package/dist/types/src/capabilities/operation-resolver/operation-resolver.d.ts +7 -0
  80. package/dist/types/src/capabilities/operation-resolver/operation-resolver.d.ts.map +1 -0
  81. package/dist/types/src/capabilities/react-surface/index.d.ts +3 -0
  82. package/dist/types/src/capabilities/react-surface/index.d.ts.map +1 -0
  83. package/dist/types/src/capabilities/react-surface/react-surface.d.ts +5 -0
  84. package/dist/types/src/capabilities/react-surface/react-surface.d.ts.map +1 -0
  85. package/dist/types/src/capabilities/settings/index.d.ts +7 -0
  86. package/dist/types/src/capabilities/settings/index.d.ts.map +1 -0
  87. package/dist/types/src/capabilities/settings/settings.d.ts +10 -0
  88. package/dist/types/src/capabilities/settings/settings.d.ts.map +1 -0
  89. package/dist/types/src/capabilities/state/index.d.ts +11 -0
  90. package/dist/types/src/capabilities/state/index.d.ts.map +1 -0
  91. package/dist/types/src/capabilities/state/state.d.ts +13 -0
  92. package/dist/types/src/capabilities/state/state.d.ts.map +1 -0
  93. package/dist/types/src/cli/index.d.ts +2 -0
  94. package/dist/types/src/cli/index.d.ts.map +1 -0
  95. package/dist/types/src/cli/plugin.d.ts +3 -0
  96. package/dist/types/src/cli/plugin.d.ts.map +1 -0
  97. package/dist/types/src/components/FeedbackForm.d.ts +3 -3
  98. package/dist/types/src/components/FeedbackForm.d.ts.map +1 -1
  99. package/dist/types/src/components/FeedbackForm.stories.d.ts +35 -0
  100. package/dist/types/src/components/FeedbackForm.stories.d.ts.map +1 -0
  101. package/dist/types/src/components/index.d.ts +0 -2
  102. package/dist/types/src/components/index.d.ts.map +1 -1
  103. package/dist/types/src/containers/HelpContainer/HelpContainer.d.ts +4 -0
  104. package/dist/types/src/containers/HelpContainer/HelpContainer.d.ts.map +1 -0
  105. package/dist/types/src/containers/HelpContainer/index.d.ts +3 -0
  106. package/dist/types/src/containers/HelpContainer/index.d.ts.map +1 -0
  107. package/dist/types/src/{components → containers/ObservabilitySettings}/ObservabilitySettings.d.ts +4 -2
  108. package/dist/types/src/containers/ObservabilitySettings/ObservabilitySettings.d.ts.map +1 -0
  109. package/dist/types/src/containers/ObservabilitySettings/index.d.ts +3 -0
  110. package/dist/types/src/containers/ObservabilitySettings/index.d.ts.map +1 -0
  111. package/dist/types/src/containers/index.d.ts +6 -0
  112. package/dist/types/src/containers/index.d.ts.map +1 -0
  113. package/dist/types/src/index.d.ts +1 -2
  114. package/dist/types/src/index.d.ts.map +1 -1
  115. package/dist/types/src/meta.d.ts +2 -2
  116. package/dist/types/src/meta.d.ts.map +1 -1
  117. package/dist/types/src/translations.d.ts +3 -2
  118. package/dist/types/src/translations.d.ts.map +1 -1
  119. package/dist/types/src/types/capabilities.d.ts +27 -0
  120. package/dist/types/src/types/capabilities.d.ts.map +1 -0
  121. package/dist/types/src/types/events.d.ts +6 -0
  122. package/dist/types/src/types/events.d.ts.map +1 -0
  123. package/dist/types/src/types/index.d.ts +2 -0
  124. package/dist/types/src/types/index.d.ts.map +1 -1
  125. package/dist/types/src/types/schema.d.ts +57 -307
  126. package/dist/types/src/types/schema.d.ts.map +1 -1
  127. package/dist/types/tsconfig.tsbuildinfo +1 -1
  128. package/package.json +46 -34
  129. package/src/ObservabilityPlugin.ts +47 -46
  130. package/src/capabilities/app-graph-builder/app-graph-builder.ts +43 -0
  131. package/src/capabilities/app-graph-builder/index.ts +7 -0
  132. package/src/capabilities/client-ready/client-ready.ts +84 -0
  133. package/src/capabilities/client-ready/index.ts +9 -0
  134. package/src/capabilities/index.ts +6 -10
  135. package/src/capabilities/operation-resolver/index.ts +7 -0
  136. package/src/capabilities/operation-resolver/operation-resolver.ts +76 -0
  137. package/src/capabilities/react-surface/index.ts +7 -0
  138. package/src/capabilities/react-surface/react-surface.tsx +35 -0
  139. package/src/capabilities/settings/index.ts +7 -0
  140. package/src/capabilities/settings/settings.ts +34 -0
  141. package/src/capabilities/state/index.ts +7 -0
  142. package/src/capabilities/state/state.ts +29 -0
  143. package/src/cli/index.ts +5 -0
  144. package/src/cli/plugin.ts +28 -0
  145. package/src/components/FeedbackForm.stories.tsx +33 -0
  146. package/src/components/FeedbackForm.tsx +17 -66
  147. package/src/components/index.ts +0 -2
  148. package/src/containers/HelpContainer/HelpContainer.tsx +55 -0
  149. package/src/containers/HelpContainer/index.ts +7 -0
  150. package/src/containers/ObservabilitySettings/ObservabilitySettings.tsx +53 -0
  151. package/src/containers/ObservabilitySettings/index.ts +7 -0
  152. package/src/containers/index.ts +14 -0
  153. package/src/index.ts +1 -2
  154. package/src/meta.ts +7 -2
  155. package/src/translations.ts +3 -3
  156. package/src/types/capabilities.ts +34 -0
  157. package/src/types/events.ts +15 -0
  158. package/src/types/index.ts +2 -0
  159. package/src/types/schema.ts +62 -194
  160. package/dist/lib/browser/app-graph-builder-MBPI6TGN.mjs +0 -44
  161. package/dist/lib/browser/app-graph-builder-MBPI6TGN.mjs.map +0 -7
  162. package/dist/lib/browser/chunk-5VM6D2EF.mjs +0 -179
  163. package/dist/lib/browser/chunk-5VM6D2EF.mjs.map +0 -7
  164. package/dist/lib/browser/chunk-G754T676.mjs +0 -18
  165. package/dist/lib/browser/chunk-G754T676.mjs.map +0 -7
  166. package/dist/lib/browser/chunk-RS66U4WR.mjs +0 -191
  167. package/dist/lib/browser/chunk-RS66U4WR.mjs.map +0 -7
  168. package/dist/lib/browser/chunk-SCJ3DALL.mjs +0 -11
  169. package/dist/lib/browser/chunk-SCJ3DALL.mjs.map +0 -7
  170. package/dist/lib/browser/client-ready-IV2NFN4M.mjs +0 -102
  171. package/dist/lib/browser/client-ready-IV2NFN4M.mjs.map +0 -7
  172. package/dist/lib/browser/intent-resolver-IZTKLP6N.mjs +0 -77
  173. package/dist/lib/browser/intent-resolver-IZTKLP6N.mjs.map +0 -7
  174. package/dist/lib/browser/react-surface-N7WRUNJ2.mjs +0 -32
  175. package/dist/lib/browser/react-surface-N7WRUNJ2.mjs.map +0 -7
  176. package/dist/lib/browser/settings-JOZ5BZDO.mjs +0 -25
  177. package/dist/lib/browser/settings-JOZ5BZDO.mjs.map +0 -7
  178. package/dist/lib/browser/state-OVWHPB7K.mjs +0 -26
  179. package/dist/lib/browser/state-OVWHPB7K.mjs.map +0 -7
  180. package/dist/lib/node-esm/app-graph-builder-LHLEY5QQ.mjs +0 -45
  181. package/dist/lib/node-esm/app-graph-builder-LHLEY5QQ.mjs.map +0 -7
  182. package/dist/lib/node-esm/chunk-4SMSG2RN.mjs +0 -13
  183. package/dist/lib/node-esm/chunk-4SMSG2RN.mjs.map +0 -7
  184. package/dist/lib/node-esm/chunk-H3QRVOIY.mjs +0 -180
  185. package/dist/lib/node-esm/chunk-H3QRVOIY.mjs.map +0 -7
  186. package/dist/lib/node-esm/chunk-SCOMEIPJ.mjs +0 -192
  187. package/dist/lib/node-esm/chunk-SCOMEIPJ.mjs.map +0 -7
  188. package/dist/lib/node-esm/chunk-ZS4YMD63.mjs +0 -19
  189. package/dist/lib/node-esm/chunk-ZS4YMD63.mjs.map +0 -7
  190. package/dist/lib/node-esm/client-ready-SL6BA2IP.mjs +0 -103
  191. package/dist/lib/node-esm/client-ready-SL6BA2IP.mjs.map +0 -7
  192. package/dist/lib/node-esm/intent-resolver-VW7XPMBG.mjs +0 -78
  193. package/dist/lib/node-esm/intent-resolver-VW7XPMBG.mjs.map +0 -7
  194. package/dist/lib/node-esm/react-surface-3PNZVMXB.mjs +0 -33
  195. package/dist/lib/node-esm/react-surface-3PNZVMXB.mjs.map +0 -7
  196. package/dist/lib/node-esm/settings-2AOUWDQY.mjs +0 -26
  197. package/dist/lib/node-esm/settings-2AOUWDQY.mjs.map +0 -7
  198. package/dist/lib/node-esm/state-5UHYHOJV.mjs +0 -27
  199. package/dist/lib/node-esm/state-5UHYHOJV.mjs.map +0 -7
  200. package/dist/types/src/capabilities/app-graph-builder.d.ts +0 -4
  201. package/dist/types/src/capabilities/app-graph-builder.d.ts.map +0 -1
  202. package/dist/types/src/capabilities/capabilities.d.ts +0 -12
  203. package/dist/types/src/capabilities/capabilities.d.ts.map +0 -1
  204. package/dist/types/src/capabilities/client-ready.d.ts +0 -10
  205. package/dist/types/src/capabilities/client-ready.d.ts.map +0 -1
  206. package/dist/types/src/capabilities/intent-resolver.d.ts +0 -7
  207. package/dist/types/src/capabilities/intent-resolver.d.ts.map +0 -1
  208. package/dist/types/src/capabilities/react-surface.d.ts +0 -4
  209. package/dist/types/src/capabilities/react-surface.d.ts.map +0 -1
  210. package/dist/types/src/capabilities/settings.d.ts +0 -4
  211. package/dist/types/src/capabilities/settings.d.ts.map +0 -1
  212. package/dist/types/src/capabilities/state.d.ts +0 -6
  213. package/dist/types/src/capabilities/state.d.ts.map +0 -1
  214. package/dist/types/src/components/HelpContainer.d.ts +0 -3
  215. package/dist/types/src/components/HelpContainer.d.ts.map +0 -1
  216. package/dist/types/src/components/ObservabilitySettings.d.ts.map +0 -1
  217. package/dist/types/src/events.d.ts +0 -5
  218. package/dist/types/src/events.d.ts.map +0 -1
  219. package/src/capabilities/app-graph-builder.ts +0 -47
  220. package/src/capabilities/capabilities.ts +0 -23
  221. package/src/capabilities/client-ready.ts +0 -98
  222. package/src/capabilities/intent-resolver.ts +0 -69
  223. package/src/capabilities/react-surface.tsx +0 -27
  224. package/src/capabilities/settings.ts +0 -21
  225. package/src/capabilities/state.ts +0 -22
  226. package/src/components/HelpContainer.tsx +0 -41
  227. package/src/components/ObservabilitySettings.tsx +0 -48
  228. package/src/events.ts +0 -14
@@ -1,7 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../../../src/capabilities/client-ready.ts"],
4
- "sourcesContent": ["//\n// Copyright 2025 DXOS.org\n//\n\nimport {\n Capabilities,\n LayoutAction,\n type PluginContext,\n SettingsAction,\n contributes,\n createIntent,\n} from '@dxos/app-framework';\nimport { type Observability, setupTelemetryListeners } from '@dxos/observability';\n\nimport { meta } from '../meta';\nimport { ObservabilityAction } from '../types';\n\nimport { ClientCapability, ObservabilityCapabilities } from './capabilities';\n\ntype ClientReadyOptions = {\n context: PluginContext;\n namespace: string;\n observability: Observability;\n};\n\nexport default async ({ context, namespace, observability }: ClientReadyOptions) => {\n const manager = context.getCapability(Capabilities.PluginManager);\n const { dispatchPromise: dispatch } = context.getCapability(Capabilities.IntentDispatcher);\n const state = context.getCapability(ObservabilityCapabilities.State);\n const client = context.getCapability(ClientCapability);\n\n const sendPrivacyNotice = async () => {\n const environment = client?.config?.values.runtime?.app?.env?.DX_ENVIRONMENT;\n const notify =\n environment && environment !== 'ci' && !environment.endsWith('.local') && !environment.endsWith('.lan');\n if (!state.notified && notify) {\n await dispatch(\n createIntent(LayoutAction.AddToast, {\n part: 'toast',\n subject: {\n id: `${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: () => dispatch(createIntent(SettingsAction.Open, { plugin: meta.id })),\n },\n }),\n );\n\n state.notified = true;\n }\n };\n\n // Ensure errors are tagged with enabled plugins to help with reproductions.\n manager.enabled.map((plugin) => observability?.setTag(`pluginEnabled-${plugin}`, 'true', 'errors'));\n\n await dispatch(\n createIntent(ObservabilityAction.SendEvent, {\n name: 'page.load',\n properties: {\n // TODO(wittjosiah): These apis are deprecated. Is there a better way to find this information?\n loadDuration: window.performance.timing.loadEventEnd - window.performance.timing.loadEventStart,\n },\n }),\n );\n\n // Start client observability (i.e. not running as shared worker)\n // TODO(nf): how to prevent multiple instances for single shared worker?\n const cleanup = setupTelemetryListeners(namespace, client, observability);\n\n await Promise.all([\n observability.setIdentityTags(client.services.services),\n observability.startRuntimeMetrics(client),\n observability.startNetworkMetrics(client.services.services),\n observability.startSpacesMetrics(client, namespace),\n ]);\n\n if (client.halo.identity.get()) {\n await sendPrivacyNotice();\n } else {\n const subscription = client.halo.identity.subscribe(async (identity) => {\n if (identity && observability) {\n await sendPrivacyNotice();\n await observability.setIdentityTags(client.services.services);\n subscription.unsubscribe();\n }\n });\n }\n\n return contributes(ObservabilityCapabilities.Observability, observability, async () => {\n cleanup();\n await observability.close();\n });\n};\n"],
5
- "mappings": ";;;;;;;;;;;;AAIA,SACEA,cACAC,cAEAC,gBACAC,aACAC,oBACK;AACP,SAA6BC,+BAA+B;AAa5D,IAAA,wBAAe,OAAO,EAAEC,SAASC,WAAWC,cAAa,MAAsB;AAC7E,QAAMC,UAAUH,QAAQI,cAAcC,aAAaC,aAAa;AAChE,QAAM,EAAEC,iBAAiBC,SAAQ,IAAKR,QAAQI,cAAcC,aAAaI,gBAAgB;AACzF,QAAMC,QAAQV,QAAQI,cAAcO,0BAA0BC,KAAK;AACnE,QAAMC,SAASb,QAAQI,cAAcU,gBAAAA;AAErC,QAAMC,oBAAoB,YAAA;AACxB,UAAMC,cAAcH,QAAQI,QAAQC,OAAOC,SAASC,KAAKC,KAAKC;AAC9D,UAAMC,SACJP,eAAeA,gBAAgB,QAAQ,CAACA,YAAYQ,SAAS,QAAA,KAAa,CAACR,YAAYQ,SAAS,MAAA;AAClG,QAAI,CAACd,MAAMe,YAAYF,QAAQ;AAC7B,YAAMf,SACJkB,aAAaC,aAAaC,UAAU;QAClCC,MAAM;QACNC,SAAS;UACPC,IAAI,GAAGC,KAAKD,EAAE;UACdE,OAAO;YAAC;YAA6B;cAAEC,IAAIF,KAAKD;YAAG;;UACnDI,aAAa;YAAC;YAAmC;cAAED,IAAIF,KAAKD;YAAG;;UAC/DK,UAAUC;UACVC,MAAM;UACNC,aAAa;YAAC;YAAoC;cAAEL,IAAIF,KAAKD;YAAG;;UAChES,WAAW;YAAC;YAAkC;cAAEN,IAAIF,KAAKD;YAAG;;UAC5DU,YAAY;YAAC;YAAmC;cAAEP,IAAIF,KAAKD;YAAG;;UAC9DW,UAAU,MAAMlC,SAASkB,aAAaiB,eAAeC,MAAM;YAAEC,QAAQb,KAAKD;UAAG,CAAA,CAAA;QAC/E;MACF,CAAA,CAAA;AAGFrB,YAAMe,WAAW;IACnB;EACF;AAGAtB,UAAQ2C,QAAQC,IAAI,CAACF,WAAW3C,eAAe8C,OAAO,iBAAiBH,MAAAA,IAAU,QAAQ,QAAA,CAAA;AAEzF,QAAMrC,SACJkB,aAAauB,oBAAoBC,WAAW;IAC1CC,MAAM;IACNC,YAAY;;MAEVC,cAAcC,OAAOC,YAAYC,OAAOC,eAAeH,OAAOC,YAAYC,OAAOE;IACnF;EACF,CAAA,CAAA;AAKF,QAAMC,UAAUC,wBAAwB3D,WAAWY,QAAQX,aAAAA;AAE3D,QAAM2D,QAAQC,IAAI;IAChB5D,cAAc6D,gBAAgBlD,OAAOmD,SAASA,QAAQ;IACtD9D,cAAc+D,oBAAoBpD,MAAAA;IAClCX,cAAcgE,oBAAoBrD,OAAOmD,SAASA,QAAQ;IAC1D9D,cAAciE,mBAAmBtD,QAAQZ,SAAAA;GAC1C;AAED,MAAIY,OAAOuD,KAAKC,SAASC,IAAG,GAAI;AAC9B,UAAMvD,kBAAAA;EACR,OAAO;AACL,UAAMwD,eAAe1D,OAAOuD,KAAKC,SAASG,UAAU,OAAOH,aAAAA;AACzD,UAAIA,YAAYnE,eAAe;AAC7B,cAAMa,kBAAAA;AACN,cAAMb,cAAc6D,gBAAgBlD,OAAOmD,SAASA,QAAQ;AAC5DO,qBAAaE,YAAW;MAC1B;IACF,CAAA;EACF;AAEA,SAAOC,YAAY/D,0BAA0BgE,eAAezE,eAAe,YAAA;AACzEyD,YAAAA;AACA,UAAMzD,cAAc0E,MAAK;EAC3B,CAAA;AACF;",
6
- "names": ["Capabilities", "LayoutAction", "SettingsAction", "contributes", "createIntent", "setupTelemetryListeners", "context", "namespace", "observability", "manager", "getCapability", "Capabilities", "PluginManager", "dispatchPromise", "dispatch", "IntentDispatcher", "state", "ObservabilityCapabilities", "State", "client", "ClientCapability", "sendPrivacyNotice", "environment", "config", "values", "runtime", "app", "env", "DX_ENVIRONMENT", "notify", "endsWith", "notified", "createIntent", "LayoutAction", "AddToast", "part", "subject", "id", "meta", "title", "ns", "description", "duration", "Infinity", "icon", "actionLabel", "actionAlt", "closeLabel", "onAction", "SettingsAction", "Open", "plugin", "enabled", "map", "setTag", "ObservabilityAction", "SendEvent", "name", "properties", "loadDuration", "window", "performance", "timing", "loadEventEnd", "loadEventStart", "cleanup", "setupTelemetryListeners", "Promise", "all", "setIdentityTags", "services", "startRuntimeMetrics", "startNetworkMetrics", "startSpacesMetrics", "halo", "identity", "get", "subscription", "subscribe", "unsubscribe", "contributes", "Observability", "close"]
7
- }
@@ -1,77 +0,0 @@
1
- import {
2
- ObservabilityAction
3
- } from "./chunk-RS66U4WR.mjs";
4
- import {
5
- ClientCapability,
6
- ObservabilityCapabilities
7
- } from "./chunk-G754T676.mjs";
8
- import {
9
- meta
10
- } from "./chunk-SCJ3DALL.mjs";
11
-
12
- // src/capabilities/intent-resolver.ts
13
- import { Capabilities, IntentAction, contributes, createResolver } from "@dxos/app-framework";
14
- import { log } from "@dxos/log";
15
- import { getTelemetryIdentity, storeObservabilityDisabled } from "@dxos/observability";
16
- var __dxlog_file = "/__w/dxos/dxos/packages/plugins/plugin-observability/src/capabilities/intent-resolver.ts";
17
- var intent_resolver_default = (({ context, namespace }) => contributes(Capabilities.IntentResolver, [
18
- createResolver({
19
- intent: IntentAction.Track,
20
- resolve: (intent) => {
21
- log.info("intent", {
22
- intent
23
- }, {
24
- F: __dxlog_file,
25
- L: 20,
26
- S: void 0,
27
- C: (f, a) => f(...a)
28
- });
29
- }
30
- }),
31
- createResolver({
32
- intent: ObservabilityAction.Toggle,
33
- resolve: async ({ state }) => {
34
- const client = context.getCapability(ClientCapability);
35
- const observability = context.getCapability(ObservabilityCapabilities.Observability);
36
- const settings = context.getCapability(Capabilities.SettingsStore).getStore(meta.id).value;
37
- settings.enabled = state ?? !settings.enabled;
38
- observability.track({
39
- ...getTelemetryIdentity(client),
40
- action: "observability.toggle",
41
- properties: {
42
- enabled: settings.enabled
43
- }
44
- });
45
- observability.setMode(settings.enabled ? "basic" : "disabled");
46
- await storeObservabilityDisabled(namespace, !settings.enabled);
47
- return {
48
- data: settings.enabled
49
- };
50
- }
51
- }),
52
- createResolver({
53
- intent: ObservabilityAction.SendEvent,
54
- resolve: (data) => {
55
- const client = context.getCapability(ClientCapability);
56
- const properties = "properties" in data ? data.properties : {};
57
- void context.waitForCapability(ObservabilityCapabilities.Observability).then((observability) => {
58
- observability.track({
59
- ...getTelemetryIdentity(client),
60
- action: data.name,
61
- properties
62
- });
63
- });
64
- }
65
- }),
66
- createResolver({
67
- intent: ObservabilityAction.CaptureUserFeedback,
68
- resolve: async (data) => {
69
- const observability = context.getCapability(ObservabilityCapabilities.Observability);
70
- observability.captureUserFeedback(data.message);
71
- }
72
- })
73
- ]));
74
- export {
75
- intent_resolver_default as default
76
- };
77
- //# sourceMappingURL=intent-resolver-IZTKLP6N.mjs.map
@@ -1,7 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../../../src/capabilities/intent-resolver.ts"],
4
- "sourcesContent": ["//\n// Copyright 2025 DXOS.org\n//\n\nimport { Capabilities, IntentAction, type PluginContext, contributes, createResolver } from '@dxos/app-framework';\nimport { log } from '@dxos/log';\nimport { getTelemetryIdentity, storeObservabilityDisabled } from '@dxos/observability';\n\nimport { type ObservabilitySettingsProps } from '../components';\nimport { meta } from '../meta';\nimport { ObservabilityAction } from '../types';\n\nimport { ClientCapability, ObservabilityCapabilities } from './capabilities';\n\nexport default ({ context, namespace }: { context: PluginContext; namespace: string }) =>\n contributes(Capabilities.IntentResolver, [\n createResolver({\n intent: IntentAction.Track,\n resolve: (intent) => {\n log.info('intent', { intent });\n },\n }),\n createResolver({\n intent: ObservabilityAction.Toggle,\n resolve: async ({ state }) => {\n const client = context.getCapability(ClientCapability);\n const observability = context.getCapability(ObservabilityCapabilities.Observability);\n const settings = context\n .getCapability(Capabilities.SettingsStore)\n .getStore<ObservabilitySettingsProps>(meta.id)!.value;\n settings.enabled = state ?? !settings.enabled;\n observability.track({\n ...getTelemetryIdentity(client),\n action: 'observability.toggle',\n properties: {\n enabled: settings.enabled,\n },\n });\n observability.setMode(settings.enabled ? 'basic' : 'disabled');\n await storeObservabilityDisabled(namespace, !settings.enabled);\n return { data: settings.enabled };\n },\n }),\n createResolver({\n intent: ObservabilityAction.SendEvent,\n resolve: (data) => {\n const client = context.getCapability(ClientCapability);\n const properties = 'properties' in data ? data.properties : {};\n\n // NOTE: This is to ensure that events fired before observability is ready are still sent.\n // TODO(wittjosiah): If the intent dispatcher supports concurrent actions in the future,\n // then this could be awaited still rather than voiding.\n void context.waitForCapability(ObservabilityCapabilities.Observability).then((observability) => {\n observability.track({\n ...getTelemetryIdentity(client),\n action: data.name,\n properties,\n });\n });\n },\n }),\n createResolver({\n intent: ObservabilityAction.CaptureUserFeedback,\n resolve: async (data) => {\n const observability = context.getCapability(ObservabilityCapabilities.Observability);\n observability.captureUserFeedback(data.message);\n },\n }),\n ]);\n"],
5
- "mappings": ";;;;;;;;;;;;AAIA,SAASA,cAAcC,cAAkCC,aAAaC,sBAAsB;AAC5F,SAASC,WAAW;AACpB,SAASC,sBAAsBC,kCAAkC;;AAQjE,IAAA,2BAAe,CAAC,EAAEC,SAASC,UAAS,MAClCC,YAAYC,aAAaC,gBAAgB;EACvCC,eAAe;IACbC,QAAQC,aAAaC;IACrBC,SAAS,CAACH,WAAAA;AACRI,UAAIC,KAAK,UAAU;QAAEL;MAAO,GAAA;;;;;;IAC9B;EACF,CAAA;EACAD,eAAe;IACbC,QAAQM,oBAAoBC;IAC5BJ,SAAS,OAAO,EAAEK,MAAK,MAAE;AACvB,YAAMC,SAASf,QAAQgB,cAAcC,gBAAAA;AACrC,YAAMC,gBAAgBlB,QAAQgB,cAAcG,0BAA0BC,aAAa;AACnF,YAAMC,WAAWrB,QACdgB,cAAcb,aAAamB,aAAa,EACxCC,SAAqCC,KAAKC,EAAE,EAAGC;AAClDL,eAASM,UAAUb,SAAS,CAACO,SAASM;AACtCT,oBAAcU,MAAM;QAClB,GAAGC,qBAAqBd,MAAAA;QACxBe,QAAQ;QACRC,YAAY;UACVJ,SAASN,SAASM;QACpB;MACF,CAAA;AACAT,oBAAcc,QAAQX,SAASM,UAAU,UAAU,UAAA;AACnD,YAAMM,2BAA2BhC,WAAW,CAACoB,SAASM,OAAO;AAC7D,aAAO;QAAEO,MAAMb,SAASM;MAAQ;IAClC;EACF,CAAA;EACAtB,eAAe;IACbC,QAAQM,oBAAoBuB;IAC5B1B,SAAS,CAACyB,SAAAA;AACR,YAAMnB,SAASf,QAAQgB,cAAcC,gBAAAA;AACrC,YAAMc,aAAa,gBAAgBG,OAAOA,KAAKH,aAAa,CAAC;AAK7D,WAAK/B,QAAQoC,kBAAkBjB,0BAA0BC,aAAa,EAAEiB,KAAK,CAACnB,kBAAAA;AAC5EA,sBAAcU,MAAM;UAClB,GAAGC,qBAAqBd,MAAAA;UACxBe,QAAQI,KAAKI;UACbP;QACF,CAAA;MACF,CAAA;IACF;EACF,CAAA;EACA1B,eAAe;IACbC,QAAQM,oBAAoB2B;IAC5B9B,SAAS,OAAOyB,SAAAA;AACd,YAAMhB,gBAAgBlB,QAAQgB,cAAcG,0BAA0BC,aAAa;AACnFF,oBAAcsB,oBAAoBN,KAAKO,OAAO;IAChD;EACF,CAAA;CACD;",
6
- "names": ["Capabilities", "IntentAction", "contributes", "createResolver", "log", "getTelemetryIdentity", "storeObservabilityDisabled", "context", "namespace", "contributes", "Capabilities", "IntentResolver", "createResolver", "intent", "IntentAction", "Track", "resolve", "log", "info", "ObservabilityAction", "Toggle", "state", "client", "getCapability", "ClientCapability", "observability", "ObservabilityCapabilities", "Observability", "settings", "SettingsStore", "getStore", "meta", "id", "value", "enabled", "track", "getTelemetryIdentity", "action", "properties", "setMode", "storeObservabilityDisabled", "data", "SendEvent", "waitForCapability", "then", "name", "CaptureUserFeedback", "captureUserFeedback", "message"]
7
- }
@@ -1,32 +0,0 @@
1
- import {
2
- HelpContainer,
3
- ObservabilitySettings
4
- } from "./chunk-5VM6D2EF.mjs";
5
- import "./chunk-RS66U4WR.mjs";
6
- import {
7
- meta
8
- } from "./chunk-SCJ3DALL.mjs";
9
-
10
- // src/capabilities/react-surface.tsx
11
- import React from "react";
12
- import { Capabilities, contributes, createSurface } from "@dxos/app-framework";
13
- import { SettingsStore } from "@dxos/local-storage";
14
- var react_surface_default = (() => contributes(Capabilities.ReactSurface, [
15
- createSurface({
16
- id: meta.id,
17
- role: "article",
18
- filter: (data) => data.subject instanceof SettingsStore && data.subject.prefix === meta.id,
19
- component: ({ data: { subject } }) => /* @__PURE__ */ React.createElement(ObservabilitySettings, {
20
- settings: subject.value
21
- })
22
- }),
23
- createSurface({
24
- id: `${meta.id}/help`,
25
- role: "deck-companion--help",
26
- component: () => /* @__PURE__ */ React.createElement(HelpContainer, null)
27
- })
28
- ]));
29
- export {
30
- react_surface_default as default
31
- };
32
- //# sourceMappingURL=react-surface-N7WRUNJ2.mjs.map
@@ -1,7 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../../../src/capabilities/react-surface.tsx"],
4
- "sourcesContent": ["//\n// Copyright 2025 DXOS.org\n//\n\nimport React from 'react';\n\nimport { Capabilities, contributes, createSurface } from '@dxos/app-framework';\nimport { SettingsStore } from '@dxos/local-storage';\n\nimport { HelpContainer, ObservabilitySettings, type ObservabilitySettingsProps } from '../components';\nimport { meta } from '../meta';\n\nexport default () =>\n contributes(Capabilities.ReactSurface, [\n createSurface({\n id: meta.id,\n role: 'article',\n filter: (data): data is { subject: SettingsStore<ObservabilitySettingsProps> } =>\n data.subject instanceof SettingsStore && data.subject.prefix === meta.id,\n component: ({ data: { subject } }) => <ObservabilitySettings settings={subject.value} />,\n }),\n createSurface({\n id: `${meta.id}/help`,\n role: 'deck-companion--help',\n component: () => <HelpContainer />,\n }),\n ]);\n"],
5
- "mappings": ";;;;;;;;;;AAIA,OAAOA,WAAW;AAElB,SAASC,cAAcC,aAAaC,qBAAqB;AACzD,SAASC,qBAAqB;AAK9B,IAAA,yBAAe,MACbC,YAAYC,aAAaC,cAAc;EACrCC,cAAc;IACZC,IAAIC,KAAKD;IACTE,MAAM;IACNC,QAAQ,CAACC,SACPA,KAAKC,mBAAmBC,iBAAiBF,KAAKC,QAAQE,WAAWN,KAAKD;IACxEQ,WAAW,CAAC,EAAEJ,MAAM,EAAEC,QAAO,EAAE,MAAO,sBAAA,cAACI,uBAAAA;MAAsBC,UAAUL,QAAQM;;EACjF,CAAA;EACAZ,cAAc;IACZC,IAAI,GAAGC,KAAKD,EAAE;IACdE,MAAM;IACNM,WAAW,MAAM,sBAAA,cAACI,eAAAA,IAAAA;EACpB,CAAA;CACD;",
6
- "names": ["React", "Capabilities", "contributes", "createSurface", "SettingsStore", "contributes", "Capabilities", "ReactSurface", "createSurface", "id", "meta", "role", "filter", "data", "subject", "SettingsStore", "prefix", "component", "ObservabilitySettings", "settings", "value", "HelpContainer"]
7
- }
@@ -1,25 +0,0 @@
1
- import {
2
- ObservabilitySettingsSchema
3
- } from "./chunk-5VM6D2EF.mjs";
4
- import "./chunk-RS66U4WR.mjs";
5
- import {
6
- meta
7
- } from "./chunk-SCJ3DALL.mjs";
8
-
9
- // src/capabilities/settings.ts
10
- import { Capabilities, contributes } from "@dxos/app-framework";
11
- import { live } from "@dxos/live-object";
12
- var settings_default = (() => {
13
- const settings = live({
14
- enabled: true
15
- });
16
- return contributes(Capabilities.Settings, {
17
- prefix: meta.id,
18
- schema: ObservabilitySettingsSchema,
19
- value: settings
20
- });
21
- });
22
- export {
23
- settings_default as default
24
- };
25
- //# sourceMappingURL=settings-JOZ5BZDO.mjs.map
@@ -1,7 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../../../src/capabilities/settings.ts"],
4
- "sourcesContent": ["//\n// Copyright 2025 DXOS.org\n//\n\nimport { Capabilities, contributes } from '@dxos/app-framework';\nimport { live } from '@dxos/live-object';\n\nimport { type ObservabilitySettingsProps, ObservabilitySettingsSchema } from '../components';\nimport { meta } from '../meta';\n\nexport default () => {\n const settings = live<ObservabilitySettingsProps>({\n enabled: true,\n });\n\n return contributes(Capabilities.Settings, {\n prefix: meta.id,\n schema: ObservabilitySettingsSchema,\n value: settings,\n });\n};\n"],
5
- "mappings": ";;;;;;;;;AAIA,SAASA,cAAcC,mBAAmB;AAC1C,SAASC,YAAY;AAKrB,IAAA,oBAAe,MAAA;AACb,QAAMC,WAAWC,KAAiC;IAChDC,SAAS;EACX,CAAA;AAEA,SAAOC,YAAYC,aAAaC,UAAU;IACxCC,QAAQC,KAAKC;IACbC,QAAQC;IACRC,OAAOX;EACT,CAAA;AACF;",
6
- "names": ["Capabilities", "contributes", "live", "settings", "live", "enabled", "contributes", "Capabilities", "Settings", "prefix", "meta", "id", "schema", "ObservabilitySettingsSchema", "value"]
7
- }
@@ -1,26 +0,0 @@
1
- import {
2
- ObservabilityCapabilities
3
- } from "./chunk-G754T676.mjs";
4
- import {
5
- meta
6
- } from "./chunk-SCJ3DALL.mjs";
7
-
8
- // src/capabilities/state.ts
9
- import { contributes } from "@dxos/app-framework";
10
- import { LocalStorageStore } from "@dxos/local-storage";
11
- import { getObservabilityGroup } from "@dxos/observability";
12
- var state_default = (async ({ namespace }) => {
13
- const state = new LocalStorageStore(meta.id);
14
- state.prop({
15
- key: "notified",
16
- type: LocalStorageStore.bool({
17
- allowUndefined: true
18
- })
19
- });
20
- state.values.group = await getObservabilityGroup(namespace);
21
- return contributes(ObservabilityCapabilities.State, state.values, () => state.close());
22
- });
23
- export {
24
- state_default as default
25
- };
26
- //# sourceMappingURL=state-OVWHPB7K.mjs.map
@@ -1,7 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../../../src/capabilities/state.ts"],
4
- "sourcesContent": ["//\n// Copyright 2025 DXOS.org\n//\n\nimport { contributes } from '@dxos/app-framework';\nimport { LocalStorageStore } from '@dxos/local-storage';\nimport { getObservabilityGroup } from '@dxos/observability';\n\nimport { meta } from '../meta';\n\nimport { ObservabilityCapabilities } from './capabilities';\n\nexport default async ({ namespace }: { namespace: string }) => {\n const state = new LocalStorageStore<ObservabilityCapabilities.State>(meta.id);\n\n state.prop({ key: 'notified', type: LocalStorageStore.bool({ allowUndefined: true }) });\n\n // NOTE: This is not stored in local storage such that it can be accessed by workers.\n state.values.group = await getObservabilityGroup(namespace);\n\n return contributes(ObservabilityCapabilities.State, state.values, () => state.close());\n};\n"],
5
- "mappings": ";;;;;;;;AAIA,SAASA,mBAAmB;AAC5B,SAASC,yBAAyB;AAClC,SAASC,6BAA6B;AAMtC,IAAA,iBAAe,OAAO,EAAEC,UAAS,MAAyB;AACxD,QAAMC,QAAQ,IAAIC,kBAAmDC,KAAKC,EAAE;AAE5EH,QAAMI,KAAK;IAAEC,KAAK;IAAYC,MAAML,kBAAkBM,KAAK;MAAEC,gBAAgB;IAAK,CAAA;EAAG,CAAA;AAGrFR,QAAMS,OAAOC,QAAQ,MAAMC,sBAAsBZ,SAAAA;AAEjD,SAAOa,YAAYC,0BAA0BC,OAAOd,MAAMS,QAAQ,MAAMT,MAAMe,MAAK,CAAA;AACrF;",
6
- "names": ["contributes", "LocalStorageStore", "getObservabilityGroup", "namespace", "state", "LocalStorageStore", "meta", "id", "prop", "key", "type", "bool", "allowUndefined", "values", "group", "getObservabilityGroup", "contributes", "ObservabilityCapabilities", "State", "close"]
7
- }
@@ -1,45 +0,0 @@
1
- import { createRequire } from 'node:module';const require = createRequire(import.meta.url);
2
- import {
3
- meta
4
- } from "./chunk-4SMSG2RN.mjs";
5
-
6
- // src/capabilities/app-graph-builder.ts
7
- import { Rx } from "@effect-rx/rx-react";
8
- import * as Function from "effect/Function";
9
- import * as Option from "effect/Option";
10
- import { Capabilities, contributes } from "@dxos/app-framework";
11
- import { ROOT_ID, createExtension } from "@dxos/plugin-graph";
12
- var ATTENDABLE_PATH_SEPARATOR = "~";
13
- var DECK_COMPANION_TYPE = "dxos.org/plugin/deck/deck-companion";
14
- var app_graph_builder_default = ((_context) => contributes(Capabilities.AppGraphBuilder, [
15
- createExtension({
16
- id: `${meta.id}/help`,
17
- connector: (node) => Rx.make((get) => Function.pipe(get(node), Option.flatMap((node2) => node2.id === ROOT_ID ? Option.some(node2) : Option.none()), Option.map((node2) => {
18
- return [
19
- {
20
- id: [
21
- node2.id,
22
- "help"
23
- ].join(ATTENDABLE_PATH_SEPARATOR),
24
- type: DECK_COMPANION_TYPE,
25
- data: null,
26
- properties: {
27
- label: [
28
- "help label",
29
- {
30
- ns: meta.id
31
- }
32
- ],
33
- icon: "ph--question--regular",
34
- disposition: "hidden",
35
- position: "hoist"
36
- }
37
- }
38
- ];
39
- }), Option.getOrElse(() => [])))
40
- })
41
- ]));
42
- export {
43
- app_graph_builder_default as default
44
- };
45
- //# sourceMappingURL=app-graph-builder-LHLEY5QQ.mjs.map
@@ -1,7 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../../../src/capabilities/app-graph-builder.ts"],
4
- "sourcesContent": ["//\n// Copyright 2025 DXOS.org\n//\n\nimport { Rx } from '@effect-rx/rx-react';\nimport * as Function from 'effect/Function';\nimport * as Option from 'effect/Option';\n\nimport { Capabilities, type PluginContext, contributes } from '@dxos/app-framework';\nimport { ROOT_ID, createExtension } from '@dxos/plugin-graph';\n\nimport { meta } from '../meta';\n\n// NOTE: Copied from @dxos/plugin-deck to break circular dependency.\nconst ATTENDABLE_PATH_SEPARATOR = '~';\n\nconst DECK_COMPANION_TYPE = 'dxos.org/plugin/deck/deck-companion';\n\nexport default (_context: PluginContext) =>\n contributes(Capabilities.AppGraphBuilder, [\n createExtension({\n id: `${meta.id}/help`,\n connector: (node) =>\n Rx.make((get) =>\n Function.pipe(\n get(node),\n Option.flatMap((node) => (node.id === ROOT_ID ? Option.some(node) : Option.none())),\n Option.map((node) => {\n return [\n {\n id: [node.id, 'help'].join(ATTENDABLE_PATH_SEPARATOR),\n type: DECK_COMPANION_TYPE,\n data: null,\n properties: {\n label: ['help label', { ns: meta.id }],\n icon: 'ph--question--regular',\n disposition: 'hidden',\n position: 'hoist',\n },\n },\n ];\n }),\n Option.getOrElse(() => []),\n ),\n ),\n }),\n ]);\n"],
5
- "mappings": ";;;;;;AAIA,SAASA,UAAU;AACnB,YAAYC,cAAc;AAC1B,YAAYC,YAAY;AAExB,SAASC,cAAkCC,mBAAmB;AAC9D,SAASC,SAASC,uBAAuB;AAKzC,IAAMC,4BAA4B;AAElC,IAAMC,sBAAsB;AAE5B,IAAA,6BAAe,CAACC,aACdC,YAAYC,aAAaC,iBAAiB;EACxCC,gBAAgB;IACdC,IAAI,GAAGC,KAAKD,EAAE;IACdE,WAAW,CAACC,SACVC,GAAGC,KAAK,CAACC,QACEC,cACPD,IAAIH,IAAAA,GACGK,eAAQ,CAACL,UAAUA,MAAKH,OAAOS,UAAiBC,YAAKP,KAAAA,IAAeQ,YAAI,CAAA,GACxEC,WAAI,CAACT,UAAAA;AACV,aAAO;QACL;UACEH,IAAI;YAACG,MAAKH;YAAI;YAAQa,KAAKpB,yBAAAA;UAC3BqB,MAAMpB;UACNqB,MAAM;UACNC,YAAY;YACVC,OAAO;cAAC;cAAc;gBAAEC,IAAIjB,KAAKD;cAAG;;YACpCmB,MAAM;YACNC,aAAa;YACbC,UAAU;UACZ;QACF;;IAEJ,CAAA,GACOC,iBAAU,MAAM,CAAA,CAAE,CAAA,CAAA;EAGjC,CAAA;CACD;",
6
- "names": ["Rx", "Function", "Option", "Capabilities", "contributes", "ROOT_ID", "createExtension", "ATTENDABLE_PATH_SEPARATOR", "DECK_COMPANION_TYPE", "_context", "contributes", "Capabilities", "AppGraphBuilder", "createExtension", "id", "meta", "connector", "node", "Rx", "make", "get", "pipe", "flatMap", "ROOT_ID", "some", "none", "map", "join", "type", "data", "properties", "label", "ns", "icon", "disposition", "position", "getOrElse"]
7
- }
@@ -1,13 +0,0 @@
1
- import { createRequire } from 'node:module';const require = createRequire(import.meta.url);
2
-
3
- // src/meta.ts
4
- var meta = {
5
- id: "dxos.org/plugin/observability",
6
- name: "Telemetry",
7
- icon: "ph--eye--regular"
8
- };
9
-
10
- export {
11
- meta
12
- };
13
- //# sourceMappingURL=chunk-4SMSG2RN.mjs.map
@@ -1,7 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../../../src/meta.ts"],
4
- "sourcesContent": ["//\n// Copyright 2023 DXOS.org\n//\n\nimport { type PluginMeta } from '@dxos/app-framework';\n\nexport const meta: PluginMeta = {\n id: 'dxos.org/plugin/observability',\n name: 'Telemetry',\n icon: 'ph--eye--regular',\n};\n"],
5
- "mappings": ";;;AAMO,IAAMA,OAAmB;EAC9BC,IAAI;EACJC,MAAM;EACNC,MAAM;AACR;",
6
- "names": ["meta", "id", "name", "icon"]
7
- }
@@ -1,180 +0,0 @@
1
- import { createRequire } from 'node:module';const require = createRequire(import.meta.url);
2
- import {
3
- ObservabilityAction,
4
- UserFeedback
5
- } from "./chunk-SCOMEIPJ.mjs";
6
- import {
7
- meta
8
- } from "./chunk-4SMSG2RN.mjs";
9
-
10
- // src/components/FeedbackForm.tsx
11
- import { useSignals as _useSignals } from "@preact-signals/safe-react/tracking";
12
- import React, { useCallback, useRef, useState } from "react";
13
- import { getSnapshot } from "@dxos/echo/internal";
14
- import { IconButton, Input, useTranslation } from "@dxos/react-ui";
15
- import { FormProvider, useFormContext, useInputProps } from "@dxos/react-ui-form";
16
- var defaultValues = {
17
- message: ""
18
- };
19
- var FormContent = () => {
20
- var _effect = _useSignals();
21
- try {
22
- const { t } = useTranslation(meta.id);
23
- const { handleSave, canSave } = useFormContext();
24
- const messageProps = useInputProps([
25
- "message"
26
- ]);
27
- return /* @__PURE__ */ React.createElement("div", {
28
- role: "form",
29
- className: "p-3 flex flex-col gap-2"
30
- }, /* @__PURE__ */ React.createElement("div", {
31
- role: "none",
32
- className: "space-b-1"
33
- }, /* @__PURE__ */ React.createElement(Input.Root, {
34
- validationValence: messageProps.getStatus().status
35
- }, /* @__PURE__ */ React.createElement(Input.Label, null, t("feedback text area label")), /* @__PURE__ */ React.createElement(Input.TextArea, {
36
- classNames: "text-sm",
37
- rows: 5,
38
- cols: 30,
39
- placeholder: t("feedback text area placeholder"),
40
- value: messageProps.getValue() ?? "",
41
- onChange: (e) => messageProps.onValueChange("string", e.target.value),
42
- // TODO(wittjosiah): This aggressively shows validation errors.
43
- onBlur: messageProps.onBlur
44
- }), /* @__PURE__ */ React.createElement(Input.DescriptionAndValidation, null, /* @__PURE__ */ React.createElement(Input.Validation, null, messageProps.getStatus().error)))), /* @__PURE__ */ React.createElement("div", {
45
- role: "none",
46
- className: "space-b-2"
47
- }, /* @__PURE__ */ React.createElement(IconButton, {
48
- icon: "ph--paper-plane-tilt--regular",
49
- label: t("send feedback label"),
50
- variant: "primary",
51
- type: "submit",
52
- classNames: "is-full",
53
- disabled: !canSave,
54
- onClick: handleSave
55
- })));
56
- } finally {
57
- _effect.f();
58
- }
59
- };
60
- var FeedbackForm = ({ onSave }) => {
61
- var _effect = _useSignals();
62
- try {
63
- const formRef = useRef(null);
64
- const [_, update] = useState({});
65
- const forceRender = useCallback(() => update({}), [
66
- update
67
- ]);
68
- const handleSave = useCallback((values) => {
69
- onSave(values);
70
- forceRender();
71
- }, [
72
- forceRender,
73
- onSave
74
- ]);
75
- const initialValues = getSnapshot(defaultValues);
76
- return /* @__PURE__ */ React.createElement(FormProvider, {
77
- formRef,
78
- schema: UserFeedback,
79
- initialValues,
80
- onSave: handleSave
81
- }, /* @__PURE__ */ React.createElement("div", {
82
- ref: formRef
83
- }, /* @__PURE__ */ React.createElement(FormContent, null)));
84
- } finally {
85
- _effect.f();
86
- }
87
- };
88
-
89
- // src/components/HelpContainer.tsx
90
- import { useSignals as _useSignals2 } from "@preact-signals/safe-react/tracking";
91
- import * as Function from "effect/Function";
92
- import React2, { useCallback as useCallback2 } from "react";
93
- import { LayoutAction, chain, createIntent, useIntentDispatcher } from "@dxos/app-framework";
94
- var HelpContainer = () => {
95
- var _effect = _useSignals2();
96
- try {
97
- const { dispatchPromise: dispatch } = useIntentDispatcher();
98
- const handleSave = useCallback2((values) => dispatch(Function.pipe(createIntent(ObservabilityAction.CaptureUserFeedback, values), chain(LayoutAction.UpdateComplementary, {
99
- part: "complementary",
100
- options: {
101
- state: "collapsed"
102
- }
103
- }), chain(LayoutAction.AddToast, {
104
- part: "toast",
105
- subject: {
106
- id: `${meta.id}/feedback-success`,
107
- icon: "ph--paper-plane-tilt--regular",
108
- duration: 3e3,
109
- title: [
110
- "feedback toast label",
111
- {
112
- ns: meta.id
113
- }
114
- ],
115
- description: [
116
- "feedback toast description",
117
- {
118
- ns: meta.id
119
- }
120
- ],
121
- closeLabel: [
122
- "close label",
123
- {
124
- ns: "os"
125
- }
126
- ]
127
- }
128
- }))), [
129
- dispatch
130
- ]);
131
- return /* @__PURE__ */ React2.createElement(FeedbackForm, {
132
- onSave: handleSave
133
- });
134
- } finally {
135
- _effect.f();
136
- }
137
- };
138
-
139
- // src/components/ObservabilitySettings.tsx
140
- import { useSignals as _useSignals3 } from "@preact-signals/safe-react/tracking";
141
- import * as Schema from "effect/Schema";
142
- import React3 from "react";
143
- import { createIntent as createIntent2, useIntentDispatcher as useIntentDispatcher2 } from "@dxos/app-framework";
144
- import { Input as Input2, Message, useTranslation as useTranslation2 } from "@dxos/react-ui";
145
- import { ControlGroup, ControlItemInput, ControlPage, ControlSection } from "@dxos/react-ui-form";
146
- var ObservabilitySettingsSchema = Schema.mutable(Schema.Struct({
147
- enabled: Schema.Boolean
148
- }));
149
- var ObservabilitySettings = ({ settings }) => {
150
- var _effect = _useSignals3();
151
- try {
152
- const { t } = useTranslation2(meta.id);
153
- const { dispatchPromise: dispatch } = useIntentDispatcher2();
154
- return /* @__PURE__ */ React3.createElement(ControlPage, null, /* @__PURE__ */ React3.createElement(ControlSection, {
155
- title: t("settings title", {
156
- ns: meta.id
157
- })
158
- }, /* @__PURE__ */ React3.createElement(Message.Root, {
159
- valence: "info",
160
- classNames: "container-max-width mbe-cardSpacingBlock"
161
- }, /* @__PURE__ */ React3.createElement(Message.Content, null, t("observability description"))), /* @__PURE__ */ React3.createElement(ControlGroup, null, /* @__PURE__ */ React3.createElement(ControlItemInput, {
162
- title: t("observability enabled label")
163
- }, /* @__PURE__ */ React3.createElement(Input2.Switch, {
164
- checked: settings.enabled,
165
- onCheckedChange: (checked) => dispatch(createIntent2(ObservabilityAction.Toggle, {
166
- state: !!checked
167
- }))
168
- })))));
169
- } finally {
170
- _effect.f();
171
- }
172
- };
173
-
174
- export {
175
- FeedbackForm,
176
- HelpContainer,
177
- ObservabilitySettingsSchema,
178
- ObservabilitySettings
179
- };
180
- //# sourceMappingURL=chunk-H3QRVOIY.mjs.map
@@ -1,7 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../../../src/components/FeedbackForm.tsx", "../../../src/components/HelpContainer.tsx", "../../../src/components/ObservabilitySettings.tsx"],
4
- "sourcesContent": ["//\n// Copyright 2024 DXOS.org\n//\n\nimport React, { useCallback, useRef, useState } from 'react';\n\nimport { getSnapshot } from '@dxos/echo/internal';\nimport { IconButton, Input, useTranslation } from '@dxos/react-ui';\nimport { FormProvider, useFormContext, useInputProps } from '@dxos/react-ui-form';\n\nimport { meta } from '../meta';\nimport { UserFeedback } from '../types';\n\nconst defaultValues: UserFeedback = { message: '' };\n\nconst FormContent = () => {\n const { t } = useTranslation(meta.id);\n const { handleSave, canSave } = useFormContext<UserFeedback>();\n\n const messageProps = useInputProps(['message']);\n\n return (\n <div role='form' className='p-3 flex flex-col gap-2'>\n <div role='none' className='space-b-1'>\n <Input.Root validationValence={messageProps.getStatus().status}>\n <Input.Label>{t('feedback text area label')}</Input.Label>\n <Input.TextArea\n classNames={'text-sm'}\n rows={5}\n cols={30}\n placeholder={t('feedback text area placeholder')}\n value={messageProps.getValue() ?? ''}\n onChange={(e) => messageProps.onValueChange('string', e.target.value)}\n // TODO(wittjosiah): This aggressively shows validation errors.\n onBlur={messageProps.onBlur}\n />\n <Input.DescriptionAndValidation>\n <Input.Validation>{messageProps.getStatus().error}</Input.Validation>\n </Input.DescriptionAndValidation>\n </Input.Root>\n </div>\n\n <div role='none' className='space-b-2'>\n <IconButton\n icon='ph--paper-plane-tilt--regular'\n label={t('send feedback label')}\n variant='primary'\n type='submit'\n classNames='is-full'\n disabled={!canSave}\n onClick={handleSave}\n />\n </div>\n </div>\n );\n};\n\n// TODO(wittjosiah): Use `Form`?\nexport const FeedbackForm = ({ onSave }: { onSave: (values: UserFeedback) => void }) => {\n const formRef = useRef<HTMLDivElement>(null);\n const [_, update] = useState({});\n const forceRender = useCallback(() => update({}), [update]);\n\n const handleSave = useCallback(\n (values: UserFeedback) => {\n onSave(values);\n // TODO(wittjosiah): Force re-render to clear the form.\n forceRender();\n },\n [forceRender, onSave],\n );\n\n const initialValues = getSnapshot(defaultValues);\n\n return (\n <FormProvider formRef={formRef} schema={UserFeedback} initialValues={initialValues} onSave={handleSave}>\n <div ref={formRef}>\n <FormContent />\n </div>\n </FormProvider>\n );\n};\n", "//\n// Copyright 2025 DXOS.org\n//\n\nimport * as Function from 'effect/Function';\nimport React, { useCallback } from 'react';\n\nimport { LayoutAction, chain, createIntent, useIntentDispatcher } from '@dxos/app-framework';\n\nimport { meta } from '../meta';\nimport { ObservabilityAction, type UserFeedback } from '../types';\n\nimport { FeedbackForm } from './FeedbackForm';\n\nexport const HelpContainer = () => {\n const { dispatchPromise: dispatch } = useIntentDispatcher();\n\n const handleSave = useCallback(\n (values: UserFeedback) =>\n dispatch(\n Function.pipe(\n createIntent(ObservabilityAction.CaptureUserFeedback, values),\n chain(LayoutAction.UpdateComplementary, { part: 'complementary', options: { state: 'collapsed' } }),\n chain(LayoutAction.AddToast, {\n part: 'toast',\n subject: {\n id: `${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: 'os' }],\n },\n }),\n ),\n ),\n [dispatch],\n );\n\n return <FeedbackForm onSave={handleSave} />;\n};\n", "//\n// Copyright 2023 DXOS.org\n//\n\nimport * as Schema from 'effect/Schema';\nimport React from 'react';\n\nimport { createIntent, useIntentDispatcher } from '@dxos/app-framework';\nimport { Input, Message, useTranslation } from '@dxos/react-ui';\nimport { ControlGroup, ControlItemInput, ControlPage, ControlSection } from '@dxos/react-ui-form';\n\nimport { meta } from '../meta';\nimport { ObservabilityAction } from '../types';\n\nexport const ObservabilitySettingsSchema = Schema.mutable(\n Schema.Struct({\n enabled: Schema.Boolean,\n // TODO(wittjosiah): Separate settings for each observability feature.\n // metrics?: boolean;\n // telemetry?: boolean;\n // errors?: boolean;\n }),\n);\n\nexport type ObservabilitySettingsProps = Schema.Schema.Type<typeof ObservabilitySettingsSchema>;\n\nexport const ObservabilitySettings = ({ settings }: { settings: ObservabilitySettingsProps }) => {\n const { t } = useTranslation(meta.id);\n const { dispatchPromise: dispatch } = useIntentDispatcher();\n\n return (\n <ControlPage>\n <ControlSection title={t('settings title', { ns: meta.id })}>\n <Message.Root valence='info' classNames='container-max-width mbe-cardSpacingBlock'>\n <Message.Content>{t('observability description')}</Message.Content>\n </Message.Root>\n <ControlGroup>\n <ControlItemInput title={t('observability enabled label')}>\n <Input.Switch\n checked={settings.enabled}\n onCheckedChange={(checked) => dispatch(createIntent(ObservabilityAction.Toggle, { state: !!checked }))}\n />\n </ControlItemInput>\n </ControlGroup>\n </ControlSection>\n </ControlPage>\n );\n};\n"],
5
- "mappings": "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",
6
- "names": ["React", "useCallback", "useRef", "useState", "getSnapshot", "IconButton", "Input", "useTranslation", "FormProvider", "useFormContext", "useInputProps", "defaultValues", "message", "FormContent", "t", "useTranslation", "meta", "id", "handleSave", "canSave", "useFormContext", "messageProps", "useInputProps", "div", "role", "className", "Input", "Root", "validationValence", "getStatus", "status", "Label", "TextArea", "classNames", "rows", "cols", "placeholder", "value", "getValue", "onChange", "e", "onValueChange", "target", "onBlur", "DescriptionAndValidation", "Validation", "error", "IconButton", "icon", "label", "variant", "type", "disabled", "onClick", "FeedbackForm", "onSave", "formRef", "useRef", "_", "update", "useState", "forceRender", "useCallback", "values", "initialValues", "getSnapshot", "FormProvider", "schema", "UserFeedback", "ref", "Function", "React", "useCallback", "LayoutAction", "chain", "createIntent", "useIntentDispatcher", "HelpContainer", "dispatchPromise", "dispatch", "useIntentDispatcher", "handleSave", "useCallback", "values", "pipe", "createIntent", "ObservabilityAction", "CaptureUserFeedback", "chain", "LayoutAction", "UpdateComplementary", "part", "options", "state", "AddToast", "subject", "id", "meta", "icon", "duration", "title", "ns", "description", "closeLabel", "React", "FeedbackForm", "onSave", "Schema", "React", "createIntent", "useIntentDispatcher", "Input", "Message", "useTranslation", "ControlGroup", "ControlItemInput", "ControlPage", "ControlSection", "ObservabilitySettingsSchema", "mutable", "Struct", "enabled", "Boolean", "ObservabilitySettings", "settings", "t", "useTranslation", "meta", "id", "dispatchPromise", "dispatch", "useIntentDispatcher", "React", "ControlPage", "ControlSection", "title", "ns", "Message", "Root", "valence", "classNames", "Content", "ControlGroup", "ControlItemInput", "Input", "Switch", "checked", "onCheckedChange", "createIntent", "ObservabilityAction", "Toggle", "state"]
7
- }