@dxos/plugin-observability 0.8.1 → 0.8.2-main.2f9c567

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 (78) hide show
  1. package/dist/lib/browser/{chunk-6Q6ZJ3N4.mjs → chunk-4HIP2OUG.mjs} +38 -9
  2. package/dist/lib/browser/chunk-4HIP2OUG.mjs.map +7 -0
  3. package/dist/lib/browser/chunk-E7NPL7UO.mjs +178 -0
  4. package/dist/lib/browser/chunk-E7NPL7UO.mjs.map +7 -0
  5. package/dist/lib/browser/{client-ready-LRY24QM5.mjs → client-ready-J2WRJ3NK.mjs} +2 -2
  6. package/dist/lib/browser/index.mjs +10 -8
  7. package/dist/lib/browser/index.mjs.map +2 -2
  8. package/dist/lib/browser/{intent-resolver-ZKNJCLDV.mjs → intent-resolver-2UTMIO2T.mjs} +2 -2
  9. package/dist/lib/browser/meta.json +1 -1
  10. package/dist/lib/browser/{react-surface-S36FDV7I.mjs → react-surface-L2EYSF4C.mjs} +3 -3
  11. package/dist/lib/browser/{settings-JFZJTDH7.mjs → settings-5EPL4O2V.mjs} +5 -5
  12. package/dist/lib/browser/settings-5EPL4O2V.mjs.map +7 -0
  13. package/dist/lib/browser/types.mjs +1 -1
  14. package/dist/lib/node/chunk-A7DUZZ5V.cjs +198 -0
  15. package/dist/lib/node/chunk-A7DUZZ5V.cjs.map +7 -0
  16. package/dist/lib/node/{chunk-FIL4BZE2.cjs → chunk-UCKA5GBZ.cjs} +42 -13
  17. package/dist/lib/node/chunk-UCKA5GBZ.cjs.map +7 -0
  18. package/dist/lib/node/{client-ready-KHGLQOQZ.cjs → client-ready-ENPTPI2O.cjs} +6 -6
  19. package/dist/lib/node/index.cjs +14 -12
  20. package/dist/lib/node/index.cjs.map +2 -2
  21. package/dist/lib/node/{intent-resolver-5SANBSGX.cjs → intent-resolver-KHM3CT62.cjs} +8 -8
  22. package/dist/lib/node/meta.json +1 -1
  23. package/dist/lib/node/{react-surface-MWJS6OMP.cjs → react-surface-D7JFIB3X.cjs} +8 -8
  24. package/dist/lib/node/{settings-ARLOGCYU.cjs → settings-QPCXX5RG.cjs} +8 -8
  25. package/dist/lib/node/settings-QPCXX5RG.cjs.map +7 -0
  26. package/dist/lib/node/types.cjs +3 -3
  27. package/dist/lib/node/types.cjs.map +1 -1
  28. package/dist/lib/node-esm/chunk-OIEISTZW.mjs +179 -0
  29. package/dist/lib/node-esm/chunk-OIEISTZW.mjs.map +7 -0
  30. package/dist/lib/node-esm/{chunk-MW737PHD.mjs → chunk-S22MQRWS.mjs} +38 -9
  31. package/dist/lib/node-esm/chunk-S22MQRWS.mjs.map +7 -0
  32. package/dist/lib/node-esm/{client-ready-4BUMAISA.mjs → client-ready-XZLBNPKH.mjs} +2 -2
  33. package/dist/lib/node-esm/index.mjs +10 -8
  34. package/dist/lib/node-esm/index.mjs.map +2 -2
  35. package/dist/lib/node-esm/{intent-resolver-5EFEXLWX.mjs → intent-resolver-R2FFQV6O.mjs} +2 -2
  36. package/dist/lib/node-esm/meta.json +1 -1
  37. package/dist/lib/node-esm/{react-surface-VLQBOZTX.mjs → react-surface-KG6WMUCA.mjs} +3 -3
  38. package/dist/lib/node-esm/{settings-765HDSFY.mjs → settings-BLLMFWKI.mjs} +5 -5
  39. package/dist/lib/node-esm/settings-BLLMFWKI.mjs.map +7 -0
  40. package/dist/lib/node-esm/types.mjs +1 -1
  41. package/dist/types/src/capabilities/app-graph-builder.d.ts.map +1 -1
  42. package/dist/types/src/capabilities/index.d.ts +1 -1
  43. package/dist/types/src/capabilities/index.d.ts.map +1 -1
  44. package/dist/types/src/capabilities/state.d.ts +1 -1
  45. package/dist/types/src/components/HelpContainer.d.ts.map +1 -1
  46. package/dist/types/src/components/ObservabilitySettings.d.ts +4 -4
  47. package/dist/types/src/components/ObservabilitySettings.d.ts.map +1 -1
  48. package/dist/types/src/translations.d.ts +2 -0
  49. package/dist/types/src/translations.d.ts.map +1 -1
  50. package/dist/types/src/types.d.ts +145 -145
  51. package/dist/types/src/types.d.ts.map +1 -1
  52. package/package.json +24 -21
  53. package/src/capabilities/settings.ts +2 -2
  54. package/src/components/HelpContainer.tsx +21 -4
  55. package/src/components/ObservabilitySettings.tsx +5 -5
  56. package/src/translations.ts +3 -1
  57. package/src/types.ts +126 -126
  58. package/dist/lib/browser/chunk-6Q6ZJ3N4.mjs.map +0 -7
  59. package/dist/lib/browser/chunk-RI4RE346.mjs +0 -178
  60. package/dist/lib/browser/chunk-RI4RE346.mjs.map +0 -7
  61. package/dist/lib/browser/settings-JFZJTDH7.mjs.map +0 -7
  62. package/dist/lib/node/chunk-FIL4BZE2.cjs.map +0 -7
  63. package/dist/lib/node/chunk-V4ZLLL5M.cjs +0 -198
  64. package/dist/lib/node/chunk-V4ZLLL5M.cjs.map +0 -7
  65. package/dist/lib/node/settings-ARLOGCYU.cjs.map +0 -7
  66. package/dist/lib/node-esm/chunk-M3MGU3DN.mjs +0 -179
  67. package/dist/lib/node-esm/chunk-M3MGU3DN.mjs.map +0 -7
  68. package/dist/lib/node-esm/chunk-MW737PHD.mjs.map +0 -7
  69. package/dist/lib/node-esm/settings-765HDSFY.mjs.map +0 -7
  70. /package/dist/lib/browser/{client-ready-LRY24QM5.mjs.map → client-ready-J2WRJ3NK.mjs.map} +0 -0
  71. /package/dist/lib/browser/{intent-resolver-ZKNJCLDV.mjs.map → intent-resolver-2UTMIO2T.mjs.map} +0 -0
  72. /package/dist/lib/browser/{react-surface-S36FDV7I.mjs.map → react-surface-L2EYSF4C.mjs.map} +0 -0
  73. /package/dist/lib/node/{client-ready-KHGLQOQZ.cjs.map → client-ready-ENPTPI2O.cjs.map} +0 -0
  74. /package/dist/lib/node/{intent-resolver-5SANBSGX.cjs.map → intent-resolver-KHM3CT62.cjs.map} +0 -0
  75. /package/dist/lib/node/{react-surface-MWJS6OMP.cjs.map → react-surface-D7JFIB3X.cjs.map} +0 -0
  76. /package/dist/lib/node-esm/{client-ready-4BUMAISA.mjs.map → client-ready-XZLBNPKH.mjs.map} +0 -0
  77. /package/dist/lib/node-esm/{intent-resolver-5EFEXLWX.mjs.map → intent-resolver-R2FFQV6O.mjs.map} +0 -0
  78. /package/dist/lib/node-esm/{react-surface-VLQBOZTX.mjs.map → react-surface-KG6WMUCA.mjs.map} +0 -0
