@dxos/plugin-observability 0.8.1-staging.5be625a → 0.8.1-staging.9eaf14f

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 (110) hide show
  1. package/dist/lib/browser/app-graph-builder-OCAR3KUZ.mjs +40 -0
  2. package/dist/lib/browser/app-graph-builder-OCAR3KUZ.mjs.map +7 -0
  3. package/dist/lib/browser/chunk-6Q6ZJ3N4.mjs +123 -0
  4. package/dist/lib/browser/chunk-6Q6ZJ3N4.mjs.map +7 -0
  5. package/dist/lib/browser/chunk-RI4RE346.mjs +178 -0
  6. package/dist/lib/browser/chunk-RI4RE346.mjs.map +7 -0
  7. package/dist/lib/browser/{client-ready-YVMB32ZM.mjs → client-ready-LRY24QM5.mjs} +2 -3
  8. package/dist/lib/browser/{client-ready-YVMB32ZM.mjs.map → client-ready-LRY24QM5.mjs.map} +3 -3
  9. package/dist/lib/browser/index.mjs +27 -6
  10. package/dist/lib/browser/index.mjs.map +3 -3
  11. package/dist/lib/browser/{intents-resolver-KFEQHNY7.mjs → intent-resolver-ZKNJCLDV.mjs} +32 -19
  12. package/dist/lib/browser/intent-resolver-ZKNJCLDV.mjs.map +7 -0
  13. package/dist/lib/browser/meta.json +1 -1
  14. package/dist/lib/browser/react-surface-S36FDV7I.mjs +32 -0
  15. package/dist/lib/browser/react-surface-S36FDV7I.mjs.map +7 -0
  16. package/dist/lib/browser/{settings-OQOZUJDJ.mjs → settings-JFZJTDH7.mjs} +3 -3
  17. package/dist/lib/browser/types.mjs +1 -1
  18. package/dist/lib/node/app-graph-builder-JPUTX4LQ.cjs +56 -0
  19. package/dist/lib/node/app-graph-builder-JPUTX4LQ.cjs.map +7 -0
  20. package/dist/lib/node/chunk-FIL4BZE2.cjs +148 -0
  21. package/dist/lib/node/chunk-FIL4BZE2.cjs.map +7 -0
  22. package/dist/lib/node/chunk-V4ZLLL5M.cjs +198 -0
  23. package/dist/lib/node/chunk-V4ZLLL5M.cjs.map +7 -0
  24. package/dist/lib/node/{client-ready-FJG76QPF.cjs → client-ready-KHGLQOQZ.cjs} +6 -7
  25. package/dist/lib/node/{client-ready-FJG76QPF.cjs.map → client-ready-KHGLQOQZ.cjs.map} +3 -3
  26. package/dist/lib/node/index.cjs +26 -6
  27. package/dist/lib/node/index.cjs.map +3 -3
  28. package/dist/lib/node/{intents-resolver-YUO4UUJT.cjs → intent-resolver-5SANBSGX.cjs} +35 -22
  29. package/dist/lib/node/intent-resolver-5SANBSGX.cjs.map +7 -0
  30. package/dist/lib/node/meta.json +1 -1
  31. package/dist/lib/node/{react-surface-XWZAUS46.cjs → react-surface-MWJS6OMP.cjs} +20 -13
  32. package/dist/lib/node/react-surface-MWJS6OMP.cjs.map +7 -0
  33. package/dist/lib/node/{settings-GUB7VFZU.cjs → settings-ARLOGCYU.cjs} +7 -7
  34. package/dist/lib/node/types.cjs +3 -3
  35. package/dist/lib/node/types.cjs.map +1 -1
  36. package/dist/lib/node-esm/app-graph-builder-RKURIIFT.mjs +41 -0
  37. package/dist/lib/node-esm/app-graph-builder-RKURIIFT.mjs.map +7 -0
  38. package/dist/lib/node-esm/chunk-M3MGU3DN.mjs +179 -0
  39. package/dist/lib/node-esm/chunk-M3MGU3DN.mjs.map +7 -0
  40. package/dist/lib/node-esm/chunk-MW737PHD.mjs +124 -0
  41. package/dist/lib/node-esm/chunk-MW737PHD.mjs.map +7 -0
  42. package/dist/lib/node-esm/{client-ready-DNDS3KKV.mjs → client-ready-4BUMAISA.mjs} +2 -3
  43. package/dist/lib/node-esm/{client-ready-DNDS3KKV.mjs.map → client-ready-4BUMAISA.mjs.map} +3 -3
  44. package/dist/lib/node-esm/index.mjs +27 -6
  45. package/dist/lib/node-esm/index.mjs.map +3 -3
  46. package/dist/lib/node-esm/{intents-resolver-VOTTSZAN.mjs → intent-resolver-5EFEXLWX.mjs} +32 -19
  47. package/dist/lib/node-esm/intent-resolver-5EFEXLWX.mjs.map +7 -0
  48. package/dist/lib/node-esm/meta.json +1 -1
  49. package/dist/lib/node-esm/react-surface-VLQBOZTX.mjs +33 -0
  50. package/dist/lib/node-esm/react-surface-VLQBOZTX.mjs.map +7 -0
  51. package/dist/lib/node-esm/{settings-YHYGZAYT.mjs → settings-765HDSFY.mjs} +3 -3
  52. package/dist/lib/node-esm/types.mjs +1 -1
  53. package/dist/types/src/ObservabilityPlugin.d.ts.map +1 -1
  54. package/dist/types/src/capabilities/app-graph-builder.d.ts +181 -0
  55. package/dist/types/src/capabilities/app-graph-builder.d.ts.map +1 -0
  56. package/dist/types/src/capabilities/client-ready.d.ts.map +1 -1
  57. package/dist/types/src/capabilities/index.d.ts +177 -0
  58. package/dist/types/src/capabilities/index.d.ts.map +1 -1
  59. package/dist/types/src/capabilities/{intents-resolver.d.ts → intent-resolver.d.ts} +1 -1
  60. package/dist/types/src/capabilities/intent-resolver.d.ts.map +1 -0
  61. package/dist/types/src/capabilities/react-surface.d.ts.map +1 -1
  62. package/dist/types/src/components/FeedbackForm.d.ts +6 -0
  63. package/dist/types/src/components/FeedbackForm.d.ts.map +1 -0
  64. package/dist/types/src/components/HelpContainer.d.ts +3 -0
  65. package/dist/types/src/components/HelpContainer.d.ts.map +1 -0
  66. package/dist/types/src/components/index.d.ts +2 -0
  67. package/dist/types/src/components/index.d.ts.map +1 -1
  68. package/dist/types/src/index.d.ts +1 -0
  69. package/dist/types/src/index.d.ts.map +1 -1
  70. package/dist/types/src/translations.d.ts +4 -0
  71. package/dist/types/src/translations.d.ts.map +1 -1
  72. package/dist/types/src/types.d.ts +141 -15
  73. package/dist/types/src/types.d.ts.map +1 -1
  74. package/package.json +21 -20
  75. package/src/ObservabilityPlugin.ts +6 -0
  76. package/src/capabilities/app-graph-builder.ts +33 -0
  77. package/src/capabilities/client-ready.ts +0 -1
  78. package/src/capabilities/index.ts +2 -1
  79. package/src/capabilities/{intents-resolver.ts → intent-resolver.ts} +21 -15
  80. package/src/capabilities/react-surface.tsx +8 -4
  81. package/src/components/FeedbackForm.tsx +82 -0
  82. package/src/components/HelpContainer.tsx +23 -0
  83. package/src/components/index.ts +2 -0
  84. package/src/index.ts +1 -0
  85. package/src/translations.ts +5 -0
  86. package/src/types.ts +167 -22
  87. package/dist/lib/browser/chunk-4EIUFTFQ.mjs +0 -37
  88. package/dist/lib/browser/chunk-4EIUFTFQ.mjs.map +0 -7
  89. package/dist/lib/browser/chunk-7PSHYVPT.mjs +0 -58
  90. package/dist/lib/browser/chunk-7PSHYVPT.mjs.map +0 -7
  91. package/dist/lib/browser/intents-resolver-KFEQHNY7.mjs.map +0 -7
  92. package/dist/lib/browser/react-surface-PZEWLGKJ.mjs +0 -24
  93. package/dist/lib/browser/react-surface-PZEWLGKJ.mjs.map +0 -7
  94. package/dist/lib/node/chunk-26FY6IAN.cjs +0 -78
  95. package/dist/lib/node/chunk-26FY6IAN.cjs.map +0 -7
  96. package/dist/lib/node/chunk-7GVWSQFM.cjs +0 -65
  97. package/dist/lib/node/chunk-7GVWSQFM.cjs.map +0 -7
  98. package/dist/lib/node/intents-resolver-YUO4UUJT.cjs.map +0 -7
  99. package/dist/lib/node/react-surface-XWZAUS46.cjs.map +0 -7
  100. package/dist/lib/node-esm/chunk-VM4P3575.mjs +0 -59
  101. package/dist/lib/node-esm/chunk-VM4P3575.mjs.map +0 -7
  102. package/dist/lib/node-esm/chunk-YNSLIAZL.mjs +0 -38
  103. package/dist/lib/node-esm/chunk-YNSLIAZL.mjs.map +0 -7
  104. package/dist/lib/node-esm/intents-resolver-VOTTSZAN.mjs.map +0 -7
  105. package/dist/lib/node-esm/react-surface-MJ7S6EVP.mjs +0 -25
  106. package/dist/lib/node-esm/react-surface-MJ7S6EVP.mjs.map +0 -7
  107. package/dist/types/src/capabilities/intents-resolver.d.ts.map +0 -1
  108. /package/dist/lib/browser/{settings-OQOZUJDJ.mjs.map → settings-JFZJTDH7.mjs.map} +0 -0
  109. /package/dist/lib/node/{settings-GUB7VFZU.cjs.map → settings-ARLOGCYU.cjs.map} +0 -0
  110. /package/dist/lib/node-esm/{settings-YHYGZAYT.mjs.map → settings-765HDSFY.mjs.map} +0 -0
