@dxos/plugin-observability 0.8.2-staging.7ac8446 → 0.8.3-main.672df60

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 (122) hide show
  1. package/dist/lib/browser/app-graph-builder-3ROXVPV2.mjs +43 -0
  2. package/dist/lib/browser/app-graph-builder-3ROXVPV2.mjs.map +7 -0
  3. package/dist/lib/browser/chunk-A7FGEPI3.mjs +175 -0
  4. package/dist/lib/browser/chunk-A7FGEPI3.mjs.map +7 -0
  5. package/dist/lib/browser/{chunk-ECWB7E2O.mjs → chunk-BJ2ZWVOH.mjs} +4 -4
  6. package/dist/lib/{node-esm/chunk-U3JYGK3O.mjs.map → browser/chunk-BJ2ZWVOH.mjs.map} +1 -1
  7. package/dist/lib/browser/chunk-P7VVCZOC.mjs +179 -0
  8. package/dist/lib/browser/chunk-P7VVCZOC.mjs.map +7 -0
  9. package/dist/lib/browser/{client-ready-LRY24QM5.mjs → client-ready-LP3YSSAH.mjs} +7 -7
  10. package/dist/lib/browser/client-ready-LP3YSSAH.mjs.map +7 -0
  11. package/dist/lib/browser/index.mjs +14 -12
  12. package/dist/lib/browser/index.mjs.map +2 -2
  13. package/dist/lib/browser/{intent-resolver-ZKNJCLDV.mjs → intent-resolver-JESDDMKB.mjs} +8 -8
  14. package/dist/lib/browser/intent-resolver-JESDDMKB.mjs.map +7 -0
  15. package/dist/lib/browser/meta.json +1 -1
  16. package/dist/lib/browser/{react-surface-S36FDV7I.mjs → react-surface-6RWNGDFA.mjs} +3 -3
  17. package/dist/lib/browser/{settings-JFZJTDH7.mjs → settings-5UNGZSKH.mjs} +5 -5
  18. package/dist/lib/browser/settings-5UNGZSKH.mjs.map +7 -0
  19. package/dist/lib/browser/{state-GHBXMIQI.mjs → state-LG4FXJD2.mjs} +2 -2
  20. package/dist/lib/browser/types.mjs +1 -1
  21. package/dist/lib/node/{app-graph-builder-JPUTX4LQ.cjs → app-graph-builder-EXZP366Q.cjs} +28 -25
  22. package/dist/lib/node/app-graph-builder-EXZP366Q.cjs.map +7 -0
  23. package/dist/lib/node/chunk-6UA74KDI.cjs +200 -0
  24. package/dist/lib/node/chunk-6UA74KDI.cjs.map +7 -0
  25. package/dist/lib/node/{chunk-WJQ2MG7S.cjs → chunk-HAIMXBCH.cjs} +5 -5
  26. package/dist/lib/node/{chunk-WJQ2MG7S.cjs.map → chunk-HAIMXBCH.cjs.map} +1 -1
  27. package/dist/lib/node/chunk-UMH4JAVS.cjs +199 -0
  28. package/dist/lib/node/chunk-UMH4JAVS.cjs.map +7 -0
  29. package/dist/lib/node/{client-ready-KHGLQOQZ.cjs → client-ready-CTPKWHMP.cjs} +12 -12
  30. package/dist/lib/node/client-ready-CTPKWHMP.cjs.map +7 -0
  31. package/dist/lib/node/index.cjs +20 -18
  32. package/dist/lib/node/index.cjs.map +2 -2
  33. package/dist/lib/node/{intent-resolver-5SANBSGX.cjs → intent-resolver-7G4GEUOA.cjs} +15 -15
  34. package/dist/lib/node/intent-resolver-7G4GEUOA.cjs.map +7 -0
  35. package/dist/lib/node/meta.json +1 -1
  36. package/dist/lib/node/{react-surface-MWJS6OMP.cjs → react-surface-VZQ7EWYP.cjs} +8 -8
  37. package/dist/lib/node/{settings-ARLOGCYU.cjs → settings-PMUXB3WF.cjs} +8 -8
  38. package/dist/lib/node/settings-PMUXB3WF.cjs.map +7 -0
  39. package/dist/lib/node/{state-5GZLUTX7.cjs → state-NXRP3P5D.cjs} +6 -6
  40. package/dist/lib/node/types.cjs +3 -3
  41. package/dist/lib/node/types.cjs.map +1 -1
  42. package/dist/lib/node-esm/app-graph-builder-T7J46NSQ.mjs +44 -0
  43. package/dist/lib/node-esm/app-graph-builder-T7J46NSQ.mjs.map +7 -0
  44. package/dist/lib/node-esm/chunk-OWGL3ALC.mjs +176 -0
  45. package/dist/lib/node-esm/chunk-OWGL3ALC.mjs.map +7 -0
  46. package/dist/lib/node-esm/chunk-S2MXYKCI.mjs +180 -0
  47. package/dist/lib/node-esm/chunk-S2MXYKCI.mjs.map +7 -0
  48. package/dist/lib/node-esm/{chunk-U3JYGK3O.mjs → chunk-X2U2ZHWX.mjs} +4 -4
  49. package/dist/lib/{browser/chunk-ECWB7E2O.mjs.map → node-esm/chunk-X2U2ZHWX.mjs.map} +1 -1
  50. package/dist/lib/node-esm/{client-ready-4BUMAISA.mjs → client-ready-FS62YRSD.mjs} +7 -7
  51. package/dist/lib/node-esm/client-ready-FS62YRSD.mjs.map +7 -0
  52. package/dist/lib/node-esm/index.mjs +14 -12
  53. package/dist/lib/node-esm/index.mjs.map +2 -2
  54. package/dist/lib/node-esm/{intent-resolver-5EFEXLWX.mjs → intent-resolver-MREOBMHB.mjs} +8 -8
  55. package/dist/lib/node-esm/intent-resolver-MREOBMHB.mjs.map +7 -0
  56. package/dist/lib/node-esm/meta.json +1 -1
  57. package/dist/lib/node-esm/{react-surface-VLQBOZTX.mjs → react-surface-ZHMNRVFJ.mjs} +3 -3
  58. package/dist/lib/node-esm/{settings-765HDSFY.mjs → settings-YF4AO2PI.mjs} +5 -5
  59. package/dist/lib/node-esm/settings-YF4AO2PI.mjs.map +7 -0
  60. package/dist/lib/node-esm/{state-R2UVEG7B.mjs → state-IZNXQ5RA.mjs} +2 -2
  61. package/dist/lib/node-esm/types.mjs +1 -1
  62. package/dist/types/src/ObservabilityPlugin.d.ts.map +1 -1
  63. package/dist/types/src/capabilities/app-graph-builder.d.ts +2 -179
  64. package/dist/types/src/capabilities/app-graph-builder.d.ts.map +1 -1
  65. package/dist/types/src/capabilities/client-ready.d.ts +2 -2
  66. package/dist/types/src/capabilities/client-ready.d.ts.map +1 -1
  67. package/dist/types/src/capabilities/index.d.ts +4 -180
  68. package/dist/types/src/capabilities/index.d.ts.map +1 -1
  69. package/dist/types/src/capabilities/intent-resolver.d.ts +2 -2
  70. package/dist/types/src/capabilities/intent-resolver.d.ts.map +1 -1
  71. package/dist/types/src/capabilities/state.d.ts +1 -1
  72. package/dist/types/src/capabilities/state.d.ts.map +1 -1
  73. package/dist/types/src/components/FeedbackForm.d.ts.map +1 -1
  74. package/dist/types/src/components/HelpContainer.d.ts.map +1 -1
  75. package/dist/types/src/components/ObservabilitySettings.d.ts +4 -4
  76. package/dist/types/src/components/ObservabilitySettings.d.ts.map +1 -1
  77. package/dist/types/src/translations.d.ts +2 -0
  78. package/dist/types/src/translations.d.ts.map +1 -1
  79. package/dist/types/src/types.d.ts +258 -145
  80. package/dist/types/src/types.d.ts.map +1 -1
  81. package/dist/types/tsconfig.tsbuildinfo +1 -1
  82. package/package.json +31 -22
  83. package/src/capabilities/app-graph-builder.ts +29 -17
  84. package/src/capabilities/client-ready.ts +6 -6
  85. package/src/capabilities/intent-resolver.ts +7 -7
  86. package/src/capabilities/settings.ts +2 -2
  87. package/src/components/HelpContainer.tsx +21 -4
  88. package/src/components/ObservabilitySettings.tsx +5 -5
  89. package/src/translations.ts +3 -1
  90. package/src/types.ts +128 -126
  91. package/dist/lib/browser/app-graph-builder-OCAR3KUZ.mjs +0 -40
  92. package/dist/lib/browser/app-graph-builder-OCAR3KUZ.mjs.map +0 -7
  93. package/dist/lib/browser/chunk-6Q6ZJ3N4.mjs +0 -123
  94. package/dist/lib/browser/chunk-6Q6ZJ3N4.mjs.map +0 -7
  95. package/dist/lib/browser/chunk-RI4RE346.mjs +0 -178
  96. package/dist/lib/browser/chunk-RI4RE346.mjs.map +0 -7
  97. package/dist/lib/browser/client-ready-LRY24QM5.mjs.map +0 -7
  98. package/dist/lib/browser/intent-resolver-ZKNJCLDV.mjs.map +0 -7
  99. package/dist/lib/browser/settings-JFZJTDH7.mjs.map +0 -7
  100. package/dist/lib/node/app-graph-builder-JPUTX4LQ.cjs.map +0 -7
  101. package/dist/lib/node/chunk-FIL4BZE2.cjs +0 -148
  102. package/dist/lib/node/chunk-FIL4BZE2.cjs.map +0 -7
  103. package/dist/lib/node/chunk-V4ZLLL5M.cjs +0 -198
  104. package/dist/lib/node/chunk-V4ZLLL5M.cjs.map +0 -7
  105. package/dist/lib/node/client-ready-KHGLQOQZ.cjs.map +0 -7
  106. package/dist/lib/node/intent-resolver-5SANBSGX.cjs.map +0 -7
  107. package/dist/lib/node/settings-ARLOGCYU.cjs.map +0 -7
  108. package/dist/lib/node-esm/app-graph-builder-RKURIIFT.mjs +0 -41
  109. package/dist/lib/node-esm/app-graph-builder-RKURIIFT.mjs.map +0 -7
  110. package/dist/lib/node-esm/chunk-M3MGU3DN.mjs +0 -179
  111. package/dist/lib/node-esm/chunk-M3MGU3DN.mjs.map +0 -7
  112. package/dist/lib/node-esm/chunk-MW737PHD.mjs +0 -124
  113. package/dist/lib/node-esm/chunk-MW737PHD.mjs.map +0 -7
  114. package/dist/lib/node-esm/client-ready-4BUMAISA.mjs.map +0 -7
  115. package/dist/lib/node-esm/intent-resolver-5EFEXLWX.mjs.map +0 -7
  116. package/dist/lib/node-esm/settings-765HDSFY.mjs.map +0 -7
  117. /package/dist/lib/browser/{react-surface-S36FDV7I.mjs.map → react-surface-6RWNGDFA.mjs.map} +0 -0
  118. /package/dist/lib/browser/{state-GHBXMIQI.mjs.map → state-LG4FXJD2.mjs.map} +0 -0
  119. /package/dist/lib/node/{react-surface-MWJS6OMP.cjs.map → react-surface-VZQ7EWYP.cjs.map} +0 -0
  120. /package/dist/lib/node/{state-5GZLUTX7.cjs.map → state-NXRP3P5D.cjs.map} +0 -0
  121. /package/dist/lib/node-esm/{react-surface-VLQBOZTX.mjs.map → react-surface-ZHMNRVFJ.mjs.map} +0 -0
  122. /package/dist/lib/node-esm/{state-R2UVEG7B.mjs.map → state-IZNXQ5RA.mjs.map} +0 -0
