@dxos/plugin-observability 0.8.4-main.f9ba587 → 0.8.4-main.fd6878d

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 (72) hide show
  1. package/dist/lib/browser/{app-graph-builder-DCOBBL5B.mjs → app-graph-builder-2SLFJVUL.mjs} +2 -2
  2. package/dist/lib/{node-esm/app-graph-builder-6JT2RPVM.mjs.map → browser/app-graph-builder-2SLFJVUL.mjs.map} +3 -3
  3. package/dist/lib/browser/{chunk-D7WLH4F5.mjs → chunk-AL5RST75.mjs} +20 -8
  4. package/dist/lib/browser/chunk-AL5RST75.mjs.map +7 -0
  5. package/dist/lib/browser/{chunk-N3VKS2LF.mjs → chunk-EAA6E4FU.mjs} +3 -3
  6. package/dist/lib/browser/{chunk-N3VKS2LF.mjs.map → chunk-EAA6E4FU.mjs.map} +3 -3
  7. package/dist/lib/browser/{client-ready-KK3EWEBV.mjs → client-ready-NBJRF7OJ.mjs} +3 -3
  8. package/dist/lib/browser/client-ready-NBJRF7OJ.mjs.map +7 -0
  9. package/dist/lib/browser/index.mjs +10 -10
  10. package/dist/lib/browser/index.mjs.map +3 -3
  11. package/dist/lib/browser/{intent-resolver-A4EV25OK.mjs → intent-resolver-NPEP5KJQ.mjs} +4 -4
  12. package/dist/lib/browser/intent-resolver-NPEP5KJQ.mjs.map +7 -0
  13. package/dist/lib/browser/meta.json +1 -1
  14. package/dist/lib/browser/{react-surface-FUXMXVYO.mjs → react-surface-245UEKB5.mjs} +4 -4
  15. package/dist/lib/browser/{react-surface-FUXMXVYO.mjs.map → react-surface-245UEKB5.mjs.map} +3 -3
  16. package/dist/lib/browser/{settings-OSMKJOUM.mjs → settings-4WW5E4VA.mjs} +3 -3
  17. package/dist/lib/browser/{state-VIOQS2IL.mjs → state-N7RLB477.mjs} +1 -1
  18. package/dist/lib/browser/{state-VIOQS2IL.mjs.map → state-N7RLB477.mjs.map} +2 -2
  19. package/dist/lib/browser/types/index.mjs +10 -0
  20. package/dist/lib/node-esm/{app-graph-builder-6JT2RPVM.mjs → app-graph-builder-MMH6BVY4.mjs} +2 -2
  21. package/dist/lib/{browser/app-graph-builder-DCOBBL5B.mjs.map → node-esm/app-graph-builder-MMH6BVY4.mjs.map} +3 -3
  22. package/dist/lib/node-esm/{chunk-4BFWCQJ5.mjs → chunk-5W5V4TVX.mjs} +20 -8
  23. package/dist/lib/node-esm/chunk-5W5V4TVX.mjs.map +7 -0
  24. package/dist/lib/node-esm/{chunk-RG73SOOD.mjs → chunk-D6QRS2CR.mjs} +3 -3
  25. package/dist/lib/node-esm/{chunk-RG73SOOD.mjs.map → chunk-D6QRS2CR.mjs.map} +3 -3
  26. package/dist/lib/node-esm/{client-ready-EZVAX7D5.mjs → client-ready-XDI3JWUY.mjs} +3 -3
  27. package/dist/lib/node-esm/client-ready-XDI3JWUY.mjs.map +7 -0
  28. package/dist/lib/node-esm/index.mjs +10 -10
  29. package/dist/lib/node-esm/index.mjs.map +3 -3
  30. package/dist/lib/node-esm/{intent-resolver-7HLSOM7X.mjs → intent-resolver-OH4MMH5I.mjs} +4 -4
  31. package/dist/lib/node-esm/intent-resolver-OH4MMH5I.mjs.map +7 -0
  32. package/dist/lib/node-esm/meta.json +1 -1
  33. package/dist/lib/node-esm/{react-surface-TYVAHN2E.mjs → react-surface-ZR3IU2ZM.mjs} +4 -4
  34. package/dist/lib/node-esm/{react-surface-TYVAHN2E.mjs.map → react-surface-ZR3IU2ZM.mjs.map} +3 -3
  35. package/dist/lib/node-esm/{settings-S2OXVO3G.mjs → settings-BKKLNOFT.mjs} +3 -3
  36. package/dist/lib/node-esm/{state-J2WS6L64.mjs → state-LKANNCJJ.mjs} +1 -1
  37. package/dist/lib/node-esm/{state-J2WS6L64.mjs.map → state-LKANNCJJ.mjs.map} +2 -2
  38. package/dist/lib/node-esm/{types.mjs → types/index.mjs} +3 -3
  39. package/dist/types/src/capabilities/app-graph-builder.d.ts.map +1 -1
  40. package/dist/types/src/capabilities/client-ready.d.ts.map +1 -1
  41. package/dist/types/src/capabilities/intent-resolver.d.ts.map +1 -1
  42. package/dist/types/src/capabilities/react-surface.d.ts.map +1 -1
  43. package/dist/types/src/capabilities/state.d.ts.map +1 -1
  44. package/dist/types/src/components/HelpContainer.d.ts.map +1 -1
  45. package/dist/types/src/types/index.d.ts +2 -0
  46. package/dist/types/src/types/index.d.ts.map +1 -0
  47. package/dist/types/src/{types.d.ts → types/schema.d.ts} +36 -9
  48. package/dist/types/src/types/schema.d.ts.map +1 -0
  49. package/dist/types/tsconfig.tsbuildinfo +1 -1
  50. package/package.json +30 -28
  51. package/src/ObservabilityPlugin.ts +2 -2
  52. package/src/capabilities/app-graph-builder.ts +2 -2
  53. package/src/capabilities/client-ready.ts +6 -5
  54. package/src/capabilities/intent-resolver.ts +3 -2
  55. package/src/capabilities/react-surface.tsx +1 -1
  56. package/src/capabilities/state.ts +2 -1
  57. package/src/components/HelpContainer.tsx +3 -2
  58. package/src/events.ts +1 -1
  59. package/src/types/index.ts +5 -0
  60. package/src/{types.ts → types/schema.ts} +20 -7
  61. package/dist/lib/browser/chunk-D7WLH4F5.mjs.map +0 -7
  62. package/dist/lib/browser/client-ready-KK3EWEBV.mjs.map +0 -7
  63. package/dist/lib/browser/intent-resolver-A4EV25OK.mjs.map +0 -7
  64. package/dist/lib/browser/types.mjs +0 -10
  65. package/dist/lib/node-esm/chunk-4BFWCQJ5.mjs.map +0 -7
  66. package/dist/lib/node-esm/client-ready-EZVAX7D5.mjs.map +0 -7
  67. package/dist/lib/node-esm/intent-resolver-7HLSOM7X.mjs.map +0 -7
  68. package/dist/types/src/types.d.ts.map +0 -1
  69. /package/dist/lib/browser/{settings-OSMKJOUM.mjs.map → settings-4WW5E4VA.mjs.map} +0 -0
  70. /package/dist/lib/browser/{types.mjs.map → types/index.mjs.map} +0 -0
  71. /package/dist/lib/node-esm/{settings-S2OXVO3G.mjs.map → settings-BKKLNOFT.mjs.map} +0 -0
  72. /package/dist/lib/node-esm/{types.mjs.map → types/index.mjs.map} +0 -0
