@dxos/plugin-debug 0.8.4-main.28f8d3d → 0.8.4-main.406dc2a

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 (85) hide show
  1. package/dist/lib/browser/DebugGraph-EDOH6R2G.mjs +20 -0
  2. package/dist/lib/browser/DebugGraph-EDOH6R2G.mjs.map +7 -0
  3. package/dist/lib/browser/{SpaceGenerator-XJJAOTIT.mjs → SpaceGenerator-VMWHGAJZ.mjs} +210 -31
  4. package/dist/lib/browser/SpaceGenerator-VMWHGAJZ.mjs.map +7 -0
  5. package/dist/lib/browser/{app-graph-builder-PXPZIIGY.mjs → app-graph-builder-I4IHBKKN.mjs} +73 -82
  6. package/dist/lib/browser/app-graph-builder-I4IHBKKN.mjs.map +7 -0
  7. package/dist/lib/browser/{chunk-AJA6RYN3.mjs → chunk-SRV2AIGJ.mjs} +2 -2
  8. package/dist/lib/browser/chunk-SRV2AIGJ.mjs.map +7 -0
  9. package/dist/lib/browser/{chunk-5XPIRNQS.mjs → chunk-SVCKCXCL.mjs} +2 -4
  10. package/dist/lib/browser/chunk-SVCKCXCL.mjs.map +7 -0
  11. package/dist/lib/browser/index.mjs +13 -12
  12. package/dist/lib/browser/index.mjs.map +3 -3
  13. package/dist/lib/browser/meta.json +1 -1
  14. package/dist/lib/browser/{react-context-NVAGLAJD.mjs → react-context-QLZE7VSQ.mjs} +6 -6
  15. package/dist/lib/browser/react-context-QLZE7VSQ.mjs.map +7 -0
  16. package/dist/lib/browser/{react-surface-UNFNQFWK.mjs → react-surface-GFORPA3A.mjs} +75 -71
  17. package/dist/lib/browser/react-surface-GFORPA3A.mjs.map +7 -0
  18. package/dist/lib/browser/{settings-LSSWLM5I.mjs → settings-EBVICEEW.mjs} +5 -5
  19. package/dist/lib/browser/{settings-LSSWLM5I.mjs.map → settings-EBVICEEW.mjs.map} +1 -1
  20. package/dist/types/src/DebugPlugin.d.ts +1 -1
  21. package/dist/types/src/DebugPlugin.d.ts.map +1 -1
  22. package/dist/types/src/capabilities/app-graph-builder.d.ts +1 -1
  23. package/dist/types/src/capabilities/app-graph-builder.d.ts.map +1 -1
  24. package/dist/types/src/capabilities/index.d.ts +5 -5
  25. package/dist/types/src/capabilities/index.d.ts.map +1 -1
  26. package/dist/types/src/capabilities/react-context.d.ts +2 -2
  27. package/dist/types/src/capabilities/react-surface.d.ts +1 -1
  28. package/dist/types/src/capabilities/react-surface.d.ts.map +1 -1
  29. package/dist/types/src/capabilities/settings.d.ts +1 -1
  30. package/dist/types/src/components/DebugGraph.d.ts +8 -0
  31. package/dist/types/src/components/DebugGraph.d.ts.map +1 -0
  32. package/dist/types/src/components/DebugObjectPanel.d.ts.map +1 -1
  33. package/dist/types/src/components/DebugSettings.d.ts.map +1 -1
  34. package/dist/types/src/components/SpaceGenerator/ObjectGenerator.d.ts +1 -1
  35. package/dist/types/src/components/SpaceGenerator/ObjectGenerator.d.ts.map +1 -1
  36. package/dist/types/src/components/SpaceGenerator/SpaceGenerator.stories.d.ts +13 -4
  37. package/dist/types/src/components/SpaceGenerator/SpaceGenerator.stories.d.ts.map +1 -1
  38. package/dist/types/src/components/SpaceGenerator/presets.d.ts +4 -1
  39. package/dist/types/src/components/SpaceGenerator/presets.d.ts.map +1 -1
  40. package/dist/types/src/components/Wireframe.d.ts.map +1 -1
  41. package/dist/types/src/components/index.d.ts +2 -1
  42. package/dist/types/src/components/index.d.ts.map +1 -1
  43. package/dist/types/src/meta.d.ts +0 -1
  44. package/dist/types/src/meta.d.ts.map +1 -1
  45. package/dist/types/src/translations.d.ts +2 -0
  46. package/dist/types/src/translations.d.ts.map +1 -1
  47. package/dist/types/src/types.d.ts +1 -1
  48. package/dist/types/src/types.d.ts.map +1 -1
  49. package/dist/types/tsconfig.tsbuildinfo +1 -1
  50. package/package.json +65 -63
  51. package/src/DebugPlugin.tsx +5 -6
  52. package/src/capabilities/app-graph-builder.ts +61 -87
  53. package/src/capabilities/react-context.tsx +2 -2
  54. package/src/capabilities/react-surface.tsx +46 -44
  55. package/src/components/DebugGraph.tsx +14 -0
  56. package/src/components/DebugObjectPanel.tsx +2 -4
  57. package/src/components/DebugSettings.tsx +72 -64
  58. package/src/components/DebugStatus.tsx +2 -2
  59. package/src/components/SpaceGenerator/ObjectGenerator.tsx +8 -8
  60. package/src/components/SpaceGenerator/SpaceGenerator.stories.tsx +10 -10
  61. package/src/components/SpaceGenerator/SpaceGenerator.tsx +1 -1
  62. package/src/components/SpaceGenerator/draw-util.ts +2 -2
  63. package/src/components/SpaceGenerator/presets.ts +172 -11
  64. package/src/components/Wireframe.tsx +2 -1
  65. package/src/components/index.ts +1 -1
  66. package/src/meta.ts +1 -3
  67. package/src/translations.ts +2 -0
  68. package/src/types.ts +1 -1
  69. package/dist/lib/browser/DebugApp-F4UFVW4Y.mjs +0 -228
  70. package/dist/lib/browser/DebugApp-F4UFVW4Y.mjs.map +0 -7
  71. package/dist/lib/browser/SpaceGenerator-XJJAOTIT.mjs.map +0 -7
  72. package/dist/lib/browser/app-graph-builder-PXPZIIGY.mjs.map +0 -7
  73. package/dist/lib/browser/chunk-5XPIRNQS.mjs.map +0 -7
  74. package/dist/lib/browser/chunk-AJA6RYN3.mjs.map +0 -7
  75. package/dist/lib/browser/react-context-NVAGLAJD.mjs.map +0 -7
  76. package/dist/lib/browser/react-surface-UNFNQFWK.mjs.map +0 -7
  77. package/dist/types/src/components/DebugApp/DebugApp.d.ts +0 -6
  78. package/dist/types/src/components/DebugApp/DebugApp.d.ts.map +0 -1
  79. package/dist/types/src/components/DebugApp/Tree.d.ts +0 -18
  80. package/dist/types/src/components/DebugApp/Tree.d.ts.map +0 -1
  81. package/dist/types/src/components/DebugApp/index.d.ts +0 -3
  82. package/dist/types/src/components/DebugApp/index.d.ts.map +0 -1
  83. package/src/components/DebugApp/DebugApp.tsx +0 -85
  84. package/src/components/DebugApp/Tree.tsx +0 -103
  85. package/src/components/DebugApp/index.ts +0 -7
@@ -1,12 +1,12 @@
1
1
  import {
2
2
  Devtools
3
- } from "./chunk-AJA6RYN3.mjs";
3
+ } from "./chunk-SRV2AIGJ.mjs";
4
4
  import {
5
- DEBUG_PLUGIN
6
- } from "./chunk-5XPIRNQS.mjs";
5
+ meta
6
+ } from "./chunk-SVCKCXCL.mjs";
7
7
 
8
8
  // src/capabilities/react-surface.tsx
9
- import { pipe } from "effect";
9
+ import * as Function from "effect/Function";
10
10
  import React5, { useCallback } from "react";
11
11
  import { Capabilities as Capabilities2, LayoutAction, chain, contributes, createIntent, createSurface, useCapability, useIntentDispatcher } from "@dxos/app-framework";
12
12
  import { AutomergePanel, ConfigPanel, CredentialsPanel, DeviceListPanel, DiagnosticsPanel, EdgeDashboardPanel, FeedsPanel, IdentityPanel, InvocationTraceContainer, KeyringPanel, LoggingPanel, MembersPanel, MetadataPanel, NetworkPanel, ObjectsPanel, QueuesPanel, SchemaPanel, SignalPanel, SpaceInfoPanel, SpaceListPanel, StoragePanel, SwarmPanel, TestingPanel, TracingPanel, WorkflowPanel } from "@dxos/devtools";
@@ -29,7 +29,7 @@ import { useSignals as _useSignals } from "@preact-signals/safe-react/tracking";
29
29
  import React from "react";
