@dxos/plugin-observability 0.8.2-main.fbd8ed0 → 0.8.2-staging.7ac8446

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 (107) 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-LIQQMROG.mjs → chunk-6Q6ZJ3N4.mjs} +9 -38
  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-SPQ37TSN.mjs → client-ready-LRY24QM5.mjs} +6 -6
  8. package/dist/lib/browser/client-ready-LRY24QM5.mjs.map +7 -0
  9. package/dist/lib/browser/index.mjs +9 -11
  10. package/dist/lib/browser/index.mjs.map +2 -2
  11. package/dist/lib/browser/{intent-resolver-WIABW2ED.mjs → intent-resolver-ZKNJCLDV.mjs} +7 -7
  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-KCDNYTFB.mjs → react-surface-S36FDV7I.mjs} +3 -3
  15. package/dist/lib/browser/{settings-GNURBGMS.mjs → settings-JFZJTDH7.mjs} +5 -5
  16. package/dist/lib/browser/settings-JFZJTDH7.mjs.map +7 -0
  17. package/dist/lib/browser/types.mjs +1 -1
  18. package/dist/lib/node/{app-graph-builder-EXZP366Q.cjs → app-graph-builder-JPUTX4LQ.cjs} +25 -28
  19. package/dist/lib/node/app-graph-builder-JPUTX4LQ.cjs.map +7 -0
  20. package/dist/lib/node/{chunk-53PICBRX.cjs → chunk-FIL4BZE2.cjs} +13 -42
  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-ZWYA3DIS.cjs → client-ready-KHGLQOQZ.cjs} +10 -10
  25. package/dist/lib/node/client-ready-KHGLQOQZ.cjs.map +7 -0
  26. package/dist/lib/node/index.cjs +13 -15
  27. package/dist/lib/node/index.cjs.map +2 -2
  28. package/dist/lib/node/{intent-resolver-RFEYBIAO.cjs → intent-resolver-5SANBSGX.cjs} +13 -13
  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-OO2LWKVU.cjs → react-surface-MWJS6OMP.cjs} +8 -8
  32. package/dist/lib/node/{settings-4JLLQAVK.cjs → settings-ARLOGCYU.cjs} +8 -8
  33. package/dist/lib/node/settings-ARLOGCYU.cjs.map +7 -0
  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-UBJECDGC.mjs → chunk-MW737PHD.mjs} +9 -38
  41. package/dist/lib/node-esm/chunk-MW737PHD.mjs.map +7 -0
  42. package/dist/lib/node-esm/{client-ready-TPMUYLT3.mjs → client-ready-4BUMAISA.mjs} +6 -6
  43. package/dist/lib/node-esm/client-ready-4BUMAISA.mjs.map +7 -0
  44. package/dist/lib/node-esm/index.mjs +9 -11
  45. package/dist/lib/node-esm/index.mjs.map +2 -2
  46. package/dist/lib/node-esm/{intent-resolver-BLGADJN2.mjs → intent-resolver-5EFEXLWX.mjs} +7 -7
  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-7MITMWY2.mjs → react-surface-VLQBOZTX.mjs} +3 -3
  50. package/dist/lib/node-esm/{settings-VK3GEOYK.mjs → settings-765HDSFY.mjs} +5 -5
  51. package/dist/lib/node-esm/settings-765HDSFY.mjs.map +7 -0
  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 +179 -2
  55. package/dist/types/src/capabilities/app-graph-builder.d.ts.map +1 -1
  56. package/dist/types/src/capabilities/client-ready.d.ts +2 -2
  57. package/dist/types/src/capabilities/client-ready.d.ts.map +1 -1
  58. package/dist/types/src/capabilities/index.d.ts +180 -4
  59. package/dist/types/src/capabilities/index.d.ts.map +1 -1
  60. package/dist/types/src/capabilities/intent-resolver.d.ts +2 -2
  61. package/dist/types/src/capabilities/intent-resolver.d.ts.map +1 -1
  62. package/dist/types/src/capabilities/state.d.ts +1 -1
  63. package/dist/types/src/capabilities/state.d.ts.map +1 -1
  64. package/dist/types/src/components/FeedbackForm.d.ts.map +1 -1
  65. package/dist/types/src/components/HelpContainer.d.ts.map +1 -1
  66. package/dist/types/src/components/ObservabilitySettings.d.ts +4 -4
  67. package/dist/types/src/components/ObservabilitySettings.d.ts.map +1 -1
  68. package/dist/types/src/translations.d.ts +0 -2
  69. package/dist/types/src/translations.d.ts.map +1 -1
  70. package/dist/types/src/types.d.ts +145 -241
  71. package/dist/types/src/types.d.ts.map +1 -1
  72. package/dist/types/tsconfig.tsbuildinfo +1 -1
  73. package/package.json +21 -29
  74. package/src/capabilities/app-graph-builder.ts +17 -29
  75. package/src/capabilities/client-ready.ts +6 -6
  76. package/src/capabilities/intent-resolver.ts +7 -7
  77. package/src/capabilities/settings.ts +2 -2
  78. package/src/components/HelpContainer.tsx +4 -21
  79. package/src/components/ObservabilitySettings.tsx +5 -5
  80. package/src/translations.ts +1 -3
  81. package/src/types.ts +126 -128
  82. package/dist/lib/browser/app-graph-builder-3ROXVPV2.mjs +0 -43
  83. package/dist/lib/browser/app-graph-builder-3ROXVPV2.mjs.map +0 -7
  84. package/dist/lib/browser/chunk-LIQQMROG.mjs.map +0 -7
  85. package/dist/lib/browser/chunk-VJOTUVP6.mjs +0 -179
  86. package/dist/lib/browser/chunk-VJOTUVP6.mjs.map +0 -7
  87. package/dist/lib/browser/client-ready-SPQ37TSN.mjs.map +0 -7
  88. package/dist/lib/browser/intent-resolver-WIABW2ED.mjs.map +0 -7
  89. package/dist/lib/browser/settings-GNURBGMS.mjs.map +0 -7
  90. package/dist/lib/node/app-graph-builder-EXZP366Q.cjs.map +0 -7
  91. package/dist/lib/node/chunk-53PICBRX.cjs.map +0 -7
  92. package/dist/lib/node/chunk-BPWXRLLR.cjs +0 -199
  93. package/dist/lib/node/chunk-BPWXRLLR.cjs.map +0 -7
  94. package/dist/lib/node/client-ready-ZWYA3DIS.cjs.map +0 -7
  95. package/dist/lib/node/intent-resolver-RFEYBIAO.cjs.map +0 -7
  96. package/dist/lib/node/settings-4JLLQAVK.cjs.map +0 -7
  97. package/dist/lib/node-esm/app-graph-builder-T7J46NSQ.mjs +0 -44
  98. package/dist/lib/node-esm/app-graph-builder-T7J46NSQ.mjs.map +0 -7
  99. package/dist/lib/node-esm/chunk-QBN3AIYD.mjs +0 -180
  100. package/dist/lib/node-esm/chunk-QBN3AIYD.mjs.map +0 -7
  101. package/dist/lib/node-esm/chunk-UBJECDGC.mjs.map +0 -7
  102. package/dist/lib/node-esm/client-ready-TPMUYLT3.mjs.map +0 -7
  103. package/dist/lib/node-esm/intent-resolver-BLGADJN2.mjs.map +0 -7
  104. package/dist/lib/node-esm/settings-VK3GEOYK.mjs.map +0 -7
  105. /package/dist/lib/browser/{react-surface-KCDNYTFB.mjs.map → react-surface-S36FDV7I.mjs.map} +0 -0
  106. /package/dist/lib/node/{react-surface-OO2LWKVU.cjs.map → react-surface-MWJS6OMP.cjs.map} +0 -0
  107. /package/dist/lib/node-esm/{react-surface-7MITMWY2.mjs.map → react-surface-VLQBOZTX.mjs.map} +0 -0