@@ -1,124 +0,0 @@
1
- import { createRequire } from 'node:module';const require = createRequire(import.meta.url);
2
- import {
3
- ObservabilityAction,
4
- UserFeedback
5
- } from "./chunk-M3MGU3DN.mjs";
6
- import {
7
- OBSERVABILITY_PLUGIN
8
- } from "./chunk-KT5SDFBU.mjs";
9
-
10
- // packages/plugins/plugin-observability/src/components/FeedbackForm.tsx
11
- import React, { useCallback, useRef, useState } from "react";
12
- import { getSnapshot } from "@dxos/echo-schema";
13
- import { IconButton, Input, useTranslation } from "@dxos/react-ui";
14
- import { FormProvider, useFormContext, useInputProps } from "@dxos/react-ui-form";
15
- var defaultValues = {
16
- message: ""
17
- };
18
- var FormContent = () => {
19
- const { t } = useTranslation(OBSERVABILITY_PLUGIN);
20
- const { handleSave, canSave } = useFormContext();
21
- const messageProps = useInputProps([
22
- "message"
23
- ]);
24
- return /* @__PURE__ */ React.createElement("div", {
25
- role: "form",
26
- className: "p-3 flex flex-col gap-2"
27
- }, /* @__PURE__ */ React.createElement("div", {
28
- role: "none",
29
- className: "space-b-1"
30
- }, /* @__PURE__ */ React.createElement(Input.Root, {
31
- validationValence: messageProps.getStatus().status
32
- }, /* @__PURE__ */ React.createElement(Input.Label, null, t("feedback text area label")), /* @__PURE__ */ React.createElement(Input.TextArea, {
33
- classNames: "text-sm",
34
- rows: 5,
35
- cols: 30,
36
- placeholder: t("feedback text area placeholder"),
37
- value: messageProps.getValue() ?? "",
38
- onChange: (e) => messageProps.onValueChange("string", e.target.value),
39
- // TODO(wittjosiah): This aggressively shows validation errors.
40
- onBlur: messageProps.onBlur
41
- }), /* @__PURE__ */ React.createElement(Input.DescriptionAndValidation, null, /* @__PURE__ */ React.createElement(Input.Validation, null, messageProps.getStatus().error)))), /* @__PURE__ */ React.createElement("div", {
42
- role: "none",
43
- className: "space-b-2"
44
- }, /* @__PURE__ */ React.createElement(IconButton, {
45
- icon: "ph--paper-plane-tilt--regular",
46
- label: t("send feedback label"),
47
- variant: "primary",
48
- type: "submit",
49
- classNames: "is-full",
50
- disabled: !canSave,
51
- onClick: handleSave
52
- })));
53
- };
54
- var FeedbackForm = ({ onSave }) => {
55
- const formRef = useRef(null);
56
- const [_, update] = useState({});
57
- const forceRender = useCallback(() => update({}), [
58
- update
59
- ]);
60
- const handleSave = useCallback((values) => {
61
- onSave(values);
62
- forceRender();
63
- }, [
64
- forceRender,
65
- onSave
66
- ]);
67
- const initialValues = getSnapshot(defaultValues);
68
- return /* @__PURE__ */ React.createElement(FormProvider, {
69
- formRef,
70
- schema: UserFeedback,
71
- initialValues,
72
- onSave: handleSave
73
- }, /* @__PURE__ */ React.createElement("div", {
74
- ref: formRef
75
- }, /* @__PURE__ */ React.createElement(FormContent, null)));
76
- };
77
-
78
- // packages/plugins/plugin-observability/src/components/HelpContainer.tsx
79
- import React2, { useCallback as useCallback2 } from "react";
80
- import { createIntent, useIntentDispatcher } from "@dxos/app-framework";
81
- var HelpContainer = () => {
82
- const { dispatchPromise: dispatch } = useIntentDispatcher();
83
- const handleSave = useCallback2((values) => {
84
- void dispatch(createIntent(ObservabilityAction.CaptureUserFeedback, values));
85
- }, [
86
- dispatch
87
- ]);
88
- return /* @__PURE__ */ React2.createElement(FeedbackForm, {
89
- onSave: handleSave
90
- });
91
- };
92
-
93
- // packages/plugins/plugin-observability/src/components/ObservabilitySettings.tsx
94
- import React3 from "react";
95
- import { createIntent as createIntent2, useIntentDispatcher as useIntentDispatcher2 } from "@dxos/app-framework";
96
- import { S } from "@dxos/echo-schema";
97
- import { Input as Input2, Message, useTranslation as useTranslation2 } from "@dxos/react-ui";
98
- import { DeprecatedFormContainer, DeprecatedFormInput } from "@dxos/react-ui-form";
99
- var ObservabilitySettingsSchema = S.mutable(S.Struct({
100
- enabled: S.Boolean
101
- }));
102
- var ObservabilitySettings = ({ settings }) => {
103
- const { t } = useTranslation2(OBSERVABILITY_PLUGIN);
104
- const { dispatchPromise: dispatch } = useIntentDispatcher2();
105
- return /* @__PURE__ */ React3.createElement(DeprecatedFormContainer, null, /* @__PURE__ */ React3.createElement(DeprecatedFormInput, {
106
- label: t("observability enabled label"),
107
- secondary: /* @__PURE__ */ React3.createElement(Message.Root, {
108
- valence: "info"
109
- }, /* @__PURE__ */ React3.createElement(Message.Body, null, t("observability description")))
110
- }, /* @__PURE__ */ React3.createElement(Input2.Switch, {
111
- checked: settings.enabled,
112
- onCheckedChange: (checked) => dispatch(createIntent2(ObservabilityAction.Toggle, {
113
- state: !!checked
114
- }))
115
- })));
116
- };
117
-
118
- export {
119
- FeedbackForm,
120
- HelpContainer,
121
- ObservabilitySettingsSchema,
122
- ObservabilitySettings
123
- };
124
- //# sourceMappingURL=chunk-MW737PHD.mjs.map
@@ -1,7 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../../../src/components/FeedbackForm.tsx", "../../../src/components/HelpContainer.tsx", "../../../src/components/ObservabilitySettings.tsx"],
4
- "sourcesContent": ["//\n// Copyright 2024 DXOS.org\n//\n\nimport React, { useCallback, useRef, useState } from 'react';\n\nimport { getSnapshot } from '@dxos/echo-schema';\nimport { IconButton, Input, useTranslation } from '@dxos/react-ui';\nimport { FormProvider, useFormContext, useInputProps } from '@dxos/react-ui-form';\n\nimport { OBSERVABILITY_PLUGIN } from '../meta';\nimport { UserFeedback } from '../types';\n\nconst defaultValues: UserFeedback = { message: '' };\n\nconst FormContent = () => {\n const { t } = useTranslation(OBSERVABILITY_PLUGIN);\n const { handleSave, canSave } = useFormContext<UserFeedback>();\n\n const messageProps = useInputProps(['message']);\n\n return (\n <div role='form' className='p-3 flex flex-col gap-2'>\n <div role='none' className='space-b-1'>\n <Input.Root validationValence={messageProps.getStatus().status}>\n <Input.Label>{t('feedback text area label')}</Input.Label>\n <Input.TextArea\n classNames={'text-sm'}\n rows={5}\n cols={30}\n placeholder={t('feedback text area placeholder')}\n value={messageProps.getValue() ?? ''}\n onChange={(e) => messageProps.onValueChange('string', e.target.value)}\n // TODO(wittjosiah): This aggressively shows validation errors.\n onBlur={messageProps.onBlur}\n />\n <Input.DescriptionAndValidation>\n <Input.Validation>{messageProps.getStatus().error}</Input.Validation>\n </Input.DescriptionAndValidation>\n </Input.Root>\n </div>\n\n <div role='none' className='space-b-2'>\n <IconButton\n icon='ph--paper-plane-tilt--regular'\n label={t('send feedback label')}\n variant='primary'\n type='submit'\n classNames='is-full'\n disabled={!canSave}\n onClick={handleSave}\n />\n </div>\n </div>\n );\n};\n\n// TODO(wittjosiah): Use `Form`?\nexport const FeedbackForm = ({ onSave }: { onSave: (values: UserFeedback) => void }) => {\n const formRef = useRef<HTMLDivElement>(null);\n const [_, update] = useState({});\n const forceRender = useCallback(() => update({}), [update]);\n\n const handleSave = useCallback(\n (values: UserFeedback) => {\n onSave(values);\n // TODO(wittjosiah): Force re-render to clear the form.\n forceRender();\n },\n [forceRender, onSave],\n );\n\n const initialValues = getSnapshot(defaultValues);\n\n return (\n <FormProvider formRef={formRef} schema={UserFeedback} initialValues={initialValues} onSave={handleSave}>\n <div ref={formRef}>\n <FormContent />\n </div>\n </FormProvider>\n );\n};\n", "//\n// Copyright 2025 DXOS.org\n//\n\nimport React, { useCallback } from 'react';\n\nimport { createIntent, useIntentDispatcher } from '@dxos/app-framework';\n\nimport { FeedbackForm } from './FeedbackForm';\nimport { ObservabilityAction, type UserFeedback } from '../types';\n\nexport const HelpContainer = () => {\n const { dispatchPromise: dispatch } = useIntentDispatcher();\n\n const handleSave = useCallback(\n (values: UserFeedback) => {\n void dispatch(createIntent(ObservabilityAction.CaptureUserFeedback, values));\n },\n [dispatch],\n );\n\n return <FeedbackForm onSave={handleSave} />;\n};\n", "//\n// Copyright 2023 DXOS.org\n//\n\nimport React from 'react';\n\nimport { createIntent, useIntentDispatcher } from '@dxos/app-framework';\nimport { S } from '@dxos/echo-schema';\nimport { Input, Message, useTranslation } from '@dxos/react-ui';\nimport { DeprecatedFormContainer, DeprecatedFormInput } from '@dxos/react-ui-form';\n\nimport { OBSERVABILITY_PLUGIN } from '../meta';\nimport { ObservabilityAction } from '../types';\n\nexport const ObservabilitySettingsSchema = S.mutable(\n S.Struct({\n enabled: S.Boolean,\n // TODO(wittjosiah): Separate settings for each observability feature.\n // metrics?: boolean;\n // telemetry?: boolean;\n // errors?: boolean;\n }),\n);\n\nexport type ObservabilitySettingsProps = S.Schema.Type<typeof ObservabilitySettingsSchema>;\n\nexport const ObservabilitySettings = ({ settings }: { settings: ObservabilitySettingsProps }) => {\n const { t } = useTranslation(OBSERVABILITY_PLUGIN);\n const { dispatchPromise: dispatch } = useIntentDispatcher();\n\n return (\n <DeprecatedFormContainer>\n <DeprecatedFormInput\n label={t('observability enabled label')}\n secondary={\n <Message.Root valence='info'>\n <Message.Body>{t('observability description')}</Message.Body>\n </Message.Root>\n }\n >\n <Input.Switch\n checked={settings.enabled}\n onCheckedChange={(checked) => dispatch(createIntent(ObservabilityAction.Toggle, { state: !!checked }))}\n />\n </DeprecatedFormInput>\n </DeprecatedFormContainer>\n );\n};\n"],
5
- "mappings": ";;;;;;;;;;AAIA,OAAOA,SAASC,aAAaC,QAAQC,gBAAgB;AAErD,SAASC,mBAAmB;AAC5B,SAASC,YAAYC,OAAOC,sBAAsB;AAClD,SAASC,cAAcC,gBAAgBC,qBAAqB;AAK5D,IAAMC,gBAA8B;EAAEC,SAAS;AAAG;AAElD,IAAMC,cAAc,MAAA;AAClB,QAAM,EAAEC,EAAC,IAAKC,eAAeC,oBAAAA;AAC7B,QAAM,EAAEC,YAAYC,QAAO,IAAKC,eAAAA;AAEhC,QAAMC,eAAeC,cAAc;IAAC;GAAU;AAE9C,SACE,sBAAA,cAACC,OAAAA;IAAIC,MAAK;IAAOC,WAAU;KACzB,sBAAA,cAACF,OAAAA;IAAIC,MAAK;IAAOC,WAAU;KACzB,sBAAA,cAACC,MAAMC,MAAI;IAACC,mBAAmBP,aAAaQ,UAAS,EAAGC;KACtD,sBAAA,cAACJ,MAAMK,OAAK,MAAEhB,EAAE,0BAAA,CAAA,GAChB,sBAAA,cAACW,MAAMM,UAAQ;IACbC,YAAY;IACZC,MAAM;IACNC,MAAM;IACNC,aAAarB,EAAE,gCAAA;IACfsB,OAAOhB,aAAaiB,SAAQ,KAAM;IAClCC,UAAU,CAACC,MAAMnB,aAAaoB,cAAc,UAAUD,EAAEE,OAAOL,KAAK;;IAEpEM,QAAQtB,aAAasB;MAEvB,sBAAA,cAACjB,MAAMkB,0BAAwB,MAC7B,sBAAA,cAAClB,MAAMmB,YAAU,MAAExB,aAAaQ,UAAS,EAAGiB,KAAK,CAAA,CAAA,CAAA,GAKvD,sBAAA,cAACvB,OAAAA;IAAIC,MAAK;IAAOC,WAAU;KACzB,sBAAA,cAACsB,YAAAA;IACCC,MAAK;IACLC,OAAOlC,EAAE,qBAAA;IACTmC,SAAQ;IACRC,MAAK;IACLlB,YAAW;IACXmB,UAAU,CAACjC;IACXkC,SAASnC;;AAKnB;AAGO,IAAMoC,eAAe,CAAC,EAAEC,OAAM,MAA8C;AACjF,QAAMC,UAAUC,OAAuB,IAAA;AACvC,QAAM,CAACC,GAAGC,MAAAA,IAAUC,SAAS,CAAC,CAAA;AAC9B,QAAMC,cAAcC,YAAY,MAAMH,OAAO,CAAC,CAAA,GAAI;IAACA;GAAO;AAE1D,QAAMzC,aAAa4C,YACjB,CAACC,WAAAA;AACCR,WAAOQ,MAAAA;AAEPF,gBAAAA;EACF,GACA;IAACA;IAAaN;GAAO;AAGvB,QAAMS,gBAAgBC,YAAYrD,aAAAA;AAElC,SACE,sBAAA,cAACsD,cAAAA;IAAaV;IAAkBW,QAAQC;IAAcJ;IAA8BT,QAAQrC;KAC1F,sBAAA,cAACK,OAAAA;IAAI8C,KAAKb;KACR,sBAAA,cAAC1C,aAAAA,IAAAA,CAAAA,CAAAA;AAIT;;;AC7EA,OAAOwD,UAASC,eAAAA,oBAAmB;AAEnC,SAASC,cAAcC,2BAA2B;AAK3C,IAAMC,gBAAgB,MAAA;AAC3B,QAAM,EAAEC,iBAAiBC,SAAQ,IAAKC,oBAAAA;AAEtC,QAAMC,aAAaC,aACjB,CAACC,WAAAA;AACC,SAAKJ,SAASK,aAAaC,oBAAoBC,qBAAqBH,MAAAA,CAAAA;EACtE,GACA;IAACJ;GAAS;AAGZ,SAAO,gBAAAQ,OAAA,cAACC,cAAAA;IAAaC,QAAQR;;AAC/B;;;AClBA,OAAOS,YAAW;AAElB,SAASC,gBAAAA,eAAcC,uBAAAA,4BAA2B;AAClD,SAASC,SAAS;AAClB,SAASC,SAAAA,QAAOC,SAASC,kBAAAA,uBAAsB;AAC/C,SAASC,yBAAyBC,2BAA2B;AAKtD,IAAMC,8BAA8BC,EAAEC,QAC3CD,EAAEE,OAAO;EACPC,SAASH,EAAEI;AAKb,CAAA,CAAA;AAKK,IAAMC,wBAAwB,CAAC,EAAEC,SAAQ,MAA4C;AAC1F,QAAM,EAAEC,EAAC,IAAKC,gBAAeC,oBAAAA;AAC7B,QAAM,EAAEC,iBAAiBC,SAAQ,IAAKC,qBAAAA;AAEtC,SACE,gBAAAC,OAAA,cAACC,yBAAAA,MACC,gBAAAD,OAAA,cAACE,qBAAAA;IACCC,OAAOT,EAAE,6BAAA;IACTU,WACE,gBAAAJ,OAAA,cAACK,QAAQC,MAAI;MAACC,SAAQ;OACpB,gBAAAP,OAAA,cAACK,QAAQG,MAAI,MAAEd,EAAE,2BAAA,CAAA,CAAA;KAIrB,gBAAAM,OAAA,cAACS,OAAMC,QAAM;IACXC,SAASlB,SAASH;IAClBsB,iBAAiB,CAACD,YAAYb,SAASe,cAAaC,oBAAoBC,QAAQ;MAAEC,OAAO,CAAC,CAACL;IAAQ,CAAA,CAAA;;AAK7G;",
6
- "names": ["React", "useCallback", "useRef", "useState", "getSnapshot", "IconButton", "Input", "useTranslation", "FormProvider", "useFormContext", "useInputProps", "defaultValues", "message", "FormContent", "t", "useTranslation", "OBSERVABILITY_PLUGIN", "handleSave", "canSave", "useFormContext", "messageProps", "useInputProps", "div", "role", "className", "Input", "Root", "validationValence", "getStatus", "status", "Label", "TextArea", "classNames", "rows", "cols", "placeholder", "value", "getValue", "onChange", "e", "onValueChange", "target", "onBlur", "DescriptionAndValidation", "Validation", "error", "IconButton", "icon", "label", "variant", "type", "disabled", "onClick", "FeedbackForm", "onSave", "formRef", "useRef", "_", "update", "useState", "forceRender", "useCallback", "values", "initialValues", "getSnapshot", "FormProvider", "schema", "UserFeedback", "ref", "React", "useCallback", "createIntent", "useIntentDispatcher", "HelpContainer", "dispatchPromise", "dispatch", "useIntentDispatcher", "handleSave", "useCallback", "values", "createIntent", "ObservabilityAction", "CaptureUserFeedback", "React", "FeedbackForm", "onSave", "React", "createIntent", "useIntentDispatcher", "S", "Input", "Message", "useTranslation", "DeprecatedFormContainer", "DeprecatedFormInput", "ObservabilitySettingsSchema", "S", "mutable", "Struct", "enabled", "Boolean", "ObservabilitySettings", "settings", "t", "useTranslation", "OBSERVABILITY_PLUGIN", "dispatchPromise", "dispatch", "useIntentDispatcher", "React", "DeprecatedFormContainer", "DeprecatedFormInput", "label", "secondary", "Message", "Root", "valence", "Body", "Input", "Switch", "checked", "onCheckedChange", "createIntent", "ObservabilityAction", "Toggle", "state"]
7
- }
@@ -1,7 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../../../src/capabilities/client-ready.ts"],
4
- "sourcesContent": ["//\n// Copyright 2025 DXOS.org\n//\n\nimport {\n Capabilities,\n contributes,\n createIntent,\n LayoutAction,\n SettingsAction,\n type PluginsContext,\n} from '@dxos/app-framework';\nimport { setupTelemetryListeners, type Observability } from '@dxos/observability';\n\nimport { ClientCapability, ObservabilityCapabilities } from './capabilities';\nimport { OBSERVABILITY_PLUGIN } from '../meta';\nimport { ObservabilityAction } from '../types';\n\ntype ClientReadyOptions = {\n context: PluginsContext;\n namespace: string;\n observability: Observability;\n};\n\nexport default async ({ context, namespace, observability }: ClientReadyOptions) => {\n const manager = context.requestCapability(Capabilities.PluginManager);\n const { dispatchPromise: dispatch } = context.requestCapability(Capabilities.IntentDispatcher);\n const state = context.requestCapability(ObservabilityCapabilities.State);\n const client = context.requestCapability(ClientCapability);\n\n const sendPrivacyNotice = async () => {\n const environment = client?.config?.values.runtime?.app?.env?.DX_ENVIRONMENT;\n const notify =\n environment && environment !== 'ci' && !environment.endsWith('.local') && !environment.endsWith('.lan');\n if (!state.notified && notify) {\n await dispatch(\n createIntent(LayoutAction.AddToast, {\n part: 'toast',\n subject: {\n id: `${OBSERVABILITY_PLUGIN}/notice`,\n title: ['observability toast label', { ns: OBSERVABILITY_PLUGIN }],\n description: ['observability toast description', { ns: OBSERVABILITY_PLUGIN }],\n duration: Infinity,\n icon: 'ph--info--regular',\n actionLabel: ['observability toast action label', { ns: OBSERVABILITY_PLUGIN }],\n actionAlt: ['observability toast action alt', { ns: OBSERVABILITY_PLUGIN }],\n closeLabel: ['observability toast close label', { ns: OBSERVABILITY_PLUGIN }],\n onAction: () => dispatch(createIntent(SettingsAction.Open, { plugin: OBSERVABILITY_PLUGIN })),\n },\n }),\n );\n\n state.notified = true;\n }\n };\n\n // Ensure errors are tagged with enabled plugins to help with reproductions.\n manager.enabled.map((plugin) => observability?.setTag(`pluginEnabled-${plugin}`, 'true', 'errors'));\n\n await dispatch(\n createIntent(ObservabilityAction.SendEvent, {\n name: 'page.load',\n properties: {\n // TODO(wittjosiah): These apis are deprecated. Is there a better way to find this information?\n loadDuration: window.performance.timing.loadEventEnd - window.performance.timing.loadEventStart,\n },\n }),\n );\n\n // Start client observability (i.e. not running as shared worker)\n // TODO(nf): how to prevent multiple instances for single shared worker?\n const cleanup = setupTelemetryListeners(namespace, client, observability);\n\n await Promise.all([\n observability.setIdentityTags(client.services.services),\n observability.startRuntimeMetrics(client),\n observability.startNetworkMetrics(client.services.services),\n observability.startSpacesMetrics(client, namespace),\n ]);\n\n if (client.halo.identity.get()) {\n await sendPrivacyNotice();\n } else {\n const subscription = client.halo.identity.subscribe(async (identity) => {\n if (identity && observability) {\n await sendPrivacyNotice();\n await observability.setIdentityTags(client.services.services);\n subscription.unsubscribe();\n }\n });\n }\n\n return contributes(ObservabilityCapabilities.Observability, observability, async () => {\n cleanup();\n await observability.close();\n });\n};\n"],
5
- "mappings": ";;;;;;;;;;;;;AAIA,SACEA,cACAC,aACAC,cACAC,cACAC,sBAEK;AACP,SAASC,+BAAmD;AAY5D,IAAA,uBAAe,OAAO,EAAEC,SAASC,WAAWC,cAAa,MAAsB;AAC7E,QAAMC,UAAUH,QAAQI,kBAAkBC,aAAaC,aAAa;AACpE,QAAM,EAAEC,iBAAiBC,SAAQ,IAAKR,QAAQI,kBAAkBC,aAAaI,gBAAgB;AAC7F,QAAMC,QAAQV,QAAQI,kBAAkBO,0BAA0BC,KAAK;AACvE,QAAMC,SAASb,QAAQI,kBAAkBU,gBAAAA;AAEzC,QAAMC,oBAAoB,YAAA;AACxB,UAAMC,cAAcH,QAAQI,QAAQC,OAAOC,SAASC,KAAKC,KAAKC;AAC9D,UAAMC,SACJP,eAAeA,gBAAgB,QAAQ,CAACA,YAAYQ,SAAS,QAAA,KAAa,CAACR,YAAYQ,SAAS,MAAA;AAClG,QAAI,CAACd,MAAMe,YAAYF,QAAQ;AAC7B,YAAMf,SACJkB,aAAaC,aAAaC,UAAU;QAClCC,MAAM;QACNC,SAAS;UACPC,IAAI,GAAGC,oBAAAA;UACPC,OAAO;YAAC;YAA6B;cAAEC,IAAIF;YAAqB;;UAChEG,aAAa;YAAC;YAAmC;cAAED,IAAIF;YAAqB;;UAC5EI,UAAUC;UACVC,MAAM;UACNC,aAAa;YAAC;YAAoC;cAAEL,IAAIF;YAAqB;;UAC7EQ,WAAW;YAAC;YAAkC;cAAEN,IAAIF;YAAqB;;UACzES,YAAY;YAAC;YAAmC;cAAEP,IAAIF;YAAqB;;UAC3EU,UAAU,MAAMlC,SAASkB,aAAaiB,eAAeC,MAAM;YAAEC,QAAQb;UAAqB,CAAA,CAAA;QAC5F;MACF,CAAA,CAAA;AAGFtB,YAAMe,WAAW;IACnB;EACF;AAGAtB,UAAQ2C,QAAQC,IAAI,CAACF,WAAW3C,eAAe8C,OAAO,iBAAiBH,MAAAA,IAAU,QAAQ,QAAA,CAAA;AAEzF,QAAMrC,SACJkB,aAAauB,oBAAoBC,WAAW;IAC1CC,MAAM;IACNC,YAAY;;MAEVC,cAAcC,OAAOC,YAAYC,OAAOC,eAAeH,OAAOC,YAAYC,OAAOE;IACnF;EACF,CAAA,CAAA;AAKF,QAAMC,UAAUC,wBAAwB3D,WAAWY,QAAQX,aAAAA;AAE3D,QAAM2D,QAAQC,IAAI;IAChB5D,cAAc6D,gBAAgBlD,OAAOmD,SAASA,QAAQ;IACtD9D,cAAc+D,oBAAoBpD,MAAAA;IAClCX,cAAcgE,oBAAoBrD,OAAOmD,SAASA,QAAQ;IAC1D9D,cAAciE,mBAAmBtD,QAAQZ,SAAAA;GAC1C;AAED,MAAIY,OAAOuD,KAAKC,SAASC,IAAG,GAAI;AAC9B,UAAMvD,kBAAAA;EACR,OAAO;AACL,UAAMwD,eAAe1D,OAAOuD,KAAKC,SAASG,UAAU,OAAOH,aAAAA;AACzD,UAAIA,YAAYnE,eAAe;AAC7B,cAAMa,kBAAAA;AACN,cAAMb,cAAc6D,gBAAgBlD,OAAOmD,SAASA,QAAQ;AAC5DO,qBAAaE,YAAW;MAC1B;IACF,CAAA;EACF;AAEA,SAAOC,YAAY/D,0BAA0BgE,eAAezE,eAAe,YAAA;AACzEyD,YAAAA;AACA,UAAMzD,cAAc0E,MAAK;EAC3B,CAAA;AACF;",
6
- "names": ["Capabilities", "contributes", "createIntent", "LayoutAction", "SettingsAction", "setupTelemetryListeners", "context", "namespace", "observability", "manager", "requestCapability", "Capabilities", "PluginManager", "dispatchPromise", "dispatch", "IntentDispatcher", "state", "ObservabilityCapabilities", "State", "client", "ClientCapability", "sendPrivacyNotice", "environment", "config", "values", "runtime", "app", "env", "DX_ENVIRONMENT", "notify", "endsWith", "notified", "createIntent", "LayoutAction", "AddToast", "part", "subject", "id", "OBSERVABILITY_PLUGIN", "title", "ns", "description", "duration", "Infinity", "icon", "actionLabel", "actionAlt", "closeLabel", "onAction", "SettingsAction", "Open", "plugin", "enabled", "map", "setTag", "ObservabilityAction", "SendEvent", "name", "properties", "loadDuration", "window", "performance", "timing", "loadEventEnd", "loadEventStart", "cleanup", "setupTelemetryListeners", "Promise", "all", "setIdentityTags", "services", "startRuntimeMetrics", "startNetworkMetrics", "startSpacesMetrics", "halo", "identity", "get", "subscription", "subscribe", "unsubscribe", "contributes", "Observability", "close"]
7
- }
@@ -1,7 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../../../src/capabilities/intent-resolver.ts"],
4
- "sourcesContent": ["//\n// Copyright 2025 DXOS.org\n//\n\nimport { Capabilities, contributes, createResolver, IntentAction, type PluginsContext } from '@dxos/app-framework';\nimport { log } from '@dxos/log';\nimport { getTelemetryIdentity, storeObservabilityDisabled } from '@dxos/observability';\n\nimport { ClientCapability, ObservabilityCapabilities } from './capabilities';\nimport { type ObservabilitySettingsProps } from '../components';\nimport { OBSERVABILITY_PLUGIN } from '../meta';\nimport { ObservabilityAction } from '../types';\n\nexport default ({ context, namespace }: { context: PluginsContext; 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.requestCapability(ClientCapability);\n const observability = context.requestCapability(ObservabilityCapabilities.Observability);\n const settings = context\n .requestCapability(Capabilities.SettingsStore)\n .getStore<ObservabilitySettingsProps>(OBSERVABILITY_PLUGIN)!.value;\n settings.enabled = state ?? !settings.enabled;\n observability.track({\n ...getTelemetryIdentity(client),\n action: 'observability.toggle',\n properties: {\n enabled: settings.enabled,\n },\n });\n observability.setMode(settings.enabled ? 'basic' : 'disabled');\n await storeObservabilityDisabled(namespace, !settings.enabled);\n return { data: settings.enabled };\n },\n }),\n createResolver({\n intent: ObservabilityAction.SendEvent,\n resolve: (data) => {\n const client = context.requestCapability(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.requestCapability(ObservabilityCapabilities.Observability);\n observability.captureUserFeedback(data.message);\n },\n }),\n ]);\n"],
5
- "mappings": ";;;;;;;;;;;;;AAIA,SAASA,cAAcC,aAAaC,gBAAgBC,oBAAyC;AAC7F,SAASC,WAAW;AACpB,SAASC,sBAAsBC,kCAAkC;;AAOjE,IAAA,0BAAe,CAAC,EAAEC,SAASC,UAAS,MAClCC,YAAYC,aAAaC,gBAAgB;EACvCC,eAAe;IACbC,QAAQC,aAAaC;IACrBC,SAAS,CAACH,WAAAA;AACRI,UAAIC,KAAK,UAAU;QAAEL;MAAO,GAAA;;;;;;IAC9B;EACF,CAAA;EACAD,eAAe;IACbC,QAAQM,oBAAoBC;IAC5BJ,SAAS,OAAO,EAAEK,MAAK,MAAE;AACvB,YAAMC,SAASf,QAAQgB,kBAAkBC,gBAAAA;AACzC,YAAMC,gBAAgBlB,QAAQgB,kBAAkBG,0BAA0BC,aAAa;AACvF,YAAMC,WAAWrB,QACdgB,kBAAkBb,aAAamB,aAAa,EAC5CC,SAAqCC,oBAAAA,EAAuBC;AAC/DJ,eAASK,UAAUZ,SAAS,CAACO,SAASK;AACtCR,oBAAcS,MAAM;QAClB,GAAGC,qBAAqBb,MAAAA;QACxBc,QAAQ;QACRC,YAAY;UACVJ,SAASL,SAASK;QACpB;MACF,CAAA;AACAR,oBAAca,QAAQV,SAASK,UAAU,UAAU,UAAA;AACnD,YAAMM,2BAA2B/B,WAAW,CAACoB,SAASK,OAAO;AAC7D,aAAO;QAAEO,MAAMZ,SAASK;MAAQ;IAClC;EACF,CAAA;EACArB,eAAe;IACbC,QAAQM,oBAAoBsB;IAC5BzB,SAAS,CAACwB,SAAAA;AACR,YAAMlB,SAASf,QAAQgB,kBAAkBC,gBAAAA;AACzC,YAAMa,aAAa,gBAAgBG,OAAOA,KAAKH,aAAa,CAAC;AAK7D,WAAK9B,QAAQmC,kBAAkBhB,0BAA0BC,aAAa,EAAEgB,KAAK,CAAClB,kBAAAA;AAC5EA,sBAAcS,MAAM;UAClB,GAAGC,qBAAqBb,MAAAA;UACxBc,QAAQI,KAAKI;UACbP;QACF,CAAA;MACF,CAAA;IACF;EACF,CAAA;EACAzB,eAAe;IACbC,QAAQM,oBAAoB0B;IAC5B7B,SAAS,OAAOwB,SAAAA;AACd,YAAMf,gBAAgBlB,QAAQgB,kBAAkBG,0BAA0BC,aAAa;AACvFF,oBAAcqB,oBAAoBN,KAAKO,OAAO;IAChD;EACF,CAAA;CACD;",
6
- "names": ["Capabilities", "contributes", "createResolver", "IntentAction", "log", "getTelemetryIdentity", "storeObservabilityDisabled", "context", "namespace", "contributes", "Capabilities", "IntentResolver", "createResolver", "intent", "IntentAction", "Track", "resolve", "log", "info", "ObservabilityAction", "Toggle", "state", "client", "requestCapability", "ClientCapability", "observability", "ObservabilityCapabilities", "Observability", "settings", "SettingsStore", "getStore", "OBSERVABILITY_PLUGIN", "value", "enabled", "track", "getTelemetryIdentity", "action", "properties", "setMode", "storeObservabilityDisabled", "data", "SendEvent", "waitForCapability", "then", "name", "CaptureUserFeedback", "captureUserFeedback", "message"]
7
- }
@@ -1,7 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../../../src/capabilities/settings.ts"],
4
- "sourcesContent": ["//\n// Copyright 2025 DXOS.org\n//\n\nimport { Capabilities, contributes } from '@dxos/app-framework';\nimport { create } from '@dxos/live-object';\n\nimport { type ObservabilitySettingsProps, ObservabilitySettingsSchema } from '../components';\nimport { OBSERVABILITY_PLUGIN } from '../meta';\n\nexport default () => {\n const settings = create<ObservabilitySettingsProps>({ enabled: true });\n\n return contributes(Capabilities.Settings, {\n schema: ObservabilitySettingsSchema,\n prefix: OBSERVABILITY_PLUGIN,\n value: settings,\n });\n};\n"],
5
- "mappings": ";;;;;;;;;;AAIA,SAASA,cAAcC,mBAAmB;AAC1C,SAASC,cAAc;AAKvB,IAAA,mBAAe,MAAA;AACb,QAAMC,WAAWC,OAAmC;IAAEC,SAAS;EAAK,CAAA;AAEpE,SAAOC,YAAYC,aAAaC,UAAU;IACxCC,QAAQC;IACRC,QAAQC;IACRC,OAAOV;EACT,CAAA;AACF;",
6
- "names": ["Capabilities", "contributes", "create", "settings", "create", "enabled", "contributes", "Capabilities", "Settings", "schema", "ObservabilitySettingsSchema", "prefix", "OBSERVABILITY_PLUGIN", "value"]
7
- }