30
30
  import { Clipboard, Input, Toolbar } from "@dxos/react-ui";
31
31
  import { StackItem } from "@dxos/react-ui-stack";
32
- import { SyntaxHighlighter } from "@dxos/react-ui-syntax-highlighter";
32
+ import { Json } from "@dxos/react-ui-syntax-highlighter";
33
33
  var DebugObjectPanel = ({ object }) => {
34
34
  var _effect = _useSignals();
35
35
  try {
@@ -41,10 +41,9 @@ var DebugObjectPanel = ({ object }) => {
41
41
  value: dxn
42
42
  }), /* @__PURE__ */ React.createElement(Clipboard.IconButton, {
43
43
  value: dxn
44
- }))), /* @__PURE__ */ React.createElement(SyntaxHighlighter, {
45
- classNames: "flex text-xs",
46
- language: "json"
47
- }, JSON.stringify(object, null, 2))));
44
+ }))), /* @__PURE__ */ React.createElement(Json, {
45
+ data: object
46
+ })));
48
47
  } finally {
49
48
  _effect.f();
50
49
  }
@@ -58,7 +57,7 @@ import { SaveConfig, Storage, defs } from "@dxos/config";
58
57
  import { log } from "@dxos/log";
59
58
  import { useClient } from "@dxos/react-client";
60
59
  import { Button, Icon, Input as Input2, Select, Toast, useFileDownload, useTranslation } from "@dxos/react-ui";
61
- import { DeprecatedFormContainer, DeprecatedFormInput } from "@dxos/react-ui-form";
60
+ import { ControlGroup, ControlItemInput, ControlPage, ControlSection } from "@dxos/react-ui-form";
62
61
  import { setDeep } from "@dxos/util";
63
62
  var __dxlog_file = "/__w/dxos/dxos/packages/plugins/plugin-debug/src/components/DebugSettings.tsx";
64
63
  var StorageAdapters = {
@@ -68,7 +67,7 @@ var StorageAdapters = {
68
67
  var DebugSettings = ({ settings }) => {
69
68
  var _effect = _useSignals2();
70
69
  try {
71
- const { t } = useTranslation(DEBUG_PLUGIN);
70
+ const { t } = useTranslation(meta.id);
72
71
  const [toast, setToast] = useState();
73
72
  const client = useClient();
74
73
  const download = useFileDownload();
@@ -139,20 +138,24 @@ var DebugSettings = ({ settings }) => {
139
138
  });
140
139
  }
141
140
  };
142
- return /* @__PURE__ */ React2.createElement(DeprecatedFormContainer, null, /* @__PURE__ */ React2.createElement(DeprecatedFormInput, {
143
- label: t("settings wireframe")
141
+ return /* @__PURE__ */ React2.createElement(ControlPage, null, /* @__PURE__ */ React2.createElement(ControlSection, {
142
+ title: t("settings title", {
143
+ ns: meta.id
144
+ })
145
+ }, /* @__PURE__ */ React2.createElement(ControlGroup, null, /* @__PURE__ */ React2.createElement(ControlItemInput, {
146
+ title: t("settings wireframe")
144
147
  }, /* @__PURE__ */ React2.createElement(Input2.Switch, {
145
148
  checked: settings.wireframe,
146
149
  onCheckedChange: (checked) => settings.wireframe = !!checked
147
- })), /* @__PURE__ */ React2.createElement(DeprecatedFormInput, {
148
- label: t("settings download diagnostics")
150
+ })), /* @__PURE__ */ React2.createElement(ControlItemInput, {
151
+ title: t("settings download diagnostics")
149
152
  }, /* @__PURE__ */ React2.createElement(Button, {
150
153
  onClick: handleDownload
151
154
  }, /* @__PURE__ */ React2.createElement(Icon, {
152
155
  icon: "ph--download-simple--regular",
153
156
  size: 5
154
- }))), /* @__PURE__ */ React2.createElement(DeprecatedFormInput, {
155
- label: t("settings repair")
157
+ }))), /* @__PURE__ */ React2.createElement(ControlItemInput, {
158
+ title: t("settings repair")
156
159
  }, /* @__PURE__ */ React2.createElement(Button, {
157
160
  onClick: handleRepair
158
161
  }, /* @__PURE__ */ React2.createElement(Icon, {
@@ -162,8 +165,8 @@ var DebugSettings = ({ settings }) => {
162
165
  icon: "ph--gift--duotone",
163
166
  size: 5,
164
167
  classNames: "inline mr-1"
165
- }), /* @__PURE__ */ React2.createElement("span", null, toast.title)), toast.description && /* @__PURE__ */ React2.createElement(Toast.Description, null, toast.description))), /* @__PURE__ */ React2.createElement(DeprecatedFormInput, {
166
- label: t("settings choose storage adaptor")
168
+ }), /* @__PURE__ */ React2.createElement("span", null, toast.title)), toast.description && /* @__PURE__ */ React2.createElement(Toast.Description, null, toast.description))), /* @__PURE__ */ React2.createElement(ControlItemInput, {
169
+ title: t("settings choose storage adaptor")
167
170
  }, /* @__PURE__ */ React2.createElement(Select.Root, {
168
171
  value: Object.entries(StorageAdapters).find(([name2, value]) => value === storageConfig?.runtime?.client?.storage?.dataStore)?.[0],
169
172
  onValueChange: (value) => {
@@ -181,7 +184,7 @@ var DebugSettings = ({ settings }) => {
181
184
  }), /* @__PURE__ */ React2.createElement(Select.Portal, null, /* @__PURE__ */ React2.createElement(Select.Content, null, /* @__PURE__ */ React2.createElement(Select.Viewport, null, Object.keys(StorageAdapters).map((key) => /* @__PURE__ */ React2.createElement(Select.Option, {
182
185
  key,
183
186
  value: key
184
- }, t(`settings storage adaptor ${key} label`)))))))));
187
+ }, t(`settings storage adaptor ${key} label`)))), /* @__PURE__ */ React2.createElement(Select.Arrow, null))))))));
185
188
  } finally {
186
189
  _effect.f();
187
190
  }