@@ -1,16 +1,16 @@
1
1
  import {
2
2
  ObservabilitySettingsSchema
3
- } from "./chunk-6Q6ZJ3N4.mjs";
4
- import "./chunk-RI4RE346.mjs";
3
+ } from "./chunk-4HIP2OUG.mjs";
4
+ import "./chunk-E7NPL7UO.mjs";
5
5
  import {
6
6
  OBSERVABILITY_PLUGIN
7
7
  } from "./chunk-RKH5BBR4.mjs";
8
8
 
9
9
  // packages/plugins/plugin-observability/src/capabilities/settings.ts
10
10
  import { Capabilities, contributes } from "@dxos/app-framework";
11
- import { create } from "@dxos/live-object";
11
+ import { live } from "@dxos/live-object";
12
12
  var settings_default = () => {
13
- const settings = create({
13
+ const settings = live({
14
14
  enabled: true
15
15
  });
16
16
  return contributes(Capabilities.Settings, {
@@ -22,4 +22,4 @@ var settings_default = () => {
22
22
  export {
23
23
  settings_default as default
24
24
  };
25
- //# sourceMappingURL=settings-JFZJTDH7.mjs.map
25
+ //# sourceMappingURL=settings-5EPL4O2V.mjs.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../src/capabilities/settings.ts"],
4
+ "sourcesContent": ["//\n// Copyright 2025 DXOS.org\n//\n\nimport { Capabilities, contributes } from '@dxos/app-framework';\nimport { live } from '@dxos/live-object';\n\nimport { type ObservabilitySettingsProps, ObservabilitySettingsSchema } from '../components';\nimport { OBSERVABILITY_PLUGIN } from '../meta';\n\nexport default () => {\n const settings = live<ObservabilitySettingsProps>({ enabled: true });\n\n return contributes(Capabilities.Settings, {\n schema: ObservabilitySettingsSchema,\n prefix: OBSERVABILITY_PLUGIN,\n value: settings,\n });\n};\n"],
5
+ "mappings": ";;;;;;;;;AAIA,SAASA,cAAcC,mBAAmB;AAC1C,SAASC,YAAY;AAKrB,IAAA,mBAAe,MAAA;AACb,QAAMC,WAAWC,KAAiC;IAAEC,SAAS;EAAK,CAAA;AAElE,SAAOC,YAAYC,aAAaC,UAAU;IACxCC,QAAQC;IACRC,QAAQC;IACRC,OAAOV;EACT,CAAA;AACF;",
6
+ "names": ["Capabilities", "contributes", "live", "settings", "live", "enabled", "contributes", "Capabilities", "Settings", "schema", "ObservabilitySettingsSchema", "prefix", "OBSERVABILITY_PLUGIN", "value"]
7
+ }
@@ -1,7 +1,7 @@
1
1
  import {
2
2
  ObservabilityAction,
3
3
  UserFeedback
4
- } from "./chunk-RI4RE346.mjs";
4
+ } from "./chunk-E7NPL7UO.mjs";
5
5
  import "./chunk-RKH5BBR4.mjs";
6
6
  export {
7
7
  ObservabilityAction,
@@ -0,0 +1,198 @@
1
+ "use strict";
2
+ var __defProp = Object.defineProperty;
3
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
+ var __getOwnPropNames = Object.getOwnPropertyNames;
5
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
6
+ var __export = (target, all) => {
7
+ for (var name in all)
8
+ __defProp(target, name, { get: all[name], enumerable: true });
9
+ };
10
+ var __copyProps = (to, from, except, desc) => {
11
+ if (from && typeof from === "object" || typeof from === "function") {
12
+ for (let key of __getOwnPropNames(from))
13
+ if (!__hasOwnProp.call(to, key) && key !== except)
14
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
15
+ }
16
+ return to;
17
+ };
18
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
19
+ var chunk_A7DUZZ5V_exports = {};
20
+ __export(chunk_A7DUZZ5V_exports, {
21
+ ObservabilityAction: () => ObservabilityAction,
22
+ UserFeedback: () => UserFeedback
23
+ });
24
+ module.exports = __toCommonJS(chunk_A7DUZZ5V_exports);
25
+ var import_chunk_2ERIOZP3 = require("./chunk-2ERIOZP3.cjs");
26
+ var import_effect = require("effect");
27
+ var nonEmpty = (field) => import_effect.Schema.nonEmptyString({
28
+ message: () => `Missing field: ${field}`
29
+ });
30
+ var maxLength = (field, length) => import_effect.Schema.maxLength(length, {
31
+ message: () => `Exceeds max length (${length}): ${field}`
32
+ });
33
+ var UserFeedback = import_effect.Schema.Struct({
34
+ message: import_effect.Schema.String.pipe(nonEmpty("Feedback"), maxLength("Feedback", 32768))
35
+ });
36
+ var OBSERVABILITY_ACTION = `${import_chunk_2ERIOZP3.OBSERVABILITY_PLUGIN}/action`;
37
+ var ObservabilityAction;
38
+ (function(ObservabilityAction2) {
39
+ class Toggle extends import_effect.Schema.TaggedClass()(`${OBSERVABILITY_ACTION}/toggle`, {
40
+ input: import_effect.Schema.Struct({
41
+ state: import_effect.Schema.optional(import_effect.Schema.Boolean)
42
+ }),
43
+ output: import_effect.Schema.Boolean
44
+ }) {
45
+ }
46
+ ObservabilityAction2.Toggle = Toggle;
47
+ class CaptureUserFeedback extends import_effect.Schema.TaggedClass()(`${OBSERVABILITY_ACTION}/capture-feedback`, {
48
+ input: UserFeedback,
49
+ output: import_effect.Schema.Void
50
+ }) {
51
+ }
52
+ ObservabilityAction2.CaptureUserFeedback = CaptureUserFeedback;
53
+ class BaseSendEvent extends import_effect.Schema.TaggedClass()(`${OBSERVABILITY_ACTION}/send-event`, {
54
+ input: import_effect.Schema.Struct({
55
+ name: import_effect.Schema.String,
56
+ properties: import_effect.Schema.optional(import_effect.Schema.Object)
57
+ }),
58
+ output: import_effect.Schema.Void
59
+ }) {
60
+ }
61
+ ObservabilityAction2.BaseSendEvent = BaseSendEvent;
62
+ class SendEvent extends import_effect.Schema.TaggedClass()(`${OBSERVABILITY_ACTION}/send-event`, {
63
+ // NOTE: Sort alphabetically by name.
64
+ input: import_effect.Schema.Union(import_effect.Schema.Struct({
65
+ name: import_effect.Schema.Literal("identity.create")
66
+ }), import_effect.Schema.Struct({
67
+ name: import_effect.Schema.Literal("identity.join")
68
+ }), import_effect.Schema.Struct({
69
+ name: import_effect.Schema.Literal("identity.recover")
70
+ }), import_effect.Schema.Struct({
71
+ name: import_effect.Schema.Literal("identity.share")
72
+ }), import_effect.Schema.Struct({
73
+ name: import_effect.Schema.Literal("navigation.activate"),
74
+ properties: import_effect.Schema.Struct({
75
+ subjectId: import_effect.Schema.String,
76
+ typename: import_effect.Schema.optional(import_effect.Schema.String)
77
+ })
78
+ }), import_effect.Schema.Struct({
79
+ name: import_effect.Schema.Literal("page.load"),
80
+ properties: import_effect.Schema.Struct({
81
+ loadDuration: import_effect.Schema.Number
82
+ })
83
+ }), import_effect.Schema.Struct({
84
+ name: import_effect.Schema.Literal("plugins.toggle"),
85
+ properties: import_effect.Schema.Struct({
86
+ plugin: import_effect.Schema.String,
87
+ enabled: import_effect.Schema.Boolean
88
+ })
89
+ }), import_effect.Schema.Struct({
90
+ name: import_effect.Schema.Literal("space.create"),
91
+ properties: import_effect.Schema.Struct({
92
+ spaceId: import_effect.Schema.String
93
+ })
94
+ }), import_effect.Schema.Struct({
95
+ name: import_effect.Schema.Literal("space.join"),
96
+ properties: import_effect.Schema.Struct({
97
+ spaceId: import_effect.Schema.String
98
+ })
99
+ }), import_effect.Schema.Struct({
100
+ name: import_effect.Schema.Literal("space.limit"),
101
+ properties: import_effect.Schema.Struct({
102
+ spaceId: import_effect.Schema.String
103
+ })
104
+ }), import_effect.Schema.Struct({
105
+ name: import_effect.Schema.Literal("space.lock"),
106
+ properties: import_effect.Schema.Struct({
107
+ spaceId: import_effect.Schema.String
108
+ })
109
+ }), import_effect.Schema.Struct({
110
+ name: import_effect.Schema.Literal("space.migrate"),
111
+ properties: import_effect.Schema.Struct({
112
+ spaceId: import_effect.Schema.String,
113
+ targetVersion: import_effect.Schema.optional(import_effect.Schema.String),
114
+ version: import_effect.Schema.optional(import_effect.Schema.String)
115
+ })
116
+ }), import_effect.Schema.Struct({
117
+ name: import_effect.Schema.Literal("space.object.add"),
118
+ properties: import_effect.Schema.Struct({
119
+ spaceId: import_effect.Schema.String,
120
+ objectId: import_effect.Schema.String,
121
+ typename: import_effect.Schema.optional(import_effect.Schema.String)
122
+ })
123
+ }), import_effect.Schema.Struct({
124
+ name: import_effect.Schema.Literal("space.share"),
125
+ properties: import_effect.Schema.Struct({
126
+ spaceId: import_effect.Schema.String
127
+ })
128
+ }), import_effect.Schema.Struct({
129
+ name: import_effect.Schema.Literal("space.unlock"),
130
+ properties: import_effect.Schema.Struct({
131
+ spaceId: import_effect.Schema.String
132
+ })
133
+ }), import_effect.Schema.Struct({
134
+ name: import_effect.Schema.Literal("threads.create"),
135
+ properties: import_effect.Schema.Struct({
136
+ spaceId: import_effect.Schema.String,
137
+ threadId: import_effect.Schema.String
138
+ })
139
+ }), import_effect.Schema.Struct({
140
+ name: import_effect.Schema.Literal("threads.delete"),
141
+ properties: import_effect.Schema.Struct({
142
+ spaceId: import_effect.Schema.String,
143
+ threadId: import_effect.Schema.String
144
+ })
145
+ }), import_effect.Schema.Struct({
146
+ name: import_effect.Schema.Literal("threads.message.add"),
147
+ properties: import_effect.Schema.Struct({
148
+ spaceId: import_effect.Schema.String,
149
+ threadId: import_effect.Schema.String,
150
+ threadLength: import_effect.Schema.Number,
151
+ messageId: import_effect.Schema.String,
152
+ messageLength: import_effect.Schema.Number
153
+ })
154
+ }), import_effect.Schema.Struct({
155
+ name: import_effect.Schema.Literal("threads.message.delete"),
156
+ properties: import_effect.Schema.Struct({
157
+ spaceId: import_effect.Schema.String,
158
+ threadId: import_effect.Schema.String,
159
+ messageId: import_effect.Schema.String
160
+ })
161
+ }), import_effect.Schema.Struct({
162
+ name: import_effect.Schema.Literal("threads.message.undo-delete"),
163
+ properties: import_effect.Schema.Struct({
164
+ spaceId: import_effect.Schema.String,
165
+ threadId: import_effect.Schema.String,
166
+ messageId: import_effect.Schema.String
167
+ })
168
+ }), import_effect.Schema.Struct({
169
+ name: import_effect.Schema.Literal("threads.message.update"),
170
+ properties: import_effect.Schema.Struct({
171
+ spaceId: import_effect.Schema.String,
172
+ messageId: import_effect.Schema.String,
173
+ messageLength: import_effect.Schema.Number
174
+ })
175
+ }), import_effect.Schema.Struct({
176
+ name: import_effect.Schema.Literal("threads.toggle-resolved"),
177
+ properties: import_effect.Schema.Struct({
178
+ spaceId: import_effect.Schema.String,
179
+ threadId: import_effect.Schema.String
180
+ })
181
+ }), import_effect.Schema.Struct({
182
+ name: import_effect.Schema.Literal("threads.undo-delete"),
183
+ properties: import_effect.Schema.Struct({
184
+ spaceId: import_effect.Schema.String,
185
+ threadId: import_effect.Schema.String
186
+ })
187
+ })),
188
+ output: import_effect.Schema.Void
189
+ }) {
190
+ }
191
+ ObservabilityAction2.SendEvent = SendEvent;
192
+ })(ObservabilityAction || (ObservabilityAction = {}));
193
+ // Annotate the CommonJS export names for ESM import in node:
194
+ 0 && (module.exports = {
195
+ ObservabilityAction,
196
+ UserFeedback
197
+ });
198
+ //# sourceMappingURL=chunk-A7DUZZ5V.cjs.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../src/types.ts"],
4
+ "sourcesContent": ["//\n// Copyright 2024 DXOS.org\n//\n\nimport { Schema } from 'effect';\n\nimport { OBSERVABILITY_PLUGIN } from './meta';\n\nconst nonEmpty = <S extends Schema.Schema.Any>(field: string) =>\n Schema.nonEmptyString<S>({ message: () => `Missing field: ${field}` });\n\nconst maxLength = <S extends Schema.Schema.Any>(field: string, length: number) =>\n Schema.maxLength<S>(length, { message: () => `Exceeds max length (${length}): ${field}` });\n\nexport const UserFeedback = Schema.Struct({\n message: Schema.String.pipe(nonEmpty('Feedback'), maxLength('Feedback', 32_768)),\n});\n\nexport type UserFeedback = Schema.Schema.Type<typeof UserFeedback>;\n\nconst OBSERVABILITY_ACTION = `${OBSERVABILITY_PLUGIN}/action`;\n\nexport namespace ObservabilityAction {\n export class Toggle extends Schema.TaggedClass<Toggle>()(`${OBSERVABILITY_ACTION}/toggle`, {\n input: Schema.Struct({\n state: Schema.optional(Schema.Boolean),\n }),\n output: Schema.Boolean,\n }) {}\n\n export class CaptureUserFeedback extends Schema.TaggedClass<CaptureUserFeedback>()(\n `${OBSERVABILITY_ACTION}/capture-feedback`,\n {\n input: UserFeedback,\n output: Schema.Void,\n },\n ) {}\n\n /** Base intent for sending events. */\n export class BaseSendEvent extends Schema.TaggedClass<BaseSendEvent>()(`${OBSERVABILITY_ACTION}/send-event`, {\n input: Schema.Struct({\n name: Schema.String,\n properties: Schema.optional(Schema.Object),\n }),\n output: Schema.Void,\n }) {}\n\n /** Intent with strict types for first-party events. */\n export class SendEvent extends Schema.TaggedClass<SendEvent>()(`${OBSERVABILITY_ACTION}/send-event`, {\n // NOTE: Sort alphabetically by name.\n input: Schema.Union(\n Schema.Struct({\n name: Schema.Literal('identity.create'),\n }),\n Schema.Struct({\n name: Schema.Literal('identity.join'),\n }),\n Schema.Struct({\n name: Schema.Literal('identity.recover'),\n }),\n Schema.Struct({\n name: Schema.Literal('identity.share'),\n }),\n Schema.Struct({\n name: Schema.Literal('navigation.activate'),\n properties: Schema.Struct({\n subjectId: Schema.String,\n typename: Schema.optional(Schema.String),\n }),\n }),\n Schema.Struct({\n name: Schema.Literal('page.load'),\n properties: Schema.Struct({\n loadDuration: Schema.Number,\n }),\n }),\n Schema.Struct({\n name: Schema.Literal('plugins.toggle'),\n properties: Schema.Struct({\n plugin: Schema.String,\n enabled: Schema.Boolean,\n }),\n }),\n Schema.Struct({\n name: Schema.Literal('space.create'),\n properties: Schema.Struct({\n spaceId: Schema.String,\n }),\n }),\n Schema.Struct({\n name: Schema.Literal('space.join'),\n properties: Schema.Struct({\n spaceId: Schema.String,\n }),\n }),\n Schema.Struct({\n name: Schema.Literal('space.limit'),\n properties: Schema.Struct({\n spaceId: Schema.String,\n }),\n }),\n Schema.Struct({\n name: Schema.Literal('space.lock'),\n properties: Schema.Struct({\n spaceId: Schema.String,\n }),\n }),\n Schema.Struct({\n name: Schema.Literal('space.migrate'),\n properties: Schema.Struct({\n spaceId: Schema.String,\n targetVersion: Schema.optional(Schema.String),\n version: Schema.optional(Schema.String),\n }),\n }),\n Schema.Struct({\n name: Schema.Literal('space.object.add'),\n properties: Schema.Struct({\n spaceId: Schema.String,\n objectId: Schema.String,\n typename: Schema.optional(Schema.String),\n }),\n }),\n Schema.Struct({\n name: Schema.Literal('space.share'),\n properties: Schema.Struct({\n spaceId: Schema.String,\n }),\n }),\n Schema.Struct({\n name: Schema.Literal('space.unlock'),\n properties: Schema.Struct({\n spaceId: Schema.String,\n }),\n }),\n Schema.Struct({\n name: Schema.Literal('threads.create'),\n properties: Schema.Struct({\n spaceId: Schema.String,\n threadId: Schema.String,\n }),\n }),\n Schema.Struct({\n name: Schema.Literal('threads.delete'),\n properties: Schema.Struct({\n spaceId: Schema.String,\n threadId: Schema.String,\n }),\n }),\n Schema.Struct({\n name: Schema.Literal('threads.message.add'),\n properties: Schema.Struct({\n spaceId: Schema.String,\n threadId: Schema.String,\n threadLength: Schema.Number,\n messageId: Schema.String,\n messageLength: Schema.Number,\n }),\n }),\n Schema.Struct({\n name: Schema.Literal('threads.message.delete'),\n properties: Schema.Struct({\n spaceId: Schema.String,\n threadId: Schema.String,\n messageId: Schema.String,\n }),\n }),\n Schema.Struct({\n name: Schema.Literal('threads.message.undo-delete'),\n properties: Schema.Struct({\n spaceId: Schema.String,\n threadId: Schema.String,\n messageId: Schema.String,\n }),\n }),\n Schema.Struct({\n name: Schema.Literal('threads.message.update'),\n properties: Schema.Struct({\n spaceId: Schema.String,\n messageId: Schema.String,\n messageLength: Schema.Number,\n }),\n }),\n Schema.Struct({\n name: Schema.Literal('threads.toggle-resolved'),\n properties: Schema.Struct({\n spaceId: Schema.String,\n threadId: Schema.String,\n }),\n }),\n Schema.Struct({\n name: Schema.Literal('threads.undo-delete'),\n properties: Schema.Struct({\n spaceId: Schema.String,\n threadId: Schema.String,\n }),\n }),\n ),\n output: Schema.Void,\n }) {}\n}\n"],
5
+ "mappings": "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",
6
+ "names": ["nonEmpty", "field", "Schema", "nonEmptyString", "message", "maxLength", "length", "UserFeedback", "Struct", "String", "pipe", "OBSERVABILITY_ACTION", "OBSERVABILITY_PLUGIN", "ObservabilityAction", "Toggle", "TaggedClass", "input", "state", "optional", "Boolean", "output", "CaptureUserFeedback", "Void", "BaseSendEvent", "name", "properties", "Object", "SendEvent", "Union", "Literal", "subjectId", "typename", "loadDuration", "Number", "plugin", "enabled", "spaceId", "targetVersion", "version", "objectId", "threadId", "threadLength", "messageId", "messageLength"]
7
+ }
@@ -26,25 +26,26 @@ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__ge
26
26
  mod
27
27
  ));
28
28
  var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
29
- var chunk_FIL4BZE2_exports = {};
30
- __export(chunk_FIL4BZE2_exports, {
29
+ var chunk_UCKA5GBZ_exports = {};
30
+ __export(chunk_UCKA5GBZ_exports, {
31
31
  FeedbackForm: () => FeedbackForm,
32
32
  HelpContainer: () => HelpContainer,
33
33
  ObservabilitySettings: () => ObservabilitySettings,
34
34
  ObservabilitySettingsSchema: () => ObservabilitySettingsSchema
35
35
  });
36
- module.exports = __toCommonJS(chunk_FIL4BZE2_exports);
37
- var import_chunk_V4ZLLL5M = require("./chunk-V4ZLLL5M.cjs");
36
+ module.exports = __toCommonJS(chunk_UCKA5GBZ_exports);
37
+ var import_chunk_A7DUZZ5V = require("./chunk-A7DUZZ5V.cjs");
38
38
  var import_chunk_2ERIOZP3 = require("./chunk-2ERIOZP3.cjs");
39
39
  var import_react = __toESM(require("react"));
40
40
  var import_echo_schema = require("@dxos/echo-schema");
41
41
  var import_react_ui = require("@dxos/react-ui");
42
42
  var import_react_ui_form = require("@dxos/react-ui-form");
43
+ var import_effect = require("effect");
43
44
  var import_react2 = __toESM(require("react"));
44
45
  var import_app_framework = require("@dxos/app-framework");
46
+ var import_effect2 = require("effect");
45
47
  var import_react3 = __toESM(require("react"));
46
48
  var import_app_framework2 = require("@dxos/app-framework");
47
- var import_echo_schema2 = require("@dxos/echo-schema");
48
49
  var import_react_ui2 = require("@dxos/react-ui");
49
50
  var import_react_ui_form2 = require("@dxos/react-ui-form");
50
51
  var defaultValues = {
@@ -102,7 +103,7 @@ var FeedbackForm = ({ onSave }) => {
102
103
  const initialValues = (0, import_echo_schema.getSnapshot)(defaultValues);
103
104
  return /* @__PURE__ */ import_react.default.createElement(import_react_ui_form.FormProvider, {
104
105
  formRef,
105
- schema: import_chunk_V4ZLLL5M.UserFeedback,
106
+ schema: import_chunk_A7DUZZ5V.UserFeedback,
106
107
  initialValues,
107
108
  onSave: handleSave
108
109
  }, /* @__PURE__ */ import_react.default.createElement("div", {
@@ -111,17 +112,45 @@ var FeedbackForm = ({ onSave }) => {
111
112
  };
112
113
  var HelpContainer = () => {
113
114
  const { dispatchPromise: dispatch } = (0, import_app_framework.useIntentDispatcher)();
114
- const handleSave = (0, import_react2.useCallback)((values) => {
115
- void dispatch((0, import_app_framework.createIntent)(import_chunk_V4ZLLL5M.ObservabilityAction.CaptureUserFeedback, values));
116
- }, [
115
+ const handleSave = (0, import_react2.useCallback)((values) => dispatch((0, import_effect.pipe)((0, import_app_framework.createIntent)(import_chunk_A7DUZZ5V.ObservabilityAction.CaptureUserFeedback, values), (0, import_app_framework.chain)(import_app_framework.LayoutAction.UpdateComplementary, {
116
+ part: "complementary",
117
+ options: {
118
+ state: "collapsed"
119
+ }
120
+ }), (0, import_app_framework.chain)(import_app_framework.LayoutAction.AddToast, {
121
+ part: "toast",
122
+ subject: {
123
+ id: `${import_chunk_2ERIOZP3.OBSERVABILITY_PLUGIN}/feedback-success`,
124
+ icon: "ph--paper-plane-tilt--regular",
125
+ duration: 3e3,
126
+ title: [
127
+ "feedback toast label",
128
+ {
129
+ ns: import_chunk_2ERIOZP3.OBSERVABILITY_PLUGIN
130
+ }
131
+ ],
132
+ description: [
133
+ "feedback toast description",
134
+ {
135
+ ns: import_chunk_2ERIOZP3.OBSERVABILITY_PLUGIN
136
+ }
137
+ ],
138
+ closeLabel: [
139
+ "close label",
140
+ {
141
+ ns: "os"
142
+ }
143
+ ]
144
+ }
145
+ }))), [
117
146
  dispatch
118
147
  ]);
119
148
  return /* @__PURE__ */ import_react2.default.createElement(FeedbackForm, {
120
149
  onSave: handleSave
121
150
  });
122
151
  };
123
- var ObservabilitySettingsSchema = import_echo_schema2.S.mutable(import_echo_schema2.S.Struct({
124
- enabled: import_echo_schema2.S.Boolean
152
+ var ObservabilitySettingsSchema = import_effect2.Schema.mutable(import_effect2.Schema.Struct({
153
+ enabled: import_effect2.Schema.Boolean
125
154
  }));
126
155
  var ObservabilitySettings = ({ settings }) => {
127
156
  const { t } = (0, import_react_ui2.useTranslation)(import_chunk_2ERIOZP3.OBSERVABILITY_PLUGIN);
@@ -133,7 +162,7 @@ var ObservabilitySettings = ({ settings }) => {
133
162
  }, /* @__PURE__ */ import_react3.default.createElement(import_react_ui2.Message.Body, null, t("observability description")))
134
163
  }, /* @__PURE__ */ import_react3.default.createElement(import_react_ui2.Input.Switch, {
135
164
  checked: settings.enabled,
136
- onCheckedChange: (checked) => dispatch((0, import_app_framework2.createIntent)(import_chunk_V4ZLLL5M.ObservabilityAction.Toggle, {
165
+ onCheckedChange: (checked) => dispatch((0, import_app_framework2.createIntent)(import_chunk_A7DUZZ5V.ObservabilityAction.Toggle, {
137
166
  state: !!checked
138
167
  }))
139
168
  })));
@@ -145,4 +174,4 @@ var ObservabilitySettings = ({ settings }) => {
145
174
  ObservabilitySettings,
146
175
  ObservabilitySettingsSchema
147
176
  });
148
- //# sourceMappingURL=chunk-FIL4BZE2.cjs.map
177
+ //# sourceMappingURL=chunk-UCKA5GBZ.cjs.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 { pipe } from 'effect';\nimport React, { useCallback } from 'react';\n\nimport { chain, createIntent, LayoutAction, useIntentDispatcher } from '@dxos/app-framework';\n\nimport { FeedbackForm } from './FeedbackForm';\nimport { OBSERVABILITY_PLUGIN } from '../meta';\nimport { ObservabilityAction, type UserFeedback } from '../types';\n\nexport const HelpContainer = () => {\n const { dispatchPromise: dispatch } = useIntentDispatcher();\n\n const handleSave = useCallback(\n (values: UserFeedback) =>\n dispatch(\n pipe(\n createIntent(ObservabilityAction.CaptureUserFeedback, values),\n chain(LayoutAction.UpdateComplementary, { part: 'complementary', options: { state: 'collapsed' } }),\n chain(LayoutAction.AddToast, {\n part: 'toast',\n subject: {\n id: `${OBSERVABILITY_PLUGIN}/feedback-success`,\n icon: 'ph--paper-plane-tilt--regular',\n duration: 3000,\n title: ['feedback toast label', { ns: OBSERVABILITY_PLUGIN }],\n description: ['feedback toast description', { ns: OBSERVABILITY_PLUGIN }],\n closeLabel: ['close label', { ns: 'os' }],\n },\n }),\n ),\n ),\n [dispatch],\n );\n\n return <FeedbackForm onSave={handleSave} />;\n};\n", "//\n// Copyright 2023 DXOS.org\n//\n\nimport { Schema } from 'effect';\nimport React from 'react';\n\nimport { createIntent, useIntentDispatcher } from '@dxos/app-framework';\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 = Schema.mutable(\n Schema.Struct({\n enabled: Schema.Boolean,\n // TODO(wittjosiah): Separate settings for each observability feature.\n // metrics?: boolean;\n // telemetry?: boolean;\n // errors?: boolean;\n }),\n);\n\nexport type ObservabilitySettingsProps = Schema.Schema.Type<typeof ObservabilitySettingsSchema>;\n\nexport const ObservabilitySettings = ({ settings }: { settings: ObservabilitySettingsProps }) => {\n const { t } = useTranslation(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": "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",
6
+ "names": ["import_react", "import_effect", "import_app_framework", "import_react_ui", "import_react_ui_form", "defaultValues", "message", "FormContent", "t", "useTranslation", "OBSERVABILITY_PLUGIN", "handleSave", "canSave", "useFormContext", "messageProps", "useInputProps", "React", "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", "HelpContainer", "dispatchPromise", "dispatch", "useIntentDispatcher", "pipe", "createIntent", "ObservabilityAction", "CaptureUserFeedback", "chain", "LayoutAction", "UpdateComplementary", "part", "options", "state", "AddToast", "subject", "id", "duration", "title", "ns", "description", "closeLabel", "ObservabilitySettingsSchema", "Schema", "mutable", "Struct", "enabled", "Boolean", "ObservabilitySettings", "settings", "DeprecatedFormContainer", "DeprecatedFormInput", "secondary", "Message", "valence", "Body", "Switch", "checked", "onCheckedChange", "Toggle"]
7
+ }
@@ -16,12 +16,12 @@ var __copyProps = (to, from, except, desc) => {
16
16
  return to;
17
17
  };
18
18
  var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
19
- var client_ready_KHGLQOQZ_exports = {};
20
- __export(client_ready_KHGLQOQZ_exports, {
19
+ var client_ready_ENPTPI2O_exports = {};
20
+ __export(client_ready_ENPTPI2O_exports, {
21
21
  default: () => client_ready_default
22
22
  });
23
- module.exports = __toCommonJS(client_ready_KHGLQOQZ_exports);
24
- var import_chunk_V4ZLLL5M = require("./chunk-V4ZLLL5M.cjs");
23
+ module.exports = __toCommonJS(client_ready_ENPTPI2O_exports);
24
+ var import_chunk_A7DUZZ5V = require("./chunk-A7DUZZ5V.cjs");
25
25
  var import_chunk_WJQ2MG7S = require("./chunk-WJQ2MG7S.cjs");
26
26
  var import_chunk_2ERIOZP3 = require("./chunk-2ERIOZP3.cjs");
27
27
  var import_app_framework = require("@dxos/app-framework");
@@ -80,7 +80,7 @@ var client_ready_default = async ({ context, namespace, observability }) => {
80
80
  }
81
81
  };
82
82
  manager.enabled.map((plugin) => observability?.setTag(`pluginEnabled-${plugin}`, "true", "errors"));
83
- await dispatch((0, import_app_framework.createIntent)(import_chunk_V4ZLLL5M.ObservabilityAction.SendEvent, {
83
+ await dispatch((0, import_app_framework.createIntent)(import_chunk_A7DUZZ5V.ObservabilityAction.SendEvent, {
84
84
  name: "page.load",
85
85
  properties: {
86
86
  // TODO(wittjosiah): These apis are deprecated. Is there a better way to find this information?
@@ -110,4 +110,4 @@ var client_ready_default = async ({ context, namespace, observability }) => {
110
110
  await observability.close();
111
111
  });
112
112
  };
113
- //# sourceMappingURL=client-ready-KHGLQOQZ.cjs.map
113
+ //# sourceMappingURL=client-ready-ENPTPI2O.cjs.map
@@ -28,29 +28,29 @@ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__ge
28
28
  var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
29
29
  var node_exports = {};
30
30
  __export(node_exports, {
31
- FeedbackForm: () => import_chunk_FIL4BZE2.FeedbackForm,
32
- HelpContainer: () => import_chunk_FIL4BZE2.HelpContainer,
31
+ FeedbackForm: () => import_chunk_UCKA5GBZ.FeedbackForm,
32
+ HelpContainer: () => import_chunk_UCKA5GBZ.HelpContainer,
33
33
  OBSERVABILITY_PLUGIN: () => import_chunk_2ERIOZP3.OBSERVABILITY_PLUGIN,
34
34
  ObservabilityCapabilities: () => import_chunk_WJQ2MG7S.ObservabilityCapabilities,
35
35
  ObservabilityEvents: () => ObservabilityEvents,
36
36
  ObservabilityPlugin: () => ObservabilityPlugin,
37
- ObservabilitySettings: () => import_chunk_FIL4BZE2.ObservabilitySettings,
38
- ObservabilitySettingsSchema: () => import_chunk_FIL4BZE2.ObservabilitySettingsSchema,
37
+ ObservabilitySettings: () => import_chunk_UCKA5GBZ.ObservabilitySettings,
38
+ ObservabilitySettingsSchema: () => import_chunk_UCKA5GBZ.ObservabilitySettingsSchema,
39
39
  meta: () => import_chunk_2ERIOZP3.meta
40
40
  });
41
41
  module.exports = __toCommonJS(node_exports);
42
- var import_chunk_FIL4BZE2 = require("./chunk-FIL4BZE2.cjs");
43
- var import_chunk_V4ZLLL5M = require("./chunk-V4ZLLL5M.cjs");
42
+ var import_chunk_UCKA5GBZ = require("./chunk-UCKA5GBZ.cjs");
43
+ var import_chunk_A7DUZZ5V = require("./chunk-A7DUZZ5V.cjs");
44
44
  var import_chunk_WJQ2MG7S = require("./chunk-WJQ2MG7S.cjs");
45
45
  var import_chunk_2ERIOZP3 = require("./chunk-2ERIOZP3.cjs");
46
46
  var import_app_framework = require("@dxos/app-framework");
47
47
  var import_app_framework2 = require("@dxos/app-framework");
48
48
  var import_app_framework3 = require("@dxos/app-framework");
49
49
  var AppGraphBuilder = (0, import_app_framework.lazy)(() => import("./app-graph-builder-JPUTX4LQ.cjs"));
50
- var ClientReady = (0, import_app_framework.lazy)(() => import("./client-ready-KHGLQOQZ.cjs"));
51
- var IntentResolver = (0, import_app_framework.lazy)(() => import("./intent-resolver-5SANBSGX.cjs"));
52
- var ReactSurface = (0, import_app_framework.lazy)(() => import("./react-surface-MWJS6OMP.cjs"));
53
- var ObservabilitySettings2 = (0, import_app_framework.lazy)(() => import("./settings-ARLOGCYU.cjs"));
50
+ var ClientReady = (0, import_app_framework.lazy)(() => import("./client-ready-ENPTPI2O.cjs"));
51
+ var IntentResolver = (0, import_app_framework.lazy)(() => import("./intent-resolver-KHM3CT62.cjs"));
52
+ var ReactSurface = (0, import_app_framework.lazy)(() => import("./react-surface-D7JFIB3X.cjs"));
53
+ var ObservabilitySettings2 = (0, import_app_framework.lazy)(() => import("./settings-QPCXX5RG.cjs"));
54
54
  var ObservabilityState = (0, import_app_framework.lazy)(() => import("./state-5GZLUTX7.cjs"));
55
55
  var ObservabilityEvents;
56
56
  (function(ObservabilityEvents2) {
@@ -72,8 +72,10 @@ var translations_default = [
72
72
  "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.",
73
73
  "help label": "Feedback & Support",
74
74
  "feedback text area label": "Feedback",
75
- "feedback text area placeholder": "Please describe your issue or suggestion.",
76
- "send feedback label": "Send Feedback"
75
+ "feedback text area placeholder": "Please enter your feedback, technical issue, or feature request.",
76
+ "send feedback label": "Send Feedback",
77
+ "feedback toast label": "Thank you for your feedback!",
78
+ "feedback toast description": "We will review your feedback and get back to you as soon as possible."
77
79
  }
78
80
  }
79
81
  }
@@ -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 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,2BAAqB;ACArB,IAAAA,wBAAoC;ACApC,IAAAA,wBAAqF;AFE9E,IAAMC,sBAAkBC,2BAAK,MAAM,OAAO,kCAAA,CAAA;AAC1C,IAAMC,kBAAcD,2BAAK,MAAM,OAAO,6BAAA,CAAA;AACtC,IAAME,qBAAiBF,2BAAK,MAAM,OAAO,gCAAA,CAAA;AACzC,IAAMG,mBAAeH,2BAAK,MAAM,OAAO,8BAAA,CAAA;AACvC,IAAMI,6BAAwBJ,2BAAK,MAAM,OAAO,yBAAA,CAAA;AAChD,IAAMK,yBAAqBL,2BAAK,MAAM,OAAO,sBAAA,CAAA;;UCHnCM,sBAAAA;uBACFC,aAAaC,6BAAOC,iBAAiBC,0CAAAA;AACpD,GAFiBJ,wBAAAA,sBAAAA,CAAAA,EAAAA;AAKV,IAAMK,uBAAmBC,mCAAY,2CAAA;AEP5C,IAAA,uBAAe;EACb;IACE,SAAS;MACP,CAACF,0CAAAA,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,IAAMG,sBAAsB,CAACC,gBAClCC,oCAAaC,4BAAM;MACjBC,oCAAa;IACXC,IAAI,GAAGF,2BAAKE,EAAE;IACdC,aAAaX,sBAAAA,OAAOY;IACpBC,UAAU,gBAAYC,mCAAYC,gDAA0BC,eAAe,MAAMV,QAAQW,cAAa,CAAA;EACxG,CAAA;MACAR,oCAAa;IACXC,IAAI,GAAGF,2BAAKE,EAAE;IACdC,aAAaX,sBAAAA,OAAOkB;IACpBL,UAAUjB;EACZ,CAAA;MACAa,oCAAa;IACXC,IAAI,GAAGF,2BAAKE,EAAE;IACdC,aAAaX,sBAAAA,OAAOY;IACpBO,gBAAgB;MAACrB,oBAAoBC;;IACrCc,UAAU,MAAMhB,mBAAmB;MAAEuB,WAAWd,QAAQc;IAAU,CAAA;EACpE,CAAA;MACAX,oCAAa;IACXC,IAAI,GAAGF,2BAAKE,EAAE;IACdC,aAAaX,sBAAAA,OAAOqB;IACpBR,UAAU,UAAMC,mCAAYQ,mCAAaC,cAAcC,oBAAAA;EACzD,CAAA;MACAf,oCAAa;IACXC,IAAI,GAAGF,2BAAKE,EAAE;IACdC,aAAaX,sBAAAA,OAAOyB;IACpBZ,UAAU,CAACa,YAAYhC,eAAe;MAAEgC;MAASN,WAAWd,QAAQc;IAAU,CAAA;EAChF,CAAA;MACAX,oCAAa;IACXC,IAAI,GAAGF,2BAAKE,EAAE;IACdC,aAAaX,sBAAAA,OAAO2B;IACpBd,UAAUlB;EACZ,CAAA;MACAc,oCAAa;IACXC,IAAI,GAAGF,2BAAKE,EAAE;IACdC,aAAaX,sBAAAA,OAAO4B;IACpBf,UAAUtB;EACZ,CAAA;MACAkB,oCAAa;IACXC,IAAI,GAAGF,2BAAKE,EAAE;IACdC,iBAAakB,6BAAM7B,sBAAAA,OAAO8B,iBAAiBhC,oBAAoBC,YAAYI,gBAAAA;IAC3EU,UAAU,OAAOa,YAAAA;AACf,YAAMT,gBAAgB,MAAMX,QAAQW,cAAa;AACjD,aAAOxB,YAAY;QAAEiC;QAAST;QAAeG,WAAWd,QAAQc;MAAU,CAAA;IAC5E;EACF,CAAA;CACD;",
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 enter your feedback, technical issue, or feature request.',\n 'send feedback label': 'Send Feedback',\n 'feedback toast label': 'Thank you for your feedback!',\n 'feedback toast description': 'We will review your feedback and get back to you as soon as possible.',\n },\n },\n },\n];\n"],
5
+ "mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAIA,2BAAqB;ACArB,IAAAA,wBAAoC;ACApC,IAAAA,wBAAqF;AFE9E,IAAMC,sBAAkBC,2BAAK,MAAM,OAAO,kCAAA,CAAA;AAC1C,IAAMC,kBAAcD,2BAAK,MAAM,OAAO,6BAAA,CAAA;AACtC,IAAME,qBAAiBF,2BAAK,MAAM,OAAO,gCAAA,CAAA;AACzC,IAAMG,mBAAeH,2BAAK,MAAM,OAAO,8BAAA,CAAA;AACvC,IAAMI,6BAAwBJ,2BAAK,MAAM,OAAO,yBAAA,CAAA;AAChD,IAAMK,yBAAqBL,2BAAK,MAAM,OAAO,sBAAA,CAAA;;UCHnCM,sBAAAA;uBACFC,aAAaC,6BAAOC,iBAAiBC,0CAAAA;AACpD,GAFiBJ,wBAAAA,sBAAAA,CAAAA,EAAAA;AAKV,IAAMK,uBAAmBC,mCAAY,2CAAA;AEP5C,IAAA,uBAAe;EACb;IACE,SAAS;MACP,CAACF,0CAAAA,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;QACvB,wBAAwB;QACxB,8BAA8B;MAChC;IACF;EACF;;ADVK,IAAMG,sBAAsB,CAACC,gBAClCC,oCAAaC,4BAAM;MACjBC,oCAAa;IACXC,IAAI,GAAGF,2BAAKE,EAAE;IACdC,aAAaX,sBAAAA,OAAOY;IACpBC,UAAU,gBAAYC,mCAAYC,gDAA0BC,eAAe,MAAMV,QAAQW,cAAa,CAAA;EACxG,CAAA;MACAR,oCAAa;IACXC,IAAI,GAAGF,2BAAKE,EAAE;IACdC,aAAaX,sBAAAA,OAAOkB;IACpBL,UAAUjB;EACZ,CAAA;MACAa,oCAAa;IACXC,IAAI,GAAGF,2BAAKE,EAAE;IACdC,aAAaX,sBAAAA,OAAOY;IACpBO,gBAAgB;MAACrB,oBAAoBC;;IACrCc,UAAU,MAAMhB,mBAAmB;MAAEuB,WAAWd,QAAQc;IAAU,CAAA;EACpE,CAAA;MACAX,oCAAa;IACXC,IAAI,GAAGF,2BAAKE,EAAE;IACdC,aAAaX,sBAAAA,OAAOqB;IACpBR,UAAU,UAAMC,mCAAYQ,mCAAaC,cAAcC,oBAAAA;EACzD,CAAA;MACAf,oCAAa;IACXC,IAAI,GAAGF,2BAAKE,EAAE;IACdC,aAAaX,sBAAAA,OAAOyB;IACpBZ,UAAU,CAACa,YAAYhC,eAAe;MAAEgC;MAASN,WAAWd,QAAQc;IAAU,CAAA;EAChF,CAAA;MACAX,oCAAa;IACXC,IAAI,GAAGF,2BAAKE,EAAE;IACdC,aAAaX,sBAAAA,OAAO2B;IACpBd,UAAUlB;EACZ,CAAA;MACAc,oCAAa;IACXC,IAAI,GAAGF,2BAAKE,EAAE;IACdC,aAAaX,sBAAAA,OAAO4B;IACpBf,UAAUtB;EACZ,CAAA;MACAkB,oCAAa;IACXC,IAAI,GAAGF,2BAAKE,EAAE;IACdC,iBAAakB,6BAAM7B,sBAAAA,OAAO8B,iBAAiBhC,oBAAoBC,YAAYI,gBAAAA;IAC3EU,UAAU,OAAOa,YAAAA;AACf,YAAMT,gBAAgB,MAAMX,QAAQW,cAAa;AACjD,aAAOxB,YAAY;QAAEiC;QAAST;QAAeG,WAAWd,QAAQc;MAAU,CAAA;IAC5E;EACF,CAAA;CACD;",
6
6
  "names": ["import_app_framework", "AppGraphBuilder", "lazy", "ClientReady", "IntentResolver", "ReactSurface", "ObservabilitySettings", "ObservabilityState", "ObservabilityEvents", "StateReady", "Events", "createStateEvent", "OBSERVABILITY_PLUGIN", "ClientReadyEvent", "defineEvent", "ObservabilityPlugin", "options", "definePlugin", "meta", "defineModule", "id", "activatesOn", "Startup", "activate", "contributes", "ObservabilityCapabilities", "Observability", "observability", "SetupSettings", "activatesAfter", "namespace", "SetupTranslations", "Capabilities", "Translations", "translations", "SetupIntentResolver", "context", "SetupReactSurface", "SetupAppGraph", "allOf", "DispatcherReady"]
7
7
  }
@@ -16,12 +16,12 @@ var __copyProps = (to, from, except, desc) => {
16
16
  return to;
17
17
  };
18
18
  var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
19
- var intent_resolver_5SANBSGX_exports = {};
20
- __export(intent_resolver_5SANBSGX_exports, {
19
+ var intent_resolver_KHM3CT62_exports = {};
20
+ __export(intent_resolver_KHM3CT62_exports, {
21
21
  default: () => intent_resolver_default
22
22
  });
23
- module.exports = __toCommonJS(intent_resolver_5SANBSGX_exports);
24
- var import_chunk_V4ZLLL5M = require("./chunk-V4ZLLL5M.cjs");
23
+ module.exports = __toCommonJS(intent_resolver_KHM3CT62_exports);
24
+ var import_chunk_A7DUZZ5V = require("./chunk-A7DUZZ5V.cjs");
25
25
  var import_chunk_WJQ2MG7S = require("./chunk-WJQ2MG7S.cjs");
26
26
  var import_chunk_2ERIOZP3 = require("./chunk-2ERIOZP3.cjs");
27
27
  var import_app_framework = require("@dxos/app-framework");
@@ -43,7 +43,7 @@ var intent_resolver_default = ({ context, namespace }) => (0, import_app_framewo
43
43
  }
44
44
  }),
45
45
  (0, import_app_framework.createResolver)({
46
- intent: import_chunk_V4ZLLL5M.ObservabilityAction.Toggle,
46
+ intent: import_chunk_A7DUZZ5V.ObservabilityAction.Toggle,
47
47
  resolve: async ({ state }) => {
48
48
  const client = context.requestCapability(import_chunk_WJQ2MG7S.ClientCapability);
49
49
  const observability = context.requestCapability(import_chunk_WJQ2MG7S.ObservabilityCapabilities.Observability);
@@ -64,7 +64,7 @@ var intent_resolver_default = ({ context, namespace }) => (0, import_app_framewo
64
64
  }
65
65
  }),
66
66
  (0, import_app_framework.createResolver)({
67
- intent: import_chunk_V4ZLLL5M.ObservabilityAction.SendEvent,
67
+ intent: import_chunk_A7DUZZ5V.ObservabilityAction.SendEvent,
68
68
  resolve: (data) => {
69
69
  const client = context.requestCapability(import_chunk_WJQ2MG7S.ClientCapability);
70
70
  const properties = "properties" in data ? data.properties : {};
@@ -78,11 +78,11 @@ var intent_resolver_default = ({ context, namespace }) => (0, import_app_framewo
78
78
  }
79
79
  }),
80
80
  (0, import_app_framework.createResolver)({
81
- intent: import_chunk_V4ZLLL5M.ObservabilityAction.CaptureUserFeedback,
81
+ intent: import_chunk_A7DUZZ5V.ObservabilityAction.CaptureUserFeedback,
82
82
  resolve: async (data) => {
83
83
  const observability = context.requestCapability(import_chunk_WJQ2MG7S.ObservabilityCapabilities.Observability);
84
84
  observability.captureUserFeedback(data.message);
85
85
  }
86
86
  })
87
87
  ]);
88
- //# sourceMappingURL=intent-resolver-5SANBSGX.cjs.map
88
+ //# sourceMappingURL=intent-resolver-KHM3CT62.cjs.map