@@ -1,179 +0,0 @@
1
- import {
2
- OBSERVABILITY_PLUGIN
3
- } from "./chunk-RKH5BBR4.mjs";
4
-
5
- // packages/plugins/plugin-observability/src/types.ts
6
- import { Schema } from "effect";
7
- import { Type } from "@dxos/echo";
8
- var nonEmpty = (field) => Schema.nonEmptyString({
9
- message: () => `Missing field: ${field}`
10
- });
11
- var maxLength = (field, length) => Schema.maxLength(length, {
12
- message: () => `Exceeds max length (${length}): ${field}`
13
- });
14
- var UserFeedback = Schema.Struct({
15
- message: Schema.String.pipe(nonEmpty("Feedback"), maxLength("Feedback", 32768))
16
- });
17
- var OBSERVABILITY_ACTION = `${OBSERVABILITY_PLUGIN}/action`;
18
- var ObservabilityAction;
19
- (function(ObservabilityAction2) {
20
- class Toggle extends Schema.TaggedClass()(`${OBSERVABILITY_ACTION}/toggle`, {
21
- input: Schema.Struct({
22
- state: Schema.optional(Schema.Boolean)
23
- }),
24
- output: Schema.Boolean
25
- }) {
26
- }
27
- ObservabilityAction2.Toggle = Toggle;
28
- class CaptureUserFeedback extends Schema.TaggedClass()(`${OBSERVABILITY_ACTION}/capture-feedback`, {
29
- input: UserFeedback,
30
- output: Schema.Void
31
- }) {
32
- }
33
- ObservabilityAction2.CaptureUserFeedback = CaptureUserFeedback;
34
- class BaseSendEvent extends Schema.TaggedClass()(`${OBSERVABILITY_ACTION}/send-event`, {
35
- input: Schema.Struct({
36
- name: Schema.String,
37
- properties: Schema.optional(Schema.Object)
38
- }),
39
- output: Schema.Void
40
- }) {
41
- }
42
- ObservabilityAction2.BaseSendEvent = BaseSendEvent;
43
- class SendEvent extends Schema.TaggedClass()(`${OBSERVABILITY_ACTION}/send-event`, {
44
- // NOTE: Sort alphabetically by name.
45
- input: Schema.Union(Schema.Struct({
46
- name: Schema.Literal("identity.create")
47
- }), Schema.Struct({
48
- name: Schema.Literal("identity.join")
49
- }), Schema.Struct({
50
- name: Schema.Literal("identity.recover")
51
- }), Schema.Struct({
52
- name: Schema.Literal("identity.share")
53
- }), Schema.Struct({
54
- name: Schema.Literal("navigation.activate"),
55
- properties: Schema.Struct({
56
- subjectId: Schema.String,
57
- typename: Schema.optional(Schema.String)
58
- })
59
- }), Schema.Struct({
60
- name: Schema.Literal("page.load"),
61
- properties: Schema.Struct({
62
- loadDuration: Schema.Number
63
- })
64
- }), Schema.Struct({
65
- name: Schema.Literal("plugins.toggle"),
66
- properties: Schema.Struct({
67
- plugin: Schema.String,
68
- enabled: Schema.Boolean
69
- })
70
- }), Schema.Struct({
71
- name: Schema.Literal("space.create"),
72
- properties: Schema.Struct({
73
- spaceId: Type.SpaceId
74
- })
75
- }), Schema.Struct({
76
- name: Schema.Literal("space.join"),
77
- properties: Schema.Struct({
78
- spaceId: Type.SpaceId
79
- })
80
- }), Schema.Struct({
81
- name: Schema.Literal("space.limit"),
82
- properties: Schema.Struct({
83
- spaceId: Type.SpaceId
84
- })
85
- }), Schema.Struct({
86
- name: Schema.Literal("space.lock"),
87
- properties: Schema.Struct({
88
- spaceId: Type.SpaceId
89
- })
90
- }), Schema.Struct({
91
- name: Schema.Literal("space.migrate"),
92
- properties: Schema.Struct({
93
- spaceId: Type.SpaceId,
94
- targetVersion: Schema.optional(Schema.String),
95
- version: Schema.optional(Schema.String)
96
- })
97
- }), Schema.Struct({
98
- name: Schema.Literal("space.object.add"),
99
- properties: Schema.Struct({
100
- spaceId: Type.SpaceId,
101
- objectId: Schema.String,
102
- typename: Schema.optional(Schema.String)
103
- })
104
- }), Schema.Struct({
105
- name: Schema.Literal("space.share"),
106
- properties: Schema.Struct({
107
- spaceId: Type.SpaceId
108
- })
109
- }), Schema.Struct({
110
- name: Schema.Literal("space.unlock"),
111
- properties: Schema.Struct({
112
- spaceId: Type.SpaceId
113
- })
114
- }), Schema.Struct({
115
- name: Schema.Literal("threads.create"),
116
- properties: Schema.Struct({
117
- spaceId: Type.SpaceId,
118
- threadId: Schema.String
119
- })
120
- }), Schema.Struct({
121
- name: Schema.Literal("threads.delete"),
122
- properties: Schema.Struct({
123
- spaceId: Type.SpaceId,
124
- threadId: Schema.String
125
- })
126
- }), Schema.Struct({
127
- name: Schema.Literal("threads.message.add"),
128
- properties: Schema.Struct({
129
- spaceId: Type.SpaceId,
130
- threadId: Schema.String,
131
- threadLength: Schema.Number,
132
- messageId: Schema.String,
133
- messageLength: Schema.Number
134
- })
135
- }), Schema.Struct({
136
- name: Schema.Literal("threads.message.delete"),
137
- properties: Schema.Struct({
138
- spaceId: Type.SpaceId,
139
- threadId: Schema.String,
140
- messageId: Schema.String
141
- })
142
- }), Schema.Struct({
143
- name: Schema.Literal("threads.message.undo-delete"),
144
- properties: Schema.Struct({
145
- spaceId: Type.SpaceId,
146
- threadId: Schema.String,
147
- messageId: Schema.String
148
- })
149
- }), Schema.Struct({
150
- name: Schema.Literal("threads.message.update"),
151
- properties: Schema.Struct({
152
- spaceId: Type.SpaceId,
153
- messageId: Schema.String,
154
- messageLength: Schema.Number
155
- })
156
- }), Schema.Struct({
157
- name: Schema.Literal("threads.toggle-resolved"),
158
- properties: Schema.Struct({
159
- spaceId: Type.SpaceId,
160
- threadId: Schema.String
161
- })
162
- }), Schema.Struct({
163
- name: Schema.Literal("threads.undo-delete"),
164
- properties: Schema.Struct({
165
- spaceId: Type.SpaceId,
166
- threadId: Schema.String
167
- })
168
- })),
169
- output: Schema.Void
170
- }) {
171
- }
172
- ObservabilityAction2.SendEvent = SendEvent;
173
- })(ObservabilityAction || (ObservabilityAction = {}));
174
-
175
- export {
176
- UserFeedback,
177
- ObservabilityAction
178
- };
179
- //# sourceMappingURL=chunk-VJOTUVP6.mjs.map
@@ -1,7 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../../../src/types.ts"],
4
- "sourcesContent": ["//\n// Copyright 2024 DXOS.org\n//\n\nimport { Schema } from 'effect';\n\nimport { Type } from '@dxos/echo';\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: Type.SpaceId,\n }),\n }),\n Schema.Struct({\n name: Schema.Literal('space.join'),\n properties: Schema.Struct({\n spaceId: Type.SpaceId,\n }),\n }),\n Schema.Struct({\n name: Schema.Literal('space.limit'),\n properties: Schema.Struct({\n spaceId: Type.SpaceId,\n }),\n }),\n Schema.Struct({\n name: Schema.Literal('space.lock'),\n properties: Schema.Struct({\n spaceId: Type.SpaceId,\n }),\n }),\n Schema.Struct({\n name: Schema.Literal('space.migrate'),\n properties: Schema.Struct({\n spaceId: Type.SpaceId,\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: Type.SpaceId,\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: Type.SpaceId,\n }),\n }),\n Schema.Struct({\n name: Schema.Literal('space.unlock'),\n properties: Schema.Struct({\n spaceId: Type.SpaceId,\n }),\n }),\n Schema.Struct({\n name: Schema.Literal('threads.create'),\n properties: Schema.Struct({\n spaceId: Type.SpaceId,\n threadId: Schema.String,\n }),\n }),\n Schema.Struct({\n name: Schema.Literal('threads.delete'),\n properties: Schema.Struct({\n spaceId: Type.SpaceId,\n threadId: Schema.String,\n }),\n }),\n Schema.Struct({\n name: Schema.Literal('threads.message.add'),\n properties: Schema.Struct({\n spaceId: Type.SpaceId,\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: Type.SpaceId,\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: Type.SpaceId,\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: Type.SpaceId,\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: Type.SpaceId,\n threadId: Schema.String,\n }),\n }),\n Schema.Struct({\n name: Schema.Literal('threads.undo-delete'),\n properties: Schema.Struct({\n spaceId: Type.SpaceId,\n threadId: Schema.String,\n }),\n }),\n ),\n output: Schema.Void,\n }) {}\n}\n"],
5
- "mappings": "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",
6
- "names": ["Schema", "Type", "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", "Type", "SpaceId", "targetVersion", "version", "objectId", "threadId", "threadLength", "messageId", "messageLength"]
7
- }
@@ -1,7 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../../../src/capabilities/client-ready.ts"],
4
- "sourcesContent": ["//\n// Copyright 2025 DXOS.org\n//\n\nimport {\n Capabilities,\n contributes,\n createIntent,\n LayoutAction,\n SettingsAction,\n type PluginContext,\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: PluginContext;\n namespace: string;\n observability: Observability;\n};\n\nexport default async ({ context, namespace, observability }: ClientReadyOptions) => {\n const manager = context.getCapability(Capabilities.PluginManager);\n const { dispatchPromise: dispatch } = context.getCapability(Capabilities.IntentDispatcher);\n const state = context.getCapability(ObservabilityCapabilities.State);\n const client = context.getCapability(ClientCapability);\n\n const sendPrivacyNotice = async () => {\n const environment = client?.config?.values.runtime?.app?.env?.DX_ENVIRONMENT;\n const notify =\n environment && environment !== 'ci' && !environment.endsWith('.local') && !environment.endsWith('.lan');\n if (!state.notified && notify) {\n await dispatch(\n createIntent(LayoutAction.AddToast, {\n part: 'toast',\n subject: {\n id: `${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,cAAcC,aAAaC,aAAa;AAChE,QAAM,EAAEC,iBAAiBC,SAAQ,IAAKR,QAAQI,cAAcC,aAAaI,gBAAgB;AACzF,QAAMC,QAAQV,QAAQI,cAAcO,0BAA0BC,KAAK;AACnE,QAAMC,SAASb,QAAQI,cAAcU,gBAAAA;AAErC,QAAMC,oBAAoB,YAAA;AACxB,UAAMC,cAAcH,QAAQI,QAAQC,OAAOC,SAASC,KAAKC,KAAKC;AAC9D,UAAMC,SACJP,eAAeA,gBAAgB,QAAQ,CAACA,YAAYQ,SAAS,QAAA,KAAa,CAACR,YAAYQ,SAAS,MAAA;AAClG,QAAI,CAACd,MAAMe,YAAYF,QAAQ;AAC7B,YAAMf,SACJkB,aAAaC,aAAaC,UAAU;QAClCC,MAAM;QACNC,SAAS;UACPC,IAAI,GAAGC,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", "getCapability", "Capabilities", "PluginManager", "dispatchPromise", "dispatch", "IntentDispatcher", "state", "ObservabilityCapabilities", "State", "client", "ClientCapability", "sendPrivacyNotice", "environment", "config", "values", "runtime", "app", "env", "DX_ENVIRONMENT", "notify", "endsWith", "notified", "createIntent", "LayoutAction", "AddToast", "part", "subject", "id", "OBSERVABILITY_PLUGIN", "title", "ns", "description", "duration", "Infinity", "icon", "actionLabel", "actionAlt", "closeLabel", "onAction", "SettingsAction", "Open", "plugin", "enabled", "map", "setTag", "ObservabilityAction", "SendEvent", "name", "properties", "loadDuration", "window", "performance", "timing", "loadEventEnd", "loadEventStart", "cleanup", "setupTelemetryListeners", "Promise", "all", "setIdentityTags", "services", "startRuntimeMetrics", "startNetworkMetrics", "startSpacesMetrics", "halo", "identity", "get", "subscription", "subscribe", "unsubscribe", "contributes", "Observability", "close"]
7
- }
@@ -1,7 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../../../src/capabilities/intent-resolver.ts"],
4
- "sourcesContent": ["//\n// Copyright 2025 DXOS.org\n//\n\nimport { Capabilities, contributes, createResolver, IntentAction, type PluginContext } 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: PluginContext; namespace: string }) =>\n contributes(Capabilities.IntentResolver, [\n createResolver({\n intent: IntentAction.Track,\n resolve: (intent) => {\n log.info('intent', { intent });\n },\n }),\n createResolver({\n intent: ObservabilityAction.Toggle,\n resolve: async ({ state }) => {\n const client = context.getCapability(ClientCapability);\n const observability = context.getCapability(ObservabilityCapabilities.Observability);\n const settings = context\n .getCapability(Capabilities.SettingsStore)\n .getStore<ObservabilitySettingsProps>(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.getCapability(ClientCapability);\n const properties = 'properties' in data ? data.properties : {};\n\n // NOTE: This is to ensure that events fired before observability is ready are still sent.\n // TODO(wittjosiah): If the intent dispatcher supports concurrent actions in the future,\n // then this could be awaited still rather than voiding.\n void context.waitForCapability(ObservabilityCapabilities.Observability).then((observability) => {\n observability.track({\n ...getTelemetryIdentity(client),\n action: data.name,\n properties,\n });\n });\n },\n }),\n createResolver({\n intent: ObservabilityAction.CaptureUserFeedback,\n resolve: async (data) => {\n const observability = context.getCapability(ObservabilityCapabilities.Observability);\n observability.captureUserFeedback(data.message);\n },\n }),\n ]);\n"],
5
- "mappings": ";;;;;;;;;;;;AAIA,SAASA,cAAcC,aAAaC,gBAAgBC,oBAAwC;AAC5F,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,cAAcC,gBAAAA;AACrC,YAAMC,gBAAgBlB,QAAQgB,cAAcG,0BAA0BC,aAAa;AACnF,YAAMC,WAAWrB,QACdgB,cAAcb,aAAamB,aAAa,EACxCC,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,cAAcC,gBAAAA;AACrC,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,cAAcG,0BAA0BC,aAAa;AACnFF,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", "getCapability", "ClientCapability", "observability", "ObservabilityCapabilities", "Observability", "settings", "SettingsStore", "getStore", "OBSERVABILITY_PLUGIN", "value", "enabled", "track", "getTelemetryIdentity", "action", "properties", "setMode", "storeObservabilityDisabled", "data", "SendEvent", "waitForCapability", "then", "name", "CaptureUserFeedback", "captureUserFeedback", "message"]
7
- }
@@ -1,7 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../../../src/capabilities/settings.ts"],
4
- "sourcesContent": ["//\n// Copyright 2025 DXOS.org\n//\n\nimport { Capabilities, contributes } from '@dxos/app-framework';\nimport { 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 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../../../src/capabilities/app-graph-builder.ts"],
4
- "sourcesContent": ["//\n// Copyright 2025 DXOS.org\n//\n\nimport { Rx } from '@effect-rx/rx-react';\nimport { Option, pipe } from 'effect';\n\nimport { Capabilities, contributes, type PluginContext } from '@dxos/app-framework';\nimport { createExtension, ROOT_ID } from '@dxos/plugin-graph';\n\nimport { OBSERVABILITY_PLUGIN } from '../meta';\n\n// NOTE: Copied from @dxos/plugin-deck to break circular dependency.\nconst ATTENDABLE_PATH_SEPARATOR = '~';\nconst DECK_COMPANION_TYPE = 'dxos.org/plugin/deck/deck-companion';\n\nexport default (context: PluginContext) =>\n contributes(Capabilities.AppGraphBuilder, [\n createExtension({\n id: `${OBSERVABILITY_PLUGIN}/help`,\n connector: (node) =>\n Rx.make((get) =>\n pipe(\n get(node),\n Option.flatMap((node) => (node.id === ROOT_ID ? Option.some(node) : Option.none())),\n Option.map((node) => {\n return [\n {\n id: [node.id, 'help'].join(ATTENDABLE_PATH_SEPARATOR),\n type: DECK_COMPANION_TYPE,\n data: null,\n properties: {\n label: ['help label', { ns: OBSERVABILITY_PLUGIN }],\n icon: 'ph--question--regular',\n disposition: 'hidden',\n position: 'hoist',\n },\n },\n ];\n }),\n Option.getOrElse(() => []),\n ),\n ),\n }),\n ]);\n"],
5
- "mappings": ";;;;;;;;;;;;;;;;;;;;;;;;AAIA,sBAAmB;AACnB,oBAA6B;AAE7B,2BAA8D;AAC9D,0BAAyC;AAKzC,IAAMA,4BAA4B;AAClC,IAAMC,sBAAsB;AAE5B,IAAA,4BAAe,CAACC,gBACdC,kCAAYC,kCAAaC,iBAAiB;MACxCC,qCAAgB;IACdC,IAAI,GAAGC,0CAAAA;IACPC,WAAW,CAACC,SACVC,mBAAGC,KAAK,CAACC,YACPC,oBACED,IAAIH,IAAAA,GACJK,qBAAOC,QAAQ,CAACN,UAAUA,MAAKH,OAAOU,8BAAUF,qBAAOG,KAAKR,KAAAA,IAAQK,qBAAOI,KAAI,CAAA,GAC/EJ,qBAAOK,IAAI,CAACV,UAAAA;AACV,aAAO;QACL;UACEH,IAAI;YAACG,MAAKH;YAAI;YAAQc,KAAKrB,yBAAAA;UAC3BsB,MAAMrB;UACNsB,MAAM;UACNC,YAAY;YACVC,OAAO;cAAC;cAAc;gBAAEC,IAAIlB;cAAqB;;YACjDmB,MAAM;YACNC,aAAa;YACbC,UAAU;UACZ;QACF;;IAEJ,CAAA,GACAd,qBAAOe,UAAU,MAAM,CAAA,CAAE,CAAA,CAAA;EAGjC,CAAA;CACD;",
6
- "names": ["ATTENDABLE_PATH_SEPARATOR", "DECK_COMPANION_TYPE", "context", "contributes", "Capabilities", "AppGraphBuilder", "createExtension", "id", "OBSERVABILITY_PLUGIN", "connector", "node", "Rx", "make", "get", "pipe", "Option", "flatMap", "ROOT_ID", "some", "none", "map", "join", "type", "data", "properties", "label", "ns", "icon", "disposition", "position", "getOrElse"]
7
- }
@@ -1,7 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../../../src/components/FeedbackForm.tsx", "../../../src/components/HelpContainer.tsx", "../../../src/components/ObservabilitySettings.tsx"],
4
- "sourcesContent": ["//\n// Copyright 2024 DXOS.org\n//\n\nimport React, { useCallback, useRef, useState } from 'react';\n\nimport { getSnapshot } from '@dxos/echo-schema';\nimport { IconButton, Input, useTranslation } from '@dxos/react-ui';\nimport { FormProvider, useFormContext, useInputProps } from '@dxos/react-ui-form';\n\nimport { OBSERVABILITY_PLUGIN } from '../meta';\nimport { UserFeedback } from '../types';\n\nconst defaultValues: UserFeedback = { message: '' };\n\nconst FormContent = () => {\n const { t } = useTranslation(OBSERVABILITY_PLUGIN);\n const { handleSave, canSave } = useFormContext<UserFeedback>();\n\n const messageProps = useInputProps(['message']);\n\n return (\n <div role='form' className='p-3 flex flex-col gap-2'>\n <div role='none' className='space-b-1'>\n <Input.Root validationValence={messageProps.getStatus().status}>\n <Input.Label>{t('feedback text area label')}</Input.Label>\n <Input.TextArea\n classNames={'text-sm'}\n rows={5}\n cols={30}\n placeholder={t('feedback text area placeholder')}\n value={messageProps.getValue() ?? ''}\n onChange={(e) => messageProps.onValueChange('string', e.target.value)}\n // TODO(wittjosiah): This aggressively shows validation errors.\n onBlur={messageProps.onBlur}\n />\n <Input.DescriptionAndValidation>\n <Input.Validation>{messageProps.getStatus().error}</Input.Validation>\n </Input.DescriptionAndValidation>\n </Input.Root>\n </div>\n\n <div role='none' className='space-b-2'>\n <IconButton\n icon='ph--paper-plane-tilt--regular'\n label={t('send feedback label')}\n variant='primary'\n type='submit'\n classNames='is-full'\n disabled={!canSave}\n onClick={handleSave}\n />\n </div>\n </div>\n );\n};\n\n// TODO(wittjosiah): Use `Form`?\nexport const FeedbackForm = ({ onSave }: { onSave: (values: UserFeedback) => void }) => {\n const formRef = useRef<HTMLDivElement>(null);\n const [_, update] = useState({});\n const forceRender = useCallback(() => update({}), [update]);\n\n const handleSave = useCallback(\n (values: UserFeedback) => {\n onSave(values);\n // TODO(wittjosiah): Force re-render to clear the form.\n forceRender();\n },\n [forceRender, onSave],\n );\n\n const initialValues = getSnapshot(defaultValues);\n\n return (\n <FormProvider formRef={formRef} schema={UserFeedback} initialValues={initialValues} onSave={handleSave}>\n <div ref={formRef}>\n <FormContent />\n </div>\n </FormProvider>\n );\n};\n", "//\n// Copyright 2025 DXOS.org\n//\n\nimport { 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
- }
@@ -1,199 +0,0 @@
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_BPWXRLLR_exports = {};
20
- __export(chunk_BPWXRLLR_exports, {
21
- ObservabilityAction: () => ObservabilityAction,
22
- UserFeedback: () => UserFeedback
23
- });
24
- module.exports = __toCommonJS(chunk_BPWXRLLR_exports);
25
- var import_chunk_2ERIOZP3 = require("./chunk-2ERIOZP3.cjs");
26
- var import_effect = require("effect");
27
- var import_echo = require("@dxos/echo");
28
- var nonEmpty = (field) => import_effect.Schema.nonEmptyString({
29
- message: () => `Missing field: ${field}`
30
- });
31
- var maxLength = (field, length) => import_effect.Schema.maxLength(length, {
32
- message: () => `Exceeds max length (${length}): ${field}`
33
- });
34
- var UserFeedback = import_effect.Schema.Struct({
35
- message: import_effect.Schema.String.pipe(nonEmpty("Feedback"), maxLength("Feedback", 32768))
36
- });
37
- var OBSERVABILITY_ACTION = `${import_chunk_2ERIOZP3.OBSERVABILITY_PLUGIN}/action`;
38
- var ObservabilityAction;
39
- (function(ObservabilityAction2) {
40
- class Toggle extends import_effect.Schema.TaggedClass()(`${OBSERVABILITY_ACTION}/toggle`, {
41
- input: import_effect.Schema.Struct({
42
- state: import_effect.Schema.optional(import_effect.Schema.Boolean)
43
- }),
44
- output: import_effect.Schema.Boolean
45
- }) {
46
- }
47
- ObservabilityAction2.Toggle = Toggle;
48
- class CaptureUserFeedback extends import_effect.Schema.TaggedClass()(`${OBSERVABILITY_ACTION}/capture-feedback`, {
49
- input: UserFeedback,
50
- output: import_effect.Schema.Void
51
- }) {
52
- }
53
- ObservabilityAction2.CaptureUserFeedback = CaptureUserFeedback;
54
- class BaseSendEvent extends import_effect.Schema.TaggedClass()(`${OBSERVABILITY_ACTION}/send-event`, {
55
- input: import_effect.Schema.Struct({
56
- name: import_effect.Schema.String,
57
- properties: import_effect.Schema.optional(import_effect.Schema.Object)
58
- }),
59
- output: import_effect.Schema.Void
60
- }) {
61
- }
62
- ObservabilityAction2.BaseSendEvent = BaseSendEvent;
63
- class SendEvent extends import_effect.Schema.TaggedClass()(`${OBSERVABILITY_ACTION}/send-event`, {
64
- // NOTE: Sort alphabetically by name.
65
- input: import_effect.Schema.Union(import_effect.Schema.Struct({
66
- name: import_effect.Schema.Literal("identity.create")
67
- }), import_effect.Schema.Struct({
68
- name: import_effect.Schema.Literal("identity.join")
69
- }), import_effect.Schema.Struct({
70
- name: import_effect.Schema.Literal("identity.recover")
71
- }), import_effect.Schema.Struct({
72
- name: import_effect.Schema.Literal("identity.share")
73
- }), import_effect.Schema.Struct({
74
- name: import_effect.Schema.Literal("navigation.activate"),
75
- properties: import_effect.Schema.Struct({
76
- subjectId: import_effect.Schema.String,
77
- typename: import_effect.Schema.optional(import_effect.Schema.String)
78
- })
79
- }), import_effect.Schema.Struct({
80
- name: import_effect.Schema.Literal("page.load"),
81
- properties: import_effect.Schema.Struct({
82
- loadDuration: import_effect.Schema.Number
83
- })
84
- }), import_effect.Schema.Struct({
85
- name: import_effect.Schema.Literal("plugins.toggle"),
86
- properties: import_effect.Schema.Struct({
87
- plugin: import_effect.Schema.String,
88
- enabled: import_effect.Schema.Boolean
89
- })
90
- }), import_effect.Schema.Struct({
91
- name: import_effect.Schema.Literal("space.create"),
92
- properties: import_effect.Schema.Struct({
93
- spaceId: import_echo.Type.SpaceId
94
- })
95
- }), import_effect.Schema.Struct({
96
- name: import_effect.Schema.Literal("space.join"),
97
- properties: import_effect.Schema.Struct({
98
- spaceId: import_echo.Type.SpaceId
99
- })
100
- }), import_effect.Schema.Struct({
101
- name: import_effect.Schema.Literal("space.limit"),
102
- properties: import_effect.Schema.Struct({
103
- spaceId: import_echo.Type.SpaceId
104
- })
105
- }), import_effect.Schema.Struct({
106
- name: import_effect.Schema.Literal("space.lock"),
107
- properties: import_effect.Schema.Struct({
108
- spaceId: import_echo.Type.SpaceId
109
- })
110
- }), import_effect.Schema.Struct({
111
- name: import_effect.Schema.Literal("space.migrate"),
112
- properties: import_effect.Schema.Struct({
113
- spaceId: import_echo.Type.SpaceId,
114
- targetVersion: import_effect.Schema.optional(import_effect.Schema.String),
115
- version: import_effect.Schema.optional(import_effect.Schema.String)
116
- })
117
- }), import_effect.Schema.Struct({
118
- name: import_effect.Schema.Literal("space.object.add"),
119
- properties: import_effect.Schema.Struct({
120
- spaceId: import_echo.Type.SpaceId,
121
- objectId: import_effect.Schema.String,
122
- typename: import_effect.Schema.optional(import_effect.Schema.String)
123
- })
124
- }), import_effect.Schema.Struct({
125
- name: import_effect.Schema.Literal("space.share"),
126
- properties: import_effect.Schema.Struct({
127
- spaceId: import_echo.Type.SpaceId
128
- })
129
- }), import_effect.Schema.Struct({
130
- name: import_effect.Schema.Literal("space.unlock"),
131
- properties: import_effect.Schema.Struct({
132
- spaceId: import_echo.Type.SpaceId
133
- })
134
- }), import_effect.Schema.Struct({
135
- name: import_effect.Schema.Literal("threads.create"),
136
- properties: import_effect.Schema.Struct({
137
- spaceId: import_echo.Type.SpaceId,
138
- threadId: import_effect.Schema.String
139
- })
140
- }), import_effect.Schema.Struct({
141
- name: import_effect.Schema.Literal("threads.delete"),
142
- properties: import_effect.Schema.Struct({
143
- spaceId: import_echo.Type.SpaceId,
144
- threadId: import_effect.Schema.String
145
- })
146
- }), import_effect.Schema.Struct({
147
- name: import_effect.Schema.Literal("threads.message.add"),
148
- properties: import_effect.Schema.Struct({
149
- spaceId: import_echo.Type.SpaceId,
150
- threadId: import_effect.Schema.String,
151
- threadLength: import_effect.Schema.Number,
152
- messageId: import_effect.Schema.String,
153
- messageLength: import_effect.Schema.Number
154
- })
155
- }), import_effect.Schema.Struct({
156
- name: import_effect.Schema.Literal("threads.message.delete"),
157
- properties: import_effect.Schema.Struct({
158
- spaceId: import_echo.Type.SpaceId,
159
- threadId: import_effect.Schema.String,
160
- messageId: import_effect.Schema.String
161
- })
162
- }), import_effect.Schema.Struct({
163
- name: import_effect.Schema.Literal("threads.message.undo-delete"),
164
- properties: import_effect.Schema.Struct({
165
- spaceId: import_echo.Type.SpaceId,
166
- threadId: import_effect.Schema.String,
167
- messageId: import_effect.Schema.String
168
- })
169
- }), import_effect.Schema.Struct({
170
- name: import_effect.Schema.Literal("threads.message.update"),
171
- properties: import_effect.Schema.Struct({
172
- spaceId: import_echo.Type.SpaceId,
173
- messageId: import_effect.Schema.String,
174
- messageLength: import_effect.Schema.Number
175
- })
176
- }), import_effect.Schema.Struct({
177
- name: import_effect.Schema.Literal("threads.toggle-resolved"),
178
- properties: import_effect.Schema.Struct({
179
- spaceId: import_echo.Type.SpaceId,
180
- threadId: import_effect.Schema.String
181
- })
182
- }), import_effect.Schema.Struct({
183
- name: import_effect.Schema.Literal("threads.undo-delete"),
184
- properties: import_effect.Schema.Struct({
185
- spaceId: import_echo.Type.SpaceId,
186
- threadId: import_effect.Schema.String
187
- })
188
- })),
189
- output: import_effect.Schema.Void
190
- }) {
191
- }
192
- ObservabilityAction2.SendEvent = SendEvent;
193
- })(ObservabilityAction || (ObservabilityAction = {}));
194
- // Annotate the CommonJS export names for ESM import in node:
195
- 0 && (module.exports = {
196
- ObservabilityAction,
197
- UserFeedback
198
- });
199
- //# sourceMappingURL=chunk-BPWXRLLR.cjs.map
@@ -1,7 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../../../src/types.ts"],
4
- "sourcesContent": ["//\n// Copyright 2024 DXOS.org\n//\n\nimport { Schema } from 'effect';\n\nimport { Type } from '@dxos/echo';\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: Type.SpaceId,\n }),\n }),\n Schema.Struct({\n name: Schema.Literal('space.join'),\n properties: Schema.Struct({\n spaceId: Type.SpaceId,\n }),\n }),\n Schema.Struct({\n name: Schema.Literal('space.limit'),\n properties: Schema.Struct({\n spaceId: Type.SpaceId,\n }),\n }),\n Schema.Struct({\n name: Schema.Literal('space.lock'),\n properties: Schema.Struct({\n spaceId: Type.SpaceId,\n }),\n }),\n Schema.Struct({\n name: Schema.Literal('space.migrate'),\n properties: Schema.Struct({\n spaceId: Type.SpaceId,\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: Type.SpaceId,\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: Type.SpaceId,\n }),\n }),\n Schema.Struct({\n name: Schema.Literal('space.unlock'),\n properties: Schema.Struct({\n spaceId: Type.SpaceId,\n }),\n }),\n Schema.Struct({\n name: Schema.Literal('threads.create'),\n properties: Schema.Struct({\n spaceId: Type.SpaceId,\n threadId: Schema.String,\n }),\n }),\n Schema.Struct({\n name: Schema.Literal('threads.delete'),\n properties: Schema.Struct({\n spaceId: Type.SpaceId,\n threadId: Schema.String,\n }),\n }),\n Schema.Struct({\n name: Schema.Literal('threads.message.add'),\n properties: Schema.Struct({\n spaceId: Type.SpaceId,\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: Type.SpaceId,\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: Type.SpaceId,\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: Type.SpaceId,\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: Type.SpaceId,\n threadId: Schema.String,\n }),\n }),\n Schema.Struct({\n name: Schema.Literal('threads.undo-delete'),\n properties: Schema.Struct({\n spaceId: Type.SpaceId,\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", "Type", "SpaceId", "targetVersion", "version", "objectId", "threadId", "threadLength", "messageId", "messageLength"]
7
- }
@@ -1,7 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../../../src/capabilities/client-ready.ts"],
4
- "sourcesContent": ["//\n// Copyright 2025 DXOS.org\n//\n\nimport {\n Capabilities,\n contributes,\n createIntent,\n LayoutAction,\n SettingsAction,\n type PluginContext,\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: PluginContext;\n namespace: string;\n observability: Observability;\n};\n\nexport default async ({ context, namespace, observability }: ClientReadyOptions) => {\n const manager = context.getCapability(Capabilities.PluginManager);\n const { dispatchPromise: dispatch } = context.getCapability(Capabilities.IntentDispatcher);\n const state = context.getCapability(ObservabilityCapabilities.State);\n const client = context.getCapability(ClientCapability);\n\n const sendPrivacyNotice = async () => {\n const environment = client?.config?.values.runtime?.app?.env?.DX_ENVIRONMENT;\n const notify =\n environment && environment !== 'ci' && !environment.endsWith('.local') && !environment.endsWith('.lan');\n if (!state.notified && notify) {\n await dispatch(\n createIntent(LayoutAction.AddToast, {\n part: 'toast',\n subject: {\n id: `${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,2BAOO;AACP,2BAA4D;AAY5D,IAAA,uBAAe,OAAO,EAAEA,SAASC,WAAWC,cAAa,MAAsB;AAC7E,QAAMC,UAAUH,QAAQI,cAAcC,kCAAaC,aAAa;AAChE,QAAM,EAAEC,iBAAiBC,SAAQ,IAAKR,QAAQI,cAAcC,kCAAaI,gBAAgB;AACzF,QAAMC,QAAQV,QAAQI,cAAcO,gDAA0BC,KAAK;AACnE,QAAMC,SAASb,QAAQI,cAAcU,sCAAAA;AAErC,QAAMC,oBAAoB,YAAA;AACxB,UAAMC,cAAcH,QAAQI,QAAQC,OAAOC,SAASC,KAAKC,KAAKC;AAC9D,UAAMC,SACJP,eAAeA,gBAAgB,QAAQ,CAACA,YAAYQ,SAAS,QAAA,KAAa,CAACR,YAAYQ,SAAS,MAAA;AAClG,QAAI,CAACd,MAAMe,YAAYF,QAAQ;AAC7B,YAAMf,aACJkB,mCAAaC,kCAAaC,UAAU;QAClCC,MAAM;QACNC,SAAS;UACPC,IAAI,GAAGC,0CAAAA;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,aAASkB,mCAAaiB,oCAAeC,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,aACJkB,mCAAauB,0CAAoBC,WAAW;IAC1CC,MAAM;IACNC,YAAY;;MAEVC,cAAcC,OAAOC,YAAYC,OAAOC,eAAeH,OAAOC,YAAYC,OAAOE;IACnF;EACF,CAAA,CAAA;AAKF,QAAMC,cAAUC,8CAAwB3D,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,aAAOC,kCAAY/D,gDAA0BgE,eAAezE,eAAe,YAAA;AACzEyD,YAAAA;AACA,UAAMzD,cAAc0E,MAAK;EAC3B,CAAA;AACF;",
6
- "names": ["context", "namespace", "observability", "manager", "getCapability", "Capabilities", "PluginManager", "dispatchPromise", "dispatch", "IntentDispatcher", "state", "ObservabilityCapabilities", "State", "client", "ClientCapability", "sendPrivacyNotice", "environment", "config", "values", "runtime", "app", "env", "DX_ENVIRONMENT", "notify", "endsWith", "notified", "createIntent", "LayoutAction", "AddToast", "part", "subject", "id", "OBSERVABILITY_PLUGIN", "title", "ns", "description", "duration", "Infinity", "icon", "actionLabel", "actionAlt", "closeLabel", "onAction", "SettingsAction", "Open", "plugin", "enabled", "map", "setTag", "ObservabilityAction", "SendEvent", "name", "properties", "loadDuration", "window", "performance", "timing", "loadEventEnd", "loadEventStart", "cleanup", "setupTelemetryListeners", "Promise", "all", "setIdentityTags", "services", "startRuntimeMetrics", "startNetworkMetrics", "startSpacesMetrics", "halo", "identity", "get", "subscription", "subscribe", "unsubscribe", "contributes", "Observability", "close"]
7
- }
@@ -1,7 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../../../src/capabilities/intent-resolver.ts"],
4
- "sourcesContent": ["//\n// Copyright 2025 DXOS.org\n//\n\nimport { Capabilities, contributes, createResolver, IntentAction, type PluginContext } 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: PluginContext; namespace: string }) =>\n contributes(Capabilities.IntentResolver, [\n createResolver({\n intent: IntentAction.Track,\n resolve: (intent) => {\n log.info('intent', { intent });\n },\n }),\n createResolver({\n intent: ObservabilityAction.Toggle,\n resolve: async ({ state }) => {\n const client = context.getCapability(ClientCapability);\n const observability = context.getCapability(ObservabilityCapabilities.Observability);\n const settings = context\n .getCapability(Capabilities.SettingsStore)\n .getStore<ObservabilitySettingsProps>(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.getCapability(ClientCapability);\n const properties = 'properties' in data ? data.properties : {};\n\n // NOTE: This is to ensure that events fired before observability is ready are still sent.\n // TODO(wittjosiah): If the intent dispatcher supports concurrent actions in the future,\n // then this could be awaited still rather than voiding.\n void context.waitForCapability(ObservabilityCapabilities.Observability).then((observability) => {\n observability.track({\n ...getTelemetryIdentity(client),\n action: data.name,\n properties,\n });\n });\n },\n }),\n createResolver({\n intent: ObservabilityAction.CaptureUserFeedback,\n resolve: async (data) => {\n const observability = context.getCapability(ObservabilityCapabilities.Observability);\n observability.captureUserFeedback(data.message);\n },\n }),\n ]);\n"],
5
- "mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;AAIA,2BAA4F;AAC5F,iBAAoB;AACpB,2BAAiE;;AAOjE,IAAA,0BAAe,CAAC,EAAEA,SAASC,UAAS,UAClCC,kCAAYC,kCAAaC,gBAAgB;MACvCC,qCAAe;IACbC,QAAQC,kCAAaC;IACrBC,SAAS,CAACH,WAAAA;AACRI,qBAAIC,KAAK,UAAU;QAAEL;MAAO,GAAA;;;;;;IAC9B;EACF,CAAA;MACAD,qCAAe;IACbC,QAAQM,0CAAoBC;IAC5BJ,SAAS,OAAO,EAAEK,MAAK,MAAE;AACvB,YAAMC,SAASf,QAAQgB,cAAcC,sCAAAA;AACrC,YAAMC,gBAAgBlB,QAAQgB,cAAcG,gDAA0BC,aAAa;AACnF,YAAMC,WAAWrB,QACdgB,cAAcb,kCAAamB,aAAa,EACxCC,SAAqCC,0CAAAA,EAAuBC;AAC/DJ,eAASK,UAAUZ,SAAS,CAACO,SAASK;AACtCR,oBAAcS,MAAM;QAClB,OAAGC,2CAAqBb,MAAAA;QACxBc,QAAQ;QACRC,YAAY;UACVJ,SAASL,SAASK;QACpB;MACF,CAAA;AACAR,oBAAca,QAAQV,SAASK,UAAU,UAAU,UAAA;AACnD,gBAAMM,iDAA2B/B,WAAW,CAACoB,SAASK,OAAO;AAC7D,aAAO;QAAEO,MAAMZ,SAASK;MAAQ;IAClC;EACF,CAAA;MACArB,qCAAe;IACbC,QAAQM,0CAAoBsB;IAC5BzB,SAAS,CAACwB,SAAAA;AACR,YAAMlB,SAASf,QAAQgB,cAAcC,sCAAAA;AACrC,YAAMa,aAAa,gBAAgBG,OAAOA,KAAKH,aAAa,CAAC;AAK7D,WAAK9B,QAAQmC,kBAAkBhB,gDAA0BC,aAAa,EAAEgB,KAAK,CAAClB,kBAAAA;AAC5EA,sBAAcS,MAAM;UAClB,OAAGC,2CAAqBb,MAAAA;UACxBc,QAAQI,KAAKI;UACbP;QACF,CAAA;MACF,CAAA;IACF;EACF,CAAA;MACAzB,qCAAe;IACbC,QAAQM,0CAAoB0B;IAC5B7B,SAAS,OAAOwB,SAAAA;AACd,YAAMf,gBAAgBlB,QAAQgB,cAAcG,gDAA0BC,aAAa;AACnFF,oBAAcqB,oBAAoBN,KAAKO,OAAO;IAChD;EACF,CAAA;CACD;",
6
- "names": ["context", "namespace", "contributes", "Capabilities", "IntentResolver", "createResolver", "intent", "IntentAction", "Track", "resolve", "log", "info", "ObservabilityAction", "Toggle", "state", "client", "getCapability", "ClientCapability", "observability", "ObservabilityCapabilities", "Observability", "settings", "SettingsStore", "getStore", "OBSERVABILITY_PLUGIN", "value", "enabled", "track", "getTelemetryIdentity", "action", "properties", "setMode", "storeObservabilityDisabled", "data", "SendEvent", "waitForCapability", "then", "name", "CaptureUserFeedback", "captureUserFeedback", "message"]
7
- }
@@ -1,7 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../../../src/capabilities/settings.ts"],
4
- "sourcesContent": ["//\n// Copyright 2025 DXOS.org\n//\n\nimport { Capabilities, contributes } from '@dxos/app-framework';\nimport { 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,2BAA0C;AAC1C,yBAAqB;AAKrB,IAAA,mBAAe,MAAA;AACb,QAAMA,eAAWC,yBAAiC;IAAEC,SAAS;EAAK,CAAA;AAElE,aAAOC,kCAAYC,kCAAaC,UAAU;IACxCC,QAAQC;IACRC,QAAQC;IACRC,OAAOV;EACT,CAAA;AACF;",
6
- "names": ["settings", "live", "enabled", "contributes", "Capabilities", "Settings", "schema", "ObservabilitySettingsSchema", "prefix", "OBSERVABILITY_PLUGIN", "value"]
7
- }
@@ -1,44 +0,0 @@
1
- import { createRequire } from 'node:module';const require = createRequire(import.meta.url);
2
- import {
3
- OBSERVABILITY_PLUGIN
4
- } from "./chunk-KT5SDFBU.mjs";
5
-
6
- // packages/plugins/plugin-observability/src/capabilities/app-graph-builder.ts
7
- import { Rx } from "@effect-rx/rx-react";
8
- import { Option, pipe } from "effect";
9
- import { Capabilities, contributes } from "@dxos/app-framework";
10
- import { createExtension, ROOT_ID } from "@dxos/plugin-graph";
11
- var ATTENDABLE_PATH_SEPARATOR = "~";
12
- var DECK_COMPANION_TYPE = "dxos.org/plugin/deck/deck-companion";
13
- var app_graph_builder_default = (context) => contributes(Capabilities.AppGraphBuilder, [
14
- createExtension({
15
- id: `${OBSERVABILITY_PLUGIN}/help`,
16
- connector: (node) => Rx.make((get) => pipe(get(node), Option.flatMap((node2) => node2.id === ROOT_ID ? Option.some(node2) : Option.none()), Option.map((node2) => {
17
- return [
18
- {
19
- id: [
20
- node2.id,
21
- "help"
22
- ].join(ATTENDABLE_PATH_SEPARATOR),
23
- type: DECK_COMPANION_TYPE,
24
- data: null,
25
- properties: {
26
- label: [
27
- "help label",
28
- {
29
- ns: OBSERVABILITY_PLUGIN
30
- }
31
- ],
32
- icon: "ph--question--regular",
33
- disposition: "hidden",
34
- position: "hoist"
35
- }
36
- }
37
- ];
38
- }), Option.getOrElse(() => [])))
39
- })
40
- ]);
41
- export {
42
- app_graph_builder_default as default
43
- };
44
- //# sourceMappingURL=app-graph-builder-T7J46NSQ.mjs.map