@@ -213,7 +216,7 @@ var ErrorIndicator = () => {
213
216
  var _effect = _useSignals3();
214
217
  try {
215
218
  const [, forceUpdate] = useState2({});
216
- const errorRef = useRef();
219
+ const errorRef = useRef(null);
217
220
  useEffect2(() => {
218
221
  const errorListener = (event) => {
219
222
  const error = event.error ?? event.reason;
@@ -230,7 +233,7 @@ var ErrorIndicator = () => {
230
233
  };
231
234
  }, []);
232
235
  const handleReset = () => {
233
- errorRef.current = void 0;
236
+ errorRef.current = null;
234
237
  forceUpdate({});
235
238
  };
236
239
  if (errorRef.current) {
@@ -341,7 +344,7 @@ import React4 from "react";
341
344
  import { useResizeDetector } from "react-resize-detector";
342
345
  import { fullyQualifiedId } from "@dxos/react-client/echo";
343
346
  import { useAttentionAttributes } from "@dxos/react-ui-attention";
344
- import { SyntaxHighlighter as SyntaxHighlighter2 } from "@dxos/react-ui-syntax-highlighter";
347
+ import { SyntaxHighlighter } from "@dxos/react-ui-syntax-highlighter";
345
348
  import { mx } from "@dxos/react-ui-theme";
346
349
  var Wireframe = ({ classNames, label, object }) => {
347
350
  var _effect = _useSignals4();
@@ -356,9 +359,9 @@ var Wireframe = ({ classNames, label, object }) => {
356
359
  className: "absolute inset-2 flex flex-col gap-2 overflow-hidden font-mono"
357
360
  }, /* @__PURE__ */ React4.createElement("div", {
358
361
  className: "flex justify-between"
359
- }, /* @__PURE__ */ React4.createElement("div", null, label), /* @__PURE__ */ React4.createElement("div", null, `[${width}x${height}]`)), object && /* @__PURE__ */ React4.createElement(SyntaxHighlighter2, {
362
+ }, /* @__PURE__ */ React4.createElement("div", null, label), /* @__PURE__ */ React4.createElement("div", null, `[${width}x${height}]`)), object && /* @__PURE__ */ React4.createElement(SyntaxHighlighter, {
360
363
  language: "json",
361
- classNames: "flex w-full text-xs opacity-75 rounded"
364
+ classNames: "text-xs opacity-75 rounded"
362
365
  }, JSON.stringify(object, void 0, 2))), /* @__PURE__ */ React4.createElement("svg", {
363
366
  width,
364
367
  height,
@@ -389,14 +392,14 @@ var Wireframe = ({ classNames, label, object }) => {
389
392
  };
390
393
 
391
394
  // src/components/index.ts
392
- var DebugApp = lazy(() => import("./DebugApp-F4UFVW4Y.mjs"));
395
+ var DebugGraph = lazy(() => import("./DebugGraph-EDOH6R2G.mjs"));
393
396
  var DevtoolsOverviewContainer = lazy(() => import("./DevtoolsOverviewContainer-EPD6EWT5.mjs"));
394
- var SpaceGenerator = lazy(() => import("./SpaceGenerator-XJJAOTIT.mjs"));
397
+ var SpaceGenerator = lazy(() => import("./SpaceGenerator-VMWHGAJZ.mjs"));
395
398
 
396
399
  // src/capabilities/react-surface.tsx
397
400
  var __dxlog_file2 = "/__w/dxos/dxos/packages/plugins/plugin-debug/src/capabilities/react-surface.tsx";
398
- var isSpaceDebug = (data) => data?.type === `${DEBUG_PLUGIN}/space` && isSpace(data.space);
399
- var isGraphDebug = (data) => data?.graph instanceof Graph;
401
+ var isSpaceDebug = (data) => data?.type === `${meta.id}/space` && isSpace(data.space);
402
+ var isGraphDebug = (data) => data?.graph instanceof Graph && typeof data?.root === "string";
400
403
  var useCurrentSpace = () => {
401
404
  const layout = useCapability(Capabilities2.Layout);
402
405
  const client = useCapability(ClientCapabilities.Client);
@@ -404,17 +407,17 @@ var useCurrentSpace = () => {
404
407
  const space = spaceId ? client.spaces.get(spaceId) : void 0;
405
408
  return space;
406
409
  };
407
- var react_surface_default = (context) => contributes(Capabilities2.ReactSurface, [
410
+ var react_surface_default = ((context) => contributes(Capabilities2.ReactSurface, [
408
411
  createSurface({
409
- id: `${DEBUG_PLUGIN}/plugin-settings`,
412
+ id: `${meta.id}/plugin-settings`,
410
413
  role: "article",
411
- filter: (data) => data.subject instanceof SettingsStore && data.subject.prefix === DEBUG_PLUGIN,
414
+ filter: (data) => data.subject instanceof SettingsStore && data.subject.prefix === meta.id,
412
415
  component: ({ data: { subject } }) => /* @__PURE__ */ React5.createElement(DebugSettings, {
413
416
  settings: subject.value
414
417
  })
415
418
  }),
416
419
  createSurface({
417
- id: `${DEBUG_PLUGIN}/space`,
420
+ id: `${meta.id}/space`,
418
421
  role: "article",
419
422
  filter: (data) => isSpaceDebug(data.subject),
420
423
  component: ({ data }) => {
@@ -443,22 +446,23 @@ var react_surface_default = (context) => contributes(Capabilities2.ReactSurface,
443
446
  }
444
447
  }),
445
448
  createSurface({
446
- id: `${DEBUG_PLUGIN}/graph`,
449
+ id: `${meta.id}/app-graph`,
447
450
  role: "article",
448
451
  filter: (data) => isGraphDebug(data.subject),
449
- component: ({ data }) => /* @__PURE__ */ React5.createElement(DebugApp, {
450
- graph: data.subject.graph
452
+ component: ({ data }) => /* @__PURE__ */ React5.createElement(DebugGraph, {
453
+ graph: data.subject.graph,
454
+ root: data.subject.root
451
455
  })
452
456
  }),
453
457
  createSurface({
454
- id: `${DEBUG_PLUGIN}/wireframe`,
458
+ id: `${meta.id}/wireframe`,
455
459
  role: [
456
460
  "article",
457
461
  "section"
458
462
  ],
459
463
  position: "hoist",
460
464
  filter: (data) => {
461
- const settings = context.getCapability(Capabilities2.SettingsStore).getStore(DEBUG_PLUGIN).value;
465
+ const settings = context.getCapability(Capabilities2.SettingsStore).getStore(meta.id).value;
462
466
  return Obj.isObject(data.subject) && !!settings.wireframe;
463
467
  },
464
468
  component: ({ data, role }) => /* @__PURE__ */ React5.createElement(Wireframe, {
@@ -468,7 +472,7 @@ var react_surface_default = (context) => contributes(Capabilities2.ReactSurface,
468
472
  })
469
473
  }),
470
474
  createSurface({
471
- id: `${DEBUG_PLUGIN}/object-debug`,
475
+ id: `${meta.id}/object-debug`,
472
476
  role: "article",
473
477
  filter: (data) => data.subject === "debug" && Obj.isObject(data.companionTo),
474
478
  component: ({ data }) => /* @__PURE__ */ React5.createElement(DebugObjectPanel, {
@@ -476,12 +480,12 @@ var react_surface_default = (context) => contributes(Capabilities2.ReactSurface,
476
480
  })
477
481
  }),
478
482
  createSurface({
479
- id: `${DEBUG_PLUGIN}/devtools-overview`,
483
+ id: `${meta.id}/devtools-overview`,
480
484
  role: "deck-companion--devtools",
481
485
  component: () => /* @__PURE__ */ React5.createElement(DevtoolsOverviewContainer, null)
482
486
  }),
483
487
  createSurface({
484
- id: `${DEBUG_PLUGIN}/status`,
488
+ id: `${meta.id}/status`,
485
489
  role: "status",
486
490
  component: () => /* @__PURE__ */ React5.createElement(DebugStatus, null)
487
491
  }),
@@ -489,7 +493,7 @@ var react_surface_default = (context) => contributes(Capabilities2.ReactSurface,
489
493
  // Devtools
490
494
  //
491
495
  createSurface({
492
- id: `${DEBUG_PLUGIN}/client/config`,
496
+ id: `${meta.id}/client/config`,
493
497
  role: "article",
494
498
  filter: (data) => data.subject === Devtools.Client.Config,
495
499
  component: () => /* @__PURE__ */ React5.createElement(ConfigPanel, {
@@ -497,49 +501,49 @@ var react_surface_default = (context) => contributes(Capabilities2.ReactSurface,
497
501
  })
498
502
  }),
499
503
  createSurface({
500
- id: `${DEBUG_PLUGIN}/client/storage`,
504
+ id: `${meta.id}/client/storage`,
501
505
  role: "article",
502
506
  filter: (data) => data.subject === Devtools.Client.Storage,
503
507
  component: () => /* @__PURE__ */ React5.createElement(StoragePanel, null)
504
508
  }),
505
509
  createSurface({
506
- id: `${DEBUG_PLUGIN}/client/logs`,
510
+ id: `${meta.id}/client/logs`,
507
511
  role: "article",
508
512
  filter: (data) => data.subject === Devtools.Client.Logs,
509
513
  component: () => /* @__PURE__ */ React5.createElement(LoggingPanel, null)
510
514
  }),
511
515
  createSurface({
512
- id: `${DEBUG_PLUGIN}/client/diagnostics`,
516
+ id: `${meta.id}/client/diagnostics`,
513
517
  role: "article",
514
518
  filter: (data) => data.subject === Devtools.Client.Diagnostics,
515
519
  component: () => /* @__PURE__ */ React5.createElement(DiagnosticsPanel, null)
516
520
  }),
517
521
  createSurface({
518
- id: `${DEBUG_PLUGIN}/client/tracing`,
522
+ id: `${meta.id}/client/tracing`,
519
523
  role: "article",
520
524
  filter: (data) => data.subject === Devtools.Client.Tracing,
521
525
  component: () => /* @__PURE__ */ React5.createElement(TracingPanel, null)
522
526
  }),
523
527
  createSurface({
524
- id: `${DEBUG_PLUGIN}/halo/identity`,
528
+ id: `${meta.id}/halo/identity`,
525
529
  role: "article",
526
530
  filter: (data) => data.subject === Devtools.Halo.Identity,
527
531
  component: () => /* @__PURE__ */ React5.createElement(IdentityPanel, null)
528
532
  }),
529
533
  createSurface({
530
- id: `${DEBUG_PLUGIN}/halo/devices`,
534
+ id: `${meta.id}/halo/devices`,
531
535
  role: "article",
532
536
  filter: (data) => data.subject === Devtools.Halo.Devices,
533
537
  component: () => /* @__PURE__ */ React5.createElement(DeviceListPanel, null)
534
538
  }),
535
539
  createSurface({
536
- id: `${DEBUG_PLUGIN}/halo/keyring`,
540
+ id: `${meta.id}/halo/keyring`,
537
541
  role: "article",
538
542
  filter: (data) => data.subject === Devtools.Halo.Keyring,
539
543
  component: () => /* @__PURE__ */ React5.createElement(KeyringPanel, null)
540
544
  }),
541
545
  createSurface({
542
- id: `${DEBUG_PLUGIN}/halo/credentials`,
546
+ id: `${meta.id}/halo/credentials`,
543
547
  role: "article",
544
548
  filter: (data) => data.subject === Devtools.Halo.Credentials,
545
549
  component: () => {
@@ -550,7 +554,7 @@ var react_surface_default = (context) => contributes(Capabilities2.ReactSurface,
550
554
  }
551
555
  }),
552
556
  createSurface({
553
- id: `${DEBUG_PLUGIN}/echo/spaces`,
557
+ id: `${meta.id}/echo/spaces`,
554
558
  role: "article",
555
559
  filter: (data) => data.subject === Devtools.Echo.Spaces,
556
560
  component: () => {
@@ -569,7 +573,7 @@ var react_surface_default = (context) => contributes(Capabilities2.ReactSurface,
569
573
  }
570
574
  }),
571
575
  createSurface({
572
- id: `${DEBUG_PLUGIN}/echo/space`,
576
+ id: `${meta.id}/echo/space`,
573
577
  role: "article",
574
578
  filter: (data) => data.subject === Devtools.Echo.Space,
575
579
  component: () => {
@@ -591,7 +595,7 @@ var react_surface_default = (context) => contributes(Capabilities2.ReactSurface,
591
595
  }
592
596
  }),
593
597
  createSurface({
594
- id: `${DEBUG_PLUGIN}/echo/feeds`,
598
+ id: `${meta.id}/echo/feeds`,
595
599
  role: "article",
596
600
  filter: (data) => data.subject === Devtools.Echo.Feeds,
597
601
  component: () => {
@@ -602,7 +606,7 @@ var react_surface_default = (context) => contributes(Capabilities2.ReactSurface,
602
606
  }
603
607
  }),
604
608
  createSurface({
605
- id: `${DEBUG_PLUGIN}/echo/objects`,
609
+ id: `${meta.id}/echo/objects`,
606
610
  role: "article",
607
611
  filter: (data) => data.subject === Devtools.Echo.Objects,
608
612
  component: () => {
@@ -613,7 +617,7 @@ var react_surface_default = (context) => contributes(Capabilities2.ReactSurface,
613
617
  }
614
618
  }),
615
619
  createSurface({
616
- id: `${DEBUG_PLUGIN}/echo/schema`,
620
+ id: `${meta.id}/echo/schema`,
617
621
  role: "article",
618
622
  filter: (data) => data.subject === Devtools.Echo.Schema,
619
623
  component: () => {
@@ -624,7 +628,7 @@ var react_surface_default = (context) => contributes(Capabilities2.ReactSurface,
624
628
  }
625
629
  }),
626
630
  createSurface({
627
- id: `${DEBUG_PLUGIN}/echo/automerge`,
631
+ id: `${meta.id}/echo/automerge`,
628
632
  role: "article",
629
633
  filter: (data) => data.subject === Devtools.Echo.Automerge,
630
634
  component: () => {
@@ -635,13 +639,13 @@ var react_surface_default = (context) => contributes(Capabilities2.ReactSurface,
635
639
  }
636
640
  }),
637
641
  createSurface({
638
- id: `${DEBUG_PLUGIN}/echo/queues`,
642
+ id: `${meta.id}/echo/queues`,
639
643
  role: "article",
640
644
  filter: (data) => data.subject === Devtools.Echo.Queues,
641
645
  component: () => /* @__PURE__ */ React5.createElement(QueuesPanel, null)
642
646
  }),
643
647
  createSurface({
644
- id: `${DEBUG_PLUGIN}/echo/members`,
648
+ id: `${meta.id}/echo/members`,
645
649
  role: "article",
646
650
  filter: (data) => data.subject === Devtools.Echo.Members,
647
651
  component: () => {
@@ -652,25 +656,25 @@ var react_surface_default = (context) => contributes(Capabilities2.ReactSurface,
652
656
  }
653
657
  }),
654
658
  createSurface({
655
- id: `${DEBUG_PLUGIN}/echo/metadata`,
659
+ id: `${meta.id}/echo/metadata`,
656
660
  role: "article",
657
661
  filter: (data) => data.subject === Devtools.Echo.Metadata,
658
662
  component: () => /* @__PURE__ */ React5.createElement(MetadataPanel, null)
659
663
  }),
660
664
  createSurface({
661
- id: `${DEBUG_PLUGIN}/mesh/signal`,
665
+ id: `${meta.id}/mesh/signal`,
662
666
  role: "article",
663
667
  filter: (data) => data.subject === Devtools.Mesh.Signal,
664
668
  component: () => /* @__PURE__ */ React5.createElement(SignalPanel, null)
665
669
  }),
666
670
  createSurface({
667
- id: `${DEBUG_PLUGIN}/mesh/swarm`,
671
+ id: `${meta.id}/mesh/swarm`,
668
672
  role: "article",
669
673
  filter: (data) => data.subject === Devtools.Mesh.Swarm,
670
674
  component: () => /* @__PURE__ */ React5.createElement(SwarmPanel, null)
671
675
  }),
672
676
  createSurface({
673
- id: `${DEBUG_PLUGIN}/mesh/network`,
677
+ id: `${meta.id}/mesh/network`,
674
678
  role: "article",
675
679
  filter: (data) => data.subject === Devtools.Mesh.Network,
676
680
  component: () => {
@@ -682,19 +686,19 @@ var react_surface_default = (context) => contributes(Capabilities2.ReactSurface,
682
686
  }),
683
687
  // TODO(wittjosiah): Remove?
684
688
  // createSurface({
685
- // id: `${DEBUG_PLUGIN}/agent/dashboard`,
689
+ // id: `${meta.id}/agent/dashboard`,
686
690
  // role: 'article',
687
691
  // filter: (data): data is any => data.subject === Devtools.Agent.Dashboard,
688
692
  // component: () => <DashboardPanel />,
689
693
  // }),
690
694
  createSurface({
691
- id: `${DEBUG_PLUGIN}/edge/dashboard`,
695
+ id: `${meta.id}/edge/dashboard`,
692
696
  role: "article",
693
697
  filter: (data) => data.subject === Devtools.Edge.Dashboard,
694
698
  component: () => /* @__PURE__ */ React5.createElement(EdgeDashboardPanel, null)
695
699
  }),
696
700
  createSurface({
697
- id: `${DEBUG_PLUGIN}/edge/workflows`,
701
+ id: `${meta.id}/edge/workflows`,
698
702
  role: "article",
699
703
  filter: (data) => data.subject === Devtools.Edge.Workflows,
700
704
  component: () => {
@@ -705,7 +709,7 @@ var react_surface_default = (context) => contributes(Capabilities2.ReactSurface,
705
709
  }
706
710
  }),
707
711
  createSurface({
708
- id: `${DEBUG_PLUGIN}/edge/traces`,
712
+ id: `${meta.id}/edge/traces`,
709
713
  role: "article",
710
714
  filter: (data) => data.subject === Devtools.Edge.Traces,
711
715
  component: () => {
@@ -717,7 +721,7 @@ var react_surface_default = (context) => contributes(Capabilities2.ReactSurface,
717
721
  }
718
722
  }),
719
723
  createSurface({
720
- id: `${DEBUG_PLUGIN}/edge/testing`,
724
+ id: `${meta.id}/edge/testing`,
721
725
  role: "article",
722
726
  filter: (data) => data.subject === Devtools.Edge.Testing,
723
727
  component: () => {
@@ -733,7 +737,7 @@ var react_surface_default = (context) => contributes(Capabilities2.ReactSurface,
733
737
  ]);
734
738
  const onScriptPluginOpen = useCallback(async (space) => {
735
739
  await space.waitUntilReady();
736
- const result = await dispatch(pipe(createIntent(ScriptAction.Create, {
740
+ const result = await dispatch(Function.pipe(createIntent(ScriptAction.CreateScript, {
737
741
  space
738
742
  }), chain(SpaceAction.AddObject, {
739
743
  target: space
@@ -742,7 +746,7 @@ var react_surface_default = (context) => contributes(Capabilities2.ReactSurface,
742
746
  result
743
747
  }, {
744
748
  F: __dxlog_file2,
745
- L: 387,
749
+ L: 389,
746
750
  S: void 0,
747
751
  C: (f, a) => f(...a)
748
752
  });
@@ -761,8 +765,8 @@ var react_surface_default = (context) => contributes(Capabilities2.ReactSurface,
761
765
  });
762
766
  }
763
767
  })
764
- ]);
768
+ ]));
765
769
  export {
766
770
  react_surface_default as default
767
771
  };
768
- //# sourceMappingURL=react-surface-UNFNQFWK.mjs.map
772
+ //# sourceMappingURL=react-surface-GFORPA3A.mjs.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../src/capabilities/react-surface.tsx", "../../../src/components/index.ts", "../../../src/components/DebugObjectPanel.tsx", "../../../src/components/DebugSettings.tsx", "../../../src/components/DebugStatus.tsx", "../../../src/components/Wireframe.tsx"],
4
+ "sourcesContent": ["//\n// Copyright 2025 DXOS.org\n//\n\nimport * as Function from 'effect/Function';\nimport React, { useCallback } from 'react';\n\nimport {\n Capabilities,\n LayoutAction,\n type PluginContext,\n chain,\n contributes,\n createIntent,\n createSurface,\n useCapability,\n useIntentDispatcher,\n} from '@dxos/app-framework';\nimport {\n AutomergePanel,\n ConfigPanel,\n CredentialsPanel,\n DeviceListPanel,\n DiagnosticsPanel,\n EdgeDashboardPanel,\n FeedsPanel,\n IdentityPanel,\n InvocationTraceContainer,\n KeyringPanel,\n LoggingPanel,\n MembersPanel,\n MetadataPanel,\n NetworkPanel,\n ObjectsPanel,\n QueuesPanel,\n SchemaPanel,\n SignalPanel,\n SpaceInfoPanel,\n SpaceListPanel,\n StoragePanel,\n SwarmPanel,\n TestingPanel,\n TracingPanel,\n WorkflowPanel,\n} from '@dxos/devtools';\nimport { Obj } from '@dxos/echo';\nimport { SettingsStore } from '@dxos/local-storage';\nimport { log } from '@dxos/log';\nimport { ClientCapabilities } from '@dxos/plugin-client';\nimport { Graph } from '@dxos/plugin-graph';\nimport { ScriptAction } from '@dxos/plugin-script/types';\nimport { SpaceAction } from '@dxos/plugin-space/types';\nimport { type Space, SpaceState, isSpace, parseId } from '@dxos/react-client/echo';\nimport { StackItem } from '@dxos/react-ui-stack';\nimport { DataType } from '@dxos/schema';\n\nimport {\n DebugGraph,\n DebugObjectPanel,\n DebugSettings,\n DebugStatus,\n DevtoolsOverviewContainer,\n SpaceGenerator,\n Wireframe,\n} from '../components';\nimport { meta } from '../meta';\nimport { type DebugSettingsProps, Devtools } from '../types';\n\ntype SpaceDebug = {\n type: string;\n space: Space;\n};\n\ntype GraphDebug = {\n graph: Graph;\n root: string;\n};\n\nconst isSpaceDebug = (data: any): data is SpaceDebug => data?.type === `${meta.id}/space` && isSpace(data.space);\nconst isGraphDebug = (data: any): data is GraphDebug => data?.graph instanceof Graph && typeof data?.root === 'string';\n\n// TODO(wittjosiah): Factor out?\nconst useCurrentSpace = () => {\n const layout = useCapability(Capabilities.Layout);\n const client = useCapability(ClientCapabilities.Client);\n const { spaceId } = parseId(layout.workspace);\n const space = spaceId ? client.spaces.get(spaceId) : undefined;\n return space;\n};\n\nexport default (context: PluginContext) =>\n contributes(Capabilities.ReactSurface, [\n createSurface({\n id: `${meta.id}/plugin-settings`,\n role: 'article',\n filter: (data): data is { subject: SettingsStore<DebugSettingsProps> } =>\n data.subject instanceof SettingsStore && data.subject.prefix === meta.id,\n component: ({ data: { subject } }) => <DebugSettings settings={subject.value} />,\n }),\n createSurface({\n id: `${meta.id}/space`,\n role: 'article',\n filter: (data): data is { subject: SpaceDebug } => isSpaceDebug(data.subject),\n component: ({ data }) => {\n const { dispatchPromise: dispatch } = useIntentDispatcher();\n\n const handleCreateObject = useCallback(\n (objects: Obj.Any[]) => {\n if (!isSpace(data.subject.space)) {\n return;\n }\n\n const collection =\n data.subject.space.state.get() === SpaceState.SPACE_READY &&\n data.subject.space.properties[DataType.Collection.typename]?.target;\n if (!Obj.instanceOf(DataType.Collection, collection)) {\n return;\n }\n\n objects.forEach((object) => {\n void dispatch(createIntent(SpaceAction.AddObject, { target: collection, object }));\n });\n },\n [data.subject.space],\n );\n\n return (\n <StackItem.Content>\n <SpaceGenerator space={data.subject.space} onCreateObjects={handleCreateObject} />\n </StackItem.Content>\n );\n },\n }),\n createSurface({\n id: `${meta.id}/app-graph`,\n role: 'article',\n filter: (data): data is { subject: GraphDebug } => isGraphDebug(data.subject),\n component: ({ data }) => <DebugGraph graph={data.subject.graph} root={data.subject.root} />,\n }),\n createSurface({\n id: `${meta.id}/wireframe`,\n role: ['article', 'section'],\n position: 'hoist',\n filter: (data): data is { subject: Obj.Any } => {\n const settings = context.getCapability(Capabilities.SettingsStore).getStore<DebugSettingsProps>(meta.id)!.value;\n return Obj.isObject(data.subject) && !!settings.wireframe;\n },\n component: ({ data, role }) => (\n <Wireframe label={`${role}:${name}`} object={data.subject} classNames='row-span-2 overflow-hidden' />\n ),\n }),\n createSurface({\n id: `${meta.id}/object-debug`,\n role: 'article',\n filter: (data): data is { companionTo: Obj.Any } => data.subject === 'debug' && Obj.isObject(data.companionTo),\n component: ({ data }) => <DebugObjectPanel object={data.companionTo} />,\n }),\n createSurface({\n id: `${meta.id}/devtools-overview`,\n role: 'deck-companion--devtools',\n component: () => <DevtoolsOverviewContainer />,\n }),\n createSurface({\n id: `${meta.id}/status`,\n role: 'status',\n component: () => <DebugStatus />,\n }),\n\n //\n // Devtools\n //\n\n createSurface({\n id: `${meta.id}/client/config`,\n role: 'article',\n filter: (data): data is any => data.subject === Devtools.Client.Config,\n component: () => <ConfigPanel vaultSelector={false} />,\n }),\n createSurface({\n id: `${meta.id}/client/storage`,\n role: 'article',\n filter: (data): data is any => data.subject === Devtools.Client.Storage,\n component: () => <StoragePanel />,\n }),\n createSurface({\n id: `${meta.id}/client/logs`,\n role: 'article',\n filter: (data): data is any => data.subject === Devtools.Client.Logs,\n component: () => <LoggingPanel />,\n }),\n createSurface({\n id: `${meta.id}/client/diagnostics`,\n role: 'article',\n filter: (data): data is any => data.subject === Devtools.Client.Diagnostics,\n component: () => <DiagnosticsPanel />,\n }),\n createSurface({\n id: `${meta.id}/client/tracing`,\n role: 'article',\n filter: (data): data is any => data.subject === Devtools.Client.Tracing,\n component: () => <TracingPanel />,\n }),\n createSurface({\n id: `${meta.id}/halo/identity`,\n role: 'article',\n filter: (data): data is any => data.subject === Devtools.Halo.Identity,\n component: () => <IdentityPanel />,\n }),\n createSurface({\n id: `${meta.id}/halo/devices`,\n role: 'article',\n filter: (data): data is any => data.subject === Devtools.Halo.Devices,\n component: () => <DeviceListPanel />,\n }),\n createSurface({\n id: `${meta.id}/halo/keyring`,\n role: 'article',\n filter: (data): data is any => data.subject === Devtools.Halo.Keyring,\n component: () => <KeyringPanel />,\n }),\n createSurface({\n id: `${meta.id}/halo/credentials`,\n role: 'article',\n filter: (data): data is any => data.subject === Devtools.Halo.Credentials,\n component: () => {\n const space = useCurrentSpace();\n return <CredentialsPanel space={space} />;\n },\n }),\n createSurface({\n id: `${meta.id}/echo/spaces`,\n role: 'article',\n filter: (data): data is any => data.subject === Devtools.Echo.Spaces,\n component: () => {\n const { dispatchPromise: dispatch } = useIntentDispatcher();\n const handleSelect = useCallback(\n () => dispatch(createIntent(LayoutAction.Open, { part: 'main', subject: [Devtools.Echo.Space] })),\n [dispatch],\n );\n return <SpaceListPanel onSelect={handleSelect} />;\n },\n }),\n createSurface({\n id: `${meta.id}/echo/space`,\n role: 'article',\n filter: (data): data is any => data.subject === Devtools.Echo.Space,\n component: () => {\n const space = useCurrentSpace();\n const { dispatchPromise: dispatch } = useIntentDispatcher();\n const handleSelect = useCallback(\n () => dispatch(createIntent(LayoutAction.Open, { part: 'main', subject: [Devtools.Echo.Feeds] })),\n [dispatch],\n );\n return <SpaceInfoPanel space={space} onSelectFeed={handleSelect} onSelectPipeline={handleSelect} />;\n },\n }),\n createSurface({\n id: `${meta.id}/echo/feeds`,\n role: 'article',\n filter: (data): data is any => data.subject === Devtools.Echo.Feeds,\n component: () => {\n const space = useCurrentSpace();\n return <FeedsPanel space={space} />;\n },\n }),\n createSurface({\n id: `${meta.id}/echo/objects`,\n role: 'article',\n filter: (data): data is any => data.subject === Devtools.Echo.Objects,\n component: () => {\n const space = useCurrentSpace();\n return <ObjectsPanel space={space} />;\n },\n }),\n createSurface({\n id: `${meta.id}/echo/schema`,\n role: 'article',\n filter: (data): data is any => data.subject === Devtools.Echo.Schema,\n component: () => {\n const space = useCurrentSpace();\n return <SchemaPanel space={space} />;\n },\n }),\n createSurface({\n id: `${meta.id}/echo/automerge`,\n role: 'article',\n filter: (data): data is any => data.subject === Devtools.Echo.Automerge,\n component: () => {\n const space = useCurrentSpace();\n return <AutomergePanel space={space} />;\n },\n }),\n createSurface({\n id: `${meta.id}/echo/queues`,\n role: 'article',\n filter: (data): data is any => data.subject === Devtools.Echo.Queues,\n component: () => <QueuesPanel />,\n }),\n createSurface({\n id: `${meta.id}/echo/members`,\n role: 'article',\n filter: (data): data is any => data.subject === Devtools.Echo.Members,\n component: () => {\n const space = useCurrentSpace();\n return <MembersPanel space={space} />;\n },\n }),\n createSurface({\n id: `${meta.id}/echo/metadata`,\n role: 'article',\n filter: (data): data is any => data.subject === Devtools.Echo.Metadata,\n component: () => <MetadataPanel />,\n }),\n createSurface({\n id: `${meta.id}/mesh/signal`,\n role: 'article',\n filter: (data): data is any => data.subject === Devtools.Mesh.Signal,\n component: () => <SignalPanel />,\n }),\n createSurface({\n id: `${meta.id}/mesh/swarm`,\n role: 'article',\n filter: (data): data is any => data.subject === Devtools.Mesh.Swarm,\n component: () => <SwarmPanel />,\n }),\n createSurface({\n id: `${meta.id}/mesh/network`,\n role: 'article',\n filter: (data): data is any => data.subject === Devtools.Mesh.Network,\n component: () => {\n const space = useCurrentSpace();\n return <NetworkPanel space={space} />;\n },\n }),\n // TODO(wittjosiah): Remove?\n // createSurface({\n // id: `${meta.id}/agent/dashboard`,\n // role: 'article',\n // filter: (data): data is any => data.subject === Devtools.Agent.Dashboard,\n // component: () => <DashboardPanel />,\n // }),\n createSurface({\n id: `${meta.id}/edge/dashboard`,\n role: 'article',\n filter: (data): data is any => data.subject === Devtools.Edge.Dashboard,\n component: () => <EdgeDashboardPanel />,\n }),\n createSurface({\n id: `${meta.id}/edge/workflows`,\n role: 'article',\n filter: (data): data is any => data.subject === Devtools.Edge.Workflows,\n component: () => {\n const space = useCurrentSpace();\n return <WorkflowPanel space={space} />;\n },\n }),\n createSurface({\n id: `${meta.id}/edge/traces`,\n role: 'article',\n filter: (data): data is any => data.subject === Devtools.Edge.Traces,\n component: () => {\n const space = useCurrentSpace();\n return <InvocationTraceContainer space={space} detailAxis='block' />;\n },\n }),\n createSurface({\n id: `${meta.id}/edge/testing`,\n role: 'article',\n filter: (data): data is any => data.subject === Devtools.Edge.Testing,\n component: () => {\n const { dispatchPromise: dispatch } = useIntentDispatcher();\n const onSpaceCreate = useCallback(\n async (space: Space) => {\n await space.waitUntilReady();\n await dispatch(createIntent(SpaceAction.Migrate, { space }));\n await space.db.flush();\n },\n [dispatch],\n );\n const onScriptPluginOpen = useCallback(\n async (space: Space) => {\n await space.waitUntilReady();\n const result = await dispatch(\n Function.pipe(\n createIntent(ScriptAction.CreateScript, { space }),\n chain(SpaceAction.AddObject, { target: space }),\n ),\n );\n log.info('script created', { result });\n await dispatch(\n createIntent(LayoutAction.Open, { part: 'main', subject: [`${space.id}:${result.data?.object.id}`] }),\n );\n },\n [dispatch],\n );\n return <TestingPanel onSpaceCreate={onSpaceCreate} onScriptPluginOpen={onScriptPluginOpen} />;\n },\n }),\n ]);\n", "//\n// Copyright 2023 DXOS.org\n//\n\nimport { lazy } from 'react';\n\nexport const DebugGraph = lazy(() => import('./DebugGraph'));\nexport const DevtoolsOverviewContainer = lazy(() => import('./DevtoolsOverviewContainer'));\nexport const SpaceGenerator = lazy(() => import('./SpaceGenerator'));\n\nexport * from './DebugObjectPanel';\nexport * from './DebugSettings';\nexport * from './DebugStatus';\nexport * from './Wireframe';\n", "//\n// Copyright 2024 DXOS.org\n//\n\nimport React from 'react';\n\nimport { type Obj } from '@dxos/echo';\nimport { Clipboard, Input, Toolbar } from '@dxos/react-ui';\nimport { StackItem } from '@dxos/react-ui-stack';\nimport { Json } from '@dxos/react-ui-syntax-highlighter';\n\nexport type DebugObjectPanelProps = {\n object: Obj.Any;\n};\n\n// TODO(burdon): Get schema and traverse references.\nexport const DebugObjectPanel = ({ object }: DebugObjectPanelProps) => {\n const dxn = `dxn:echo:@:${object.id}`;\n\n return (\n <Clipboard.Provider>\n <StackItem.Content toolbar>\n <Toolbar.Root>\n <Input.Root>\n <Input.TextInput disabled value={dxn} />\n <Clipboard.IconButton value={dxn} />\n </Input.Root>\n </Toolbar.Root>\n <Json data={object} />\n </StackItem.Content>\n </Clipboard.Provider>\n );\n};\n", "//\n// Copyright 2023 DXOS.org\n//\n\nimport React, { useEffect, useState } from 'react';\n\nimport { Capabilities, useCapabilities } from '@dxos/app-framework';\nimport { type ConfigProto, SaveConfig, Storage, defs } from '@dxos/config';\nimport { log } from '@dxos/log';\nimport { useClient } from '@dxos/react-client';\nimport { Button, Icon, Input, Select, Toast, useFileDownload, useTranslation } from '@dxos/react-ui';\nimport { ControlGroup, ControlItemInput, ControlPage, ControlSection } from '@dxos/react-ui-form';\nimport { setDeep } from '@dxos/util';\n\nimport { meta } from '../meta';\nimport { type DebugSettingsProps } from '../types';\n\ntype Toast = {\n title: string;\n description?: string;\n};\n\nconst StorageAdapters = {\n opfs: defs.Runtime.Client.Storage.StorageDriver.WEBFS,\n idb: defs.Runtime.Client.Storage.StorageDriver.IDB,\n} as const;\n\nexport const DebugSettings = ({ settings }: { settings: DebugSettingsProps }) => {\n const { t } = useTranslation(meta.id);\n const [toast, setToast] = useState<Toast>();\n const client = useClient();\n const download = useFileDownload();\n // TODO(mykola): Get updates from other places that change Config.\n const [storageConfig, setStorageConfig] = useState<ConfigProto>({});\n const [upload] = useCapabilities(Capabilities.FileUploader);\n\n useEffect(() => {\n void Storage().then((config) => setStorageConfig(config));\n }, []);\n\n const handleToast = (toast: Toast) => {\n setToast(toast);\n const t = setTimeout(() => setToast(undefined), 5_000);\n return () => clearTimeout(t);\n };\n\n const handleDownload = async () => {\n const data = await client.diagnostics();\n const file = new Blob([JSON.stringify(data, undefined, 2)], { type: 'text/plain' });\n const fileName = `composer-${new Date().toISOString().replace(/\\W/g, '-')}.json`;\n download(file, fileName);\n\n if (upload) {\n const info = await upload(new File([file], fileName), client.spaces.default);\n if (!info) {\n log.error('diagnostics failed to upload to IPFS');\n return;\n }\n handleToast({ title: t('settings uploaded'), description: t('settings uploaded to clipboard') });\n\n // TODO(nf): move to IpfsPlugin?\n const url = client.config.values.runtime!.services!.ipfs!.gateway + '/' + info.cid;\n void navigator.clipboard.writeText(url);\n handleToast({ title: t('settings uploaded'), description: t('settings uploaded to clipboard') });\n log.info('diagnostics', { url });\n }\n };\n\n const handleRepair = async () => {\n try {\n const info = await client.repair();\n setStorageConfig(await Storage());\n handleToast({ title: t('settings repair success'), description: JSON.stringify(info, undefined, 2) });\n } catch (err: any) {\n handleToast({ title: t('settings repair failed'), description: err.message });\n }\n };\n\n return (\n <ControlPage>\n <ControlSection title={t('settings title', { ns: meta.id })}>\n <ControlGroup>\n <ControlItemInput title={t('settings wireframe')}>\n <Input.Switch\n checked={settings.wireframe}\n onCheckedChange={(checked) => (settings.wireframe = !!checked)}\n />\n </ControlItemInput>\n <ControlItemInput title={t('settings download diagnostics')}>\n <Button onClick={handleDownload}>\n <Icon icon='ph--download-simple--regular' size={5} />\n </Button>\n </ControlItemInput>\n <ControlItemInput title={t('settings repair')}>\n <Button onClick={handleRepair}>\n <Icon icon='ph--first-aid-kit--regular' size={5} />\n </Button>\n </ControlItemInput>\n\n {/* TODO(burdon): Move to layout? */}\n {toast && (\n <Toast.Root>\n <Toast.Body>\n <Toast.Title>\n <Icon icon='ph--gift--duotone' size={5} classNames='inline mr-1' />\n <span>{toast.title}</span>\n </Toast.Title>\n {toast.description && <Toast.Description>{toast.description}</Toast.Description>}\n </Toast.Body>\n </Toast.Root>\n )}\n\n <ControlItemInput title={t('settings choose storage adaptor')}>\n <Select.Root\n value={\n Object.entries(StorageAdapters).find(\n ([name, value]) => value === storageConfig?.runtime?.client?.storage?.dataStore,\n )?.[0]\n }\n onValueChange={(value) => {\n if (confirm(t('settings storage adapter changed alert'))) {\n updateConfig(\n storageConfig,\n setStorageConfig,\n ['runtime', 'client', 'storage', 'dataStore'],\n StorageAdapters[value as keyof typeof StorageAdapters],\n );\n }\n }}\n >\n <Select.TriggerButton placeholder={t('settings data store label')} />\n <Select.Portal>\n <Select.Content>\n <Select.Viewport>\n {Object.keys(StorageAdapters).map((key) => (\n <Select.Option key={key} value={key}>\n {t(`settings storage adaptor ${key} label`)}\n </Select.Option>\n ))}\n </Select.Viewport>\n <Select.Arrow />\n </Select.Content>\n </Select.Portal>\n </Select.Root>\n </ControlItemInput>\n </ControlGroup>\n </ControlSection>\n </ControlPage>\n );\n};\n\nconst updateConfig = (config: ConfigProto, setConfig: (newConfig: ConfigProto) => void, path: string[], value: any) => {\n const storageConfigCopy = JSON.parse(JSON.stringify(config ?? {}));\n setDeep(storageConfigCopy, path, value);\n setConfig(storageConfigCopy);\n queueMicrotask(async () => {\n await SaveConfig(storageConfigCopy);\n });\n};\n", "//\n// Copyright 2023 DXOS.org\n//\n\nimport React, { useEffect, useRef, useState } from 'react';\n\nimport { TimeoutError } from '@dxos/async';\nimport { useActiveSpace } from '@dxos/plugin-space';\nimport { StatusBar } from '@dxos/plugin-status-bar';\nimport { ConnectionState } from '@dxos/protocols/proto/dxos/client/services';\nimport { useNetworkStatus } from '@dxos/react-client/mesh';\nimport { Icon } from '@dxos/react-ui';\n\nconst styles = {\n success: 'text-sky-300 dark:text-green-700',\n warning: 'text-orange-300 dark:text-orange-600',\n error: 'text-red-300 dark:text-red-600',\n};\n\n// TODO(burdon): Move out of debug plugin.\n// TODO(burdon): Make pluggable (move indicators to relevant plugins).\n// TODO(burdon): Vault heartbeat indicator (global scope)?\n\n/**\n * Ensure light doesn't flicker immediately after start.\n */\n// TODO(burdon): Move to @dxos/async (debounce?)\nconst _timer = (cb: (err?: Error) => void, options?: { min?: number; max?: number }) => {\n const min = options?.min ?? 500;\n let start: number;\n let pending: NodeJS.Timeout;\n let timeout: NodeJS.Timeout;\n return {\n start: () => {\n start = Date.now();\n clearTimeout(pending);\n if (options?.max) {\n clearTimeout(timeout);\n timeout = setTimeout(() => {\n cb(new TimeoutError(options.max));\n }, options.max);\n }\n },\n stop: () => {\n clearTimeout(timeout);\n const delta = Date.now() - start;\n if (delta < min) {\n pending = setTimeout(() => {\n cb();\n }, min - delta);\n }\n },\n };\n};\n\n/**\n * Global error handler.\n */\n// TODO(burdon): Integrate with Sentry?\nconst ErrorIndicator = () => {\n const [, forceUpdate] = useState({});\n const errorRef = useRef<Error>(null);\n useEffect(() => {\n const errorListener = (event: any) => {\n const error: Error = event.error ?? event.reason;\n if (errorRef.current !== error) {\n errorRef.current = error;\n forceUpdate({});\n }\n };\n\n // TODO(burdon): Register globally?\n // https://developer.mozilla.org/en-US/docs/Web/API/Window/error_event\n window.addEventListener('error', errorListener);\n\n // https://developer.mozilla.org/en-US/docs/Web/API/Window/unhandledrejection_event\n window.addEventListener('unhandledrejection', errorListener);\n\n return () => {\n window.removeEventListener('error', errorListener);\n window.removeEventListener('unhandledrejection', errorListener);\n };\n }, []);\n\n const handleReset = () => {\n errorRef.current = null;\n forceUpdate({});\n };\n\n if (errorRef.current) {\n return (\n <StatusBar.Button title={errorRef.current.message} onClick={handleReset}>\n <Icon icon='ph--warning-circle--duotone' size={4} classNames={styles.error} />\n </StatusBar.Button>\n );\n } else {\n return (\n <StatusBar.Item title='No errors.'>\n <Icon icon='ph--check--regular' size={4} />\n </StatusBar.Item>\n );\n }\n};\n\n/**\n * Swarm connection handler.\n */\nconst SwarmIndicator = () => {\n const [state, setState] = useState(0);\n const { swarm } = useNetworkStatus();\n useEffect(() => {\n setState(swarm === ConnectionState.ONLINE ? 0 : 1);\n }, [swarm]);\n\n if (state === 0) {\n return (\n <StatusBar.Item title='Connected to swarm.'>\n <Icon icon='ph--lightning--regular' size={4} />\n </StatusBar.Item>\n );\n } else {\n return (\n <StatusBar.Item title='Disconnected from swarm.'>\n <Icon icon='ph--lightning-slash--regular' size={4} classNames={styles.warning} />\n </StatusBar.Item>\n );\n }\n};\n\n/**\n * Data saving indicator.\n */\n// TODO(burdon): Merge with SaveStatus.\nconst SavingIndicator = () => {\n const [state, _setState] = useState(0);\n const _space = useActiveSpace();\n // TODO(dmaretskyi): Fix this when we have save status for automerge.\n // useEffect(() => {\n // if (!space) {\n // return;\n // }\n // const { start, stop } = timer(() => setState(0), { min: 250 });\n // return space.db.pendingBatch.on(({ duration, error }) => {\n // if (error) {\n // setState(2);\n // stop();\n // } else if (duration === undefined) {\n // setState(1);\n // start();\n // } else {\n // stop();\n // }\n // });\n // }, [space]);\n\n switch (state) {\n case 2:\n return (\n <StatusBar.Item title='Edit not saved.'>\n <Icon icon='ph--circle--duotone' size={4} classNames={styles.warning} />\n </StatusBar.Item>\n );\n case 1:\n return (\n <StatusBar.Item title='Saving...'>\n <Icon icon='ph--circle--duotone' size={4} classNames={styles.success} />\n </StatusBar.Item>\n );\n case 0:\n default:\n return (\n <StatusBar.Item title='Modified indicator.'>\n <Icon icon='ph--circle--duotone' size={4} />\n </StatusBar.Item>\n );\n }\n};\n\nconst indicators = [SavingIndicator, SwarmIndicator, ErrorIndicator];\n\nexport const DebugStatus = () => {\n return (\n <>\n {indicators.map((Indicator) => (\n <Indicator key={Indicator.name} />\n ))}\n </>\n );\n};\n", "//\n// Copyright 2024 DXOS.org\n//\n\nimport React from 'react';\nimport { useResizeDetector } from 'react-resize-detector';\n\nimport { type Obj } from '@dxos/echo';\nimport { fullyQualifiedId } from '@dxos/react-client/echo';\nimport { type ThemedClassName } from '@dxos/react-ui';\nimport { useAttentionAttributes } from '@dxos/react-ui-attention';\nimport { SyntaxHighlighter } from '@dxos/react-ui-syntax-highlighter';\nimport { mx } from '@dxos/react-ui-theme';\n\n// TODO(burdon): Create generic container with wireframe mode.\nexport type WireframeProps = ThemedClassName<{\n label?: string;\n object: Obj.Any;\n}>;\n\n// TODO(burdon): Make focusable and attendable with input.\nexport const Wireframe = ({ classNames, label, object }: WireframeProps) => {\n const attentionAttrs = useAttentionAttributes(fullyQualifiedId(object));\n const { width, height, ref } = useResizeDetector();\n\n return (\n <div ref={ref} className={mx('relative grow min-bs-96', classNames)} {...attentionAttrs}>\n <div className='absolute inset-2 flex flex-col gap-2 overflow-hidden font-mono'>\n <div className='flex justify-between'>\n <div>{label}</div>\n <div>{`[${width}x${height}]`}</div>\n </div>\n {object && (\n <SyntaxHighlighter language='json' classNames='text-xs opacity-75 rounded'>\n {JSON.stringify(object, undefined, 2)}\n </SyntaxHighlighter>\n )}\n </div>\n <svg width={width} height={height} className='bg-transparent *:text-subdued'>\n <rect x={0} y={0} width={width} height={height} strokeWidth={1} fill='none' />\n <line x1={0} y1={0} x2={width} y2={height} strokeWidth={1} />\n <line x1={0} y1={height} x2={width} y2={0} strokeWidth={1} />\n </svg>\n </div>\n );\n};\n"],
5
+ "mappings": "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",
6
+ "names": ["Function", "React", "useCallback", "Capabilities", "LayoutAction", "chain", "contributes", "createIntent", "createSurface", "useCapability", "useIntentDispatcher", "AutomergePanel", "ConfigPanel", "CredentialsPanel", "DeviceListPanel", "DiagnosticsPanel", "EdgeDashboardPanel", "FeedsPanel", "IdentityPanel", "InvocationTraceContainer", "KeyringPanel", "LoggingPanel", "MembersPanel", "MetadataPanel", "NetworkPanel", "ObjectsPanel", "QueuesPanel", "SchemaPanel", "SignalPanel", "SpaceInfoPanel", "SpaceListPanel", "StoragePanel", "SwarmPanel", "TestingPanel", "TracingPanel", "WorkflowPanel", "Obj", "SettingsStore", "log", "ClientCapabilities", "Graph", "ScriptAction", "SpaceAction", "SpaceState", "isSpace", "parseId", "StackItem", "DataType", "lazy", "React", "Clipboard", "Input", "Toolbar", "StackItem", "Json", "DebugObjectPanel", "object", "dxn", "id", "Clipboard", "Provider", "StackItem", "Content", "toolbar", "Toolbar", "Root", "Input", "TextInput", "disabled", "value", "IconButton", "Json", "data", "React", "useEffect", "useState", "Capabilities", "useCapabilities", "SaveConfig", "Storage", "defs", "log", "useClient", "Button", "Icon", "Input", "Select", "Toast", "useFileDownload", "useTranslation", "ControlGroup", "ControlItemInput", "ControlPage", "ControlSection", "setDeep", "StorageAdapters", "opfs", "defs", "Runtime", "Client", "Storage", "StorageDriver", "WEBFS", "idb", "IDB", "DebugSettings", "settings", "t", "useTranslation", "meta", "id", "toast", "setToast", "useState", "client", "useClient", "download", "useFileDownload", "storageConfig", "setStorageConfig", "upload", "useCapabilities", "Capabilities", "FileUploader", "useEffect", "then", "config", "handleToast", "setTimeout", "undefined", "clearTimeout", "handleDownload", "data", "diagnostics", "file", "Blob", "JSON", "stringify", "type", "fileName", "Date", "toISOString", "replace", "info", "File", "spaces", "default", "log", "error", "title", "description", "url", "values", "runtime", "services", "ipfs", "gateway", "cid", "navigator", "clipboard", "writeText", "handleRepair", "repair", "err", "message", "React", "ControlPage", "ControlSection", "ns", "ControlGroup", "ControlItemInput", "Input", "Switch", "checked", "wireframe", "onCheckedChange", "Button", "onClick", "Icon", "icon", "size", "Toast", "Root", "Body", "Title", "classNames", "span", "Description", "Select", "value", "Object", "entries", "find", "name", "storage", "dataStore", "onValueChange", "confirm", "updateConfig", "TriggerButton", "placeholder", "Portal", "Content", "Viewport", "keys", "map", "key", "Option", "Arrow", "setConfig", "path", "storageConfigCopy", "parse", "setDeep", "queueMicrotask", "SaveConfig", "React", "useEffect", "useRef", "useState", "TimeoutError", "useActiveSpace", "StatusBar", "ConnectionState", "useNetworkStatus", "Icon", "styles", "success", "warning", "error", "ErrorIndicator", "forceUpdate", "useState", "errorRef", "useRef", "useEffect", "errorListener", "event", "error", "reason", "current", "window", "addEventListener", "removeEventListener", "handleReset", "React", "StatusBar", "Button", "title", "message", "onClick", "Icon", "icon", "size", "classNames", "styles", "Item", "SwarmIndicator", "state", "setState", "swarm", "useNetworkStatus", "ConnectionState", "ONLINE", "warning", "SavingIndicator", "_setState", "_space", "useActiveSpace", "success", "indicators", "DebugStatus", "map", "Indicator", "key", "name", "React", "useResizeDetector", "fullyQualifiedId", "useAttentionAttributes", "SyntaxHighlighter", "mx", "Wireframe", "classNames", "label", "object", "attentionAttrs", "useAttentionAttributes", "fullyQualifiedId", "width", "height", "ref", "useResizeDetector", "React", "div", "className", "mx", "SyntaxHighlighter", "language", "JSON", "stringify", "undefined", "svg", "rect", "x", "y", "strokeWidth", "fill", "line", "x1", "y1", "x2", "y2", "DebugGraph", "lazy", "DevtoolsOverviewContainer", "SpaceGenerator", "isSpaceDebug", "data", "type", "meta", "id", "isSpace", "space", "isGraphDebug", "graph", "Graph", "root", "useCurrentSpace", "layout", "useCapability", "Capabilities", "Layout", "client", "ClientCapabilities", "Client", "spaceId", "parseId", "workspace", "spaces", "get", "undefined", "context", "contributes", "ReactSurface", "createSurface", "role", "filter", "subject", "SettingsStore", "prefix", "component", "React", "DebugSettings", "settings", "value", "dispatchPromise", "dispatch", "useIntentDispatcher", "handleCreateObject", "useCallback", "objects", "collection", "state", "SpaceState", "SPACE_READY", "properties", "DataType", "Collection", "typename", "target", "Obj", "instanceOf", "forEach", "object", "createIntent", "SpaceAction", "AddObject", "StackItem", "Content", "SpaceGenerator", "onCreateObjects", "DebugGraph", "position", "getCapability", "getStore", "isObject", "wireframe", "Wireframe", "label", "name", "classNames", "companionTo", "DebugObjectPanel", "DevtoolsOverviewContainer", "DebugStatus", "Devtools", "Config", "ConfigPanel", "vaultSelector", "Storage", "StoragePanel", "Logs", "LoggingPanel", "Diagnostics", "DiagnosticsPanel", "Tracing", "TracingPanel", "Halo", "Identity", "IdentityPanel", "Devices", "DeviceListPanel", "Keyring", "KeyringPanel", "Credentials", "CredentialsPanel", "Echo", "Spaces", "handleSelect", "LayoutAction", "Open", "part", "Space", "SpaceListPanel", "onSelect", "Feeds", "SpaceInfoPanel", "onSelectFeed", "onSelectPipeline", "FeedsPanel", "Objects", "ObjectsPanel", "Schema", "SchemaPanel", "Automerge", "AutomergePanel", "Queues", "QueuesPanel", "Members", "MembersPanel", "Metadata", "MetadataPanel", "Mesh", "Signal", "SignalPanel", "Swarm", "SwarmPanel", "Network", "NetworkPanel", "Edge", "Dashboard", "EdgeDashboardPanel", "Workflows", "WorkflowPanel", "Traces", "InvocationTraceContainer", "detailAxis", "Testing", "onSpaceCreate", "waitUntilReady", "Migrate", "db", "flush", "onScriptPluginOpen", "result", "pipe", "ScriptAction", "CreateScript", "chain", "log", "info", "TestingPanel"]
7
+ }
@@ -1,22 +1,22 @@
1
1
  import {
2
2
  DebugSettingsSchema
3
- } from "./chunk-AJA6RYN3.mjs";
3
+ } from "./chunk-SRV2AIGJ.mjs";
4
4
  import {
5
5
  meta
6
- } from "./chunk-5XPIRNQS.mjs";
6
+ } from "./chunk-SVCKCXCL.mjs";
7
7
 
8
8
  // src/capabilities/settings.ts
9
9
  import { Capabilities, contributes } from "@dxos/app-framework";
10
10
  import { live } from "@dxos/live-object";
11
- var settings_default = () => {
11
+ var settings_default = (() => {
12
12
  const settings = live({});
13
13
  return contributes(Capabilities.Settings, {
14
14
  prefix: meta.id,
15
15
  schema: DebugSettingsSchema,
16
16
  value: settings
17
17
  });
18
- };
18
+ });
19
19
  export {
20
20
  settings_default as default
21
21
  };
22
- //# sourceMappingURL=settings-LSSWLM5I.mjs.map
22
+ //# sourceMappingURL=settings-EBVICEEW.mjs.map