@dxos/plugin-debug 0.8.4-main.21d9917 → 0.8.4-main.2244d791bb

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 (47) hide show
  1. package/dist/lib/browser/{DevtoolsOverviewContainer-77PKFLYV.mjs → DevtoolsOverviewContainer-2C6XMJ3L.mjs} +3 -3
  2. package/dist/lib/browser/{DevtoolsOverviewContainer-77PKFLYV.mjs.map → DevtoolsOverviewContainer-2C6XMJ3L.mjs.map} +2 -2
  3. package/dist/lib/browser/{SpaceGenerator-ZHVZWGM7.mjs → SpaceGenerator-B4A7J26E.mjs} +33 -31
  4. package/dist/lib/browser/SpaceGenerator-B4A7J26E.mjs.map +7 -0
  5. package/dist/lib/browser/{app-graph-builder-FBDRMMYF.mjs → app-graph-builder-DEBTVBQG.mjs} +9 -7
  6. package/dist/lib/browser/app-graph-builder-DEBTVBQG.mjs.map +7 -0
  7. package/dist/lib/browser/index.mjs +18 -17
  8. package/dist/lib/browser/index.mjs.map +3 -3
  9. package/dist/lib/browser/meta.json +1 -1
  10. package/dist/lib/browser/{react-context-FSWBT3MH.mjs → react-context-I3USIAF6.mjs} +3 -3
  11. package/dist/lib/browser/react-context-I3USIAF6.mjs.map +7 -0
  12. package/dist/lib/browser/{react-surface-W62RJ32U.mjs → react-surface-ADOU5663.mjs} +57 -56
  13. package/dist/lib/browser/react-surface-ADOU5663.mjs.map +7 -0
  14. package/dist/lib/browser/{settings-KA4GN73K.mjs → settings-SLTQJJNF.mjs} +4 -3
  15. package/dist/lib/browser/settings-SLTQJJNF.mjs.map +7 -0
  16. package/dist/types/src/DebugPlugin.d.ts.map +1 -1
  17. package/dist/types/src/capabilities/app-graph-builder/app-graph-builder.d.ts.map +1 -1
  18. package/dist/types/src/capabilities/react-context/react-context.d.ts.map +1 -1
  19. package/dist/types/src/capabilities/react-surface/index.d.ts +1 -1
  20. package/dist/types/src/capabilities/react-surface/index.d.ts.map +1 -1
  21. package/dist/types/src/capabilities/react-surface/react-surface.d.ts +2 -2
  22. package/dist/types/src/capabilities/react-surface/react-surface.d.ts.map +1 -1
  23. package/dist/types/src/capabilities/settings/index.d.ts +1 -1
  24. package/dist/types/src/capabilities/settings/index.d.ts.map +1 -1
  25. package/dist/types/src/capabilities/settings/settings.d.ts +3 -2
  26. package/dist/types/src/capabilities/settings/settings.d.ts.map +1 -1
  27. package/dist/types/src/components/DebugObjectPanel.d.ts.map +1 -1
  28. package/dist/types/src/components/SpaceGenerator/SpaceGenerator.d.ts.map +1 -1
  29. package/dist/types/src/components/SpaceGenerator/presets.d.ts.map +1 -1
  30. package/dist/types/tsconfig.tsbuildinfo +1 -1
  31. package/package.json +64 -63
  32. package/src/DebugPlugin.tsx +8 -7
  33. package/src/capabilities/app-graph-builder/app-graph-builder.ts +8 -6
  34. package/src/capabilities/react-context/react-context.tsx +2 -2
  35. package/src/capabilities/react-surface/react-surface.tsx +44 -42
  36. package/src/capabilities/settings/settings.ts +3 -2
  37. package/src/components/DebugObjectPanel.tsx +1 -2
  38. package/src/components/DebugSettings.tsx +18 -18
  39. package/src/components/DevtoolsOverviewContainer.tsx +2 -2
  40. package/src/components/SpaceGenerator/SpaceGenerator.stories.tsx +1 -1
  41. package/src/components/SpaceGenerator/SpaceGenerator.tsx +15 -16
  42. package/src/components/SpaceGenerator/presets.ts +18 -22
  43. package/dist/lib/browser/SpaceGenerator-ZHVZWGM7.mjs.map +0 -7
  44. package/dist/lib/browser/app-graph-builder-FBDRMMYF.mjs.map +0 -7
  45. package/dist/lib/browser/react-context-FSWBT3MH.mjs.map +0 -7
  46. package/dist/lib/browser/react-surface-W62RJ32U.mjs.map +0 -7
  47. package/dist/lib/browser/settings-KA4GN73K.mjs.map +0 -7