@@ -6,7 +6,7 @@ import {
6
6
  import { Rx } from "@effect-rx/rx-react";
7
7
  import { Option, pipe } from "effect";
8
8
  import { Capabilities, contributes } from "@dxos/app-framework";
9
- import { createExtension, ROOT_ID } from "@dxos/plugin-graph";
9
+ import { ROOT_ID, createExtension } from "@dxos/plugin-graph";
10
10
  var ATTENDABLE_PATH_SEPARATOR = "~";
11
11
  var DECK_COMPANION_TYPE = "dxos.org/plugin/deck/deck-companion";
12
12
  var app_graph_builder_default = (context) => contributes(Capabilities.AppGraphBuilder, [
@@ -40,4 +40,4 @@ var app_graph_builder_default = (context) => contributes(Capabilities.AppGraphBu
40
40
  export {
41
41
  app_graph_builder_default as default
42
42
  };
43
- //# sourceMappingURL=app-graph-builder-DCOBBL5B.mjs.map
43
+ //# sourceMappingURL=app-graph-builder-2SLFJVUL.mjs.map
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
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,SAASA,UAAU;AACnB,SAASC,QAAQC,YAAY;AAE7B,SAASC,cAAcC,mBAAuC;AAC9D,SAASC,iBAAiBC,eAAe;AAKzC,IAAMC,4BAA4B;AAClC,IAAMC,sBAAsB;AAE5B,IAAA,4BAAe,CAACC,YACdC,YAAYC,aAAaC,iBAAiB;EACxCC,gBAAgB;IACdC,IAAI,GAAGC,oBAAAA;IACPC,WAAW,CAACC,SACVC,GAAGC,KAAK,CAACC,QACPC,KACED,IAAIH,IAAAA,GACJK,OAAOC,QAAQ,CAACN,UAAUA,MAAKH,OAAOU,UAAUF,OAAOG,KAAKR,KAAAA,IAAQK,OAAOI,KAAI,CAAA,GAC/EJ,OAAOK,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,OAAOe,UAAU,MAAM,CAAA,CAAE,CAAA,CAAA;EAGjC,CAAA;CACD;",
6
- "names": ["Rx", "Option", "pipe", "Capabilities", "contributes", "createExtension", "ROOT_ID", "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"]
4
+ "sourcesContent": ["//\n// Copyright 2025 DXOS.org\n//\n\nimport { Rx } from '@effect-rx/rx-react';\nimport { Option, pipe } from 'effect';\n\nimport { Capabilities, type PluginContext, contributes } from '@dxos/app-framework';\nimport { ROOT_ID, createExtension } 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,SAASA,UAAU;AACnB,SAASC,QAAQC,YAAY;AAE7B,SAASC,cAAkCC,mBAAmB;AAC9D,SAASC,SAASC,uBAAuB;AAKzC,IAAMC,4BAA4B;AAClC,IAAMC,sBAAsB;AAE5B,IAAA,4BAAe,CAACC,YACdC,YAAYC,aAAaC,iBAAiB;EACxCC,gBAAgB;IACdC,IAAI,GAAGC,oBAAAA;IACPC,WAAW,CAACC,SACVC,GAAGC,KAAK,CAACC,QACPC,KACED,IAAIH,IAAAA,GACJK,OAAOC,QAAQ,CAACN,UAAUA,MAAKH,OAAOU,UAAUF,OAAOG,KAAKR,KAAAA,IAAQK,OAAOI,KAAI,CAAA,GAC/EJ,OAAOK,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,OAAOe,UAAU,MAAM,CAAA,CAAE,CAAA,CAAA;EAGjC,CAAA;CACD;",
6
+ "names": ["Rx", "Option", "pipe", "Capabilities", "contributes", "ROOT_ID", "createExtension", "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
7
  }
@@ -1,8 +1,8 @@
1
1
  import {
2
- OBSERVABILITY_PLUGIN
2
+ meta
3
3
  } from "./chunk-57RVSKYP.mjs";
4
4
 
5
- // src/types.ts
5
+ // src/types/schema.ts
6
6
  import { Schema } from "effect";
7
7
  import { Type } from "@dxos/echo";
8
8
  var nonEmpty = (field) => Schema.nonEmptyString({
@@ -14,9 +14,8 @@ var maxLength = (field, length) => Schema.maxLength(length, {
14
14
  var UserFeedback = Schema.Struct({
15
15
  message: Schema.String.pipe(nonEmpty("Feedback"), maxLength("Feedback", 32768))
16
16
  });
17
- var OBSERVABILITY_ACTION = `${OBSERVABILITY_PLUGIN}/action`;
18
17
  (function(ObservabilityAction2) {
19
- class Toggle extends Schema.TaggedClass()(`${OBSERVABILITY_ACTION}/toggle`, {
18
+ class Toggle extends Schema.TaggedClass()(`${meta.id}/action/toggle`, {
20
19
  input: Schema.Struct({
21
20
  state: Schema.optional(Schema.Boolean)
22
21
  }),
@@ -24,13 +23,13 @@ var OBSERVABILITY_ACTION = `${OBSERVABILITY_PLUGIN}/action`;
24
23
  }) {
25
24
  }
26
25
  ObservabilityAction2.Toggle = Toggle;
27
- class CaptureUserFeedback extends Schema.TaggedClass()(`${OBSERVABILITY_ACTION}/capture-feedback`, {
26
+ class CaptureUserFeedback extends Schema.TaggedClass()(`${meta.id}/action/capture-feedback`, {
28
27
  input: UserFeedback,
29
28
  output: Schema.Void
30
29
  }) {
31
30
  }
32
31
  ObservabilityAction2.CaptureUserFeedback = CaptureUserFeedback;
33
- class BaseSendEvent extends Schema.TaggedClass()(`${OBSERVABILITY_ACTION}/send-event`, {
32
+ class BaseSendEvent extends Schema.TaggedClass()(`${meta.id}/action/send-event`, {
34
33
  input: Schema.Struct({
35
34
  name: Schema.String,
36
35
  properties: Schema.optional(Schema.Object)
@@ -39,7 +38,7 @@ var OBSERVABILITY_ACTION = `${OBSERVABILITY_PLUGIN}/action`;
39
38
  }) {
40
39
  }
41
40
  ObservabilityAction2.BaseSendEvent = BaseSendEvent;
42
- class SendEvent extends Schema.TaggedClass()(`${OBSERVABILITY_ACTION}/send-event`, {
41
+ class SendEvent extends Schema.TaggedClass()(`${meta.id}/action/send-event`, {
43
42
  // NOTE: Sort alphabetically by name.
44
43
  input: Schema.Union(Schema.Struct({
45
44
  name: Schema.Literal("identity.create")
@@ -93,6 +92,19 @@ var OBSERVABILITY_ACTION = `${OBSERVABILITY_PLUGIN}/action`;
93
92
  targetVersion: Schema.optional(Schema.String),
94
93
  version: Schema.optional(Schema.String)
95
94
  })
95
+ }), Schema.Struct({
96
+ name: Schema.Literal("space.schema.use"),
97
+ properties: Schema.Struct({
98
+ spaceId: Type.SpaceId,
99
+ typename: Schema.String
100
+ })
101
+ }), Schema.Struct({
102
+ name: Schema.Literal("space.schema.add"),
103
+ properties: Schema.Struct({
104
+ spaceId: Type.SpaceId,
105
+ objectId: Schema.String,
106
+ typename: Schema.String
107
+ })
96
108
  }), Schema.Struct({
97
109
  name: Schema.Literal("space.object.add"),
98
110
  properties: Schema.Struct({
@@ -176,4 +188,4 @@ export {
176
188
  UserFeedback,
177
189
  ObservabilityAction
178
190
  };
179
- //# sourceMappingURL=chunk-D7WLH4F5.mjs.map
191
+ //# sourceMappingURL=chunk-AL5RST75.mjs.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../src/types/schema.ts"],
4
+ "sourcesContent": ["//\n// Copyright 2024 DXOS.org\n//\n\nimport { Schema } from 'effect';\n\nimport { Type } from '@dxos/echo';\n\nimport { meta } 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\nexport namespace ObservabilityAction {\n export class Toggle extends Schema.TaggedClass<Toggle>()(`${meta.id}/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 `${meta.id}/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>()(`${meta.id}/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>()(`${meta.id}/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.schema.use'),\n properties: Schema.Struct({\n spaceId: Type.SpaceId,\n typename: Schema.String,\n }),\n }),\n Schema.Struct({\n name: Schema.Literal('space.schema.add'),\n properties: Schema.Struct({\n spaceId: Type.SpaceId,\n objectId: Schema.String,\n typename: 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", "ObservabilityAction", "Toggle", "TaggedClass", "meta", "id", "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 +1,7 @@
1
1
  import {
2
2
  ObservabilityAction,
3
3
  UserFeedback
4
- } from "./chunk-D7WLH4F5.mjs";
4
+ } from "./chunk-AL5RST75.mjs";
5
5
  import {
6
6
  OBSERVABILITY_PLUGIN
7
7
  } from "./chunk-57RVSKYP.mjs";
@@ -89,7 +89,7 @@ var FeedbackForm = ({ onSave }) => {
89
89
  import { useSignals as _useSignals2 } from "@preact-signals/safe-react/tracking";
90
90
  import { pipe } from "effect";
91
91
  import React2, { useCallback as useCallback2 } from "react";
92
- import { chain, createIntent, LayoutAction, useIntentDispatcher } from "@dxos/app-framework";
92
+ import { LayoutAction, chain, createIntent, useIntentDispatcher } from "@dxos/app-framework";
93
93
  var HelpContainer = () => {
94
94
  var _effect = _useSignals2();
95
95
  try {
@@ -172,4 +172,4 @@ export {
172
172
  ObservabilitySettingsSchema,
173
173
  ObservabilitySettings
174
174
  };
175
- //# sourceMappingURL=chunk-N3VKS2LF.mjs.map
175
+ //# sourceMappingURL=chunk-EAA6E4FU.mjs.map
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
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.Content>{t('observability description')}</Message.Content>\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": ["React", "useCallback", "useRef", "useState", "getSnapshot", "IconButton", "Input", "useTranslation", "FormProvider", "useFormContext", "useInputProps", "defaultValues", "message", "FormContent", "t", "useTranslation", "OBSERVABILITY_PLUGIN", "handleSave", "canSave", "useFormContext", "messageProps", "useInputProps", "div", "role", "className", "Input", "Root", "validationValence", "getStatus", "status", "Label", "TextArea", "classNames", "rows", "cols", "placeholder", "value", "getValue", "onChange", "e", "onValueChange", "target", "onBlur", "DescriptionAndValidation", "Validation", "error", "IconButton", "icon", "label", "variant", "type", "disabled", "onClick", "FeedbackForm", "onSave", "formRef", "useRef", "_", "update", "useState", "forceRender", "useCallback", "values", "initialValues", "getSnapshot", "FormProvider", "schema", "UserFeedback", "ref", "pipe", "React", "useCallback", "chain", "createIntent", "LayoutAction", "useIntentDispatcher", "HelpContainer", "dispatchPromise", "dispatch", "useIntentDispatcher", "handleSave", "useCallback", "values", "pipe", "createIntent", "ObservabilityAction", "CaptureUserFeedback", "chain", "LayoutAction", "UpdateComplementary", "part", "options", "state", "AddToast", "subject", "id", "OBSERVABILITY_PLUGIN", "icon", "duration", "title", "ns", "description", "closeLabel", "React", "FeedbackForm", "onSave", "Schema", "React", "createIntent", "useIntentDispatcher", "Input", "Message", "useTranslation", "DeprecatedFormContainer", "DeprecatedFormInput", "ObservabilitySettingsSchema", "Schema", "mutable", "Struct", "enabled", "Boolean", "ObservabilitySettings", "settings", "t", "useTranslation", "OBSERVABILITY_PLUGIN", "dispatchPromise", "dispatch", "useIntentDispatcher", "React", "DeprecatedFormContainer", "DeprecatedFormInput", "label", "secondary", "Message", "Root", "valence", "Content", "Input", "Switch", "checked", "onCheckedChange", "createIntent", "ObservabilityAction", "Toggle", "state"]
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 { LayoutAction, chain, createIntent, useIntentDispatcher } from '@dxos/app-framework';\n\nimport { OBSERVABILITY_PLUGIN } from '../meta';\nimport { ObservabilityAction, type UserFeedback } from '../types';\n\nimport { FeedbackForm } from './FeedbackForm';\n\nexport const HelpContainer = () => {\n const { dispatchPromise: dispatch } = useIntentDispatcher();\n\n const handleSave = useCallback(\n (values: UserFeedback) =>\n dispatch(\n 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.Content>{t('observability description')}</Message.Content>\n </Message.Root>\n }\n >\n <Input.Switch\n checked={settings.enabled}\n onCheckedChange={(checked) => dispatch(createIntent(ObservabilityAction.Toggle, { state: !!checked }))}\n />\n </DeprecatedFormInput>\n </DeprecatedFormContainer>\n );\n};\n"],
5
+ "mappings": ";;;;;;;;;;AAIA,OAAOA,SAASC,aAAaC,QAAQC,gBAAgB;AAErD,SAASC,mBAAmB;AAC5B,SAASC,YAAYC,OAAOC,sBAAsB;AAClD,SAASC,cAAcC,gBAAgBC,qBAAqB;AAK5D,IAAMC,gBAA8B;EAAEC,SAAS;AAAG;AAElD,IAAMC,cAAc,MAAA;;;AAClB,UAAM,EAAEC,EAAC,IAAKC,eAAeC,oBAAAA;AAC7B,UAAM,EAAEC,YAAYC,QAAO,IAAKC,eAAAA;AAEhC,UAAMC,eAAeC,cAAc;MAAC;KAAU;AAE9C,WACE,sBAAA,cAACC,OAAAA;MAAIC,MAAK;MAAOC,WAAU;OACzB,sBAAA,cAACF,OAAAA;MAAIC,MAAK;MAAOC,WAAU;OACzB,sBAAA,cAACC,MAAMC,MAAI;MAACC,mBAAmBP,aAAaQ,UAAS,EAAGC;OACtD,sBAAA,cAACJ,MAAMK,OAAK,MAAEhB,EAAE,0BAAA,CAAA,GAChB,sBAAA,cAACW,MAAMM,UAAQ;MACbC,YAAY;MACZC,MAAM;MACNC,MAAM;MACNC,aAAarB,EAAE,gCAAA;MACfsB,OAAOhB,aAAaiB,SAAQ,KAAM;MAClCC,UAAU,CAACC,MAAMnB,aAAaoB,cAAc,UAAUD,EAAEE,OAAOL,KAAK;;MAEpEM,QAAQtB,aAAasB;QAEvB,sBAAA,cAACjB,MAAMkB,0BAAwB,MAC7B,sBAAA,cAAClB,MAAMmB,YAAU,MAAExB,aAAaQ,UAAS,EAAGiB,KAAK,CAAA,CAAA,CAAA,GAKvD,sBAAA,cAACvB,OAAAA;MAAIC,MAAK;MAAOC,WAAU;OACzB,sBAAA,cAACsB,YAAAA;MACCC,MAAK;MACLC,OAAOlC,EAAE,qBAAA;MACTmC,SAAQ;MACRC,MAAK;MACLlB,YAAW;MACXmB,UAAU,CAACjC;MACXkC,SAASnC;;;;;AAKnB;AAGO,IAAMoC,eAAe,CAAC,EAAEC,OAAM,MAA8C;;;AACjF,UAAMC,UAAUC,OAAuB,IAAA;AACvC,UAAM,CAACC,GAAGC,MAAAA,IAAUC,SAAS,CAAC,CAAA;AAC9B,UAAMC,cAAcC,YAAY,MAAMH,OAAO,CAAC,CAAA,GAAI;MAACA;KAAO;AAE1D,UAAMzC,aAAa4C,YACjB,CAACC,WAAAA;AACCR,aAAOQ,MAAAA;AAEPF,kBAAAA;IACF,GACA;MAACA;MAAaN;KAAO;AAGvB,UAAMS,gBAAgBC,YAAYrD,aAAAA;AAElC,WACE,sBAAA,cAACsD,cAAAA;MAAaV;MAAkBW,QAAQC;MAAcJ;MAA8BT,QAAQrC;OAC1F,sBAAA,cAACK,OAAAA;MAAI8C,KAAKb;OACR,sBAAA,cAAC1C,aAAAA,IAAAA,CAAAA,CAAAA;;;;AAIT;;;;AC7EA,SAASwD,YAAY;AACrB,OAAOC,UAASC,eAAAA,oBAAmB;AAEnC,SAASC,cAAcC,OAAOC,cAAcC,2BAA2B;AAOhE,IAAMC,gBAAgB,MAAA;;;AAC3B,UAAM,EAAEC,iBAAiBC,SAAQ,IAAKC,oBAAAA;AAEtC,UAAMC,aAAaC,aACjB,CAACC,WACCJ,SACEK,KACEC,aAAaC,oBAAoBC,qBAAqBJ,MAAAA,GACtDK,MAAMC,aAAaC,qBAAqB;MAAEC,MAAM;MAAiBC,SAAS;QAAEC,OAAO;MAAY;IAAE,CAAA,GACjGL,MAAMC,aAAaK,UAAU;MAC3BH,MAAM;MACNI,SAAS;QACPC,IAAI,GAAGC,oBAAAA;QACPC,MAAM;QACNC,UAAU;QACVC,OAAO;UAAC;UAAwB;YAAEC,IAAIJ;UAAqB;;QAC3DK,aAAa;UAAC;UAA8B;YAAED,IAAIJ;UAAqB;;QACvEM,YAAY;UAAC;UAAe;YAAEF,IAAI;UAAK;;MACzC;IACF,CAAA,CAAA,CAAA,GAGN;MAACtB;KAAS;AAGZ,WAAO,gBAAAyB,OAAA,cAACC,cAAAA;MAAaC,QAAQzB;;;;;AAC/B;;;;ACpCA,SAAS0B,cAAc;AACvB,OAAOC,YAAW;AAElB,SAASC,gBAAAA,eAAcC,uBAAAA,4BAA2B;AAClD,SAASC,SAAAA,QAAOC,SAASC,kBAAAA,uBAAsB;AAC/C,SAASC,yBAAyBC,2BAA2B;AAKtD,IAAMC,8BAA8BC,OAAOC,QAChDD,OAAOE,OAAO;EACZC,SAASH,OAAOI;AAKlB,CAAA,CAAA;AAKK,IAAMC,wBAAwB,CAAC,EAAEC,SAAQ,MAA4C;;;AAC1F,UAAM,EAAEC,EAAC,IAAKC,gBAAeC,oBAAAA;AAC7B,UAAM,EAAEC,iBAAiBC,SAAQ,IAAKC,qBAAAA;AAEtC,WACE,gBAAAC,OAAA,cAACC,yBAAAA,MACC,gBAAAD,OAAA,cAACE,qBAAAA;MACCC,OAAOT,EAAE,6BAAA;MACTU,WACE,gBAAAJ,OAAA,cAACK,QAAQC,MAAI;QAACC,SAAQ;SACpB,gBAAAP,OAAA,cAACK,QAAQG,SAAO,MAAEd,EAAE,2BAAA,CAAA,CAAA;OAIxB,gBAAAM,OAAA,cAACS,OAAMC,QAAM;MACXC,SAASlB,SAASH;MAClBsB,iBAAiB,CAACD,YAAYb,SAASe,cAAaC,oBAAoBC,QAAQ;QAAEC,OAAO,CAAC,CAACL;MAAQ,CAAA,CAAA;;;;;AAK7G;",
6
+ "names": ["React", "useCallback", "useRef", "useState", "getSnapshot", "IconButton", "Input", "useTranslation", "FormProvider", "useFormContext", "useInputProps", "defaultValues", "message", "FormContent", "t", "useTranslation", "OBSERVABILITY_PLUGIN", "handleSave", "canSave", "useFormContext", "messageProps", "useInputProps", "div", "role", "className", "Input", "Root", "validationValence", "getStatus", "status", "Label", "TextArea", "classNames", "rows", "cols", "placeholder", "value", "getValue", "onChange", "e", "onValueChange", "target", "onBlur", "DescriptionAndValidation", "Validation", "error", "IconButton", "icon", "label", "variant", "type", "disabled", "onClick", "FeedbackForm", "onSave", "formRef", "useRef", "_", "update", "useState", "forceRender", "useCallback", "values", "initialValues", "getSnapshot", "FormProvider", "schema", "UserFeedback", "ref", "pipe", "React", "useCallback", "LayoutAction", "chain", "createIntent", "useIntentDispatcher", "HelpContainer", "dispatchPromise", "dispatch", "useIntentDispatcher", "handleSave", "useCallback", "values", "pipe", "createIntent", "ObservabilityAction", "CaptureUserFeedback", "chain", "LayoutAction", "UpdateComplementary", "part", "options", "state", "AddToast", "subject", "id", "OBSERVABILITY_PLUGIN", "icon", "duration", "title", "ns", "description", "closeLabel", "React", "FeedbackForm", "onSave", "Schema", "React", "createIntent", "useIntentDispatcher", "Input", "Message", "useTranslation", "DeprecatedFormContainer", "DeprecatedFormInput", "ObservabilitySettingsSchema", "Schema", "mutable", "Struct", "enabled", "Boolean", "ObservabilitySettings", "settings", "t", "useTranslation", "OBSERVABILITY_PLUGIN", "dispatchPromise", "dispatch", "useIntentDispatcher", "React", "DeprecatedFormContainer", "DeprecatedFormInput", "label", "secondary", "Message", "Root", "valence", "Content", "Input", "Switch", "checked", "onCheckedChange", "createIntent", "ObservabilityAction", "Toggle", "state"]
7
7
  }
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  ObservabilityAction
3
- } from "./chunk-D7WLH4F5.mjs";
3
+ } from "./chunk-AL5RST75.mjs";
4
4
  import {
5
5
  ClientCapability,
6
6
  ObservabilityCapabilities
@@ -10,7 +10,7 @@ import {
10
10
  } from "./chunk-57RVSKYP.mjs";
11
11
 
12
12
  // src/capabilities/client-ready.ts
13
- import { Capabilities, contributes, createIntent, LayoutAction, SettingsAction } from "@dxos/app-framework";
13
+ import { Capabilities, LayoutAction, SettingsAction, contributes, createIntent } from "@dxos/app-framework";
14
14
  import { setupTelemetryListeners } from "@dxos/observability";
15
15
  var client_ready_default = async ({ context, namespace, observability }) => {
16
16
  const manager = context.getCapability(Capabilities.PluginManager);
@@ -99,4 +99,4 @@ var client_ready_default = async ({ context, namespace, observability }) => {
99
99
  export {
100
100
  client_ready_default as default
101
101
  };
102
- //# sourceMappingURL=client-ready-KK3EWEBV.mjs.map
102
+ //# sourceMappingURL=client-ready-NBJRF7OJ.mjs.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../src/capabilities/client-ready.ts"],
4
+ "sourcesContent": ["//\n// Copyright 2025 DXOS.org\n//\n\nimport {\n Capabilities,\n LayoutAction,\n type PluginContext,\n SettingsAction,\n contributes,\n createIntent,\n} from '@dxos/app-framework';\nimport { type Observability, setupTelemetryListeners } from '@dxos/observability';\n\nimport { OBSERVABILITY_PLUGIN } from '../meta';\nimport { ObservabilityAction } from '../types';\n\nimport { ClientCapability, ObservabilityCapabilities } from './capabilities';\n\ntype ClientReadyOptions = {\n context: PluginContext;\n namespace: string;\n observability: Observability;\n};\n\nexport default async ({ context, namespace, observability }: ClientReadyOptions) => {\n const manager = context.getCapability(Capabilities.PluginManager);\n const { dispatchPromise: dispatch } = context.getCapability(Capabilities.IntentDispatcher);\n const state = context.getCapability(ObservabilityCapabilities.State);\n const client = context.getCapability(ClientCapability);\n\n const sendPrivacyNotice = async () => {\n const environment = client?.config?.values.runtime?.app?.env?.DX_ENVIRONMENT;\n const notify =\n environment && environment !== 'ci' && !environment.endsWith('.local') && !environment.endsWith('.lan');\n if (!state.notified && notify) {\n await dispatch(\n createIntent(LayoutAction.AddToast, {\n part: 'toast',\n subject: {\n id: `${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,cAEAC,gBACAC,aACAC,oBACK;AACP,SAA6BC,+BAA+B;AAa5D,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", "LayoutAction", "SettingsAction", "contributes", "createIntent", "setupTelemetryListeners", "context", "namespace", "observability", "manager", "getCapability", "Capabilities", "PluginManager", "dispatchPromise", "dispatch", "IntentDispatcher", "state", "ObservabilityCapabilities", "State", "client", "ClientCapability", "sendPrivacyNotice", "environment", "config", "values", "runtime", "app", "env", "DX_ENVIRONMENT", "notify", "endsWith", "notified", "createIntent", "LayoutAction", "AddToast", "part", "subject", "id", "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
+ }
@@ -3,8 +3,8 @@ import {
3
3
  HelpContainer,
4
4
  ObservabilitySettings,
5
5
  ObservabilitySettingsSchema
6
- } from "./chunk-N3VKS2LF.mjs";
7
- import "./chunk-D7WLH4F5.mjs";
6
+ } from "./chunk-EAA6E4FU.mjs";
7
+ import "./chunk-AL5RST75.mjs";
8
8
  import {
9
9
  ObservabilityCapabilities
10
10
  } from "./chunk-UUOBAWT2.mjs";
@@ -15,15 +15,15 @@ import {
15
15
 
16
16
  // src/capabilities/index.ts
17
17
  import { lazy } from "@dxos/app-framework";
18
- var AppGraphBuilder = lazy(() => import("./app-graph-builder-DCOBBL5B.mjs"));
19
- var ClientReady = lazy(() => import("./client-ready-KK3EWEBV.mjs"));
20
- var IntentResolver = lazy(() => import("./intent-resolver-A4EV25OK.mjs"));
21
- var ReactSurface = lazy(() => import("./react-surface-FUXMXVYO.mjs"));
22
- var ObservabilitySettings2 = lazy(() => import("./settings-OSMKJOUM.mjs"));
23
- var ObservabilityState = lazy(() => import("./state-VIOQS2IL.mjs"));
18
+ var AppGraphBuilder = lazy(() => import("./app-graph-builder-2SLFJVUL.mjs"));
19
+ var ClientReady = lazy(() => import("./client-ready-NBJRF7OJ.mjs"));
20
+ var IntentResolver = lazy(() => import("./intent-resolver-NPEP5KJQ.mjs"));
21
+ var ReactSurface = lazy(() => import("./react-surface-245UEKB5.mjs"));
22
+ var ObservabilitySettings2 = lazy(() => import("./settings-4WW5E4VA.mjs"));
23
+ var ObservabilityState = lazy(() => import("./state-N7RLB477.mjs"));
24
24
 
25
25
  // src/events.ts
26
- import { defineEvent, Events } from "@dxos/app-framework";
26
+ import { Events, defineEvent } from "@dxos/app-framework";
27
27
  (function(ObservabilityEvents2) {
28
28
  ObservabilityEvents2.StateReady = Events.createStateEvent(OBSERVABILITY_PLUGIN);
29
29
  })(ObservabilityEvents || (ObservabilityEvents = {}));
@@ -31,7 +31,7 @@ var ClientReadyEvent = defineEvent("dxos.org/plugin/client/event/client-ready");
31
31
  var ObservabilityEvents;
32
32
 
33
33
  // src/ObservabilityPlugin.ts
34
- import { allOf, Capabilities, contributes, defineModule, definePlugin, Events as Events2 } from "@dxos/app-framework";
34
+ import { Capabilities, Events as Events2, allOf, contributes, defineModule, definePlugin } from "@dxos/app-framework";
35
35
 
36
36
  // src/translations.ts
37
37
  var translations = [
@@ -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 { type Resource } from '@dxos/react-ui';\n\nimport { meta } from './meta';\n\nexport const translations = [\n {\n 'en-US': {\n [meta.id]: {\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] as const satisfies Resource[];\n"],
5
- "mappings": ";;;;;;;;;;;;;;;;AAIA,SAASA,YAAY;AAEd,IAAMC,kBAAkBC,KAAK,MAAM,OAAO,kCAAA,CAAA;AAC1C,IAAMC,cAAcD,KAAK,MAAM,OAAO,6BAAA,CAAA;AACtC,IAAME,iBAAiBF,KAAK,MAAM,OAAO,gCAAA,CAAA;AACzC,IAAMG,eAAeH,KAAK,MAAM,OAAO,8BAAA,CAAA;AACvC,IAAMI,yBAAwBJ,KAAK,MAAM,OAAO,yBAAA,CAAA;AAChD,IAAMK,qBAAqBL,KAAK,MAAM,OAAO,sBAAA,CAAA;;;ACPpD,SAASM,aAAaC,cAAc;UAInBC,sBAAAA;uBACFC,aAAaC,OAAOC,iBAAiBC,oBAAAA;AACpD,GAFiBJ,wBAAAA,sBAAAA,CAAAA,EAAAA;AAKV,IAAMK,mBAAmBC,YAAY,2CAAA;;;;ACT5C,SAASC,OAAOC,cAAcC,aAAaC,cAAcC,cAAcC,UAAAA,eAAc;;;ACI9E,IAAMC,eAAe;EAC1B;IACE,SAAS;MACP,CAACC,KAAKC,EAAE,GAAG;QACT,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;;;;ADZK,IAAMC,sBAAsB,CAACC,YAClCC,aAAaC,MAAM;EACjBC,aAAa;IACXC,IAAI,GAAGF,KAAKE,EAAE;IACdC,aAAaC,QAAOC;IACpBC,UAAU,YAAYC,YAAYC,0BAA0BC,eAAe,MAAMX,QAAQY,cAAa,CAAA;EACxG,CAAA;EACAT,aAAa;IACXC,IAAI,GAAGF,KAAKE,EAAE;IACdC,aAAaC,QAAOO;IACpBL,UAAUM;EACZ,CAAA;EACAX,aAAa;IACXC,IAAI,GAAGF,KAAKE,EAAE;IACdC,aAAaC,QAAOC;IACpBQ,gBAAgB;MAACC,oBAAoBC;;IACrCT,UAAU,MAAMU,mBAAmB;MAAEC,WAAWnB,QAAQmB;IAAU,CAAA;EACpE,CAAA;EACAhB,aAAa;IACXC,IAAI,GAAGF,KAAKE,EAAE;IACdC,aAAaC,QAAOc;IACpBZ,UAAU,MAAMC,YAAYY,aAAaC,cAAcC,YAAAA;EACzD,CAAA;EACApB,aAAa;IACXC,IAAI,GAAGF,KAAKE,EAAE;IACdC,aAAaC,QAAOkB;IACpBhB,UAAU,CAACiB,YAAYC,eAAe;MAAED;MAASN,WAAWnB,QAAQmB;IAAU,CAAA;EAChF,CAAA;EACAhB,aAAa;IACXC,IAAI,GAAGF,KAAKE,EAAE;IACdC,aAAaC,QAAOqB;IACpBnB,UAAUoB;EACZ,CAAA;EACAzB,aAAa;IACXC,IAAI,GAAGF,KAAKE,EAAE;IACdC,aAAaC,QAAOuB;IACpBrB,UAAUsB;EACZ,CAAA;EACA3B,aAAa;IACXC,IAAI,GAAGF,KAAKE,EAAE;IACdC,aAAa0B,MAAMzB,QAAO0B,iBAAiBhB,oBAAoBC,YAAYgB,gBAAAA;IAC3EzB,UAAU,OAAOiB,YAAAA;AACf,YAAMb,gBAAgB,MAAMZ,QAAQY,cAAa;AACjD,aAAOsB,YAAY;QAAET;QAASb;QAAeO,WAAWnB,QAAQmB;MAAU,CAAA;IAC5E;EACF,CAAA;CACD;",
6
- "names": ["lazy", "AppGraphBuilder", "lazy", "ClientReady", "IntentResolver", "ReactSurface", "ObservabilitySettings", "ObservabilityState", "defineEvent", "Events", "ObservabilityEvents", "StateReady", "Events", "createStateEvent", "OBSERVABILITY_PLUGIN", "ClientReadyEvent", "defineEvent", "allOf", "Capabilities", "contributes", "defineModule", "definePlugin", "Events", "translations", "meta", "id", "ObservabilityPlugin", "options", "definePlugin", "meta", "defineModule", "id", "activatesOn", "Events", "Startup", "activate", "contributes", "ObservabilityCapabilities", "Observability", "observability", "SetupSettings", "ObservabilitySettings", "activatesAfter", "ObservabilityEvents", "StateReady", "ObservabilityState", "namespace", "SetupTranslations", "Capabilities", "Translations", "translations", "SetupIntentResolver", "context", "IntentResolver", "SetupReactSurface", "ReactSurface", "SetupAppGraph", "AppGraphBuilder", "allOf", "DispatcherReady", "ClientReadyEvent", "ClientReady"]
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 { Events, defineEvent } 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 { Capabilities, Events, allOf, contributes, defineModule, definePlugin } 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 { ClientReadyEvent, ObservabilityEvents } 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 { type Resource } from '@dxos/react-ui';\n\nimport { meta } from './meta';\n\nexport const translations = [\n {\n 'en-US': {\n [meta.id]: {\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] as const satisfies Resource[];\n"],
5
+ "mappings": ";;;;;;;;;;;;;;;;AAIA,SAASA,YAAY;AAEd,IAAMC,kBAAkBC,KAAK,MAAM,OAAO,kCAAA,CAAA;AAC1C,IAAMC,cAAcD,KAAK,MAAM,OAAO,6BAAA,CAAA;AACtC,IAAME,iBAAiBF,KAAK,MAAM,OAAO,gCAAA,CAAA;AACzC,IAAMG,eAAeH,KAAK,MAAM,OAAO,8BAAA,CAAA;AACvC,IAAMI,yBAAwBJ,KAAK,MAAM,OAAO,yBAAA,CAAA;AAChD,IAAMK,qBAAqBL,KAAK,MAAM,OAAO,sBAAA,CAAA;;;ACPpD,SAASM,QAAQC,mBAAmB;UAInBC,sBAAAA;uBACFC,aAAaC,OAAOC,iBAAiBC,oBAAAA;AACpD,GAFiBJ,wBAAAA,sBAAAA,CAAAA,EAAAA;AAKV,IAAMK,mBAAmBC,YAAY,2CAAA;;;;ACT5C,SAASC,cAAcC,UAAAA,SAAQC,OAAOC,aAAaC,cAAcC,oBAAoB;;;ACI9E,IAAMC,eAAe;EAC1B;IACE,SAAS;MACP,CAACC,KAAKC,EAAE,GAAG;QACT,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;;;;ADZK,IAAMC,sBAAsB,CAACC,YAClCC,aAAaC,MAAM;EACjBC,aAAa;IACXC,IAAI,GAAGF,KAAKE,EAAE;IACdC,aAAaC,QAAOC;IACpBC,UAAU,YAAYC,YAAYC,0BAA0BC,eAAe,MAAMX,QAAQY,cAAa,CAAA;EACxG,CAAA;EACAT,aAAa;IACXC,IAAI,GAAGF,KAAKE,EAAE;IACdC,aAAaC,QAAOO;IACpBL,UAAUM;EACZ,CAAA;EACAX,aAAa;IACXC,IAAI,GAAGF,KAAKE,EAAE;IACdC,aAAaC,QAAOC;IACpBQ,gBAAgB;MAACC,oBAAoBC;;IACrCT,UAAU,MAAMU,mBAAmB;MAAEC,WAAWnB,QAAQmB;IAAU,CAAA;EACpE,CAAA;EACAhB,aAAa;IACXC,IAAI,GAAGF,KAAKE,EAAE;IACdC,aAAaC,QAAOc;IACpBZ,UAAU,MAAMC,YAAYY,aAAaC,cAAcC,YAAAA;EACzD,CAAA;EACApB,aAAa;IACXC,IAAI,GAAGF,KAAKE,EAAE;IACdC,aAAaC,QAAOkB;IACpBhB,UAAU,CAACiB,YAAYC,eAAe;MAAED;MAASN,WAAWnB,QAAQmB;IAAU,CAAA;EAChF,CAAA;EACAhB,aAAa;IACXC,IAAI,GAAGF,KAAKE,EAAE;IACdC,aAAaC,QAAOqB;IACpBnB,UAAUoB;EACZ,CAAA;EACAzB,aAAa;IACXC,IAAI,GAAGF,KAAKE,EAAE;IACdC,aAAaC,QAAOuB;IACpBrB,UAAUsB;EACZ,CAAA;EACA3B,aAAa;IACXC,IAAI,GAAGF,KAAKE,EAAE;IACdC,aAAa0B,MAAMzB,QAAO0B,iBAAiBhB,oBAAoBC,YAAYgB,gBAAAA;IAC3EzB,UAAU,OAAOiB,YAAAA;AACf,YAAMb,gBAAgB,MAAMZ,QAAQY,cAAa;AACjD,aAAOsB,YAAY;QAAET;QAASb;QAAeO,WAAWnB,QAAQmB;MAAU,CAAA;IAC5E;EACF,CAAA;CACD;",
6
+ "names": ["lazy", "AppGraphBuilder", "lazy", "ClientReady", "IntentResolver", "ReactSurface", "ObservabilitySettings", "ObservabilityState", "Events", "defineEvent", "ObservabilityEvents", "StateReady", "Events", "createStateEvent", "OBSERVABILITY_PLUGIN", "ClientReadyEvent", "defineEvent", "Capabilities", "Events", "allOf", "contributes", "defineModule", "definePlugin", "translations", "meta", "id", "ObservabilityPlugin", "options", "definePlugin", "meta", "defineModule", "id", "activatesOn", "Events", "Startup", "activate", "contributes", "ObservabilityCapabilities", "Observability", "observability", "SetupSettings", "ObservabilitySettings", "activatesAfter", "ObservabilityEvents", "StateReady", "ObservabilityState", "namespace", "SetupTranslations", "Capabilities", "Translations", "translations", "SetupIntentResolver", "context", "IntentResolver", "SetupReactSurface", "ReactSurface", "SetupAppGraph", "AppGraphBuilder", "allOf", "DispatcherReady", "ClientReadyEvent", "ClientReady"]
7
7
  }
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  ObservabilityAction
3
- } from "./chunk-D7WLH4F5.mjs";
3
+ } from "./chunk-AL5RST75.mjs";
4
4
  import {
5
5
  ClientCapability,
6
6
  ObservabilityCapabilities
@@ -10,7 +10,7 @@ import {
10
10
  } from "./chunk-57RVSKYP.mjs";
11
11
 
12
12
  // src/capabilities/intent-resolver.ts
13
- import { Capabilities, contributes, createResolver, IntentAction } from "@dxos/app-framework";
13
+ import { Capabilities, IntentAction, contributes, createResolver } from "@dxos/app-framework";
14
14
  import { log } from "@dxos/log";
15
15
  import { getTelemetryIdentity, storeObservabilityDisabled } from "@dxos/observability";
16
16
  var __dxlog_file = "/__w/dxos/dxos/packages/plugins/plugin-observability/src/capabilities/intent-resolver.ts";
@@ -22,7 +22,7 @@ var intent_resolver_default = ({ context, namespace }) => contributes(Capabiliti
22
22
  intent
23
23
  }, {
24
24
  F: __dxlog_file,
25
- L: 19,
25
+ L: 20,
26
26
  S: void 0,
27
27
  C: (f, a) => f(...a)
28
28
  });
@@ -74,4 +74,4 @@ var intent_resolver_default = ({ context, namespace }) => contributes(Capabiliti
74
74
  export {
75
75
  intent_resolver_default as default
76
76
  };
77
- //# sourceMappingURL=intent-resolver-A4EV25OK.mjs.map
77
+ //# sourceMappingURL=intent-resolver-NPEP5KJQ.mjs.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../src/capabilities/intent-resolver.ts"],
4
+ "sourcesContent": ["//\n// Copyright 2025 DXOS.org\n//\n\nimport { Capabilities, IntentAction, type PluginContext, contributes, createResolver } from '@dxos/app-framework';\nimport { log } from '@dxos/log';\nimport { getTelemetryIdentity, storeObservabilityDisabled } from '@dxos/observability';\n\nimport { type ObservabilitySettingsProps } from '../components';\nimport { OBSERVABILITY_PLUGIN } from '../meta';\nimport { ObservabilityAction } from '../types';\n\nimport { ClientCapability, ObservabilityCapabilities } from './capabilities';\n\nexport default ({ context, namespace }: { context: PluginContext; namespace: string }) =>\n contributes(Capabilities.IntentResolver, [\n createResolver({\n intent: IntentAction.Track,\n resolve: (intent) => {\n log.info('intent', { intent });\n },\n }),\n createResolver({\n intent: ObservabilityAction.Toggle,\n resolve: async ({ state }) => {\n const client = context.getCapability(ClientCapability);\n const observability = context.getCapability(ObservabilityCapabilities.Observability);\n const settings = context\n .getCapability(Capabilities.SettingsStore)\n .getStore<ObservabilitySettingsProps>(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,cAAkCC,aAAaC,sBAAsB;AAC5F,SAASC,WAAW;AACpB,SAASC,sBAAsBC,kCAAkC;;AAQjE,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", "IntentAction", "contributes", "createResolver", "log", "getTelemetryIdentity", "storeObservabilityDisabled", "context", "namespace", "contributes", "Capabilities", "IntentResolver", "createResolver", "intent", "IntentAction", "Track", "resolve", "log", "info", "ObservabilityAction", "Toggle", "state", "client", "getCapability", "ClientCapability", "observability", "ObservabilityCapabilities", "Observability", "settings", "SettingsStore", "getStore", "OBSERVABILITY_PLUGIN", "value", "enabled", "track", "getTelemetryIdentity", "action", "properties", "setMode", "storeObservabilityDisabled", "data", "SendEvent", "waitForCapability", "then", "name", "CaptureUserFeedback", "captureUserFeedback", "message"]
7
+ }
@@ -1 +1 @@
1
- {"inputs":{"src/meta.ts":{"bytes":1079,"imports":[],"format":"esm"},"src/capabilities/capabilities.ts":{"bytes":2485,"imports":[{"path":"@dxos/app-framework","kind":"import-statement","external":true},{"path":"src/meta.ts","kind":"import-statement","original":"../meta"}],"format":"esm"},"src/capabilities/app-graph-builder.ts":{"bytes":5644,"imports":[{"path":"@effect-rx/rx-react","kind":"import-statement","external":true},{"path":"effect","kind":"import-statement","external":true},{"path":"@dxos/app-framework","kind":"import-statement","external":true},{"path":"@dxos/plugin-graph","kind":"import-statement","external":true},{"path":"src/meta.ts","kind":"import-statement","original":"../meta"}],"format":"esm"},"src/types.ts":{"bytes":21495,"imports":[{"path":"effect","kind":"import-statement","external":true},{"path":"@dxos/echo","kind":"import-statement","external":true},{"path":"src/meta.ts","kind":"import-statement","original":"./meta"}],"format":"esm"},"src/capabilities/client-ready.ts":{"bytes":13571,"imports":[{"path":"@dxos/app-framework","kind":"import-statement","external":true},{"path":"@dxos/observability","kind":"import-statement","external":true},{"path":"src/capabilities/capabilities.ts","kind":"import-statement","original":"./capabilities"},{"path":"src/meta.ts","kind":"import-statement","original":"../meta"},{"path":"src/types.ts","kind":"import-statement","original":"../types"}],"format":"esm"},"src/capabilities/intent-resolver.ts":{"bytes":9927,"imports":[{"path":"@dxos/app-framework","kind":"import-statement","external":true},{"path":"@dxos/log","kind":"import-statement","external":true},{"path":"@dxos/observability","kind":"import-statement","external":true},{"path":"src/capabilities/capabilities.ts","kind":"import-statement","original":"./capabilities"},{"path":"src/meta.ts","kind":"import-statement","original":"../meta"},{"path":"src/types.ts","kind":"import-statement","original":"../types"}],"format":"esm"},"src/components/FeedbackForm.tsx":{"bytes":10111,"imports":[{"path":"@preact-signals/safe-react/tracking","kind":"import-statement","external":true},{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/echo-schema","kind":"import-statement","external":true},{"path":"@dxos/react-ui","kind":"import-statement","external":true},{"path":"@dxos/react-ui-form","kind":"import-statement","external":true},{"path":"src/meta.ts","kind":"import-statement","original":"../meta"},{"path":"src/types.ts","kind":"import-statement","original":"../types"}],"format":"esm"},"src/components/HelpContainer.tsx":{"bytes":5657,"imports":[{"path":"@preact-signals/safe-react/tracking","kind":"import-statement","external":true},{"path":"effect","kind":"import-statement","external":true},{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/app-framework","kind":"import-statement","external":true},{"path":"src/components/FeedbackForm.tsx","kind":"import-statement","original":"./FeedbackForm"},{"path":"src/meta.ts","kind":"import-statement","original":"../meta"},{"path":"src/types.ts","kind":"import-statement","original":"../types"}],"format":"esm"},"src/components/ObservabilitySettings.tsx":{"bytes":5569,"imports":[{"path":"@preact-signals/safe-react/tracking","kind":"import-statement","external":true},{"path":"effect","kind":"import-statement","external":true},{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/app-framework","kind":"import-statement","external":true},{"path":"@dxos/react-ui","kind":"import-statement","external":true},{"path":"@dxos/react-ui-form","kind":"import-statement","external":true},{"path":"src/meta.ts","kind":"import-statement","original":"../meta"},{"path":"src/types.ts","kind":"import-statement","original":"../types"}],"format":"esm"},"src/components/index.ts":{"bytes":713,"imports":[{"path":"src/components/FeedbackForm.tsx","kind":"import-statement","original":"./FeedbackForm"},{"path":"src/components/HelpContainer.tsx","kind":"import-statement","original":"./HelpContainer"},{"path":"src/components/ObservabilitySettings.tsx","kind":"import-statement","original":"./ObservabilitySettings"}],"format":"esm"},"src/capabilities/react-surface.tsx":{"bytes":3577,"imports":[{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/app-framework","kind":"import-statement","external":true},{"path":"@dxos/local-storage","kind":"import-statement","external":true},{"path":"src/components/index.ts","kind":"import-statement","original":"../components"},{"path":"src/meta.ts","kind":"import-statement","original":"../meta"}],"format":"esm"},"src/capabilities/settings.ts":{"bytes":2050,"imports":[{"path":"@dxos/app-framework","kind":"import-statement","external":true},{"path":"@dxos/live-object","kind":"import-statement","external":true},{"path":"src/components/index.ts","kind":"import-statement","original":"../components"},{"path":"src/meta.ts","kind":"import-statement","original":"../meta"}],"format":"esm"},"src/capabilities/state.ts":{"bytes":3088,"imports":[{"path":"@dxos/app-framework","kind":"import-statement","external":true},{"path":"@dxos/local-storage","kind":"import-statement","external":true},{"path":"@dxos/observability","kind":"import-statement","external":true},{"path":"src/capabilities/capabilities.ts","kind":"import-statement","original":"./capabilities"},{"path":"src/meta.ts","kind":"import-statement","original":"../meta"}],"format":"esm"},"src/capabilities/index.ts":{"bytes":2158,"imports":[{"path":"@dxos/app-framework","kind":"import-statement","external":true},{"path":"src/capabilities/capabilities.ts","kind":"import-statement","original":"./capabilities"},{"path":"src/capabilities/app-graph-builder.ts","kind":"dynamic-import","original":"./app-graph-builder"},{"path":"src/capabilities/client-ready.ts","kind":"dynamic-import","original":"./client-ready"},{"path":"src/capabilities/intent-resolver.ts","kind":"dynamic-import","original":"./intent-resolver"},{"path":"src/capabilities/react-surface.tsx","kind":"dynamic-import","original":"./react-surface"},{"path":"src/capabilities/settings.ts","kind":"dynamic-import","original":"./settings"},{"path":"src/capabilities/state.ts","kind":"dynamic-import","original":"./state"}],"format":"esm"},"src/events.ts":{"bytes":1792,"imports":[{"path":"@dxos/app-framework","kind":"import-statement","external":true},{"path":"src/meta.ts","kind":"import-statement","original":"./meta"}],"format":"esm"},"src/translations.ts":{"bytes":4557,"imports":[{"path":"src/meta.ts","kind":"import-statement","original":"./meta"}],"format":"esm"},"src/ObservabilityPlugin.ts":{"bytes":8883,"imports":[{"path":"@dxos/app-framework","kind":"import-statement","external":true},{"path":"src/capabilities/index.ts","kind":"import-statement","original":"./capabilities"},{"path":"src/events.ts","kind":"import-statement","original":"./events"},{"path":"src/meta.ts","kind":"import-statement","original":"./meta"},{"path":"src/translations.ts","kind":"import-statement","original":"./translations"}],"format":"esm"},"src/index.ts":{"bytes":1065,"imports":[{"path":"src/capabilities/index.ts","kind":"import-statement","original":"./capabilities"},{"path":"src/events.ts","kind":"import-statement","original":"./events"},{"path":"src/components/index.ts","kind":"import-statement","original":"./components"},{"path":"src/meta.ts","kind":"import-statement","original":"./meta"},{"path":"src/ObservabilityPlugin.ts","kind":"import-statement","original":"./ObservabilityPlugin"}],"format":"esm"}},"outputs":{"dist/lib/browser/index.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":8035},"dist/lib/browser/index.mjs":{"imports":[{"path":"dist/lib/browser/chunk-N3VKS2LF.mjs","kind":"import-statement"},{"path":"dist/lib/browser/chunk-D7WLH4F5.mjs","kind":"import-statement"},{"path":"dist/lib/browser/chunk-UUOBAWT2.mjs","kind":"import-statement"},{"path":"dist/lib/browser/chunk-57RVSKYP.mjs","kind":"import-statement"},{"path":"@dxos/app-framework","kind":"import-statement","external":true},{"path":"dist/lib/browser/app-graph-builder-DCOBBL5B.mjs","kind":"dynamic-import"},{"path":"dist/lib/browser/client-ready-KK3EWEBV.mjs","kind":"dynamic-import"},{"path":"dist/lib/browser/intent-resolver-A4EV25OK.mjs","kind":"dynamic-import"},{"path":"dist/lib/browser/react-surface-FUXMXVYO.mjs","kind":"dynamic-import"},{"path":"dist/lib/browser/settings-OSMKJOUM.mjs","kind":"dynamic-import"},{"path":"dist/lib/browser/state-VIOQS2IL.mjs","kind":"dynamic-import"},{"path":"@dxos/app-framework","kind":"import-statement","external":true},{"path":"@dxos/app-framework","kind":"import-statement","external":true}],"exports":["FeedbackForm","HelpContainer","OBSERVABILITY_PLUGIN","ObservabilityCapabilities","ObservabilityEvents","ObservabilityPlugin","ObservabilitySettings","ObservabilitySettingsSchema","meta"],"entryPoint":"src/index.ts","inputs":{"src/capabilities/index.ts":{"bytesInOutput":482},"src/index.ts":{"bytesInOutput":0},"src/events.ts":{"bytesInOutput":337},"src/ObservabilityPlugin.ts":{"bytesInOutput":1823},"src/translations.ts":{"bytesInOutput":1406}},"bytes":4722},"dist/lib/browser/types.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":93},"dist/lib/browser/types.mjs":{"imports":[{"path":"dist/lib/browser/chunk-D7WLH4F5.mjs","kind":"import-statement"},{"path":"dist/lib/browser/chunk-57RVSKYP.mjs","kind":"import-statement"}],"exports":["ObservabilityAction","UserFeedback"],"entryPoint":"src/types.ts","inputs":{},"bytes":194},"dist/lib/browser/app-graph-builder-DCOBBL5B.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":2739},"dist/lib/browser/app-graph-builder-DCOBBL5B.mjs":{"imports":[{"path":"dist/lib/browser/chunk-57RVSKYP.mjs","kind":"import-statement"},{"path":"@effect-rx/rx-react","kind":"import-statement","external":true},{"path":"effect","kind":"import-statement","external":true},{"path":"@dxos/app-framework","kind":"import-statement","external":true},{"path":"@dxos/plugin-graph","kind":"import-statement","external":true}],"exports":["default"],"entryPoint":"src/capabilities/app-graph-builder.ts","inputs":{"src/capabilities/app-graph-builder.ts":{"bytesInOutput":1160}},"bytes":1372},"dist/lib/browser/client-ready-KK3EWEBV.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":6716},"dist/lib/browser/client-ready-KK3EWEBV.mjs":{"imports":[{"path":"dist/lib/browser/chunk-D7WLH4F5.mjs","kind":"import-statement"},{"path":"dist/lib/browser/chunk-UUOBAWT2.mjs","kind":"import-statement"},{"path":"dist/lib/browser/chunk-57RVSKYP.mjs","kind":"import-statement"},{"path":"@dxos/app-framework","kind":"import-statement","external":true},{"path":"@dxos/observability","kind":"import-statement","external":true}],"exports":["default"],"entryPoint":"src/capabilities/client-ready.ts","inputs":{"src/capabilities/client-ready.ts":{"bytesInOutput":3239}},"bytes":3586},"dist/lib/browser/intent-resolver-A4EV25OK.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":4907},"dist/lib/browser/intent-resolver-A4EV25OK.mjs":{"imports":[{"path":"dist/lib/browser/chunk-D7WLH4F5.mjs","kind":"import-statement"},{"path":"dist/lib/browser/chunk-UUOBAWT2.mjs","kind":"import-statement"},{"path":"dist/lib/browser/chunk-57RVSKYP.mjs","kind":"import-statement"},{"path":"@dxos/app-framework","kind":"import-statement","external":true},{"path":"@dxos/log","kind":"import-statement","external":true},{"path":"@dxos/observability","kind":"import-statement","external":true}],"exports":["default"],"entryPoint":"src/capabilities/intent-resolver.ts","inputs":{"src/capabilities/intent-resolver.ts":{"bytesInOutput":2221}},"bytes":2577},"dist/lib/browser/react-surface-FUXMXVYO.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":1816},"dist/lib/browser/react-surface-FUXMXVYO.mjs":{"imports":[{"path":"dist/lib/browser/chunk-N3VKS2LF.mjs","kind":"import-statement"},{"path":"dist/lib/browser/chunk-D7WLH4F5.mjs","kind":"import-statement"},{"path":"dist/lib/browser/chunk-57RVSKYP.mjs","kind":"import-statement"},{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/app-framework","kind":"import-statement","external":true},{"path":"@dxos/local-storage","kind":"import-statement","external":true}],"exports":["default"],"entryPoint":"src/capabilities/react-surface.tsx","inputs":{"src/capabilities/react-surface.tsx":{"bytesInOutput":738}},"bytes":1051},"dist/lib/browser/settings-OSMKJOUM.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":1053},"dist/lib/browser/settings-OSMKJOUM.mjs":{"imports":[{"path":"dist/lib/browser/chunk-N3VKS2LF.mjs","kind":"import-statement"},{"path":"dist/lib/browser/chunk-D7WLH4F5.mjs","kind":"import-statement"},{"path":"dist/lib/browser/chunk-57RVSKYP.mjs","kind":"import-statement"},{"path":"@dxos/app-framework","kind":"import-statement","external":true},{"path":"@dxos/live-object","kind":"import-statement","external":true}],"exports":["default"],"entryPoint":"src/capabilities/settings.ts","inputs":{"src/capabilities/settings.ts":{"bytesInOutput":325}},"bytes":595},"dist/lib/browser/chunk-N3VKS2LF.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":10686},"dist/lib/browser/chunk-N3VKS2LF.mjs":{"imports":[{"path":"dist/lib/browser/chunk-D7WLH4F5.mjs","kind":"import-statement"},{"path":"dist/lib/browser/chunk-57RVSKYP.mjs","kind":"import-statement"},{"path":"@preact-signals/safe-react/tracking","kind":"import-statement","external":true},{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/echo-schema","kind":"import-statement","external":true},{"path":"@dxos/react-ui","kind":"import-statement","external":true},{"path":"@dxos/react-ui-form","kind":"import-statement","external":true},{"path":"@preact-signals/safe-react/tracking","kind":"import-statement","external":true},{"path":"effect","kind":"import-statement","external":true},{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/app-framework","kind":"import-statement","external":true},{"path":"@preact-signals/safe-react/tracking","kind":"import-statement","external":true},{"path":"effect","kind":"import-statement","external":true},{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/app-framework","kind":"import-statement","external":true},{"path":"@dxos/react-ui","kind":"import-statement","external":true},{"path":"@dxos/react-ui-form","kind":"import-statement","external":true}],"exports":["FeedbackForm","HelpContainer","ObservabilitySettings","ObservabilitySettingsSchema"],"inputs":{"src/components/FeedbackForm.tsx":{"bytesInOutput":2781},"src/components/HelpContainer.tsx":{"bytesInOutput":1390},"src/components/ObservabilitySettings.tsx":{"bytesInOutput":1390},"src/components/index.ts":{"bytesInOutput":0}},"bytes":5965},"dist/lib/browser/chunk-D7WLH4F5.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":10907},"dist/lib/browser/chunk-D7WLH4F5.mjs":{"imports":[{"path":"dist/lib/browser/chunk-57RVSKYP.mjs","kind":"import-statement"},{"path":"effect","kind":"import-statement","external":true},{"path":"@dxos/echo","kind":"import-statement","external":true}],"exports":["ObservabilityAction","UserFeedback"],"inputs":{"src/types.ts":{"bytesInOutput":5365}},"bytes":5540},"dist/lib/browser/state-VIOQS2IL.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":1586},"dist/lib/browser/state-VIOQS2IL.mjs":{"imports":[{"path":"dist/lib/browser/chunk-UUOBAWT2.mjs","kind":"import-statement"},{"path":"dist/lib/browser/chunk-57RVSKYP.mjs","kind":"import-statement"},{"path":"@dxos/app-framework","kind":"import-statement","external":true},{"path":"@dxos/local-storage","kind":"import-statement","external":true},{"path":"@dxos/observability","kind":"import-statement","external":true}],"exports":["default"],"entryPoint":"src/capabilities/state.ts","inputs":{"src/capabilities/state.ts":{"bytesInOutput":544}},"bytes":788},"dist/lib/browser/chunk-UUOBAWT2.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":1242},"dist/lib/browser/chunk-UUOBAWT2.mjs":{"imports":[{"path":"dist/lib/browser/chunk-57RVSKYP.mjs","kind":"import-statement"},{"path":"@dxos/app-framework","kind":"import-statement","external":true}],"exports":["ClientCapability","ObservabilityCapabilities"],"inputs":{"src/capabilities/capabilities.ts":{"bytesInOutput":493}},"bytes":698},"dist/lib/browser/chunk-57RVSKYP.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":533},"dist/lib/browser/chunk-57RVSKYP.mjs":{"imports":[],"exports":["OBSERVABILITY_PLUGIN","meta"],"inputs":{"src/meta.ts":{"bytesInOutput":152}},"bytes":255}}}
1
+ {"inputs":{"src/meta.ts":{"bytes":1079,"imports":[],"format":"esm"},"src/capabilities/capabilities.ts":{"bytes":2485,"imports":[{"path":"@dxos/app-framework","kind":"import-statement","external":true},{"path":"src/meta.ts","kind":"import-statement","original":"../meta"}],"format":"esm"},"src/capabilities/app-graph-builder.ts":{"bytes":5644,"imports":[{"path":"@effect-rx/rx-react","kind":"import-statement","external":true},{"path":"effect","kind":"import-statement","external":true},{"path":"@dxos/app-framework","kind":"import-statement","external":true},{"path":"@dxos/plugin-graph","kind":"import-statement","external":true},{"path":"src/meta.ts","kind":"import-statement","original":"../meta"}],"format":"esm"},"src/types/schema.ts":{"bytes":22701,"imports":[{"path":"effect","kind":"import-statement","external":true},{"path":"@dxos/echo","kind":"import-statement","external":true},{"path":"src/meta.ts","kind":"import-statement","original":"../meta"}],"format":"esm"},"src/types/index.ts":{"bytes":468,"imports":[{"path":"src/types/schema.ts","kind":"import-statement","original":"./schema"}],"format":"esm"},"src/capabilities/client-ready.ts":{"bytes":13571,"imports":[{"path":"@dxos/app-framework","kind":"import-statement","external":true},{"path":"@dxos/observability","kind":"import-statement","external":true},{"path":"src/meta.ts","kind":"import-statement","original":"../meta"},{"path":"src/types/index.ts","kind":"import-statement","original":"../types"},{"path":"src/capabilities/capabilities.ts","kind":"import-statement","original":"./capabilities"}],"format":"esm"},"src/capabilities/intent-resolver.ts":{"bytes":9927,"imports":[{"path":"@dxos/app-framework","kind":"import-statement","external":true},{"path":"@dxos/log","kind":"import-statement","external":true},{"path":"@dxos/observability","kind":"import-statement","external":true},{"path":"src/meta.ts","kind":"import-statement","original":"../meta"},{"path":"src/types/index.ts","kind":"import-statement","original":"../types"},{"path":"src/capabilities/capabilities.ts","kind":"import-statement","original":"./capabilities"}],"format":"esm"},"src/components/FeedbackForm.tsx":{"bytes":10111,"imports":[{"path":"@preact-signals/safe-react/tracking","kind":"import-statement","external":true},{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/echo-schema","kind":"import-statement","external":true},{"path":"@dxos/react-ui","kind":"import-statement","external":true},{"path":"@dxos/react-ui-form","kind":"import-statement","external":true},{"path":"src/meta.ts","kind":"import-statement","original":"../meta"},{"path":"src/types/index.ts","kind":"import-statement","original":"../types"}],"format":"esm"},"src/components/HelpContainer.tsx":{"bytes":5661,"imports":[{"path":"@preact-signals/safe-react/tracking","kind":"import-statement","external":true},{"path":"effect","kind":"import-statement","external":true},{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/app-framework","kind":"import-statement","external":true},{"path":"src/meta.ts","kind":"import-statement","original":"../meta"},{"path":"src/types/index.ts","kind":"import-statement","original":"../types"},{"path":"src/components/FeedbackForm.tsx","kind":"import-statement","original":"./FeedbackForm"}],"format":"esm"},"src/components/ObservabilitySettings.tsx":{"bytes":5569,"imports":[{"path":"@preact-signals/safe-react/tracking","kind":"import-statement","external":true},{"path":"effect","kind":"import-statement","external":true},{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/app-framework","kind":"import-statement","external":true},{"path":"@dxos/react-ui","kind":"import-statement","external":true},{"path":"@dxos/react-ui-form","kind":"import-statement","external":true},{"path":"src/meta.ts","kind":"import-statement","original":"../meta"},{"path":"src/types/index.ts","kind":"import-statement","original":"../types"}],"format":"esm"},"src/components/index.ts":{"bytes":713,"imports":[{"path":"src/components/FeedbackForm.tsx","kind":"import-statement","original":"./FeedbackForm"},{"path":"src/components/HelpContainer.tsx","kind":"import-statement","original":"./HelpContainer"},{"path":"src/components/ObservabilitySettings.tsx","kind":"import-statement","original":"./ObservabilitySettings"}],"format":"esm"},"src/capabilities/react-surface.tsx":{"bytes":3577,"imports":[{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/app-framework","kind":"import-statement","external":true},{"path":"@dxos/local-storage","kind":"import-statement","external":true},{"path":"src/components/index.ts","kind":"import-statement","original":"../components"},{"path":"src/meta.ts","kind":"import-statement","original":"../meta"}],"format":"esm"},"src/capabilities/settings.ts":{"bytes":2050,"imports":[{"path":"@dxos/app-framework","kind":"import-statement","external":true},{"path":"@dxos/live-object","kind":"import-statement","external":true},{"path":"src/components/index.ts","kind":"import-statement","original":"../components"},{"path":"src/meta.ts","kind":"import-statement","original":"../meta"}],"format":"esm"},"src/capabilities/state.ts":{"bytes":3092,"imports":[{"path":"@dxos/app-framework","kind":"import-statement","external":true},{"path":"@dxos/local-storage","kind":"import-statement","external":true},{"path":"@dxos/observability","kind":"import-statement","external":true},{"path":"src/meta.ts","kind":"import-statement","original":"../meta"},{"path":"src/capabilities/capabilities.ts","kind":"import-statement","original":"./capabilities"}],"format":"esm"},"src/capabilities/index.ts":{"bytes":2158,"imports":[{"path":"@dxos/app-framework","kind":"import-statement","external":true},{"path":"src/capabilities/capabilities.ts","kind":"import-statement","original":"./capabilities"},{"path":"src/capabilities/app-graph-builder.ts","kind":"dynamic-import","original":"./app-graph-builder"},{"path":"src/capabilities/client-ready.ts","kind":"dynamic-import","original":"./client-ready"},{"path":"src/capabilities/intent-resolver.ts","kind":"dynamic-import","original":"./intent-resolver"},{"path":"src/capabilities/react-surface.tsx","kind":"dynamic-import","original":"./react-surface"},{"path":"src/capabilities/settings.ts","kind":"dynamic-import","original":"./settings"},{"path":"src/capabilities/state.ts","kind":"dynamic-import","original":"./state"}],"format":"esm"},"src/events.ts":{"bytes":1792,"imports":[{"path":"@dxos/app-framework","kind":"import-statement","external":true},{"path":"src/meta.ts","kind":"import-statement","original":"./meta"}],"format":"esm"},"src/translations.ts":{"bytes":4557,"imports":[{"path":"src/meta.ts","kind":"import-statement","original":"./meta"}],"format":"esm"},"src/ObservabilityPlugin.ts":{"bytes":8883,"imports":[{"path":"@dxos/app-framework","kind":"import-statement","external":true},{"path":"src/capabilities/index.ts","kind":"import-statement","original":"./capabilities"},{"path":"src/events.ts","kind":"import-statement","original":"./events"},{"path":"src/meta.ts","kind":"import-statement","original":"./meta"},{"path":"src/translations.ts","kind":"import-statement","original":"./translations"}],"format":"esm"},"src/index.ts":{"bytes":1065,"imports":[{"path":"src/capabilities/index.ts","kind":"import-statement","original":"./capabilities"},{"path":"src/events.ts","kind":"import-statement","original":"./events"},{"path":"src/components/index.ts","kind":"import-statement","original":"./components"},{"path":"src/meta.ts","kind":"import-statement","original":"./meta"},{"path":"src/ObservabilityPlugin.ts","kind":"import-statement","original":"./ObservabilityPlugin"}],"format":"esm"}},"outputs":{"dist/lib/browser/index.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":8039},"dist/lib/browser/index.mjs":{"imports":[{"path":"dist/lib/browser/chunk-EAA6E4FU.mjs","kind":"import-statement"},{"path":"dist/lib/browser/chunk-AL5RST75.mjs","kind":"import-statement"},{"path":"dist/lib/browser/chunk-UUOBAWT2.mjs","kind":"import-statement"},{"path":"dist/lib/browser/chunk-57RVSKYP.mjs","kind":"import-statement"},{"path":"@dxos/app-framework","kind":"import-statement","external":true},{"path":"dist/lib/browser/app-graph-builder-2SLFJVUL.mjs","kind":"dynamic-import"},{"path":"dist/lib/browser/client-ready-NBJRF7OJ.mjs","kind":"dynamic-import"},{"path":"dist/lib/browser/intent-resolver-NPEP5KJQ.mjs","kind":"dynamic-import"},{"path":"dist/lib/browser/react-surface-245UEKB5.mjs","kind":"dynamic-import"},{"path":"dist/lib/browser/settings-4WW5E4VA.mjs","kind":"dynamic-import"},{"path":"dist/lib/browser/state-N7RLB477.mjs","kind":"dynamic-import"},{"path":"@dxos/app-framework","kind":"import-statement","external":true},{"path":"@dxos/app-framework","kind":"import-statement","external":true}],"exports":["FeedbackForm","HelpContainer","OBSERVABILITY_PLUGIN","ObservabilityCapabilities","ObservabilityEvents","ObservabilityPlugin","ObservabilitySettings","ObservabilitySettingsSchema","meta"],"entryPoint":"src/index.ts","inputs":{"src/capabilities/index.ts":{"bytesInOutput":482},"src/index.ts":{"bytesInOutput":0},"src/events.ts":{"bytesInOutput":337},"src/ObservabilityPlugin.ts":{"bytesInOutput":1823},"src/translations.ts":{"bytesInOutput":1406}},"bytes":4722},"dist/lib/browser/types/index.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":93},"dist/lib/browser/types/index.mjs":{"imports":[{"path":"dist/lib/browser/chunk-AL5RST75.mjs","kind":"import-statement"},{"path":"dist/lib/browser/chunk-57RVSKYP.mjs","kind":"import-statement"}],"exports":["ObservabilityAction","UserFeedback"],"entryPoint":"src/types/index.ts","inputs":{},"bytes":196},"dist/lib/browser/app-graph-builder-2SLFJVUL.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":2740},"dist/lib/browser/app-graph-builder-2SLFJVUL.mjs":{"imports":[{"path":"dist/lib/browser/chunk-57RVSKYP.mjs","kind":"import-statement"},{"path":"@effect-rx/rx-react","kind":"import-statement","external":true},{"path":"effect","kind":"import-statement","external":true},{"path":"@dxos/app-framework","kind":"import-statement","external":true},{"path":"@dxos/plugin-graph","kind":"import-statement","external":true}],"exports":["default"],"entryPoint":"src/capabilities/app-graph-builder.ts","inputs":{"src/capabilities/app-graph-builder.ts":{"bytesInOutput":1160}},"bytes":1372},"dist/lib/browser/client-ready-NBJRF7OJ.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":6720},"dist/lib/browser/client-ready-NBJRF7OJ.mjs":{"imports":[{"path":"dist/lib/browser/chunk-AL5RST75.mjs","kind":"import-statement"},{"path":"dist/lib/browser/chunk-UUOBAWT2.mjs","kind":"import-statement"},{"path":"dist/lib/browser/chunk-57RVSKYP.mjs","kind":"import-statement"},{"path":"@dxos/app-framework","kind":"import-statement","external":true},{"path":"@dxos/observability","kind":"import-statement","external":true}],"exports":["default"],"entryPoint":"src/capabilities/client-ready.ts","inputs":{"src/capabilities/client-ready.ts":{"bytesInOutput":3239}},"bytes":3586},"dist/lib/browser/intent-resolver-NPEP5KJQ.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":4908},"dist/lib/browser/intent-resolver-NPEP5KJQ.mjs":{"imports":[{"path":"dist/lib/browser/chunk-AL5RST75.mjs","kind":"import-statement"},{"path":"dist/lib/browser/chunk-UUOBAWT2.mjs","kind":"import-statement"},{"path":"dist/lib/browser/chunk-57RVSKYP.mjs","kind":"import-statement"},{"path":"@dxos/app-framework","kind":"import-statement","external":true},{"path":"@dxos/log","kind":"import-statement","external":true},{"path":"@dxos/observability","kind":"import-statement","external":true}],"exports":["default"],"entryPoint":"src/capabilities/intent-resolver.ts","inputs":{"src/capabilities/intent-resolver.ts":{"bytesInOutput":2221}},"bytes":2577},"dist/lib/browser/react-surface-245UEKB5.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":1816},"dist/lib/browser/react-surface-245UEKB5.mjs":{"imports":[{"path":"dist/lib/browser/chunk-EAA6E4FU.mjs","kind":"import-statement"},{"path":"dist/lib/browser/chunk-AL5RST75.mjs","kind":"import-statement"},{"path":"dist/lib/browser/chunk-57RVSKYP.mjs","kind":"import-statement"},{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/app-framework","kind":"import-statement","external":true},{"path":"@dxos/local-storage","kind":"import-statement","external":true}],"exports":["default"],"entryPoint":"src/capabilities/react-surface.tsx","inputs":{"src/capabilities/react-surface.tsx":{"bytesInOutput":738}},"bytes":1051},"dist/lib/browser/settings-4WW5E4VA.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":1053},"dist/lib/browser/settings-4WW5E4VA.mjs":{"imports":[{"path":"dist/lib/browser/chunk-EAA6E4FU.mjs","kind":"import-statement"},{"path":"dist/lib/browser/chunk-AL5RST75.mjs","kind":"import-statement"},{"path":"dist/lib/browser/chunk-57RVSKYP.mjs","kind":"import-statement"},{"path":"@dxos/app-framework","kind":"import-statement","external":true},{"path":"@dxos/live-object","kind":"import-statement","external":true}],"exports":["default"],"entryPoint":"src/capabilities/settings.ts","inputs":{"src/capabilities/settings.ts":{"bytesInOutput":325}},"bytes":595},"dist/lib/browser/chunk-EAA6E4FU.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":10688},"dist/lib/browser/chunk-EAA6E4FU.mjs":{"imports":[{"path":"dist/lib/browser/chunk-AL5RST75.mjs","kind":"import-statement"},{"path":"dist/lib/browser/chunk-57RVSKYP.mjs","kind":"import-statement"},{"path":"@preact-signals/safe-react/tracking","kind":"import-statement","external":true},{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/echo-schema","kind":"import-statement","external":true},{"path":"@dxos/react-ui","kind":"import-statement","external":true},{"path":"@dxos/react-ui-form","kind":"import-statement","external":true},{"path":"@preact-signals/safe-react/tracking","kind":"import-statement","external":true},{"path":"effect","kind":"import-statement","external":true},{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/app-framework","kind":"import-statement","external":true},{"path":"@preact-signals/safe-react/tracking","kind":"import-statement","external":true},{"path":"effect","kind":"import-statement","external":true},{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/app-framework","kind":"import-statement","external":true},{"path":"@dxos/react-ui","kind":"import-statement","external":true},{"path":"@dxos/react-ui-form","kind":"import-statement","external":true}],"exports":["FeedbackForm","HelpContainer","ObservabilitySettings","ObservabilitySettingsSchema"],"inputs":{"src/components/FeedbackForm.tsx":{"bytesInOutput":2781},"src/components/HelpContainer.tsx":{"bytesInOutput":1390},"src/components/ObservabilitySettings.tsx":{"bytesInOutput":1390},"src/components/index.ts":{"bytesInOutput":0}},"bytes":5965},"dist/lib/browser/chunk-AL5RST75.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":11501},"dist/lib/browser/chunk-AL5RST75.mjs":{"imports":[{"path":"dist/lib/browser/chunk-57RVSKYP.mjs","kind":"import-statement"},{"path":"effect","kind":"import-statement","external":true},{"path":"@dxos/echo","kind":"import-statement","external":true}],"exports":["ObservabilityAction","UserFeedback"],"inputs":{"src/types/schema.ts":{"bytesInOutput":5669},"src/types/index.ts":{"bytesInOutput":0}},"bytes":5835},"dist/lib/browser/state-N7RLB477.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":1588},"dist/lib/browser/state-N7RLB477.mjs":{"imports":[{"path":"dist/lib/browser/chunk-UUOBAWT2.mjs","kind":"import-statement"},{"path":"dist/lib/browser/chunk-57RVSKYP.mjs","kind":"import-statement"},{"path":"@dxos/app-framework","kind":"import-statement","external":true},{"path":"@dxos/local-storage","kind":"import-statement","external":true},{"path":"@dxos/observability","kind":"import-statement","external":true}],"exports":["default"],"entryPoint":"src/capabilities/state.ts","inputs":{"src/capabilities/state.ts":{"bytesInOutput":544}},"bytes":788},"dist/lib/browser/chunk-UUOBAWT2.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":1242},"dist/lib/browser/chunk-UUOBAWT2.mjs":{"imports":[{"path":"dist/lib/browser/chunk-57RVSKYP.mjs","kind":"import-statement"},{"path":"@dxos/app-framework","kind":"import-statement","external":true}],"exports":["ClientCapability","ObservabilityCapabilities"],"inputs":{"src/capabilities/capabilities.ts":{"bytesInOutput":493}},"bytes":698},"dist/lib/browser/chunk-57RVSKYP.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":533},"dist/lib/browser/chunk-57RVSKYP.mjs":{"imports":[],"exports":["OBSERVABILITY_PLUGIN","meta"],"inputs":{"src/meta.ts":{"bytesInOutput":152}},"bytes":255}}}
@@ -1,15 +1,15 @@
1
1
  import {
2
2
  HelpContainer,
3
3
  ObservabilitySettings
4
- } from "./chunk-N3VKS2LF.mjs";
5
- import "./chunk-D7WLH4F5.mjs";
4
+ } from "./chunk-EAA6E4FU.mjs";
5
+ import "./chunk-AL5RST75.mjs";
6
6
  import {
7
7
  OBSERVABILITY_PLUGIN
8
8
  } from "./chunk-57RVSKYP.mjs";
9
9
 
10
10
  // src/capabilities/react-surface.tsx
11
11
  import React from "react";
12
- import { contributes, Capabilities, createSurface } from "@dxos/app-framework";
12
+ import { Capabilities, contributes, createSurface } from "@dxos/app-framework";
13
13
  import { SettingsStore } from "@dxos/local-storage";
14
14
  var react_surface_default = () => contributes(Capabilities.ReactSurface, [
15
15
  createSurface({
@@ -29,4 +29,4 @@ var react_surface_default = () => contributes(Capabilities.ReactSurface, [
29
29
  export {
30
30
  react_surface_default as default
31
31
  };
32
- //# sourceMappingURL=react-surface-FUXMXVYO.mjs.map
32
+ //# sourceMappingURL=react-surface-245UEKB5.mjs.map