@@ -0,0 +1,124 @@
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
@@ -0,0 +1,7 @@
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 +1,7 @@
1
1
  import { createRequire } from 'node:module';const require = createRequire(import.meta.url);
2
2
  import {
3
3
  ObservabilityAction
4
- } from "./chunk-VM4P3575.mjs";
4
+ } from "./chunk-M3MGU3DN.mjs";
5
5
  import {
6
6
  ClientCapability,
7
7
  ObservabilityCapabilities
@@ -70,7 +70,6 @@ var client_ready_default = async ({ context, namespace, observability }) => {
70
70
  await dispatch(createIntent(ObservabilityAction.SendEvent, {
71
71
  name: "page.load",
72
72
  properties: {
73
- href: window.location.href,
74
73
  // TODO(wittjosiah): These apis are deprecated. Is there a better way to find this information?
75
74
  loadDuration: window.performance.timing.loadEventEnd - window.performance.timing.loadEventStart
76
75
  }
@@ -101,4 +100,4 @@ var client_ready_default = async ({ context, namespace, observability }) => {
101
100
  export {
102
101
  client_ready_default as default
103
102
  };
104
- //# sourceMappingURL=client-ready-DNDS3KKV.mjs.map
103
+ //# sourceMappingURL=client-ready-4BUMAISA.mjs.map
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
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 href: window.location.href,\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;MACVC,MAAMC,OAAOC,SAASF;;MAEtBG,cAAcF,OAAOG,YAAYC,OAAOC,eAAeL,OAAOG,YAAYC,OAAOE;IACnF;EACF,CAAA,CAAA;AAKF,QAAMC,UAAUC,wBAAwB7D,WAAWY,QAAQX,aAAAA;AAE3D,QAAM6D,QAAQC,IAAI;IAChB9D,cAAc+D,gBAAgBpD,OAAOqD,SAASA,QAAQ;IACtDhE,cAAciE,oBAAoBtD,MAAAA;IAClCX,cAAckE,oBAAoBvD,OAAOqD,SAASA,QAAQ;IAC1DhE,cAAcmE,mBAAmBxD,QAAQZ,SAAAA;GAC1C;AAED,MAAIY,OAAOyD,KAAKC,SAASC,IAAG,GAAI;AAC9B,UAAMzD,kBAAAA;EACR,OAAO;AACL,UAAM0D,eAAe5D,OAAOyD,KAAKC,SAASG,UAAU,OAAOH,aAAAA;AACzD,UAAIA,YAAYrE,eAAe;AAC7B,cAAMa,kBAAAA;AACN,cAAMb,cAAc+D,gBAAgBpD,OAAOqD,SAASA,QAAQ;AAC5DO,qBAAaE,YAAW;MAC1B;IACF,CAAA;EACF;AAEA,SAAOC,YAAYjE,0BAA0BkE,eAAe3E,eAAe,YAAA;AACzE2D,YAAAA;AACA,UAAM3D,cAAc4E,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", "href", "window", "location", "loadDuration", "performance", "timing", "loadEventEnd", "loadEventStart", "cleanup", "setupTelemetryListeners", "Promise", "all", "setIdentityTags", "services", "startRuntimeMetrics", "startNetworkMetrics", "startSpacesMetrics", "halo", "identity", "get", "subscription", "subscribe", "unsubscribe", "contributes", "Observability", "close"]
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
7
  }
@@ -1,4 +1,11 @@
1
1
  import { createRequire } from 'node:module';const require = createRequire(import.meta.url);
2
+ import {
3
+ FeedbackForm,
4
+ HelpContainer,
5
+ ObservabilitySettings,
6
+ ObservabilitySettingsSchema
7
+ } from "./chunk-MW737PHD.mjs";
8
+ import "./chunk-M3MGU3DN.mjs";
2
9
  import {
3
10
  ObservabilityCapabilities
4
11
  } from "./chunk-U3JYGK3O.mjs";
@@ -9,10 +16,11 @@ import {
9
16
 
10
17
  // packages/plugins/plugin-observability/src/capabilities/index.ts
11
18
  import { lazy } from "@dxos/app-framework";
12
- var ClientReady = lazy(() => import("./client-ready-DNDS3KKV.mjs"));
13
- var IntentResolver = lazy(() => import("./intents-resolver-VOTTSZAN.mjs"));
14
- var ReactSurface = lazy(() => import("./react-surface-MJ7S6EVP.mjs"));
15
- var ObservabilitySettings = lazy(() => import("./settings-YHYGZAYT.mjs"));
19
+ var AppGraphBuilder = lazy(() => import("./app-graph-builder-RKURIIFT.mjs"));
20
+ var ClientReady = lazy(() => import("./client-ready-4BUMAISA.mjs"));
21
+ var IntentResolver = lazy(() => import("./intent-resolver-5EFEXLWX.mjs"));
22
+ var ReactSurface = lazy(() => import("./react-surface-VLQBOZTX.mjs"));
23
+ var ObservabilitySettings2 = lazy(() => import("./settings-765HDSFY.mjs"));
16
24
  var ObservabilityState = lazy(() => import("./state-R2UVEG7B.mjs"));
17
25
 
18
26
  // packages/plugins/plugin-observability/src/events.ts
@@ -39,7 +47,11 @@ var translations_default = [
39
47
  "observability toast close label": "Okay",
40
48
  "observability enabled label": "Enable telemetry",
41
49
  // TODO: Add link about telemetry privacy. Make it clearer that user data is not collected.
42
- "observability description": "When enabled, basic usage data will used to improve the product. This may include performance metrics, error logs, and usage data. No personally identifiable information, other than your public key, is included with this data and no private data ever leaves your devices."
50
+ "observability description": "When enabled, basic usage data will used to improve the product. This may include performance metrics, error logs, and usage data. No personally identifiable information, other than your public key, is included with this data and no private data ever leaves your devices.",
51
+ "help label": "Feedback & Support",
52
+ "feedback text area label": "Feedback",
53
+ "feedback text area placeholder": "Please describe your issue or suggestion.",
54
+ "send feedback label": "Send Feedback"
43
55
  }
44
56
  }
45
57
  }
@@ -55,7 +67,7 @@ var ObservabilityPlugin = (options) => definePlugin(meta, [
55
67
  defineModule({
56
68
  id: `${meta.id}/module/settings`,
57
69
  activatesOn: Events2.SetupSettings,
58
- activate: ObservabilitySettings
70
+ activate: ObservabilitySettings2
59
71
  }),
60
72
  defineModule({
61
73
  id: `${meta.id}/module/state`,
@@ -85,6 +97,11 @@ var ObservabilityPlugin = (options) => definePlugin(meta, [
85
97
  activatesOn: Events2.SetupReactSurface,
86
98
  activate: ReactSurface
87
99
  }),
100
+ defineModule({
101
+ id: `${meta.id}/module/app-graph-builder`,
102
+ activatesOn: Events2.SetupAppGraph,
103
+ activate: AppGraphBuilder
104
+ }),
88
105
  defineModule({
89
106
  id: `${meta.id}/module/client-ready`,
90
107
  activatesOn: allOf(Events2.DispatcherReady, ObservabilityEvents.StateReady, ClientReadyEvent),
@@ -99,10 +116,14 @@ var ObservabilityPlugin = (options) => definePlugin(meta, [
99
116
  })
100
117
  ]);
101
118
  export {
119
+ FeedbackForm,
120
+ HelpContainer,
102
121
  OBSERVABILITY_PLUGIN,
103
122
  ObservabilityCapabilities,
104
123
  ObservabilityEvents,
105
124
  ObservabilityPlugin,
125
+ ObservabilitySettings,
126
+ ObservabilitySettingsSchema,
106
127
  meta
107
128
  };
108
129
  //# sourceMappingURL=index.mjs.map
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../src/capabilities/index.ts", "../../../src/events.ts", "../../../src/ObservabilityPlugin.ts", "../../../src/translations.ts"],
4
- "sourcesContent": ["//\n// Copyright 2025 DXOS.org\n//\n\nimport { lazy } from '@dxos/app-framework';\n\nexport const ClientReady = lazy(() => import('./client-ready'));\nexport const IntentResolver = lazy(() => import('./intents-resolver'));\nexport const ReactSurface = lazy(() => import('./react-surface'));\nexport const ObservabilitySettings = lazy(() => import('./settings'));\nexport const ObservabilityState = lazy(() => import('./state'));\n\nexport * from './capabilities';\n", "//\n// Copyright 2025 DXOS.org\n//\n\nimport { defineEvent, Events } from '@dxos/app-framework';\n\nimport { OBSERVABILITY_PLUGIN } from './meta';\n\nexport namespace ObservabilityEvents {\n export const StateReady = Events.createStateEvent(OBSERVABILITY_PLUGIN);\n}\n\n// NOTE: This is cloned from the client plugin to avoid circular dependencies.\nexport const ClientReadyEvent = defineEvent('dxos.org/plugin/client/event/client-ready');\n", "//\n// Copyright 2025 DXOS.org\n//\n\nimport { allOf, Capabilities, contributes, defineModule, definePlugin, Events } from '@dxos/app-framework';\nimport { type Observability } from '@dxos/observability';\n\nimport {\n ClientReady,\n IntentResolver,\n ObservabilityCapabilities,\n ObservabilitySettings,\n ObservabilityState,\n ReactSurface,\n} from './capabilities';\nimport { ObservabilityEvents, ClientReadyEvent } from './events';\nimport { meta } from './meta';\nimport translations from './translations';\n\nexport const ObservabilityPlugin = (options: { namespace: string; observability: () => Promise<Observability> }) =>\n definePlugin(meta, [\n defineModule({\n id: `${meta.id}/module/observability`,\n activatesOn: Events.Startup,\n activate: async () => contributes(ObservabilityCapabilities.Observability, await options.observability()),\n }),\n defineModule({\n id: `${meta.id}/module/settings`,\n activatesOn: Events.SetupSettings,\n activate: ObservabilitySettings,\n }),\n defineModule({\n id: `${meta.id}/module/state`,\n activatesOn: Events.Startup,\n activatesAfter: [ObservabilityEvents.StateReady],\n activate: () => ObservabilityState({ namespace: options.namespace }),\n }),\n defineModule({\n id: `${meta.id}/module/translations`,\n activatesOn: Events.SetupTranslations,\n activate: () => contributes(Capabilities.Translations, translations),\n }),\n defineModule({\n id: `${meta.id}/module/intent-resolver`,\n activatesOn: Events.SetupIntentResolver,\n activate: (context) => IntentResolver({ context, namespace: options.namespace }),\n }),\n defineModule({\n id: `${meta.id}/module/react-surface`,\n activatesOn: Events.SetupReactSurface,\n activate: ReactSurface,\n }),\n defineModule({\n id: `${meta.id}/module/client-ready`,\n activatesOn: allOf(Events.DispatcherReady, ObservabilityEvents.StateReady, ClientReadyEvent),\n activate: async (context) => {\n const observability = await options.observability();\n return ClientReady({ context, observability, namespace: options.namespace });\n },\n }),\n ]);\n", "//\n// Copyright 2023 DXOS.org\n//\n\nimport { OBSERVABILITY_PLUGIN } from './meta';\n\nexport default [\n {\n 'en-US': {\n [OBSERVABILITY_PLUGIN]: {\n 'plugin name': 'Telemetry',\n 'observability toast label': 'Privacy Notice',\n 'observability toast description':\n 'Composer collects usage and performance metrics to improve the product. No user data is collected.',\n 'observability toast action label': 'Settings',\n 'observability toast action alt': 'Open settings to learn more or to disable.',\n 'observability toast close label': 'Okay',\n 'observability enabled label': 'Enable telemetry',\n // TODO: Add link about telemetry privacy. Make it clearer that user data is not collected.\n 'observability description':\n 'When enabled, basic usage data will used to improve the product. This may include performance metrics, error logs, and usage data. No personally identifiable information, other than your public key, is included with this data and no private data ever leaves your devices.',\n },\n },\n },\n];\n"],
5
- "mappings": ";;;;;;;;;;AAIA,SAASA,YAAY;AAEd,IAAMC,cAAcC,KAAK,MAAM,OAAO,6BAAA,CAAA;AACtC,IAAMC,iBAAiBD,KAAK,MAAM,OAAO,iCAAA,CAAA;AACzC,IAAME,eAAeF,KAAK,MAAM,OAAO,8BAAA,CAAA;AACvC,IAAMG,wBAAwBH,KAAK,MAAM,OAAO,yBAAA,CAAA;AAChD,IAAMI,qBAAqBJ,KAAK,MAAM,OAAO,sBAAA,CAAA;;;ACNpD,SAASK,aAAaC,cAAc;;UAInBC,sBAAAA;uBACFC,aAAaC,OAAOC,iBAAiBC,oBAAAA;AACpD,GAFiBJ,wBAAAA,sBAAAA,CAAAA,EAAAA;AAKV,IAAMK,mBAAmBC,YAAY,2CAAA;;;ACT5C,SAASC,OAAOC,cAAcC,aAAaC,cAAcC,cAAcC,UAAAA,eAAc;;;ACErF,IAAA,uBAAe;EACb;IACE,SAAS;MACP,CAACC,oBAAAA,GAAuB;QACtB,eAAe;QACf,6BAA6B;QAC7B,mCACE;QACF,oCAAoC;QACpC,kCAAkC;QAClC,mCAAmC;QACnC,+BAA+B;;QAE/B,6BACE;MACJ;IACF;EACF;;;;ADJK,IAAMC,sBAAsB,CAACC,YAClCC,aAAaC,MAAM;EACjBC,aAAa;IACXC,IAAI,GAAGF,KAAKE,EAAE;IACdC,aAAaC,QAAOC;IACpBC,UAAU,YAAYC,YAAYC,0BAA0BC,eAAe,MAAMX,QAAQY,cAAa,CAAA;EACxG,CAAA;EACAT,aAAa;IACXC,IAAI,GAAGF,KAAKE,EAAE;IACdC,aAAaC,QAAOO;IACpBL,UAAUM;EACZ,CAAA;EACAX,aAAa;IACXC,IAAI,GAAGF,KAAKE,EAAE;IACdC,aAAaC,QAAOC;IACpBQ,gBAAgB;MAACC,oBAAoBC;;IACrCT,UAAU,MAAMU,mBAAmB;MAAEC,WAAWnB,QAAQmB;IAAU,CAAA;EACpE,CAAA;EACAhB,aAAa;IACXC,IAAI,GAAGF,KAAKE,EAAE;IACdC,aAAaC,QAAOc;IACpBZ,UAAU,MAAMC,YAAYY,aAAaC,cAAcC,oBAAAA;EACzD,CAAA;EACApB,aAAa;IACXC,IAAI,GAAGF,KAAKE,EAAE;IACdC,aAAaC,QAAOkB;IACpBhB,UAAU,CAACiB,YAAYC,eAAe;MAAED;MAASN,WAAWnB,QAAQmB;IAAU,CAAA;EAChF,CAAA;EACAhB,aAAa;IACXC,IAAI,GAAGF,KAAKE,EAAE;IACdC,aAAaC,QAAOqB;IACpBnB,UAAUoB;EACZ,CAAA;EACAzB,aAAa;IACXC,IAAI,GAAGF,KAAKE,EAAE;IACdC,aAAawB,MAAMvB,QAAOwB,iBAAiBd,oBAAoBC,YAAYc,gBAAAA;IAC3EvB,UAAU,OAAOiB,YAAAA;AACf,YAAMb,gBAAgB,MAAMZ,QAAQY,cAAa;AACjD,aAAOoB,YAAY;QAAEP;QAASb;QAAeO,WAAWnB,QAAQmB;MAAU,CAAA;IAC5E;EACF,CAAA;CACD;",
6
- "names": ["lazy", "ClientReady", "lazy", "IntentResolver", "ReactSurface", "ObservabilitySettings", "ObservabilityState", "defineEvent", "Events", "ObservabilityEvents", "StateReady", "Events", "createStateEvent", "OBSERVABILITY_PLUGIN", "ClientReadyEvent", "defineEvent", "allOf", "Capabilities", "contributes", "defineModule", "definePlugin", "Events", "OBSERVABILITY_PLUGIN", "ObservabilityPlugin", "options", "definePlugin", "meta", "defineModule", "id", "activatesOn", "Events", "Startup", "activate", "contributes", "ObservabilityCapabilities", "Observability", "observability", "SetupSettings", "ObservabilitySettings", "activatesAfter", "ObservabilityEvents", "StateReady", "ObservabilityState", "namespace", "SetupTranslations", "Capabilities", "Translations", "translations", "SetupIntentResolver", "context", "IntentResolver", "SetupReactSurface", "ReactSurface", "allOf", "DispatcherReady", "ClientReadyEvent", "ClientReady"]
4
+ "sourcesContent": ["//\n// Copyright 2025 DXOS.org\n//\n\nimport { lazy } from '@dxos/app-framework';\n\nexport const AppGraphBuilder = lazy(() => import('./app-graph-builder'));\nexport const ClientReady = lazy(() => import('./client-ready'));\nexport const IntentResolver = lazy(() => import('./intent-resolver'));\nexport const ReactSurface = lazy(() => import('./react-surface'));\nexport const ObservabilitySettings = lazy(() => import('./settings'));\nexport const ObservabilityState = lazy(() => import('./state'));\n\nexport * from './capabilities';\n", "//\n// Copyright 2025 DXOS.org\n//\n\nimport { defineEvent, Events } from '@dxos/app-framework';\n\nimport { OBSERVABILITY_PLUGIN } from './meta';\n\nexport namespace ObservabilityEvents {\n export const StateReady = Events.createStateEvent(OBSERVABILITY_PLUGIN);\n}\n\n// NOTE: This is cloned from the client plugin to avoid circular dependencies.\nexport const ClientReadyEvent = defineEvent('dxos.org/plugin/client/event/client-ready');\n", "//\n// Copyright 2025 DXOS.org\n//\n\nimport { allOf, Capabilities, contributes, defineModule, definePlugin, Events } from '@dxos/app-framework';\nimport { type Observability } from '@dxos/observability';\n\nimport {\n AppGraphBuilder,\n ClientReady,\n IntentResolver,\n ObservabilityCapabilities,\n ObservabilitySettings,\n ObservabilityState,\n ReactSurface,\n} from './capabilities';\nimport { ObservabilityEvents, ClientReadyEvent } from './events';\nimport { meta } from './meta';\nimport translations from './translations';\n\nexport const ObservabilityPlugin = (options: { namespace: string; observability: () => Promise<Observability> }) =>\n definePlugin(meta, [\n defineModule({\n id: `${meta.id}/module/observability`,\n activatesOn: Events.Startup,\n activate: async () => contributes(ObservabilityCapabilities.Observability, await options.observability()),\n }),\n defineModule({\n id: `${meta.id}/module/settings`,\n activatesOn: Events.SetupSettings,\n activate: ObservabilitySettings,\n }),\n defineModule({\n id: `${meta.id}/module/state`,\n activatesOn: Events.Startup,\n activatesAfter: [ObservabilityEvents.StateReady],\n activate: () => ObservabilityState({ namespace: options.namespace }),\n }),\n defineModule({\n id: `${meta.id}/module/translations`,\n activatesOn: Events.SetupTranslations,\n activate: () => contributes(Capabilities.Translations, translations),\n }),\n defineModule({\n id: `${meta.id}/module/intent-resolver`,\n activatesOn: Events.SetupIntentResolver,\n activate: (context) => IntentResolver({ context, namespace: options.namespace }),\n }),\n defineModule({\n id: `${meta.id}/module/react-surface`,\n activatesOn: Events.SetupReactSurface,\n activate: ReactSurface,\n }),\n defineModule({\n id: `${meta.id}/module/app-graph-builder`,\n activatesOn: Events.SetupAppGraph,\n activate: AppGraphBuilder,\n }),\n defineModule({\n id: `${meta.id}/module/client-ready`,\n activatesOn: allOf(Events.DispatcherReady, ObservabilityEvents.StateReady, ClientReadyEvent),\n activate: async (context) => {\n const observability = await options.observability();\n return ClientReady({ context, observability, namespace: options.namespace });\n },\n }),\n ]);\n", "//\n// Copyright 2023 DXOS.org\n//\n\nimport { OBSERVABILITY_PLUGIN } from './meta';\n\nexport default [\n {\n 'en-US': {\n [OBSERVABILITY_PLUGIN]: {\n 'plugin name': 'Telemetry',\n 'observability toast label': 'Privacy Notice',\n 'observability toast description':\n 'Composer collects usage and performance metrics to improve the product. No user data is collected.',\n 'observability toast action label': 'Settings',\n 'observability toast action alt': 'Open settings to learn more or to disable.',\n 'observability toast close label': 'Okay',\n 'observability enabled label': 'Enable telemetry',\n // TODO: Add link about telemetry privacy. Make it clearer that user data is not collected.\n 'observability description':\n 'When enabled, basic usage data will used to improve the product. This may include performance metrics, error logs, and usage data. No personally identifiable information, other than your public key, is included with this data and no private data ever leaves your devices.',\n\n 'help label': 'Feedback & Support',\n 'feedback text area label': 'Feedback',\n 'feedback text area placeholder': 'Please describe your issue or suggestion.',\n 'send feedback label': 'Send Feedback',\n },\n },\n },\n];\n"],
5
+ "mappings": ";;;;;;;;;;;;;;;;;AAIA,SAASA,YAAY;AAEd,IAAMC,kBAAkBC,KAAK,MAAM,OAAO,kCAAA,CAAA;AAC1C,IAAMC,cAAcD,KAAK,MAAM,OAAO,6BAAA,CAAA;AACtC,IAAME,iBAAiBF,KAAK,MAAM,OAAO,gCAAA,CAAA;AACzC,IAAMG,eAAeH,KAAK,MAAM,OAAO,8BAAA,CAAA;AACvC,IAAMI,yBAAwBJ,KAAK,MAAM,OAAO,yBAAA,CAAA;AAChD,IAAMK,qBAAqBL,KAAK,MAAM,OAAO,sBAAA,CAAA;;;ACPpD,SAASM,aAAaC,cAAc;;UAInBC,sBAAAA;uBACFC,aAAaC,OAAOC,iBAAiBC,oBAAAA;AACpD,GAFiBJ,wBAAAA,sBAAAA,CAAAA,EAAAA;AAKV,IAAMK,mBAAmBC,YAAY,2CAAA;;;ACT5C,SAASC,OAAOC,cAAcC,aAAaC,cAAcC,cAAcC,UAAAA,eAAc;;;ACErF,IAAA,uBAAe;EACb;IACE,SAAS;MACP,CAACC,oBAAAA,GAAuB;QACtB,eAAe;QACf,6BAA6B;QAC7B,mCACE;QACF,oCAAoC;QACpC,kCAAkC;QAClC,mCAAmC;QACnC,+BAA+B;;QAE/B,6BACE;QAEF,cAAc;QACd,4BAA4B;QAC5B,kCAAkC;QAClC,uBAAuB;MACzB;IACF;EACF;;;;ADRK,IAAMC,sBAAsB,CAACC,YAClCC,aAAaC,MAAM;EACjBC,aAAa;IACXC,IAAI,GAAGF,KAAKE,EAAE;IACdC,aAAaC,QAAOC;IACpBC,UAAU,YAAYC,YAAYC,0BAA0BC,eAAe,MAAMX,QAAQY,cAAa,CAAA;EACxG,CAAA;EACAT,aAAa;IACXC,IAAI,GAAGF,KAAKE,EAAE;IACdC,aAAaC,QAAOO;IACpBL,UAAUM;EACZ,CAAA;EACAX,aAAa;IACXC,IAAI,GAAGF,KAAKE,EAAE;IACdC,aAAaC,QAAOC;IACpBQ,gBAAgB;MAACC,oBAAoBC;;IACrCT,UAAU,MAAMU,mBAAmB;MAAEC,WAAWnB,QAAQmB;IAAU,CAAA;EACpE,CAAA;EACAhB,aAAa;IACXC,IAAI,GAAGF,KAAKE,EAAE;IACdC,aAAaC,QAAOc;IACpBZ,UAAU,MAAMC,YAAYY,aAAaC,cAAcC,oBAAAA;EACzD,CAAA;EACApB,aAAa;IACXC,IAAI,GAAGF,KAAKE,EAAE;IACdC,aAAaC,QAAOkB;IACpBhB,UAAU,CAACiB,YAAYC,eAAe;MAAED;MAASN,WAAWnB,QAAQmB;IAAU,CAAA;EAChF,CAAA;EACAhB,aAAa;IACXC,IAAI,GAAGF,KAAKE,EAAE;IACdC,aAAaC,QAAOqB;IACpBnB,UAAUoB;EACZ,CAAA;EACAzB,aAAa;IACXC,IAAI,GAAGF,KAAKE,EAAE;IACdC,aAAaC,QAAOuB;IACpBrB,UAAUsB;EACZ,CAAA;EACA3B,aAAa;IACXC,IAAI,GAAGF,KAAKE,EAAE;IACdC,aAAa0B,MAAMzB,QAAO0B,iBAAiBhB,oBAAoBC,YAAYgB,gBAAAA;IAC3EzB,UAAU,OAAOiB,YAAAA;AACf,YAAMb,gBAAgB,MAAMZ,QAAQY,cAAa;AACjD,aAAOsB,YAAY;QAAET;QAASb;QAAeO,WAAWnB,QAAQmB;MAAU,CAAA;IAC5E;EACF,CAAA;CACD;",
6
+ "names": ["lazy", "AppGraphBuilder", "lazy", "ClientReady", "IntentResolver", "ReactSurface", "ObservabilitySettings", "ObservabilityState", "defineEvent", "Events", "ObservabilityEvents", "StateReady", "Events", "createStateEvent", "OBSERVABILITY_PLUGIN", "ClientReadyEvent", "defineEvent", "allOf", "Capabilities", "contributes", "defineModule", "definePlugin", "Events", "OBSERVABILITY_PLUGIN", "ObservabilityPlugin", "options", "definePlugin", "meta", "defineModule", "id", "activatesOn", "Events", "Startup", "activate", "contributes", "ObservabilityCapabilities", "Observability", "observability", "SetupSettings", "ObservabilitySettings", "activatesAfter", "ObservabilityEvents", "StateReady", "ObservabilityState", "namespace", "SetupTranslations", "Capabilities", "Translations", "translations", "SetupIntentResolver", "context", "IntentResolver", "SetupReactSurface", "ReactSurface", "SetupAppGraph", "AppGraphBuilder", "allOf", "DispatcherReady", "ClientReadyEvent", "ClientReady"]
7
7
  }
@@ -1,7 +1,7 @@
1
1
  import { createRequire } from 'node:module';const require = createRequire(import.meta.url);
2
2
  import {
3
3
  ObservabilityAction
4
- } from "./chunk-VM4P3575.mjs";
4
+ } from "./chunk-M3MGU3DN.mjs";
5
5
  import {
6
6
  ClientCapability,
7
7
  ObservabilityCapabilities
@@ -10,10 +10,25 @@ import {
10
10
  OBSERVABILITY_PLUGIN
11
11
  } from "./chunk-KT5SDFBU.mjs";
12
12
 
13
- // packages/plugins/plugin-observability/src/capabilities/intents-resolver.ts
14
- import { Capabilities, contributes, createResolver } from "@dxos/app-framework";
15
- import { getTelemetryIdentifier, storeObservabilityDisabled } from "@dxos/observability";
16
- var intents_resolver_default = ({ context, namespace }) => contributes(Capabilities.IntentResolver, [
13
+ // packages/plugins/plugin-observability/src/capabilities/intent-resolver.ts
14
+ import { Capabilities, contributes, createResolver, IntentAction } from "@dxos/app-framework";
15
+ import { log } from "@dxos/log";
16
+ import { getTelemetryIdentity, storeObservabilityDisabled } from "@dxos/observability";
17
+ var __dxlog_file = "/home/runner/work/dxos/dxos/packages/plugins/plugin-observability/src/capabilities/intent-resolver.ts";
18
+ var intent_resolver_default = ({ context, namespace }) => contributes(Capabilities.IntentResolver, [
19
+ createResolver({
20
+ intent: IntentAction.Track,
21
+ resolve: (intent) => {
22
+ log.info("intent", {
23
+ intent
24
+ }, {
25
+ F: __dxlog_file,
26
+ L: 19,
27
+ S: void 0,
28
+ C: (f, a) => f(...a)
29
+ });
30
+ }
31
+ }),
17
32
  createResolver({
18
33
  intent: ObservabilityAction.Toggle,
19
34
  resolve: async ({ state }) => {
@@ -21,9 +36,9 @@ var intents_resolver_default = ({ context, namespace }) => contributes(Capabilit
21
36
  const observability = context.requestCapability(ObservabilityCapabilities.Observability);
22
37
  const settings = context.requestCapability(Capabilities.SettingsStore).getStore(OBSERVABILITY_PLUGIN).value;
23
38
  settings.enabled = state ?? !settings.enabled;
24
- observability.event({
25
- did: getTelemetryIdentifier(client),
26
- name: `${namespace}.observability.toggle`,
39
+ observability.track({
40
+ ...getTelemetryIdentity(client),
41
+ action: "observability.toggle",
27
42
  properties: {
28
43
  enabled: settings.enabled
29
44
  }
@@ -39,15 +54,13 @@ var intents_resolver_default = ({ context, namespace }) => contributes(Capabilit
39
54
  intent: ObservabilityAction.SendEvent,
40
55
  resolve: (data) => {
41
56
  const client = context.requestCapability(ClientCapability);
57
+ const properties = "properties" in data ? data.properties : {};
42
58
  void context.waitForCapability(ObservabilityCapabilities.Observability).then((observability) => {
43
- const event = {
44
- did: getTelemetryIdentifier(client),
45
- name: `${namespace}.${data.name}`,
46
- properties: {
47
- ...data.properties
48
- }
49
- };
50
- observability.event(event);
59
+ observability.track({
60
+ ...getTelemetryIdentity(client),
61
+ action: data.name,
62
+ properties
63
+ });
51
64
  });
52
65
  }
53
66
  }),
@@ -55,11 +68,11 @@ var intents_resolver_default = ({ context, namespace }) => contributes(Capabilit
55
68
  intent: ObservabilityAction.CaptureUserFeedback,
56
69
  resolve: async (data) => {
57
70
  const observability = context.requestCapability(ObservabilityCapabilities.Observability);
58
- observability.captureUserFeedback(data.email, data.name, data.message);
71
+ observability.captureUserFeedback(data.message);
59
72
  }
60
73
  })
61
74
  ]);
62
75
  export {
63
- intents_resolver_default as default
76
+ intent_resolver_default as default
64
77
  };
65
- //# sourceMappingURL=intents-resolver-VOTTSZAN.mjs.map
78
+ //# sourceMappingURL=intent-resolver-5EFEXLWX.mjs.map
@@ -0,0 +1,7 @@
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 +1 @@
1
- {"inputs":{"packages/plugins/plugin-observability/src/meta.ts":{"bytes":1128,"imports":[],"format":"esm"},"packages/plugins/plugin-observability/src/capabilities/capabilities.ts":{"bytes":2554,"imports":[{"path":"@dxos/app-framework","kind":"import-statement","external":true},{"path":"packages/plugins/plugin-observability/src/meta.ts","kind":"import-statement","original":"../meta"}],"format":"esm"},"packages/plugins/plugin-observability/src/types.ts":{"bytes":7065,"imports":[{"path":"@dxos/echo-schema","kind":"import-statement","external":true},{"path":"packages/plugins/plugin-observability/src/meta.ts","kind":"import-statement","original":"./meta"}],"format":"esm"},"packages/plugins/plugin-observability/src/capabilities/client-ready.ts":{"bytes":13968,"imports":[{"path":"@dxos/app-framework","kind":"import-statement","external":true},{"path":"@dxos/observability","kind":"import-statement","external":true},{"path":"packages/plugins/plugin-observability/src/capabilities/capabilities.ts","kind":"import-statement","original":"./capabilities"},{"path":"packages/plugins/plugin-observability/src/meta.ts","kind":"import-statement","original":"../meta"},{"path":"packages/plugins/plugin-observability/src/types.ts","kind":"import-statement","original":"../types"}],"format":"esm"},"packages/plugins/plugin-observability/src/capabilities/intents-resolver.ts":{"bytes":9515,"imports":[{"path":"@dxos/app-framework","kind":"import-statement","external":true},{"path":"@dxos/observability","kind":"import-statement","external":true},{"path":"packages/plugins/plugin-observability/src/capabilities/capabilities.ts","kind":"import-statement","original":"./capabilities"},{"path":"packages/plugins/plugin-observability/src/meta.ts","kind":"import-statement","original":"../meta"},{"path":"packages/plugins/plugin-observability/src/types.ts","kind":"import-statement","original":"../types"}],"format":"esm"},"packages/plugins/plugin-observability/src/components/ObservabilitySettings.tsx":{"bytes":5368,"imports":[{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/app-framework","kind":"import-statement","external":true},{"path":"@dxos/echo-schema","kind":"import-statement","external":true},{"path":"@dxos/react-ui","kind":"import-statement","external":true},{"path":"@dxos/react-ui-form","kind":"import-statement","external":true},{"path":"packages/plugins/plugin-observability/src/meta.ts","kind":"import-statement","original":"../meta"},{"path":"packages/plugins/plugin-observability/src/types.ts","kind":"import-statement","original":"../types"}],"format":"esm"},"packages/plugins/plugin-observability/src/components/index.ts":{"bytes":553,"imports":[{"path":"packages/plugins/plugin-observability/src/components/ObservabilitySettings.tsx","kind":"import-statement","original":"./ObservabilitySettings"}],"format":"esm"},"packages/plugins/plugin-observability/src/capabilities/react-surface.tsx":{"bytes":2983,"imports":[{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/app-framework","kind":"import-statement","external":true},{"path":"@dxos/local-storage","kind":"import-statement","external":true},{"path":"packages/plugins/plugin-observability/src/components/index.ts","kind":"import-statement","original":"../components"},{"path":"packages/plugins/plugin-observability/src/meta.ts","kind":"import-statement","original":"../meta"}],"format":"esm"},"packages/plugins/plugin-observability/src/capabilities/settings.ts":{"bytes":2180,"imports":[{"path":"@dxos/app-framework","kind":"import-statement","external":true},{"path":"@dxos/live-object","kind":"import-statement","external":true},{"path":"packages/plugins/plugin-observability/src/components/index.ts","kind":"import-statement","original":"../components"},{"path":"packages/plugins/plugin-observability/src/meta.ts","kind":"import-statement","original":"../meta"}],"format":"esm"},"packages/plugins/plugin-observability/src/capabilities/state.ts":{"bytes":3153,"imports":[{"path":"@dxos/app-framework","kind":"import-statement","external":true},{"path":"@dxos/local-storage","kind":"import-statement","external":true},{"path":"@dxos/observability","kind":"import-statement","external":true},{"path":"packages/plugins/plugin-observability/src/capabilities/capabilities.ts","kind":"import-statement","original":"./capabilities"},{"path":"packages/plugins/plugin-observability/src/meta.ts","kind":"import-statement","original":"../meta"}],"format":"esm"},"packages/plugins/plugin-observability/src/capabilities/index.ts":{"bytes":1944,"imports":[{"path":"@dxos/app-framework","kind":"import-statement","external":true},{"path":"packages/plugins/plugin-observability/src/capabilities/capabilities.ts","kind":"import-statement","original":"./capabilities"},{"path":"packages/plugins/plugin-observability/src/capabilities/client-ready.ts","kind":"dynamic-import","original":"./client-ready"},{"path":"packages/plugins/plugin-observability/src/capabilities/intents-resolver.ts","kind":"dynamic-import","original":"./intents-resolver"},{"path":"packages/plugins/plugin-observability/src/capabilities/react-surface.tsx","kind":"dynamic-import","original":"./react-surface"},{"path":"packages/plugins/plugin-observability/src/capabilities/settings.ts","kind":"dynamic-import","original":"./settings"},{"path":"packages/plugins/plugin-observability/src/capabilities/state.ts","kind":"dynamic-import","original":"./state"}],"format":"esm"},"packages/plugins/plugin-observability/src/events.ts":{"bytes":1845,"imports":[{"path":"@dxos/app-framework","kind":"import-statement","external":true},{"path":"packages/plugins/plugin-observability/src/meta.ts","kind":"import-statement","original":"./meta"}],"format":"esm"},"packages/plugins/plugin-observability/src/translations.ts":{"bytes":3365,"imports":[{"path":"packages/plugins/plugin-observability/src/meta.ts","kind":"import-statement","original":"./meta"}],"format":"esm"},"packages/plugins/plugin-observability/src/ObservabilityPlugin.ts":{"bytes":8404,"imports":[{"path":"@dxos/app-framework","kind":"import-statement","external":true},{"path":"packages/plugins/plugin-observability/src/capabilities/index.ts","kind":"import-statement","original":"./capabilities"},{"path":"packages/plugins/plugin-observability/src/events.ts","kind":"import-statement","original":"./events"},{"path":"packages/plugins/plugin-observability/src/meta.ts","kind":"import-statement","original":"./meta"},{"path":"packages/plugins/plugin-observability/src/translations.ts","kind":"import-statement","original":"./translations"}],"format":"esm"},"packages/plugins/plugin-observability/src/index.ts":{"bytes":1020,"imports":[{"path":"packages/plugins/plugin-observability/src/capabilities/index.ts","kind":"import-statement","original":"./capabilities"},{"path":"packages/plugins/plugin-observability/src/events.ts","kind":"import-statement","original":"./events"},{"path":"packages/plugins/plugin-observability/src/meta.ts","kind":"import-statement","original":"./meta"},{"path":"packages/plugins/plugin-observability/src/ObservabilityPlugin.ts","kind":"import-statement","original":"./ObservabilityPlugin"}],"format":"esm"}},"outputs":{"packages/plugins/plugin-observability/dist/lib/node-esm/index.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":7008},"packages/plugins/plugin-observability/dist/lib/node-esm/index.mjs":{"imports":[{"path":"packages/plugins/plugin-observability/dist/lib/node-esm/chunk-U3JYGK3O.mjs","kind":"import-statement"},{"path":"packages/plugins/plugin-observability/dist/lib/node-esm/chunk-KT5SDFBU.mjs","kind":"import-statement"},{"path":"@dxos/app-framework","kind":"import-statement","external":true},{"path":"packages/plugins/plugin-observability/dist/lib/node-esm/client-ready-DNDS3KKV.mjs","kind":"dynamic-import"},{"path":"packages/plugins/plugin-observability/dist/lib/node-esm/intents-resolver-VOTTSZAN.mjs","kind":"dynamic-import"},{"path":"packages/plugins/plugin-observability/dist/lib/node-esm/react-surface-MJ7S6EVP.mjs","kind":"dynamic-import"},{"path":"packages/plugins/plugin-observability/dist/lib/node-esm/settings-YHYGZAYT.mjs","kind":"dynamic-import"},{"path":"packages/plugins/plugin-observability/dist/lib/node-esm/state-R2UVEG7B.mjs","kind":"dynamic-import"},{"path":"@dxos/app-framework","kind":"import-statement","external":true},{"path":"@dxos/app-framework","kind":"import-statement","external":true}],"exports":["OBSERVABILITY_PLUGIN","ObservabilityCapabilities","ObservabilityEvents","ObservabilityPlugin","meta"],"entryPoint":"packages/plugins/plugin-observability/src/index.ts","inputs":{"packages/plugins/plugin-observability/src/capabilities/index.ts":{"bytesInOutput":404},"packages/plugins/plugin-observability/src/index.ts":{"bytesInOutput":0},"packages/plugins/plugin-observability/src/events.ts":{"bytesInOutput":337},"packages/plugins/plugin-observability/src/ObservabilityPlugin.ts":{"bytesInOutput":1690},"packages/plugins/plugin-observability/src/translations.ts":{"bytesInOutput":1002}},"bytes":4141},"packages/plugins/plugin-observability/dist/lib/node-esm/types.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":93},"packages/plugins/plugin-observability/dist/lib/node-esm/types.mjs":{"imports":[{"path":"packages/plugins/plugin-observability/dist/lib/node-esm/chunk-VM4P3575.mjs","kind":"import-statement"},{"path":"packages/plugins/plugin-observability/dist/lib/node-esm/chunk-KT5SDFBU.mjs","kind":"import-statement"}],"exports":["ObservabilityAction","UserFeedback"],"entryPoint":"packages/plugins/plugin-observability/src/types.ts","inputs":{},"bytes":286},"packages/plugins/plugin-observability/dist/lib/node-esm/client-ready-DNDS3KKV.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":6829},"packages/plugins/plugin-observability/dist/lib/node-esm/client-ready-DNDS3KKV.mjs":{"imports":[{"path":"packages/plugins/plugin-observability/dist/lib/node-esm/chunk-VM4P3575.mjs","kind":"import-statement"},{"path":"packages/plugins/plugin-observability/dist/lib/node-esm/chunk-U3JYGK3O.mjs","kind":"import-statement"},{"path":"packages/plugins/plugin-observability/dist/lib/node-esm/chunk-KT5SDFBU.mjs","kind":"import-statement"},{"path":"@dxos/app-framework","kind":"import-statement","external":true},{"path":"@dxos/observability","kind":"import-statement","external":true}],"exports":["default"],"entryPoint":"packages/plugins/plugin-observability/src/capabilities/client-ready.ts","inputs":{"packages/plugins/plugin-observability/src/capabilities/client-ready.ts":{"bytesInOutput":3289}},"bytes":3766},"packages/plugins/plugin-observability/dist/lib/node-esm/intents-resolver-VOTTSZAN.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":4681},"packages/plugins/plugin-observability/dist/lib/node-esm/intents-resolver-VOTTSZAN.mjs":{"imports":[{"path":"packages/plugins/plugin-observability/dist/lib/node-esm/chunk-VM4P3575.mjs","kind":"import-statement"},{"path":"packages/plugins/plugin-observability/dist/lib/node-esm/chunk-U3JYGK3O.mjs","kind":"import-statement"},{"path":"packages/plugins/plugin-observability/dist/lib/node-esm/chunk-KT5SDFBU.mjs","kind":"import-statement"},{"path":"@dxos/app-framework","kind":"import-statement","external":true},{"path":"@dxos/observability","kind":"import-statement","external":true}],"exports":["default"],"entryPoint":"packages/plugins/plugin-observability/src/capabilities/intents-resolver.ts","inputs":{"packages/plugins/plugin-observability/src/capabilities/intents-resolver.ts":{"bytesInOutput":1908}},"bytes":2397},"packages/plugins/plugin-observability/dist/lib/node-esm/react-surface-MJ7S6EVP.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":1531},"packages/plugins/plugin-observability/dist/lib/node-esm/react-surface-MJ7S6EVP.mjs":{"imports":[{"path":"packages/plugins/plugin-observability/dist/lib/node-esm/chunk-YNSLIAZL.mjs","kind":"import-statement"},{"path":"packages/plugins/plugin-observability/dist/lib/node-esm/chunk-VM4P3575.mjs","kind":"import-statement"},{"path":"packages/plugins/plugin-observability/dist/lib/node-esm/chunk-KT5SDFBU.mjs","kind":"import-statement"},{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/app-framework","kind":"import-statement","external":true},{"path":"@dxos/local-storage","kind":"import-statement","external":true}],"exports":["default"],"entryPoint":"packages/plugins/plugin-observability/src/capabilities/react-surface.tsx","inputs":{"packages/plugins/plugin-observability/src/capabilities/react-surface.tsx":{"bytesInOutput":542}},"bytes":968},"packages/plugins/plugin-observability/dist/lib/node-esm/settings-YHYGZAYT.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":1086},"packages/plugins/plugin-observability/dist/lib/node-esm/settings-YHYGZAYT.mjs":{"imports":[{"path":"packages/plugins/plugin-observability/dist/lib/node-esm/chunk-YNSLIAZL.mjs","kind":"import-statement"},{"path":"packages/plugins/plugin-observability/dist/lib/node-esm/chunk-VM4P3575.mjs","kind":"import-statement"},{"path":"packages/plugins/plugin-observability/dist/lib/node-esm/chunk-KT5SDFBU.mjs","kind":"import-statement"},{"path":"@dxos/app-framework","kind":"import-statement","external":true},{"path":"@dxos/live-object","kind":"import-statement","external":true}],"exports":["default"],"entryPoint":"packages/plugins/plugin-observability/src/capabilities/settings.ts","inputs":{"packages/plugins/plugin-observability/src/capabilities/settings.ts":{"bytesInOutput":342}},"bytes":758},"packages/plugins/plugin-observability/dist/lib/node-esm/chunk-YNSLIAZL.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":2948},"packages/plugins/plugin-observability/dist/lib/node-esm/chunk-YNSLIAZL.mjs":{"imports":[{"path":"packages/plugins/plugin-observability/dist/lib/node-esm/chunk-VM4P3575.mjs","kind":"import-statement"},{"path":"packages/plugins/plugin-observability/dist/lib/node-esm/chunk-KT5SDFBU.mjs","kind":"import-statement"},{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/app-framework","kind":"import-statement","external":true},{"path":"@dxos/echo-schema","kind":"import-statement","external":true},{"path":"@dxos/react-ui","kind":"import-statement","external":true},{"path":"@dxos/react-ui-form","kind":"import-statement","external":true}],"exports":["ObservabilitySettings","ObservabilitySettingsSchema"],"inputs":{"packages/plugins/plugin-observability/src/components/ObservabilitySettings.tsx":{"bytesInOutput":1115},"packages/plugins/plugin-observability/src/components/index.ts":{"bytesInOutput":0}},"bytes":1527},"packages/plugins/plugin-observability/dist/lib/node-esm/chunk-VM4P3575.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":3639},"packages/plugins/plugin-observability/dist/lib/node-esm/chunk-VM4P3575.mjs":{"imports":[{"path":"packages/plugins/plugin-observability/dist/lib/node-esm/chunk-KT5SDFBU.mjs","kind":"import-statement"},{"path":"@dxos/echo-schema","kind":"import-statement","external":true}],"exports":["ObservabilityAction","UserFeedback"],"inputs":{"packages/plugins/plugin-observability/src/types.ts":{"bytesInOutput":1658}},"bytes":1963},"packages/plugins/plugin-observability/dist/lib/node-esm/state-R2UVEG7B.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":1587},"packages/plugins/plugin-observability/dist/lib/node-esm/state-R2UVEG7B.mjs":{"imports":[{"path":"packages/plugins/plugin-observability/dist/lib/node-esm/chunk-U3JYGK3O.mjs","kind":"import-statement"},{"path":"packages/plugins/plugin-observability/dist/lib/node-esm/chunk-KT5SDFBU.mjs","kind":"import-statement"},{"path":"@dxos/app-framework","kind":"import-statement","external":true},{"path":"@dxos/local-storage","kind":"import-statement","external":true},{"path":"@dxos/observability","kind":"import-statement","external":true}],"exports":["default"],"entryPoint":"packages/plugins/plugin-observability/src/capabilities/state.ts","inputs":{"packages/plugins/plugin-observability/src/capabilities/state.ts":{"bytesInOutput":544}},"bytes":918},"packages/plugins/plugin-observability/dist/lib/node-esm/chunk-U3JYGK3O.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":1243},"packages/plugins/plugin-observability/dist/lib/node-esm/chunk-U3JYGK3O.mjs":{"imports":[{"path":"packages/plugins/plugin-observability/dist/lib/node-esm/chunk-KT5SDFBU.mjs","kind":"import-statement"},{"path":"@dxos/app-framework","kind":"import-statement","external":true}],"exports":["ClientCapability","ObservabilityCapabilities"],"inputs":{"packages/plugins/plugin-observability/src/capabilities/capabilities.ts":{"bytesInOutput":493}},"bytes":828},"packages/plugins/plugin-observability/dist/lib/node-esm/chunk-KT5SDFBU.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":535},"packages/plugins/plugin-observability/dist/lib/node-esm/chunk-KT5SDFBU.mjs":{"imports":[],"exports":["OBSERVABILITY_PLUGIN","meta"],"inputs":{"packages/plugins/plugin-observability/src/meta.ts":{"bytesInOutput":152}},"bytes":386}}}
1
+ {"inputs":{"packages/plugins/plugin-observability/src/meta.ts":{"bytes":1128,"imports":[],"format":"esm"},"packages/plugins/plugin-observability/src/capabilities/capabilities.ts":{"bytes":2554,"imports":[{"path":"@dxos/app-framework","kind":"import-statement","external":true},{"path":"packages/plugins/plugin-observability/src/meta.ts","kind":"import-statement","original":"../meta"}],"format":"esm"},"packages/plugins/plugin-observability/src/capabilities/app-graph-builder.ts":{"bytes":4347,"imports":[{"path":"@dxos/app-framework","kind":"import-statement","external":true},{"path":"@dxos/plugin-graph","kind":"import-statement","external":true},{"path":"packages/plugins/plugin-observability/src/meta.ts","kind":"import-statement","original":"../meta"}],"format":"esm"},"packages/plugins/plugin-observability/src/types.ts":{"bytes":20171,"imports":[{"path":"@dxos/echo-schema","kind":"import-statement","external":true},{"path":"packages/plugins/plugin-observability/src/meta.ts","kind":"import-statement","original":"./meta"}],"format":"esm"},"packages/plugins/plugin-observability/src/capabilities/client-ready.ts":{"bytes":13804,"imports":[{"path":"@dxos/app-framework","kind":"import-statement","external":true},{"path":"@dxos/observability","kind":"import-statement","external":true},{"path":"packages/plugins/plugin-observability/src/capabilities/capabilities.ts","kind":"import-statement","original":"./capabilities"},{"path":"packages/plugins/plugin-observability/src/meta.ts","kind":"import-statement","original":"../meta"},{"path":"packages/plugins/plugin-observability/src/types.ts","kind":"import-statement","original":"../types"}],"format":"esm"},"packages/plugins/plugin-observability/src/capabilities/intent-resolver.ts":{"bytes":10124,"imports":[{"path":"@dxos/app-framework","kind":"import-statement","external":true},{"path":"@dxos/log","kind":"import-statement","external":true},{"path":"@dxos/observability","kind":"import-statement","external":true},{"path":"packages/plugins/plugin-observability/src/capabilities/capabilities.ts","kind":"import-statement","original":"./capabilities"},{"path":"packages/plugins/plugin-observability/src/meta.ts","kind":"import-statement","original":"../meta"},{"path":"packages/plugins/plugin-observability/src/types.ts","kind":"import-statement","original":"../types"}],"format":"esm"},"packages/plugins/plugin-observability/src/components/FeedbackForm.tsx":{"bytes":9757,"imports":[{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/echo-schema","kind":"import-statement","external":true},{"path":"@dxos/react-ui","kind":"import-statement","external":true},{"path":"@dxos/react-ui-form","kind":"import-statement","external":true},{"path":"packages/plugins/plugin-observability/src/meta.ts","kind":"import-statement","original":"../meta"},{"path":"packages/plugins/plugin-observability/src/types.ts","kind":"import-statement","original":"../types"}],"format":"esm"},"packages/plugins/plugin-observability/src/components/HelpContainer.tsx":{"bytes":2535,"imports":[{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/app-framework","kind":"import-statement","external":true},{"path":"packages/plugins/plugin-observability/src/components/FeedbackForm.tsx","kind":"import-statement","original":"./FeedbackForm"},{"path":"packages/plugins/plugin-observability/src/types.ts","kind":"import-statement","original":"../types"}],"format":"esm"},"packages/plugins/plugin-observability/src/components/ObservabilitySettings.tsx":{"bytes":5368,"imports":[{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/app-framework","kind":"import-statement","external":true},{"path":"@dxos/echo-schema","kind":"import-statement","external":true},{"path":"@dxos/react-ui","kind":"import-statement","external":true},{"path":"@dxos/react-ui-form","kind":"import-statement","external":true},{"path":"packages/plugins/plugin-observability/src/meta.ts","kind":"import-statement","original":"../meta"},{"path":"packages/plugins/plugin-observability/src/types.ts","kind":"import-statement","original":"../types"}],"format":"esm"},"packages/plugins/plugin-observability/src/components/index.ts":{"bytes":758,"imports":[{"path":"packages/plugins/plugin-observability/src/components/FeedbackForm.tsx","kind":"import-statement","original":"./FeedbackForm"},{"path":"packages/plugins/plugin-observability/src/components/HelpContainer.tsx","kind":"import-statement","original":"./HelpContainer"},{"path":"packages/plugins/plugin-observability/src/components/ObservabilitySettings.tsx","kind":"import-statement","original":"./ObservabilitySettings"}],"format":"esm"},"packages/plugins/plugin-observability/src/capabilities/react-surface.tsx":{"bytes":3650,"imports":[{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/app-framework","kind":"import-statement","external":true},{"path":"@dxos/local-storage","kind":"import-statement","external":true},{"path":"packages/plugins/plugin-observability/src/components/index.ts","kind":"import-statement","original":"../components"},{"path":"packages/plugins/plugin-observability/src/meta.ts","kind":"import-statement","original":"../meta"}],"format":"esm"},"packages/plugins/plugin-observability/src/capabilities/settings.ts":{"bytes":2180,"imports":[{"path":"@dxos/app-framework","kind":"import-statement","external":true},{"path":"@dxos/live-object","kind":"import-statement","external":true},{"path":"packages/plugins/plugin-observability/src/components/index.ts","kind":"import-statement","original":"../components"},{"path":"packages/plugins/plugin-observability/src/meta.ts","kind":"import-statement","original":"../meta"}],"format":"esm"},"packages/plugins/plugin-observability/src/capabilities/state.ts":{"bytes":3153,"imports":[{"path":"@dxos/app-framework","kind":"import-statement","external":true},{"path":"@dxos/local-storage","kind":"import-statement","external":true},{"path":"@dxos/observability","kind":"import-statement","external":true},{"path":"packages/plugins/plugin-observability/src/capabilities/capabilities.ts","kind":"import-statement","original":"./capabilities"},{"path":"packages/plugins/plugin-observability/src/meta.ts","kind":"import-statement","original":"../meta"}],"format":"esm"},"packages/plugins/plugin-observability/src/capabilities/index.ts":{"bytes":2211,"imports":[{"path":"@dxos/app-framework","kind":"import-statement","external":true},{"path":"packages/plugins/plugin-observability/src/capabilities/capabilities.ts","kind":"import-statement","original":"./capabilities"},{"path":"packages/plugins/plugin-observability/src/capabilities/app-graph-builder.ts","kind":"dynamic-import","original":"./app-graph-builder"},{"path":"packages/plugins/plugin-observability/src/capabilities/client-ready.ts","kind":"dynamic-import","original":"./client-ready"},{"path":"packages/plugins/plugin-observability/src/capabilities/intent-resolver.ts","kind":"dynamic-import","original":"./intent-resolver"},{"path":"packages/plugins/plugin-observability/src/capabilities/react-surface.tsx","kind":"dynamic-import","original":"./react-surface"},{"path":"packages/plugins/plugin-observability/src/capabilities/settings.ts","kind":"dynamic-import","original":"./settings"},{"path":"packages/plugins/plugin-observability/src/capabilities/state.ts","kind":"dynamic-import","original":"./state"}],"format":"esm"},"packages/plugins/plugin-observability/src/events.ts":{"bytes":1845,"imports":[{"path":"@dxos/app-framework","kind":"import-statement","external":true},{"path":"packages/plugins/plugin-observability/src/meta.ts","kind":"import-statement","original":"./meta"}],"format":"esm"},"packages/plugins/plugin-observability/src/translations.ts":{"bytes":4008,"imports":[{"path":"packages/plugins/plugin-observability/src/meta.ts","kind":"import-statement","original":"./meta"}],"format":"esm"},"packages/plugins/plugin-observability/src/ObservabilityPlugin.ts":{"bytes":9048,"imports":[{"path":"@dxos/app-framework","kind":"import-statement","external":true},{"path":"packages/plugins/plugin-observability/src/capabilities/index.ts","kind":"import-statement","original":"./capabilities"},{"path":"packages/plugins/plugin-observability/src/events.ts","kind":"import-statement","original":"./events"},{"path":"packages/plugins/plugin-observability/src/meta.ts","kind":"import-statement","original":"./meta"},{"path":"packages/plugins/plugin-observability/src/translations.ts","kind":"import-statement","original":"./translations"}],"format":"esm"},"packages/plugins/plugin-observability/src/index.ts":{"bytes":1114,"imports":[{"path":"packages/plugins/plugin-observability/src/capabilities/index.ts","kind":"import-statement","original":"./capabilities"},{"path":"packages/plugins/plugin-observability/src/events.ts","kind":"import-statement","original":"./events"},{"path":"packages/plugins/plugin-observability/src/components/index.ts","kind":"import-statement","original":"./components"},{"path":"packages/plugins/plugin-observability/src/meta.ts","kind":"import-statement","original":"./meta"},{"path":"packages/plugins/plugin-observability/src/ObservabilityPlugin.ts","kind":"import-statement","original":"./ObservabilityPlugin"}],"format":"esm"}},"outputs":{"packages/plugins/plugin-observability/dist/lib/node-esm/index.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":7733},"packages/plugins/plugin-observability/dist/lib/node-esm/index.mjs":{"imports":[{"path":"packages/plugins/plugin-observability/dist/lib/node-esm/chunk-MW737PHD.mjs","kind":"import-statement"},{"path":"packages/plugins/plugin-observability/dist/lib/node-esm/chunk-M3MGU3DN.mjs","kind":"import-statement"},{"path":"packages/plugins/plugin-observability/dist/lib/node-esm/chunk-U3JYGK3O.mjs","kind":"import-statement"},{"path":"packages/plugins/plugin-observability/dist/lib/node-esm/chunk-KT5SDFBU.mjs","kind":"import-statement"},{"path":"@dxos/app-framework","kind":"import-statement","external":true},{"path":"packages/plugins/plugin-observability/dist/lib/node-esm/app-graph-builder-RKURIIFT.mjs","kind":"dynamic-import"},{"path":"packages/plugins/plugin-observability/dist/lib/node-esm/client-ready-4BUMAISA.mjs","kind":"dynamic-import"},{"path":"packages/plugins/plugin-observability/dist/lib/node-esm/intent-resolver-5EFEXLWX.mjs","kind":"dynamic-import"},{"path":"packages/plugins/plugin-observability/dist/lib/node-esm/react-surface-VLQBOZTX.mjs","kind":"dynamic-import"},{"path":"packages/plugins/plugin-observability/dist/lib/node-esm/settings-765HDSFY.mjs","kind":"dynamic-import"},{"path":"packages/plugins/plugin-observability/dist/lib/node-esm/state-R2UVEG7B.mjs","kind":"dynamic-import"},{"path":"@dxos/app-framework","kind":"import-statement","external":true},{"path":"@dxos/app-framework","kind":"import-statement","external":true}],"exports":["FeedbackForm","HelpContainer","OBSERVABILITY_PLUGIN","ObservabilityCapabilities","ObservabilityEvents","ObservabilityPlugin","ObservabilitySettings","ObservabilitySettingsSchema","meta"],"entryPoint":"packages/plugins/plugin-observability/src/index.ts","inputs":{"packages/plugins/plugin-observability/src/capabilities/index.ts":{"bytesInOutput":482},"packages/plugins/plugin-observability/src/index.ts":{"bytesInOutput":0},"packages/plugins/plugin-observability/src/events.ts":{"bytesInOutput":337},"packages/plugins/plugin-observability/src/ObservabilityPlugin.ts":{"bytesInOutput":1831},"packages/plugins/plugin-observability/src/translations.ts":{"bytesInOutput":1229}},"bytes":4835},"packages/plugins/plugin-observability/dist/lib/node-esm/types.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":93},"packages/plugins/plugin-observability/dist/lib/node-esm/types.mjs":{"imports":[{"path":"packages/plugins/plugin-observability/dist/lib/node-esm/chunk-M3MGU3DN.mjs","kind":"import-statement"},{"path":"packages/plugins/plugin-observability/dist/lib/node-esm/chunk-KT5SDFBU.mjs","kind":"import-statement"}],"exports":["ObservabilityAction","UserFeedback"],"entryPoint":"packages/plugins/plugin-observability/src/types.ts","inputs":{},"bytes":286},"packages/plugins/plugin-observability/dist/lib/node-esm/app-graph-builder-RKURIIFT.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":1975},"packages/plugins/plugin-observability/dist/lib/node-esm/app-graph-builder-RKURIIFT.mjs":{"imports":[{"path":"packages/plugins/plugin-observability/dist/lib/node-esm/chunk-KT5SDFBU.mjs","kind":"import-statement"},{"path":"@dxos/app-framework","kind":"import-statement","external":true},{"path":"@dxos/plugin-graph","kind":"import-statement","external":true}],"exports":["default"],"entryPoint":"packages/plugins/plugin-observability/src/capabilities/app-graph-builder.ts","inputs":{"packages/plugins/plugin-observability/src/capabilities/app-graph-builder.ts":{"bytesInOutput":881}},"bytes":1223},"packages/plugins/plugin-observability/dist/lib/node-esm/client-ready-4BUMAISA.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":6747},"packages/plugins/plugin-observability/dist/lib/node-esm/client-ready-4BUMAISA.mjs":{"imports":[{"path":"packages/plugins/plugin-observability/dist/lib/node-esm/chunk-M3MGU3DN.mjs","kind":"import-statement"},{"path":"packages/plugins/plugin-observability/dist/lib/node-esm/chunk-U3JYGK3O.mjs","kind":"import-statement"},{"path":"packages/plugins/plugin-observability/dist/lib/node-esm/chunk-KT5SDFBU.mjs","kind":"import-statement"},{"path":"@dxos/app-framework","kind":"import-statement","external":true},{"path":"@dxos/observability","kind":"import-statement","external":true}],"exports":["default"],"entryPoint":"packages/plugins/plugin-observability/src/capabilities/client-ready.ts","inputs":{"packages/plugins/plugin-observability/src/capabilities/client-ready.ts":{"bytesInOutput":3255}},"bytes":3732},"packages/plugins/plugin-observability/dist/lib/node-esm/intent-resolver-5EFEXLWX.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":4944},"packages/plugins/plugin-observability/dist/lib/node-esm/intent-resolver-5EFEXLWX.mjs":{"imports":[{"path":"packages/plugins/plugin-observability/dist/lib/node-esm/chunk-M3MGU3DN.mjs","kind":"import-statement"},{"path":"packages/plugins/plugin-observability/dist/lib/node-esm/chunk-U3JYGK3O.mjs","kind":"import-statement"},{"path":"packages/plugins/plugin-observability/dist/lib/node-esm/chunk-KT5SDFBU.mjs","kind":"import-statement"},{"path":"@dxos/app-framework","kind":"import-statement","external":true},{"path":"@dxos/log","kind":"import-statement","external":true},{"path":"@dxos/observability","kind":"import-statement","external":true}],"exports":["default"],"entryPoint":"packages/plugins/plugin-observability/src/capabilities/intent-resolver.ts","inputs":{"packages/plugins/plugin-observability/src/capabilities/intent-resolver.ts":{"bytesInOutput":2254}},"bytes":2740},"packages/plugins/plugin-observability/dist/lib/node-esm/react-surface-VLQBOZTX.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":1817},"packages/plugins/plugin-observability/dist/lib/node-esm/react-surface-VLQBOZTX.mjs":{"imports":[{"path":"packages/plugins/plugin-observability/dist/lib/node-esm/chunk-MW737PHD.mjs","kind":"import-statement"},{"path":"packages/plugins/plugin-observability/dist/lib/node-esm/chunk-M3MGU3DN.mjs","kind":"import-statement"},{"path":"packages/plugins/plugin-observability/dist/lib/node-esm/chunk-KT5SDFBU.mjs","kind":"import-statement"},{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/app-framework","kind":"import-statement","external":true},{"path":"@dxos/local-storage","kind":"import-statement","external":true}],"exports":["default"],"entryPoint":"packages/plugins/plugin-observability/src/capabilities/react-surface.tsx","inputs":{"packages/plugins/plugin-observability/src/capabilities/react-surface.tsx":{"bytesInOutput":738}},"bytes":1181},"packages/plugins/plugin-observability/dist/lib/node-esm/settings-765HDSFY.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":1086},"packages/plugins/plugin-observability/dist/lib/node-esm/settings-765HDSFY.mjs":{"imports":[{"path":"packages/plugins/plugin-observability/dist/lib/node-esm/chunk-MW737PHD.mjs","kind":"import-statement"},{"path":"packages/plugins/plugin-observability/dist/lib/node-esm/chunk-M3MGU3DN.mjs","kind":"import-statement"},{"path":"packages/plugins/plugin-observability/dist/lib/node-esm/chunk-KT5SDFBU.mjs","kind":"import-statement"},{"path":"@dxos/app-framework","kind":"import-statement","external":true},{"path":"@dxos/live-object","kind":"import-statement","external":true}],"exports":["default"],"entryPoint":"packages/plugins/plugin-observability/src/capabilities/settings.ts","inputs":{"packages/plugins/plugin-observability/src/capabilities/settings.ts":{"bytesInOutput":342}},"bytes":758},"packages/plugins/plugin-observability/dist/lib/node-esm/chunk-MW737PHD.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":9318},"packages/plugins/plugin-observability/dist/lib/node-esm/chunk-MW737PHD.mjs":{"imports":[{"path":"packages/plugins/plugin-observability/dist/lib/node-esm/chunk-M3MGU3DN.mjs","kind":"import-statement"},{"path":"packages/plugins/plugin-observability/dist/lib/node-esm/chunk-KT5SDFBU.mjs","kind":"import-statement"},{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/echo-schema","kind":"import-statement","external":true},{"path":"@dxos/react-ui","kind":"import-statement","external":true},{"path":"@dxos/react-ui-form","kind":"import-statement","external":true},{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/app-framework","kind":"import-statement","external":true},{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/app-framework","kind":"import-statement","external":true},{"path":"@dxos/echo-schema","kind":"import-statement","external":true},{"path":"@dxos/react-ui","kind":"import-statement","external":true},{"path":"@dxos/react-ui-form","kind":"import-statement","external":true}],"exports":["FeedbackForm","HelpContainer","ObservabilitySettings","ObservabilitySettingsSchema"],"inputs":{"packages/plugins/plugin-observability/src/components/FeedbackForm.tsx":{"bytesInOutput":2442},"packages/plugins/plugin-observability/src/components/HelpContainer.tsx":{"bytesInOutput":475},"packages/plugins/plugin-observability/src/components/ObservabilitySettings.tsx":{"bytesInOutput":1195},"packages/plugins/plugin-observability/src/components/index.ts":{"bytesInOutput":0}},"bytes":4722},"packages/plugins/plugin-observability/dist/lib/node-esm/chunk-M3MGU3DN.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":10177},"packages/plugins/plugin-observability/dist/lib/node-esm/chunk-M3MGU3DN.mjs":{"imports":[{"path":"packages/plugins/plugin-observability/dist/lib/node-esm/chunk-KT5SDFBU.mjs","kind":"import-statement"},{"path":"@dxos/echo-schema","kind":"import-statement","external":true}],"exports":["ObservabilityAction","UserFeedback"],"inputs":{"packages/plugins/plugin-observability/src/types.ts":{"bytesInOutput":4712}},"bytes":5017},"packages/plugins/plugin-observability/dist/lib/node-esm/state-R2UVEG7B.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":1587},"packages/plugins/plugin-observability/dist/lib/node-esm/state-R2UVEG7B.mjs":{"imports":[{"path":"packages/plugins/plugin-observability/dist/lib/node-esm/chunk-U3JYGK3O.mjs","kind":"import-statement"},{"path":"packages/plugins/plugin-observability/dist/lib/node-esm/chunk-KT5SDFBU.mjs","kind":"import-statement"},{"path":"@dxos/app-framework","kind":"import-statement","external":true},{"path":"@dxos/local-storage","kind":"import-statement","external":true},{"path":"@dxos/observability","kind":"import-statement","external":true}],"exports":["default"],"entryPoint":"packages/plugins/plugin-observability/src/capabilities/state.ts","inputs":{"packages/plugins/plugin-observability/src/capabilities/state.ts":{"bytesInOutput":544}},"bytes":918},"packages/plugins/plugin-observability/dist/lib/node-esm/chunk-U3JYGK3O.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":1243},"packages/plugins/plugin-observability/dist/lib/node-esm/chunk-U3JYGK3O.mjs":{"imports":[{"path":"packages/plugins/plugin-observability/dist/lib/node-esm/chunk-KT5SDFBU.mjs","kind":"import-statement"},{"path":"@dxos/app-framework","kind":"import-statement","external":true}],"exports":["ClientCapability","ObservabilityCapabilities"],"inputs":{"packages/plugins/plugin-observability/src/capabilities/capabilities.ts":{"bytesInOutput":493}},"bytes":828},"packages/plugins/plugin-observability/dist/lib/node-esm/chunk-KT5SDFBU.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":535},"packages/plugins/plugin-observability/dist/lib/node-esm/chunk-KT5SDFBU.mjs":{"imports":[],"exports":["OBSERVABILITY_PLUGIN","meta"],"inputs":{"packages/plugins/plugin-observability/src/meta.ts":{"bytesInOutput":152}},"bytes":386}}}