@@ -9,8 +9,10 @@ import {
9
9
  // src/capabilities/react-surface/react-surface.tsx
10
10
  import * as Effect from "effect/Effect";
11
11
  import React5, { useCallback } from "react";
12
- import { Capability, Common as Common2 } from "@dxos/app-framework";
13
- import { useCapability, useLayout, useOperationInvoker, useSettingsState } from "@dxos/app-framework/react";
12
+ import { Capabilities, Capability } from "@dxos/app-framework";
13
+ import { Surface, useCapability, useOperationInvoker, useSettingsState } from "@dxos/app-framework/ui";
14
+ import { AppCapabilities as AppCapabilities2, LayoutOperation } from "@dxos/app-toolkit";
15
+ import { useLayout } from "@dxos/app-toolkit/ui";
14
16
  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";
15
17
  import { Obj as Obj2 } from "@dxos/echo";
16
18
  import { log as log2 } from "@dxos/log";
@@ -18,7 +20,7 @@ import { ClientCapabilities } from "@dxos/plugin-client";
18
20
  import { ScriptOperation } from "@dxos/plugin-script/types";
19
21
  import { SpaceOperation } from "@dxos/plugin-space/types";
20
22
  import { SpaceState, isSpace, parseId } from "@dxos/react-client/echo";
21
- import { Layout as Layout2 } from "@dxos/react-ui-mosaic";
23
+ import { Layout as Layout2 } from "@dxos/react-ui";
22
24
  import { Collection } from "@dxos/schema";
23
25
 
24
26
  // src/components/index.ts
@@ -26,8 +28,7 @@ import { lazy } from "react";
26
28
 
27
29
  // src/components/DebugObjectPanel.tsx
28
30
  import React from "react";
29
- import { Clipboard, Input, Toolbar } from "@dxos/react-ui";
30
- import { Layout } from "@dxos/react-ui-mosaic";
31
+ import { Clipboard, Input, Layout, Toolbar } from "@dxos/react-ui";
31
32
  import { Json } from "@dxos/react-ui-syntax-highlighter";
32
33
  var DebugObjectPanel = ({ object }) => {
33
34
  const dxn = `dxn:echo:@:${object.id}`;
@@ -45,13 +46,13 @@ var DebugObjectPanel = ({ object }) => {
45
46
 
46
47
  // src/components/DebugSettings.tsx
47
48
  import React2, { useEffect, useState } from "react";
48
- import { Common } from "@dxos/app-framework";
49
- import { useCapabilities } from "@dxos/app-framework/react";
49
+ import { useCapabilities } from "@dxos/app-framework/ui";
50
+ import { AppCapabilities } from "@dxos/app-toolkit";
50
51
  import { SaveConfig, Storage, defs } from "@dxos/config";
51
52
  import { log } from "@dxos/log";
52
53
  import { useClient } from "@dxos/react-client";
53
54
  import { Icon, IconButton, Input as Input2, Select, Toast, useFileDownload, useTranslation } from "@dxos/react-ui";
54
- import { ControlGroup, ControlItemInput, ControlPage, ControlSection } from "@dxos/react-ui-form";
55
+ import { Settings } from "@dxos/react-ui-form";
55
56
  import { setDeep } from "@dxos/util";
56
57
  var __dxlog_file = "/__w/dxos/dxos/packages/plugins/plugin-debug/src/components/DebugSettings.tsx";
57
58
  var StorageAdapters = {
@@ -64,7 +65,7 @@ var DebugSettings = ({ settings, onSettingsChange }) => {
64
65
  const client = useClient();
65
66
  const download = useFileDownload();
66
67
  const [storageConfig, setStorageConfig] = useState({});
67
- const [upload] = useCapabilities(Common.Capability.FileUploader);
68
+ const [upload] = useCapabilities(AppCapabilities.FileUploader);
68
69
  useEffect(() => {
69
70
  void Storage().then((config) => setStorageConfig(config));
70
71
  }, []);
@@ -130,11 +131,11 @@ var DebugSettings = ({ settings, onSettingsChange }) => {
130
131
  });
131
132
  }
132
133
  };
133
- return /* @__PURE__ */ React2.createElement(ControlPage, null, /* @__PURE__ */ React2.createElement(ControlSection, {
134
+ return /* @__PURE__ */ React2.createElement(Settings.Root, null, /* @__PURE__ */ React2.createElement(Settings.Section, {
134
135
  title: t("settings title", {
135
136
  ns: meta.id
136
137
  })
137
- }, /* @__PURE__ */ React2.createElement(ControlGroup, null, /* @__PURE__ */ React2.createElement(ControlItemInput, {
138
+ }, /* @__PURE__ */ React2.createElement(Settings.Group, null, /* @__PURE__ */ React2.createElement(Settings.ItemInput, {
138
139
  title: t("settings wireframe")
139
140
  }, /* @__PURE__ */ React2.createElement(Input2.Switch, {
140
141
  checked: settings.wireframe,
@@ -142,14 +143,14 @@ var DebugSettings = ({ settings, onSettingsChange }) => {
142
143
  ...s,
143
144
  wireframe: !!checked
144
145
  }))
145
- })), /* @__PURE__ */ React2.createElement(ControlItemInput, {
146
+ })), /* @__PURE__ */ React2.createElement(Settings.ItemInput, {
146
147
  title: t("settings download diagnostics")
147
148
  }, /* @__PURE__ */ React2.createElement(IconButton, {
148
149
  icon: "ph--download-simple--regular",
149
150
  iconOnly: true,
150
151
  label: t("settings download diagnostics"),
151
152
  onClick: handleDownload
152
- })), /* @__PURE__ */ React2.createElement(ControlItemInput, {
153
+ })), /* @__PURE__ */ React2.createElement(Settings.ItemInput, {
153
154
  title: t("settings repair")
154
155
  }, /* @__PURE__ */ React2.createElement(IconButton, {
155
156
  icon: "ph--first-aid-kit--regular",
@@ -160,7 +161,7 @@ var DebugSettings = ({ settings, onSettingsChange }) => {
160
161
  icon: "ph--gift--duotone",
161
162
  size: 5,
162
163
  classNames: "inline mr-1"
163
- }), /* @__PURE__ */ React2.createElement("span", null, toast.title)), toast.description && /* @__PURE__ */ React2.createElement(Toast.Description, null, toast.description))), /* @__PURE__ */ React2.createElement(ControlItemInput, {
164
+ }), /* @__PURE__ */ React2.createElement("span", null, toast.title)), toast.description && /* @__PURE__ */ React2.createElement(Toast.Description, null, toast.description))), /* @__PURE__ */ React2.createElement(Settings.ItemInput, {
164
165
  title: t("settings choose storage adaptor")
165
166
  }, /* @__PURE__ */ React2.createElement(Select.Root, {
166
167
  value: Object.entries(StorageAdapters).find(([_name, value]) => value === storageConfig?.runtime?.client?.storage?.dataStore)?.[0],
@@ -358,8 +359,8 @@ var Wireframe = ({ classNames, label, object }) => {
358
359
 
359
360
  // src/components/index.ts
360
361
  var DebugGraph = lazy(() => import("./DebugGraph-6VMEOKEV.mjs"));
361
- var DevtoolsOverviewContainer = lazy(() => import("./DevtoolsOverviewContainer-77PKFLYV.mjs"));
362
- var SpaceGenerator = lazy(() => import("./SpaceGenerator-ZHVZWGM7.mjs"));
362
+ var DevtoolsOverviewContainer = lazy(() => import("./DevtoolsOverviewContainer-2C6XMJ3L.mjs"));
363
+ var SpaceGenerator = lazy(() => import("./SpaceGenerator-B4A7J26E.mjs"));
363
364
 
364
365
  // src/capabilities/react-surface/react-surface.tsx
365
366
  var __dxlog_file2 = "/__w/dxos/dxos/packages/plugins/plugin-debug/src/capabilities/react-surface/react-surface.tsx";
@@ -377,13 +378,13 @@ var useCurrentSpace = () => {
377
378
  };
378
379
  var react_surface_default = Capability.makeModule(Effect.fnUntraced(function* () {
379
380
  const capabilities = yield* Capability.Service;
380
- const registry = capabilities.get(Common2.Capability.AtomRegistry);
381
+ const registry = capabilities.get(Capabilities.AtomRegistry);
381
382
  const settingsAtom = capabilities.get(DebugCapabilities.Settings);
382
- return Capability.contributes(Common2.Capability.ReactSurface, [
383
- Common2.createSurface({
383
+ return Capability.contributes(Capabilities.ReactSurface, [
384
+ Surface.create({
384
385
  id: `${meta.id}/plugin-settings`,
385
386
  role: "article",
386
- filter: (data) => Common2.Capability.isSettings(data.subject) && data.subject.prefix === meta.id,
387
+ filter: (data) => AppCapabilities2.isSettings(data.subject) && data.subject.prefix === meta.id,
387
388
  component: ({ data: { subject } }) => {
388
389
  const { settings, updateSettings } = useSettingsState(subject.atom);
389
390
  return /* @__PURE__ */ React5.createElement(DebugSettings, {
@@ -392,7 +393,7 @@ var react_surface_default = Capability.makeModule(Effect.fnUntraced(function* ()
392
393
  });
393
394
  }
394
395
  }),
395
- Common2.createSurface({
396
+ Surface.create({
396
397
  id: `${meta.id}/space`,
397
398
  role: "article",
398
399
  filter: (data) => isSpaceDebug(data.subject),
@@ -424,7 +425,7 @@ var react_surface_default = Capability.makeModule(Effect.fnUntraced(function* ()
424
425
  }));
425
426
  }
426
427
  }),
427
- Common2.createSurface({
428
+ Surface.create({
428
429
  id: `${meta.id}/app-graph`,
429
430
  role: "article",
430
431
  filter: (data) => isGraphDebug(data.subject),
@@ -433,7 +434,7 @@ var react_surface_default = Capability.makeModule(Effect.fnUntraced(function* ()
433
434
  root: data.subject.root
434
435
  })
435
436
  }),
436
- Common2.createSurface({
437
+ Surface.create({
437
438
  id: `${meta.id}/wireframe`,
438
439
  role: [
439
440
  "article",
@@ -450,7 +451,7 @@ var react_surface_default = Capability.makeModule(Effect.fnUntraced(function* ()
450
451
  classNames: "row-span-2 overflow-hidden"
451
452
  })
452
453
  }),
453
- Common2.createSurface({
454
+ Surface.create({
454
455
  id: `${meta.id}/object-debug`,
455
456
  role: "article",
456
457
  filter: (data) => data.subject === "debug" && Obj2.isObject(data.companionTo),
@@ -458,12 +459,12 @@ var react_surface_default = Capability.makeModule(Effect.fnUntraced(function* ()
458
459
  object: data.companionTo
459
460
  })
460
461
  }),
461
- Common2.createSurface({
462
+ Surface.create({
462
463
  id: `${meta.id}/devtools-overview`,
463
464
  role: "deck-companion--devtools",
464
465
  component: () => /* @__PURE__ */ React5.createElement(DevtoolsOverviewContainer, null)
465
466
  }),
466
- Common2.createSurface({
467
+ Surface.create({
467
468
  id: `${meta.id}/status`,
468
469
  role: "status",
469
470
  component: () => /* @__PURE__ */ React5.createElement(DebugStatus, null)
@@ -471,7 +472,7 @@ var react_surface_default = Capability.makeModule(Effect.fnUntraced(function* ()
471
472
  //
472
473
  // Devtools
473
474
  //
474
- Common2.createSurface({
475
+ Surface.create({
475
476
  id: `${meta.id}/client/config`,
476
477
  role: "article",
477
478
  filter: (data) => data.subject === Devtools.Client.Config,
@@ -479,49 +480,49 @@ var react_surface_default = Capability.makeModule(Effect.fnUntraced(function* ()
479
480
  vaultSelector: false
480
481
  })
481
482
  }),
482
- Common2.createSurface({
483
+ Surface.create({
483
484
  id: `${meta.id}/client/storage`,
484
485
  role: "article",
485
486
  filter: (data) => data.subject === Devtools.Client.Storage,
486
487
  component: () => /* @__PURE__ */ React5.createElement(StoragePanel, null)
487
488
  }),
488
- Common2.createSurface({
489
+ Surface.create({
489
490
  id: `${meta.id}/client/logs`,
490
491
  role: "article",
491
492
  filter: (data) => data.subject === Devtools.Client.Logs,
492
493
  component: () => /* @__PURE__ */ React5.createElement(LoggingPanel, null)
493
494
  }),
494
- Common2.createSurface({
495
+ Surface.create({
495
496
  id: `${meta.id}/client/diagnostics`,
496
497
  role: "article",
497
498
  filter: (data) => data.subject === Devtools.Client.Diagnostics,
498
499
  component: () => /* @__PURE__ */ React5.createElement(DiagnosticsPanel, null)
499
500
  }),
500
- Common2.createSurface({
501
+ Surface.create({
501
502
  id: `${meta.id}/client/tracing`,
502
503
  role: "article",
503
504
  filter: (data) => data.subject === Devtools.Client.Tracing,
504
505
  component: () => /* @__PURE__ */ React5.createElement(TracingPanel, null)
505
506
  }),
506
- Common2.createSurface({
507
+ Surface.create({
507
508
  id: `${meta.id}/halo/identity`,
508
509
  role: "article",
509
510
  filter: (data) => data.subject === Devtools.Halo.Identity,
510
511
  component: () => /* @__PURE__ */ React5.createElement(IdentityPanel, null)
511
512
  }),
512
- Common2.createSurface({
513
+ Surface.create({
513
514
  id: `${meta.id}/halo/devices`,
514
515
  role: "article",
515
516
  filter: (data) => data.subject === Devtools.Halo.Devices,
516
517
  component: () => /* @__PURE__ */ React5.createElement(DeviceListPanel, null)
517
518
  }),
518
- Common2.createSurface({
519
+ Surface.create({
519
520
  id: `${meta.id}/halo/keyring`,
520
521
  role: "article",
521
522
  filter: (data) => data.subject === Devtools.Halo.Keyring,
522
523
  component: () => /* @__PURE__ */ React5.createElement(KeyringPanel, null)
523
524
  }),
524
- Common2.createSurface({
525
+ Surface.create({
525
526
  id: `${meta.id}/halo/credentials`,
526
527
  role: "article",
527
528
  filter: (data) => data.subject === Devtools.Halo.Credentials,
@@ -532,13 +533,13 @@ var react_surface_default = Capability.makeModule(Effect.fnUntraced(function* ()
532
533
  });
533
534
  }
534
535
  }),
535
- Common2.createSurface({
536
+ Surface.create({
536
537
  id: `${meta.id}/echo/spaces`,
537
538
  role: "article",
538
539
  filter: (data) => data.subject === Devtools.Echo.Spaces,
539
540
  component: () => {
540
541
  const { invokePromise } = useOperationInvoker();
541
- const handleSelect = useCallback(() => invokePromise(Common2.LayoutOperation.Open, {
542
+ const handleSelect = useCallback(() => invokePromise(LayoutOperation.Open, {
542
543
  subject: [
543
544
  Devtools.Echo.Space
544
545
  ]
@@ -550,14 +551,14 @@ var react_surface_default = Capability.makeModule(Effect.fnUntraced(function* ()
550
551
  });
551
552
  }
552
553
  }),
553
- Common2.createSurface({
554
+ Surface.create({
554
555
  id: `${meta.id}/echo/space`,
555
556
  role: "article",
556
557
  filter: (data) => data.subject === Devtools.Echo.Space,
557
558
  component: () => {
558
559
  const space = useCurrentSpace();
559
560
  const { invokePromise } = useOperationInvoker();
560
- const handleSelect = useCallback(() => invokePromise(Common2.LayoutOperation.Open, {
561
+ const handleSelect = useCallback(() => invokePromise(LayoutOperation.Open, {
561
562
  subject: [
562
563
  Devtools.Echo.Feeds
563
564
  ]
@@ -571,7 +572,7 @@ var react_surface_default = Capability.makeModule(Effect.fnUntraced(function* ()
571
572
  });
572
573
  }
573
574
  }),
574
- Common2.createSurface({
575
+ Surface.create({
575
576
  id: `${meta.id}/echo/feeds`,
576
577
  role: "article",
577
578
  filter: (data) => data.subject === Devtools.Echo.Feeds,
@@ -582,7 +583,7 @@ var react_surface_default = Capability.makeModule(Effect.fnUntraced(function* ()
582
583
  });
583
584
  }
584
585
  }),
585
- Common2.createSurface({
586
+ Surface.create({
586
587
  id: `${meta.id}/echo/objects`,
587
588
  role: "article",
588
589
  filter: (data) => data.subject === Devtools.Echo.Objects,
@@ -593,7 +594,7 @@ var react_surface_default = Capability.makeModule(Effect.fnUntraced(function* ()
593
594
  });
594
595
  }
595
596
  }),
596
- Common2.createSurface({
597
+ Surface.create({
597
598
  id: `${meta.id}/echo/schema`,
598
599
  role: "article",
599
600
  filter: (data) => data.subject === Devtools.Echo.Schema,
@@ -604,7 +605,7 @@ var react_surface_default = Capability.makeModule(Effect.fnUntraced(function* ()
604
605
  });
605
606
  }
606
607
  }),
607
- Common2.createSurface({
608
+ Surface.create({
608
609
  id: `${meta.id}/echo/automerge`,
609
610
  role: "article",
610
611
  filter: (data) => data.subject === Devtools.Echo.Automerge,
@@ -615,13 +616,13 @@ var react_surface_default = Capability.makeModule(Effect.fnUntraced(function* ()
615
616
  });
616
617
  }
617
618
  }),
618
- Common2.createSurface({
619
+ Surface.create({
619
620
  id: `${meta.id}/echo/queues`,
620
621
  role: "article",
621
622
  filter: (data) => data.subject === Devtools.Echo.Queues,
622
623
  component: () => /* @__PURE__ */ React5.createElement(QueuesPanel, null)
623
624
  }),
624
- Common2.createSurface({
625
+ Surface.create({
625
626
  id: `${meta.id}/echo/members`,
626
627
  role: "article",
627
628
  filter: (data) => data.subject === Devtools.Echo.Members,
@@ -632,25 +633,25 @@ var react_surface_default = Capability.makeModule(Effect.fnUntraced(function* ()
632
633
  });
633
634
  }
634
635
  }),
635
- Common2.createSurface({
636
+ Surface.create({
636
637
  id: `${meta.id}/echo/metadata`,
637
638
  role: "article",
638
639
  filter: (data) => data.subject === Devtools.Echo.Metadata,
639
640
  component: () => /* @__PURE__ */ React5.createElement(MetadataPanel, null)
640
641
  }),
641
- Common2.createSurface({
642
+ Surface.create({
642
643
  id: `${meta.id}/mesh/signal`,
643
644
  role: "article",
644
645
  filter: (data) => data.subject === Devtools.Mesh.Signal,
645
646
  component: () => /* @__PURE__ */ React5.createElement(SignalPanel, null)
646
647
  }),
647
- Common2.createSurface({
648
+ Surface.create({
648
649
  id: `${meta.id}/mesh/swarm`,
649
650
  role: "article",
650
651
  filter: (data) => data.subject === Devtools.Mesh.Swarm,
651
652
  component: () => /* @__PURE__ */ React5.createElement(SwarmPanel, null)
652
653
  }),
653
- Common2.createSurface({
654
+ Surface.create({
654
655
  id: `${meta.id}/mesh/network`,
655
656
  role: "article",
656
657
  filter: (data) => data.subject === Devtools.Mesh.Network,
@@ -668,13 +669,13 @@ var react_surface_default = Capability.makeModule(Effect.fnUntraced(function* ()
668
669
  // filter: (data): data is any => data.subject === Devtools.Agent.Dashboard,
669
670
  // component: () => <DashboardPanel />,
670
671
  // }),
671
- Common2.createSurface({
672
+ Surface.create({
672
673
  id: `${meta.id}/edge/dashboard`,
673
674
  role: "article",
674
675
  filter: (data) => data.subject === Devtools.Edge.Dashboard,
675
676
  component: () => /* @__PURE__ */ React5.createElement(EdgeDashboardPanel, null)
676
677
  }),
677
- Common2.createSurface({
678
+ Surface.create({
678
679
  id: `${meta.id}/edge/workflows`,
679
680
  role: "article",
680
681
  filter: (data) => data.subject === Devtools.Edge.Workflows,
@@ -685,7 +686,7 @@ var react_surface_default = Capability.makeModule(Effect.fnUntraced(function* ()
685
686
  });
686
687
  }
687
688
  }),
688
- Common2.createSurface({
689
+ Surface.create({
689
690
  id: `${meta.id}/edge/traces`,
690
691
  role: "article",
691
692
  filter: (data) => data.subject === Devtools.Edge.Traces,
@@ -699,7 +700,7 @@ var react_surface_default = Capability.makeModule(Effect.fnUntraced(function* ()
699
700
  });
700
701
  }
701
702
  }),
702
- Common2.createSurface({
703
+ Surface.create({
703
704
  id: `${meta.id}/edge/testing`,
704
705
  role: "article",
705
706
  filter: (data) => data.subject === Devtools.Edge.Testing,
@@ -729,12 +730,12 @@ var react_surface_default = Capability.makeModule(Effect.fnUntraced(function* ()
729
730
  result: createResult
730
731
  }, {
731
732
  F: __dxlog_file2,
732
- L: 395,
733
+ L: 397,
733
734
  S: this,
734
735
  C: (f, a) => f(...a)
735
736
  });
736
737
  if (createResult.data?.object?.id) {
737
- await invokePromise(Common2.LayoutOperation.Open, {
738
+ await invokePromise(LayoutOperation.Open, {
738
739
  subject: [
739
740
  `${space.id}:${createResult.data.object.id}`
740
741
  ]
@@ -754,4 +755,4 @@ var react_surface_default = Capability.makeModule(Effect.fnUntraced(function* ()
754
755
  export {
755
756
  react_surface_default as default
756
757
  };
757
- //# sourceMappingURL=react-surface-W62RJ32U.mjs.map
758
+ //# sourceMappingURL=react-surface-ADOU5663.mjs.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../src/capabilities/react-surface/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 Effect from 'effect/Effect';\nimport React, { useCallback } from 'react';\n\nimport { Capabilities, Capability } from '@dxos/app-framework';\nimport { Surface, useCapability, useOperationInvoker, useSettingsState } from '@dxos/app-framework/ui';\nimport { AppCapabilities, LayoutOperation } from '@dxos/app-toolkit';\nimport { useLayout } from '@dxos/app-toolkit/ui';\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 { log } from '@dxos/log';\nimport { ClientCapabilities } from '@dxos/plugin-client';\nimport { type Graph } from '@dxos/plugin-graph';\nimport { ScriptOperation } from '@dxos/plugin-script/types';\nimport { SpaceOperation } from '@dxos/plugin-space/types';\nimport { type Space, SpaceState, isSpace, parseId } from '@dxos/react-client/echo';\nimport { Layout } from '@dxos/react-ui';\nimport { Collection } 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 { DebugCapabilities, type DebugSettingsProps, Devtools } from '../../types';\n\ntype SpaceDebug = {\n type: string;\n space: Space;\n};\n\ntype GraphDebug = {\n graph: 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 => {\n const graph = data?.graph;\n return (\n graph != null && typeof graph === 'object' && typeof graph.json === 'function' && typeof data?.root === 'string'\n );\n};\n\n// TODO(wittjosiah): Factor out?\nconst useCurrentSpace = () => {\n const layout = useLayout();\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 Capability.makeModule(\n Effect.fnUntraced(function* () {\n const capabilities = yield* Capability.Service;\n const registry = capabilities.get(Capabilities.AtomRegistry);\n const settingsAtom = capabilities.get(DebugCapabilities.Settings);\n\n return Capability.contributes(Capabilities.ReactSurface, [\n Surface.create({\n id: `${meta.id}/plugin-settings`,\n role: 'article',\n filter: (data): data is { subject: AppCapabilities.Settings } =>\n AppCapabilities.isSettings(data.subject) && data.subject.prefix === meta.id,\n component: ({ data: { subject } }) => {\n const { settings, updateSettings } = useSettingsState<DebugSettingsProps>(subject.atom);\n return <DebugSettings settings={settings} onSettingsChange={updateSettings} />;\n },\n }),\n Surface.create({\n id: `${meta.id}/space`,\n role: 'article',\n filter: (data): data is { subject: SpaceDebug } => isSpaceDebug(data.subject),\n component: ({ role, data }) => {\n const { invokePromise } = useOperationInvoker();\n\n const handleCreateObject = useCallback(\n (objects: Obj.Unknown[]) => {\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[Collection.Collection.typename]?.target;\n if (!Obj.instanceOf(Collection.Collection, collection)) {\n return;\n }\n\n objects.forEach((object) => {\n void invokePromise(SpaceOperation.AddObject, {\n target: collection,\n object,\n });\n });\n },\n [data.subject.space, invokePromise],\n );\n\n return (\n <Layout.Main role={role}>\n <SpaceGenerator space={data.subject.space} onCreateObjects={handleCreateObject} />\n </Layout.Main>\n );\n },\n }),\n Surface.create({\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 Surface.create({\n id: `${meta.id}/wireframe`,\n role: ['article', 'section'],\n position: 'hoist',\n filter: (data): data is { subject: Obj.Unknown } => {\n const settings = registry.get(settingsAtom);\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 Surface.create({\n id: `${meta.id}/object-debug`,\n role: 'article',\n filter: (data): data is { companionTo: Obj.Unknown } =>\n data.subject === 'debug' && Obj.isObject(data.companionTo),\n component: ({ data }) => <DebugObjectPanel object={data.companionTo} />,\n }),\n Surface.create({\n id: `${meta.id}/devtools-overview`,\n role: 'deck-companion--devtools',\n component: () => <DevtoolsOverviewContainer />,\n }),\n Surface.create({\n id: `${meta.id}/status`,\n role: 'status',\n component: () => <DebugStatus />,\n }),\n\n //\n // Devtools\n //\n\n Surface.create({\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 Surface.create({\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 Surface.create({\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 Surface.create({\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 Surface.create({\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 Surface.create({\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 Surface.create({\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 Surface.create({\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 Surface.create({\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 Surface.create({\n id: `${meta.id}/echo/spaces`,\n role: 'article',\n filter: (data): data is any => data.subject === Devtools.Echo.Spaces,\n component: () => {\n const { invokePromise } = useOperationInvoker();\n const handleSelect = useCallback(\n () => invokePromise(LayoutOperation.Open, { subject: [Devtools.Echo.Space] }),\n [invokePromise],\n );\n return <SpaceListPanel onSelect={handleSelect} />;\n },\n }),\n Surface.create({\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 { invokePromise } = useOperationInvoker();\n const handleSelect = useCallback(\n () => invokePromise(LayoutOperation.Open, { subject: [Devtools.Echo.Feeds] }),\n [invokePromise],\n );\n return <SpaceInfoPanel space={space} onSelectFeed={handleSelect} onSelectPipeline={handleSelect} />;\n },\n }),\n Surface.create({\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 Surface.create({\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 Surface.create({\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 Surface.create({\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 Surface.create({\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 Surface.create({\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 Surface.create({\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 Surface.create({\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 Surface.create({\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 Surface.create({\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 Surface.create({\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 Surface.create({\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 Surface.create({\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 const queueDxn = space?.properties.invocationTraceQueue?.dxn;\n return <InvocationTraceContainer db={space?.db} queueDxn={queueDxn} detailAxis='block' />;\n },\n }),\n Surface.create({\n id: `${meta.id}/edge/testing`,\n role: 'article',\n filter: (data): data is any => data.subject === Devtools.Edge.Testing,\n component: () => {\n const { invokePromise } = useOperationInvoker();\n const onSpaceCreate = useCallback(\n async (space: Space) => {\n await space.waitUntilReady();\n await invokePromise(SpaceOperation.Migrate, { space });\n await space.db.flush();\n },\n [invokePromise],\n );\n const onScriptPluginOpen = useCallback(\n async (space: Space) => {\n await space.waitUntilReady();\n const createResult = await invokePromise(ScriptOperation.CreateScript, { db: space.db });\n if (createResult.data?.object) {\n await invokePromise(SpaceOperation.AddObject, { target: space.db, object: createResult.data.object });\n }\n log.info('script created', { result: createResult });\n if (createResult.data?.object?.id) {\n await invokePromise(LayoutOperation.Open, {\n subject: [`${space.id}:${createResult.data.object.id}`],\n });\n }\n },\n [invokePromise],\n );\n return <TestingPanel onSpaceCreate={onSpaceCreate} onScriptPluginOpen={onScriptPluginOpen} />;\n },\n }),\n ]);\n }),\n);\n", "//\n// Copyright 2023 DXOS.org\n//\n\nimport { lazy } from 'react';\nimport { type FC } from 'react';\n\nimport { type DebugGraphProps } from './DebugGraph';\n\nexport const DebugGraph: ReturnType<typeof lazy<FC<DebugGraphProps>>> = 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, Layout, Toolbar } from '@dxos/react-ui';\nimport { Json } from '@dxos/react-ui-syntax-highlighter';\n\nexport type DebugObjectPanelProps = {\n object: Obj.Unknown;\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 <Layout.Main 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 </Layout.Main>\n </Clipboard.Provider>\n );\n};\n", "//\n// Copyright 2023 DXOS.org\n//\n\nimport React, { useEffect, useState } from 'react';\n\nimport { useCapabilities } from '@dxos/app-framework/ui';\nimport { AppCapabilities } from '@dxos/app-toolkit';\nimport { type ConfigProto, SaveConfig, Storage, defs } from '@dxos/config';\nimport { log } from '@dxos/log';\nimport { useClient } from '@dxos/react-client';\nimport { Icon, IconButton, Input, Select, Toast, useFileDownload, useTranslation } from '@dxos/react-ui';\nimport { Settings } 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 type DebugSettingsComponentProps = {\n settings: DebugSettingsProps;\n onSettingsChange: (fn: (current: DebugSettingsProps) => DebugSettingsProps) => void;\n};\n\nexport const DebugSettings = ({ settings, onSettingsChange }: DebugSettingsComponentProps) => {\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(AppCapabilities.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)], {\n type: 'text/plain',\n });\n const fileName = `composer-${new Date().toISOString().replace(/\\W/g, '-')}.json`;\n download(file, fileName);\n\n if (upload) {\n const info = await upload(client.spaces.default.db, new File([file], fileName));\n if (!info) {\n log.error('diagnostics failed to upload to IPFS');\n return;\n }\n handleToast({\n title: t('settings uploaded'),\n description: t('settings uploaded to clipboard'),\n });\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({\n title: t('settings uploaded'),\n description: t('settings uploaded to clipboard'),\n });\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({\n title: t('settings repair success'),\n description: JSON.stringify(info, undefined, 2),\n });\n } catch (err: any) {\n handleToast({\n title: t('settings repair failed'),\n description: err.message,\n });\n }\n };\n\n return (\n <Settings.Root>\n <Settings.Section title={t('settings title', { ns: meta.id })}>\n <Settings.Group>\n <Settings.ItemInput title={t('settings wireframe')}>\n <Input.Switch\n checked={settings.wireframe}\n onCheckedChange={(checked) => onSettingsChange((s) => ({ ...s, wireframe: !!checked }))}\n />\n </Settings.ItemInput>\n <Settings.ItemInput title={t('settings download diagnostics')}>\n <IconButton\n icon='ph--download-simple--regular'\n iconOnly\n label={t('settings download diagnostics')}\n onClick={handleDownload}\n />\n </Settings.ItemInput>\n <Settings.ItemInput title={t('settings repair')}>\n <IconButton\n icon='ph--first-aid-kit--regular'\n iconOnly\n label={t('settings repair')}\n onClick={handleRepair}\n />\n </Settings.ItemInput>\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 <Settings.ItemInput 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 </Settings.ItemInput>\n </Settings.Group>\n </Settings.Section>\n </Settings.Root>\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 { Obj } from '@dxos/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/ui-theme';\n\n// TODO(burdon): Create generic container with wireframe mode.\nexport type WireframeProps = ThemedClassName<{\n object: Obj.Unknown;\n label?: string;\n}>;\n\n// TODO(burdon): Make focusable and attendable with input.\nexport const Wireframe = ({ classNames, label, object }: WireframeProps) => {\n const attentionAttrs = useAttentionAttributes(Obj.getDXN(object).toString());\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": ["Effect", "React", "useCallback", "Capabilities", "Capability", "Surface", "useCapability", "useOperationInvoker", "useSettingsState", "AppCapabilities", "LayoutOperation", "useLayout", "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", "log", "ClientCapabilities", "ScriptOperation", "SpaceOperation", "SpaceState", "isSpace", "parseId", "Layout", "Collection", "lazy", "React", "Clipboard", "Input", "Layout", "Toolbar", "Json", "DebugObjectPanel", "object", "dxn", "id", "Clipboard", "Provider", "Layout", "Main", "toolbar", "Toolbar", "Root", "Input", "TextInput", "disabled", "value", "IconButton", "Json", "data", "React", "useEffect", "useState", "useCapabilities", "AppCapabilities", "SaveConfig", "Storage", "defs", "log", "useClient", "Icon", "IconButton", "Input", "Select", "Toast", "useFileDownload", "useTranslation", "Settings", "setDeep", "StorageAdapters", "opfs", "defs", "Runtime", "Client", "Storage", "StorageDriver", "WEBFS", "idb", "IDB", "DebugSettings", "settings", "onSettingsChange", "t", "useTranslation", "meta", "id", "toast", "setToast", "useState", "client", "useClient", "download", "useFileDownload", "storageConfig", "setStorageConfig", "upload", "useCapabilities", "AppCapabilities", "FileUploader", "useEffect", "then", "config", "handleToast", "setTimeout", "undefined", "clearTimeout", "handleDownload", "data", "diagnostics", "file", "Blob", "JSON", "stringify", "type", "fileName", "Date", "toISOString", "replace", "info", "spaces", "default", "db", "File", "log", "error", "title", "description", "url", "values", "runtime", "services", "ipfs", "gateway", "cid", "navigator", "clipboard", "writeText", "handleRepair", "repair", "err", "message", "React", "Settings", "Root", "Section", "ns", "Group", "ItemInput", "Input", "Switch", "checked", "wireframe", "onCheckedChange", "s", "IconButton", "icon", "iconOnly", "label", "onClick", "Toast", "Body", "Title", "Icon", "size", "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", "Obj", "useAttentionAttributes", "SyntaxHighlighter", "mx", "Wireframe", "classNames", "label", "object", "attentionAttrs", "useAttentionAttributes", "Obj", "getDXN", "toString", "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", "json", "root", "useCurrentSpace", "layout", "useLayout", "client", "useCapability", "ClientCapabilities", "Client", "spaceId", "parseId", "workspace", "spaces", "get", "undefined", "Capability", "makeModule", "fnUntraced", "capabilities", "Service", "registry", "Capabilities", "AtomRegistry", "settingsAtom", "DebugCapabilities", "Settings", "contributes", "ReactSurface", "Surface", "create", "role", "filter", "AppCapabilities", "isSettings", "subject", "prefix", "component", "settings", "updateSettings", "useSettingsState", "atom", "React", "DebugSettings", "onSettingsChange", "invokePromise", "useOperationInvoker", "handleCreateObject", "useCallback", "objects", "collection", "state", "SpaceState", "SPACE_READY", "properties", "Collection", "typename", "target", "Obj", "instanceOf", "forEach", "object", "SpaceOperation", "AddObject", "Layout", "Main", "SpaceGenerator", "onCreateObjects", "DebugGraph", "position", "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", "LayoutOperation", "Open", "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", "queueDxn", "invocationTraceQueue", "dxn", "InvocationTraceContainer", "db", "detailAxis", "Testing", "onSpaceCreate", "waitUntilReady", "Migrate", "flush", "onScriptPluginOpen", "createResult", "ScriptOperation", "CreateScript", "log", "info", "result", "TestingPanel"]
7
+ }
@@ -8,7 +8,8 @@ import {
8
8
 
9
9
  // src/capabilities/settings/settings.ts
10
10
  import * as Effect from "effect/Effect";
11
- import { Capability, Common } from "@dxos/app-framework";
11
+ import { Capability } from "@dxos/app-framework";
12
+ import { AppCapabilities } from "@dxos/app-toolkit";
12
13
  import { createKvsStore } from "@dxos/effect";
13
14
  var settings_default = Capability.makeModule(() => Effect.sync(() => {
14
15
  const settingsAtom = createKvsStore({
@@ -18,7 +19,7 @@ var settings_default = Capability.makeModule(() => Effect.sync(() => {
18
19
  });
19
20
  return [
20
21
  Capability.contributes(DebugCapabilities.Settings, settingsAtom),
21
- Capability.contributes(Common.Capability.Settings, {
22
+ Capability.contributes(AppCapabilities.Settings, {
22
23
  prefix: meta.id,
23
24
  schema: DebugSettingsSchema,
24
25
  atom: settingsAtom
@@ -28,4 +29,4 @@ var settings_default = Capability.makeModule(() => Effect.sync(() => {
28
29
  export {
29
30
  settings_default as default
30
31
  };
31
- //# sourceMappingURL=settings-KA4GN73K.mjs.map
32
+ //# sourceMappingURL=settings-SLTQJJNF.mjs.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../src/capabilities/settings/settings.ts"],
4
+ "sourcesContent": ["//\n// Copyright 2025 DXOS.org\n//\n\nimport * as Effect from 'effect/Effect';\n\nimport { Capability } from '@dxos/app-framework';\nimport { AppCapabilities } from '@dxos/app-toolkit';\nimport { createKvsStore } from '@dxos/effect';\n\nimport { meta } from '../../meta';\nimport { DebugCapabilities, DebugSettingsSchema } from '../../types';\n\nexport default Capability.makeModule(() =>\n Effect.sync(() => {\n const settingsAtom = createKvsStore({\n key: meta.id,\n schema: DebugSettingsSchema,\n defaultValue: () => ({}),\n });\n\n return [\n Capability.contributes(DebugCapabilities.Settings, settingsAtom),\n Capability.contributes(AppCapabilities.Settings, {\n prefix: meta.id,\n schema: DebugSettingsSchema,\n atom: settingsAtom,\n }),\n ];\n }),\n);\n"],
5
+ "mappings": ";;;;;;;;;AAIA,YAAYA,YAAY;AAExB,SAASC,kBAAkB;AAC3B,SAASC,uBAAuB;AAChC,SAASC,sBAAsB;AAK/B,IAAA,mBAAeC,WAAWC,WAAW,MAC5BC,YAAK,MAAA;AACV,QAAMC,eAAeC,eAAe;IAClCC,KAAKC,KAAKC;IACVC,QAAQC;IACRC,cAAc,OAAO,CAAC;EACxB,CAAA;AAEA,SAAO;IACLV,WAAWW,YAAYC,kBAAkBC,UAAUV,YAAAA;IACnDH,WAAWW,YAAYG,gBAAgBD,UAAU;MAC/CE,QAAQT,KAAKC;MACbC,QAAQC;MACRO,MAAMb;IACR,CAAA;;AAEJ,CAAA,CAAA;",
6
+ "names": ["Effect", "Capability", "AppCapabilities", "createKvsStore", "Capability", "makeModule", "sync", "settingsAtom", "createKvsStore", "key", "meta", "id", "schema", "DebugSettingsSchema", "defaultValue", "contributes", "DebugCapabilities", "Settings", "AppCapabilities", "prefix", "atom"]
7
+ }
@@ -1 +1 @@
1
- {"version":3,"file":"DebugPlugin.d.ts","sourceRoot":"","sources":["../../../src/DebugPlugin.tsx"],"names":[],"mappings":"AAMA,OAAO,EAAU,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAQrD,eAAO,MAAM,WAAW,4BAYvB,CAAC"}
1
+ {"version":3,"file":"DebugPlugin.d.ts","sourceRoot":"","sources":["../../../src/DebugPlugin.tsx"],"names":[],"mappings":"AAMA,OAAO,EAAoB,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAS/D,eAAO,MAAM,WAAW,4BAYvB,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"app-graph-builder.d.ts","sourceRoot":"","sources":["../../../../../src/capabilities/app-graph-builder/app-graph-builder.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,MAAM,MAAM,eAAe,CAAC;AAExC,OAAO,EAAE,UAAU,EAAU,MAAM,qBAAqB,CAAC;AAGzD,OAAO,EAAE,YAAY,EAAqB,MAAM,oBAAoB,CAAC;;AASrE,wBAgZE"}
1
+ {"version":3,"file":"app-graph-builder.d.ts","sourceRoot":"","sources":["../../../../../src/capabilities/app-graph-builder/app-graph-builder.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,MAAM,MAAM,eAAe,CAAC;AAExC,OAAO,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAKjD,OAAO,EAAE,YAAY,EAAqB,MAAM,oBAAoB,CAAC;;AASrE,wBAgZE"}
@@ -1 +1 @@
1
- {"version":3,"file":"react-context.d.ts","sourceRoot":"","sources":["../../../../../src/capabilities/react-context/react-context.tsx"],"names":[],"mappings":"AAIA,OAAO,KAAK,MAAM,MAAM,eAAe,CAAC;AACxC,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,OAAO,EAAE,UAAU,EAAU,MAAM,qBAAqB,CAAC;;;;;;AAKzD,wBAOE"}
1
+ {"version":3,"file":"react-context.d.ts","sourceRoot":"","sources":["../../../../../src/capabilities/react-context/react-context.tsx"],"names":[],"mappings":"AAIA,OAAO,KAAK,MAAM,MAAM,eAAe,CAAC;AACxC,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,OAAO,EAAgB,UAAU,EAAE,MAAM,qBAAqB,CAAC;;;;;;AAK/D,wBAOE"}
@@ -1,3 +1,3 @@
1
1
  import { Capability } from '@dxos/app-framework';
2
- export declare const ReactSurface: Capability.LazyCapability<void, Capability.Capability<Capability.InterfaceDef<import("@dxos/app-framework/Common").Capability.ReactSurface>>, Error>;
2
+ export declare const ReactSurface: Capability.LazyCapability<void, Capability.Capability<Capability.InterfaceDef<import("@dxos/app-framework/Capabilities").ReactSurface>>, Error>;
3
3
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/capabilities/react-surface/index.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAEjD,eAAO,MAAM,YAAY,sJAAmE,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/capabilities/react-surface/index.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAEjD,eAAO,MAAM,YAAY,iJAAmE,CAAC"}
@@ -1,5 +1,5 @@
1
1
  import * as Effect from 'effect/Effect';
2
- import { Capability, Common } from '@dxos/app-framework';
3
- declare const _default: (props?: void | undefined) => Effect.Effect<Capability.Capability<Capability.InterfaceDef<Common.Capability.ReactSurface>>, never, Capability.Service>;
2
+ import { Capabilities, Capability } from '@dxos/app-framework';
3
+ declare const _default: (props?: void | undefined) => Effect.Effect<Capability.Capability<Capability.InterfaceDef<Capabilities.ReactSurface>>, never, Capability.Service>;
4
4
  export default _default;
5
5
  //# sourceMappingURL=react-surface.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"react-surface.d.ts","sourceRoot":"","sources":["../../../../../src/capabilities/react-surface/react-surface.tsx"],"names":[],"mappings":"AAIA,OAAO,KAAK,MAAM,MAAM,eAAe,CAAC;AAGxC,OAAO,EAAE,UAAU,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;;AA8EzD,wBAmUE"}
1
+ {"version":3,"file":"react-surface.d.ts","sourceRoot":"","sources":["../../../../../src/capabilities/react-surface/react-surface.tsx"],"names":[],"mappings":"AAIA,OAAO,KAAK,MAAM,MAAM,eAAe,CAAC;AAGxC,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;;AAgF/D,wBAmUE"}