@dxos/plugin-debug 0.8.4-main.c1de068 → 0.8.4-main.dedc0f3

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 (64) 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-AG3XGNMV.mjs → SpaceGenerator-DANYBPYZ.mjs} +54 -59
  4. package/dist/lib/browser/SpaceGenerator-DANYBPYZ.mjs.map +7 -0
  5. package/dist/lib/browser/{app-graph-builder-SQXFD2BL.mjs → app-graph-builder-JTIEFOWZ.mjs} +22 -32
  6. package/dist/lib/browser/app-graph-builder-JTIEFOWZ.mjs.map +7 -0
  7. package/dist/lib/browser/index.mjs +7 -4
  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-surface-3GD2OWCA.mjs → react-surface-YLOWSIBU.mjs} +28 -23
  11. package/dist/lib/browser/react-surface-YLOWSIBU.mjs.map +7 -0
  12. package/dist/types/src/capabilities/app-graph-builder.d.ts +1 -1
  13. package/dist/types/src/capabilities/app-graph-builder.d.ts.map +1 -1
  14. package/dist/types/src/capabilities/index.d.ts +5 -5
  15. package/dist/types/src/capabilities/index.d.ts.map +1 -1
  16. package/dist/types/src/capabilities/react-context.d.ts +2 -2
  17. package/dist/types/src/capabilities/react-surface.d.ts +1 -1
  18. package/dist/types/src/capabilities/react-surface.d.ts.map +1 -1
  19. package/dist/types/src/capabilities/settings.d.ts +1 -1
  20. package/dist/types/src/components/DebugGraph.d.ts +8 -0
  21. package/dist/types/src/components/DebugGraph.d.ts.map +1 -0
  22. package/dist/types/src/components/DebugSettings.d.ts.map +1 -1
  23. package/dist/types/src/components/SpaceGenerator/ObjectGenerator.d.ts.map +1 -1
  24. package/dist/types/src/components/SpaceGenerator/SpaceGenerator.d.ts.map +1 -1
  25. package/dist/types/src/components/SpaceGenerator/SpaceGenerator.stories.d.ts +13 -3
  26. package/dist/types/src/components/SpaceGenerator/SpaceGenerator.stories.d.ts.map +1 -1
  27. package/dist/types/src/components/SpaceGenerator/draw-util.d.ts.map +1 -1
  28. package/dist/types/src/components/SpaceGenerator/presets.d.ts +2 -1
  29. package/dist/types/src/components/SpaceGenerator/presets.d.ts.map +1 -1
  30. package/dist/types/src/components/Wireframe.d.ts.map +1 -1
  31. package/dist/types/src/components/index.d.ts +2 -1
  32. package/dist/types/src/components/index.d.ts.map +1 -1
  33. package/dist/types/src/translations.d.ts +2 -0
  34. package/dist/types/src/translations.d.ts.map +1 -1
  35. package/dist/types/tsconfig.tsbuildinfo +1 -1
  36. package/package.json +56 -55
  37. package/src/DebugPlugin.tsx +1 -1
  38. package/src/capabilities/app-graph-builder.ts +13 -40
  39. package/src/capabilities/react-surface.tsx +7 -6
  40. package/src/components/DebugGraph.tsx +14 -0
  41. package/src/components/DebugObjectPanel.tsx +1 -1
  42. package/src/components/DebugSettings.tsx +72 -64
  43. package/src/components/SpaceGenerator/ObjectGenerator.tsx +12 -12
  44. package/src/components/SpaceGenerator/SpaceGenerator.stories.tsx +8 -6
  45. package/src/components/SpaceGenerator/SpaceGenerator.tsx +7 -7
  46. package/src/components/SpaceGenerator/draw-util.ts +3 -3
  47. package/src/components/SpaceGenerator/presets.ts +11 -11
  48. package/src/components/Wireframe.tsx +2 -1
  49. package/src/components/index.ts +1 -1
  50. package/src/translations.ts +2 -0
  51. package/dist/lib/browser/DebugApp-ZDL4CPY5.mjs +0 -228
  52. package/dist/lib/browser/DebugApp-ZDL4CPY5.mjs.map +0 -7
  53. package/dist/lib/browser/SpaceGenerator-AG3XGNMV.mjs.map +0 -7
  54. package/dist/lib/browser/app-graph-builder-SQXFD2BL.mjs.map +0 -7
  55. package/dist/lib/browser/react-surface-3GD2OWCA.mjs.map +0 -7
  56. package/dist/types/src/components/DebugApp/DebugApp.d.ts +0 -6
  57. package/dist/types/src/components/DebugApp/DebugApp.d.ts.map +0 -1
  58. package/dist/types/src/components/DebugApp/Tree.d.ts +0 -18
  59. package/dist/types/src/components/DebugApp/Tree.d.ts.map +0 -1
  60. package/dist/types/src/components/DebugApp/index.d.ts +0 -3
  61. package/dist/types/src/components/DebugApp/index.d.ts.map +0 -1
  62. package/src/components/DebugApp/DebugApp.tsx +0 -84
  63. package/src/components/DebugApp/Tree.tsx +0 -103
  64. package/src/components/DebugApp/index.ts +0 -7
@@ -1,7 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../../../src/capabilities/app-graph-builder.ts"],
4
- "sourcesContent": ["//\n// Copyright 2025 DXOS.org\n//\n\nimport { Rx } from '@effect-rx/rx-react';\nimport { Option, pipe } from 'effect';\n\nimport { contributes, Capabilities, type PluginContext } from '@dxos/app-framework';\nimport { Obj } from '@dxos/echo';\nimport { ATTENDABLE_PATH_SEPARATOR, DECK_COMPANION_TYPE, PLANK_COMPANION_TYPE } from '@dxos/plugin-deck/types';\nimport { createExtension, ROOT_ID, rxFromSignal } from '@dxos/plugin-graph';\nimport { getActiveSpace, SPACE_PLUGIN } from '@dxos/plugin-space';\n\nimport { DEBUG_PLUGIN } from '../meta';\nimport { Devtools } from '../types';\n\nconst DEVTOOLS_TYPE = 'dxos.org/plugin/debug/devtools';\n\nexport default (context: PluginContext) =>\n contributes(Capabilities.AppGraphBuilder, [\n // Devtools node.\n createExtension({\n id: 'dxos.org/plugin/debug/devtools',\n connector: (node) =>\n Rx.make((get) =>\n pipe(\n get(node),\n Option.flatMap((node) =>\n node.id === ROOT_ID || node.type === `${SPACE_PLUGIN}/settings` ? Option.some(node) : Option.none(),\n ),\n Option.map((node) => {\n const space = get(rxFromSignal(() => getActiveSpace(context)));\n\n return [\n {\n id: `${Devtools.id}-${node.id}`,\n data: null,\n type: DEVTOOLS_TYPE,\n properties: {\n label: ['devtools label', { ns: DEBUG_PLUGIN }],\n icon: 'ph--hammer--regular',\n disposition: 'pin-end',\n position: 'fallback',\n },\n nodes: [\n ...(space && node.type === `${SPACE_PLUGIN}/settings`\n ? [\n {\n id: `debug-${node.id}`,\n type: 'dxos.org/plugin/debug/space',\n data: { space, type: 'dxos.org/plugin/debug/space' },\n properties: {\n label: ['debug label', { ns: DEBUG_PLUGIN }],\n icon: 'ph--bug--regular',\n },\n },\n ]\n : []),\n {\n id: `${Devtools.Client.id}-${node.id}`,\n data: null,\n type: DEVTOOLS_TYPE,\n properties: {\n label: ['client label', { ns: DEBUG_PLUGIN }],\n icon: 'ph--users--regular',\n },\n nodes: [\n {\n id: `${Devtools.Client.Config}-${node.id}`,\n data: Devtools.Client.Config,\n type: DEVTOOLS_TYPE,\n properties: {\n label: ['config label', { ns: DEBUG_PLUGIN }],\n icon: 'ph--gear--regular',\n },\n },\n {\n id: `${Devtools.Client.Storage}-${node.id}`,\n data: Devtools.Client.Storage,\n type: DEVTOOLS_TYPE,\n properties: {\n label: ['storage label', { ns: DEBUG_PLUGIN }],\n icon: 'ph--hard-drives--regular',\n },\n },\n {\n id: `${Devtools.Client.Logs}-${node.id}`,\n data: Devtools.Client.Logs,\n type: DEVTOOLS_TYPE,\n properties: {\n label: ['logs label', { ns: DEBUG_PLUGIN }],\n icon: 'ph--file-text--regular',\n },\n },\n {\n id: `${Devtools.Client.Diagnostics}-${node.id}`,\n data: Devtools.Client.Diagnostics,\n type: DEVTOOLS_TYPE,\n properties: {\n label: ['diagnostics label', { ns: DEBUG_PLUGIN }],\n icon: 'ph--chart-line--regular',\n },\n },\n {\n id: `${Devtools.Client.Tracing}-${node.id}`,\n data: Devtools.Client.Tracing,\n type: DEVTOOLS_TYPE,\n properties: {\n label: ['tracing label', { ns: DEBUG_PLUGIN }],\n icon: 'ph--fire--regular',\n },\n },\n ],\n },\n {\n id: `${Devtools.Halo.id}-${node.id}`,\n data: null,\n type: DEVTOOLS_TYPE,\n properties: {\n label: ['halo label', { ns: DEBUG_PLUGIN }],\n icon: 'ph--identification-badge--regular',\n },\n nodes: [\n {\n id: `${Devtools.Halo.Identity}-${node.id}`,\n data: Devtools.Halo.Identity,\n type: DEVTOOLS_TYPE,\n properties: {\n label: ['identity label', { ns: DEBUG_PLUGIN }],\n icon: 'ph--identification-badge--regular',\n },\n },\n {\n id: `${Devtools.Halo.Devices}-${node.id}`,\n data: Devtools.Halo.Devices,\n type: DEVTOOLS_TYPE,\n properties: {\n label: ['devices label', { ns: DEBUG_PLUGIN }],\n icon: 'ph--devices--regular',\n },\n },\n {\n id: `${Devtools.Halo.Keyring}-${node.id}`,\n data: Devtools.Halo.Keyring,\n type: DEVTOOLS_TYPE,\n properties: {\n label: ['keyring label', { ns: DEBUG_PLUGIN }],\n icon: 'ph--key--regular',\n },\n },\n {\n id: `${Devtools.Halo.Credentials}-${node.id}`,\n data: Devtools.Halo.Credentials,\n type: DEVTOOLS_TYPE,\n properties: {\n label: ['credentials label', { ns: DEBUG_PLUGIN }],\n icon: 'ph--credit-card--regular',\n },\n },\n ],\n },\n {\n id: `${Devtools.Echo.id}-${node.id}`,\n data: null,\n type: DEVTOOLS_TYPE,\n properties: {\n label: ['echo label', { ns: DEBUG_PLUGIN }],\n icon: 'ph--database--regular',\n },\n nodes: [\n {\n id: `${Devtools.Echo.Spaces}-${node.id}`,\n data: Devtools.Echo.Spaces,\n type: DEVTOOLS_TYPE,\n properties: {\n label: ['spaces label', { ns: DEBUG_PLUGIN }],\n icon: 'ph--graph--regular',\n },\n },\n {\n id: `${Devtools.Echo.Space}-${node.id}`,\n data: Devtools.Echo.Space,\n type: DEVTOOLS_TYPE,\n properties: {\n label: ['space label', { ns: DEBUG_PLUGIN }],\n icon: 'ph--planet--regular',\n },\n },\n {\n id: `${Devtools.Echo.Feeds}-${node.id}`,\n data: Devtools.Echo.Feeds,\n type: DEVTOOLS_TYPE,\n properties: {\n label: ['feeds label', { ns: DEBUG_PLUGIN }],\n icon: 'ph--list-bullets--regular',\n },\n },\n {\n id: `${Devtools.Echo.Objects}-${node.id}`,\n data: Devtools.Echo.Objects,\n type: DEVTOOLS_TYPE,\n properties: {\n label: ['objects label', { ns: DEBUG_PLUGIN }],\n icon: 'ph--cube--regular',\n },\n },\n {\n id: `${Devtools.Echo.Schema}-${node.id}`,\n data: Devtools.Echo.Schema,\n type: DEVTOOLS_TYPE,\n properties: {\n label: ['schema label', { ns: DEBUG_PLUGIN }],\n icon: 'ph--database--regular',\n },\n },\n {\n id: `${Devtools.Echo.Automerge}-${node.id}`,\n data: Devtools.Echo.Automerge,\n type: DEVTOOLS_TYPE,\n properties: {\n label: ['automerge label', { ns: DEBUG_PLUGIN }],\n icon: 'ph--gear-six--regular',\n },\n },\n {\n id: `${Devtools.Echo.Queues}-${node.id}`,\n data: Devtools.Echo.Queues,\n type: DEVTOOLS_TYPE,\n properties: {\n label: ['queues label', { ns: DEBUG_PLUGIN }],\n icon: 'ph--queue--regular',\n },\n },\n {\n id: `${Devtools.Echo.Members}-${node.id}`,\n data: Devtools.Echo.Members,\n type: DEVTOOLS_TYPE,\n properties: {\n label: ['members label', { ns: DEBUG_PLUGIN }],\n icon: 'ph--users--regular',\n },\n },\n {\n id: `${Devtools.Echo.Metadata}-${node.id}`,\n data: Devtools.Echo.Metadata,\n type: DEVTOOLS_TYPE,\n properties: {\n label: ['metadata label', { ns: DEBUG_PLUGIN }],\n icon: 'ph--hard-drive--regular',\n },\n },\n ],\n },\n {\n id: `${Devtools.Mesh.id}-${node.id}`,\n data: null,\n type: DEVTOOLS_TYPE,\n properties: {\n label: ['mesh label', { ns: DEBUG_PLUGIN }],\n icon: 'ph--graph--regular',\n },\n nodes: [\n {\n id: `${Devtools.Mesh.Signal}-${node.id}`,\n data: Devtools.Mesh.Signal,\n type: DEVTOOLS_TYPE,\n properties: {\n label: ['signal label', { ns: DEBUG_PLUGIN }],\n icon: 'ph--wifi-high--regular',\n },\n },\n {\n id: `${Devtools.Mesh.Swarm}-${node.id}`,\n data: Devtools.Mesh.Swarm,\n type: DEVTOOLS_TYPE,\n properties: {\n label: ['swarm label', { ns: DEBUG_PLUGIN }],\n icon: 'ph--users-three--regular',\n },\n },\n {\n id: `${Devtools.Mesh.Network}-${node.id}`,\n data: Devtools.Mesh.Network,\n type: DEVTOOLS_TYPE,\n properties: {\n label: ['network label', { ns: DEBUG_PLUGIN }],\n icon: 'ph--polygon--regular',\n },\n },\n ],\n },\n // TODO(wittjosiah): Remove?\n // {\n // id: `${prefix}-${Devtools.Agent.id}`,\n // data: null,\n // type: DEVTOOLS_TYPE,\n // properties: {\n // label: ['agent label', { ns: DEBUG_PLUGIN }],\n // icon: 'ph--robot--regular',\n // },\n // nodes: [\n // {\n // id: `${prefix}-${Devtools.Agent.Dashboard}`,\n // data: Devtools.Agent.Dashboard,\n // type: DEVTOOLS_TYPE,\n // properties: {\n // label: ['dashboard label', { ns: DEBUG_PLUGIN }],\n // icon: 'ph--computer-tower--regular',\n // },\n // },\n // ],\n // },\n {\n id: `${Devtools.Edge.id}-${node.id}`,\n data: null,\n type: DEVTOOLS_TYPE,\n properties: {\n label: ['edge label', { ns: DEBUG_PLUGIN }],\n icon: 'ph--cloud--regular',\n },\n nodes: [\n {\n id: `${Devtools.Edge.Dashboard}-${node.id}`,\n data: Devtools.Edge.Dashboard,\n type: DEVTOOLS_TYPE,\n properties: {\n label: ['dashboard label', { ns: DEBUG_PLUGIN }],\n icon: 'ph--computer-tower--regular',\n },\n },\n {\n id: `${Devtools.Edge.Workflows}-${node.id}`,\n data: Devtools.Edge.Workflows,\n type: DEVTOOLS_TYPE,\n properties: {\n label: ['workflows label', { ns: DEBUG_PLUGIN }],\n icon: 'ph--function--regular',\n },\n },\n {\n id: `${Devtools.Edge.Traces}-${node.id}`,\n data: Devtools.Edge.Traces,\n type: DEVTOOLS_TYPE,\n properties: {\n label: ['traces label', { ns: DEBUG_PLUGIN }],\n icon: 'ph--line-segments--regular',\n },\n },\n {\n id: `${Devtools.Edge.Testing}-${node.id}`,\n data: Devtools.Edge.Testing,\n type: DEVTOOLS_TYPE,\n properties: {\n label: ['testing label', { ns: DEBUG_PLUGIN }],\n icon: 'ph--flask--regular',\n },\n },\n ],\n },\n ],\n },\n ];\n }),\n Option.getOrElse(() => []),\n ),\n ),\n }),\n\n // Debug node.\n createExtension({\n id: 'dxos.org/plugin/debug/debug',\n connector: (node) =>\n Rx.make((get) =>\n pipe(\n get(node),\n Option.flatMap((node) => (node.id === ROOT_ID ? Option.some(node) : Option.none())),\n Option.flatMap(() => {\n const [graph] = get(context.capabilities(Capabilities.AppGraph));\n return graph ? Option.some(graph) : Option.none();\n }),\n Option.flatMap((graph) => {\n // TODO(wittjosiah): Plank is currently blank. Remove?\n // const settings = context\n // .requestCapabilities(Capabilities.SettingsStore)[0]\n // ?.getStore<DebugSettingsProps>(DEBUG_PLUGIN)?.value;\n // return !!settings?.debug && node.id === 'root';\n return Option.none();\n }),\n Option.map((graph) => [\n {\n id: 'dxos.org/plugin/debug/debug',\n type: 'dxos.org/plugin/debug/debug',\n data: { graph },\n properties: {\n label: ['debug label', { ns: DEBUG_PLUGIN }],\n disposition: 'navigation',\n icon: 'ph--bug--regular',\n },\n },\n ]),\n Option.getOrElse(() => []),\n ),\n ),\n }),\n\n // Debug object companion.\n createExtension({\n id: `${DEBUG_PLUGIN}/debug-object`,\n connector: (node) =>\n Rx.make((get) =>\n pipe(\n get(node),\n Option.flatMap((node) => (Obj.isObject(node.data) ? Option.some(node) : Option.none())),\n Option.map((node) => [\n {\n id: [node.id, 'debug'].join(ATTENDABLE_PATH_SEPARATOR),\n type: PLANK_COMPANION_TYPE,\n data: 'debug',\n properties: {\n label: ['debug label', { ns: DEBUG_PLUGIN }],\n icon: 'ph--bug--regular',\n disposition: 'hidden',\n position: 'fallback',\n },\n },\n ]),\n Option.getOrElse(() => []),\n ),\n ),\n }),\n\n // Devtools deck companion.\n createExtension({\n id: `${DEBUG_PLUGIN}/devtools-overview`,\n connector: (node) =>\n Rx.make((get) =>\n pipe(\n get(node),\n Option.flatMap((node) => (node.id === ROOT_ID ? Option.some(node) : Option.none())),\n Option.map((node) => [\n {\n id: [node.id, 'devtools'].join(ATTENDABLE_PATH_SEPARATOR),\n type: DECK_COMPANION_TYPE,\n data: null,\n properties: {\n label: ['devtools overview label', { ns: DEBUG_PLUGIN }],\n icon: 'ph--equalizer--regular',\n disposition: 'hidden',\n position: 'fallback',\n },\n },\n ]),\n Option.getOrElse(() => []),\n ),\n ),\n }),\n ]);\n"],
5
- "mappings": "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",
6
- "names": ["Rx", "Option", "pipe", "contributes", "Capabilities", "Obj", "ATTENDABLE_PATH_SEPARATOR", "DECK_COMPANION_TYPE", "PLANK_COMPANION_TYPE", "createExtension", "ROOT_ID", "rxFromSignal", "getActiveSpace", "SPACE_PLUGIN", "DEVTOOLS_TYPE", "context", "contributes", "Capabilities", "AppGraphBuilder", "createExtension", "id", "connector", "node", "Rx", "make", "get", "pipe", "Option", "flatMap", "ROOT_ID", "type", "SPACE_PLUGIN", "some", "none", "map", "space", "rxFromSignal", "getActiveSpace", "Devtools", "data", "properties", "label", "ns", "DEBUG_PLUGIN", "icon", "disposition", "position", "nodes", "Client", "Config", "Storage", "Logs", "Diagnostics", "Tracing", "Halo", "Identity", "Devices", "Keyring", "Credentials", "Echo", "Spaces", "Space", "Feeds", "Objects", "Schema", "Automerge", "Queues", "Members", "Metadata", "Mesh", "Signal", "Swarm", "Network", "Edge", "Dashboard", "Workflows", "Traces", "Testing", "getOrElse", "graph", "capabilities", "AppGraph", "Obj", "isObject", "join", "ATTENDABLE_PATH_SEPARATOR", "PLANK_COMPANION_TYPE", "DECK_COMPANION_TYPE"]
7
- }
@@ -1,7 +0,0 @@
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 { pipe } from 'effect';\nimport React, { useCallback } from 'react';\n\nimport {\n Capabilities,\n chain,\n contributes,\n createIntent,\n createSurface,\n LayoutAction,\n useCapability,\n useIntentDispatcher,\n type PluginContext,\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 { SpaceState, isSpace, type Space, parseId } from '@dxos/react-client/echo';\nimport { StackItem } from '@dxos/react-ui-stack';\nimport { DataType } from '@dxos/schema';\n\nimport {\n DebugApp,\n DebugObjectPanel,\n DebugSettings,\n DebugStatus,\n DevtoolsOverviewContainer,\n SpaceGenerator,\n Wireframe,\n} from '../components';\nimport { DEBUG_PLUGIN } 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};\n\nconst isSpaceDebug = (data: any): data is SpaceDebug => data?.type === `${DEBUG_PLUGIN}/space` && isSpace(data.space);\nconst isGraphDebug = (data: any): data is GraphDebug => data?.graph instanceof Graph;\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: `${DEBUG_PLUGIN}/plugin-settings`,\n role: 'article',\n filter: (data): data is { subject: SettingsStore<DebugSettingsProps> } =>\n data.subject instanceof SettingsStore && data.subject.prefix === DEBUG_PLUGIN,\n component: ({ data: { subject } }) => <DebugSettings settings={subject.value} />,\n }),\n createSurface({\n id: `${DEBUG_PLUGIN}/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: `${DEBUG_PLUGIN}/graph`,\n role: 'article',\n filter: (data): data is { subject: GraphDebug } => isGraphDebug(data.subject),\n component: ({ data }) => <DebugApp graph={data.subject.graph} />,\n }),\n createSurface({\n id: `${DEBUG_PLUGIN}/wireframe`,\n role: ['article', 'section'],\n position: 'hoist',\n filter: (data): data is { subject: Obj.Any } => {\n const settings = context\n .getCapability(Capabilities.SettingsStore)\n .getStore<DebugSettingsProps>(DEBUG_PLUGIN)!.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: `${DEBUG_PLUGIN}/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: `${DEBUG_PLUGIN}/devtools-overview`,\n role: 'deck-companion--devtools',\n component: () => <DevtoolsOverviewContainer />,\n }),\n createSurface({\n id: `${DEBUG_PLUGIN}/status`,\n role: 'status',\n component: () => <DebugStatus />,\n }),\n\n //\n // Devtools\n //\n\n createSurface({\n id: `${DEBUG_PLUGIN}/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: `${DEBUG_PLUGIN}/client/storage`,\n role: 'article',\n filter: (data): data is any => data.subject === Devtools.Client.Storage,\n component: () => <StoragePanel />,\n }),\n createSurface({\n id: `${DEBUG_PLUGIN}/client/logs`,\n role: 'article',\n filter: (data): data is any => data.subject === Devtools.Client.Logs,\n component: () => <LoggingPanel />,\n }),\n createSurface({\n id: `${DEBUG_PLUGIN}/client/diagnostics`,\n role: 'article',\n filter: (data): data is any => data.subject === Devtools.Client.Diagnostics,\n component: () => <DiagnosticsPanel />,\n }),\n createSurface({\n id: `${DEBUG_PLUGIN}/client/tracing`,\n role: 'article',\n filter: (data): data is any => data.subject === Devtools.Client.Tracing,\n component: () => <TracingPanel />,\n }),\n createSurface({\n id: `${DEBUG_PLUGIN}/halo/identity`,\n role: 'article',\n filter: (data): data is any => data.subject === Devtools.Halo.Identity,\n component: () => <IdentityPanel />,\n }),\n createSurface({\n id: `${DEBUG_PLUGIN}/halo/devices`,\n role: 'article',\n filter: (data): data is any => data.subject === Devtools.Halo.Devices,\n component: () => <DeviceListPanel />,\n }),\n createSurface({\n id: `${DEBUG_PLUGIN}/halo/keyring`,\n role: 'article',\n filter: (data): data is any => data.subject === Devtools.Halo.Keyring,\n component: () => <KeyringPanel />,\n }),\n createSurface({\n id: `${DEBUG_PLUGIN}/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: `${DEBUG_PLUGIN}/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: `${DEBUG_PLUGIN}/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: `${DEBUG_PLUGIN}/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: `${DEBUG_PLUGIN}/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: `${DEBUG_PLUGIN}/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: `${DEBUG_PLUGIN}/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: `${DEBUG_PLUGIN}/echo/queues`,\n role: 'article',\n filter: (data): data is any => data.subject === Devtools.Echo.Queues,\n component: () => <QueuesPanel />,\n }),\n createSurface({\n id: `${DEBUG_PLUGIN}/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: `${DEBUG_PLUGIN}/echo/metadata`,\n role: 'article',\n filter: (data): data is any => data.subject === Devtools.Echo.Metadata,\n component: () => <MetadataPanel />,\n }),\n createSurface({\n id: `${DEBUG_PLUGIN}/mesh/signal`,\n role: 'article',\n filter: (data): data is any => data.subject === Devtools.Mesh.Signal,\n component: () => <SignalPanel />,\n }),\n createSurface({\n id: `${DEBUG_PLUGIN}/mesh/swarm`,\n role: 'article',\n filter: (data): data is any => data.subject === Devtools.Mesh.Swarm,\n component: () => <SwarmPanel />,\n }),\n createSurface({\n id: `${DEBUG_PLUGIN}/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: `${DEBUG_PLUGIN}/agent/dashboard`,\n // role: 'article',\n // filter: (data): data is any => data.subject === Devtools.Agent.Dashboard,\n // component: () => <DashboardPanel />,\n // }),\n createSurface({\n id: `${DEBUG_PLUGIN}/edge/dashboard`,\n role: 'article',\n filter: (data): data is any => data.subject === Devtools.Edge.Dashboard,\n component: () => <EdgeDashboardPanel />,\n }),\n createSurface({\n id: `${DEBUG_PLUGIN}/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: `${DEBUG_PLUGIN}/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: `${DEBUG_PLUGIN}/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 pipe(createIntent(ScriptAction.Create, { space }), chain(SpaceAction.AddObject, { target: space })),\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 DebugApp = lazy(() => import('./DebugApp'));\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 { SyntaxHighlighter } 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 <SyntaxHighlighter classNames='flex text-xs' language='json'>\n {JSON.stringify(object, null, 2)}\n </SyntaxHighlighter>\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, defs, SaveConfig, Storage } from '@dxos/config';\nimport { log } from '@dxos/log';\nimport { useClient } from '@dxos/react-client';\nimport { useTranslation, Button, Toast, Input, useFileDownload, Select, Icon } from '@dxos/react-ui';\nimport { DeprecatedFormContainer, DeprecatedFormInput } from '@dxos/react-ui-form';\nimport { setDeep } from '@dxos/util';\n\nimport { DEBUG_PLUGIN } 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(DEBUG_PLUGIN);\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 <DeprecatedFormContainer>\n <DeprecatedFormInput label={t('settings wireframe')}>\n <Input.Switch checked={settings.wireframe} onCheckedChange={(checked) => (settings.wireframe = !!checked)} />\n </DeprecatedFormInput>\n <DeprecatedFormInput label={t('settings download diagnostics')}>\n <Button onClick={handleDownload}>\n <Icon icon='ph--download-simple--regular' size={5} />\n </Button>\n </DeprecatedFormInput>\n <DeprecatedFormInput label={t('settings repair')}>\n <Button onClick={handleRepair}>\n <Icon icon='ph--first-aid-kit--regular' size={5} />\n </Button>\n </DeprecatedFormInput>\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 <DeprecatedFormInput label={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.Content>\n </Select.Portal>\n </Select.Root>\n </DeprecatedFormInput>\n </DeprecatedFormContainer>\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>();\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 = undefined;\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 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='flex w-full 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": ["pipe", "React", "useCallback", "Capabilities", "chain", "contributes", "createIntent", "createSurface", "LayoutAction", "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", "SyntaxHighlighter", "DebugObjectPanel", "object", "dxn", "id", "Clipboard", "Provider", "StackItem", "Content", "toolbar", "Toolbar", "Root", "Input", "TextInput", "disabled", "value", "IconButton", "SyntaxHighlighter", "classNames", "language", "JSON", "stringify", "React", "useEffect", "useState", "Capabilities", "useCapabilities", "defs", "SaveConfig", "Storage", "log", "useClient", "useTranslation", "Button", "Toast", "Input", "useFileDownload", "Select", "Icon", "DeprecatedFormContainer", "DeprecatedFormInput", "setDeep", "StorageAdapters", "opfs", "defs", "Runtime", "Client", "Storage", "StorageDriver", "WEBFS", "idb", "IDB", "DebugSettings", "settings", "t", "useTranslation", "DEBUG_PLUGIN", "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", "DeprecatedFormContainer", "DeprecatedFormInput", "label", "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", "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", "undefined", "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", "DebugApp", "lazy", "DevtoolsOverviewContainer", "SpaceGenerator", "isSpaceDebug", "data", "type", "DEBUG_PLUGIN", "isSpace", "space", "isGraphDebug", "graph", "Graph", "useCurrentSpace", "layout", "useCapability", "Capabilities", "Layout", "client", "ClientCapabilities", "Client", "spaceId", "parseId", "workspace", "spaces", "get", "undefined", "context", "contributes", "ReactSurface", "createSurface", "id", "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", "DebugApp", "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", "Create", "chain", "log", "info", "TestingPanel"]
7
- }
@@ -1,6 +0,0 @@
1
- import { type FC } from 'react';
2
- import { type Graph } from '@dxos/plugin-graph';
3
- export declare const DebugApp: FC<{
4
- graph: Graph;
5
- }>;
6
- //# sourceMappingURL=DebugApp.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"DebugApp.d.ts","sourceRoot":"","sources":["../../../../../src/components/DebugApp/DebugApp.tsx"],"names":[],"mappings":"AAIA,OAAc,EAAE,KAAK,EAAE,EAAuB,MAAM,OAAO,CAAC;AAE5D,OAAO,EAAE,KAAK,KAAK,EAAE,MAAM,oBAAoB,CAAC;AAOhD,eAAO,MAAM,QAAQ,EAAE,EAAE,CAAC;IAAE,KAAK,EAAE,KAAK,CAAA;CAAE,CAsEzC,CAAC"}
@@ -1,18 +0,0 @@
1
- import { type FC } from 'react';
2
- export declare const replacer: (key: any, value: any) => any;
3
- export declare const Json: FC<{
4
- data?: object;
5
- }>;
6
- export declare const Tree: FC<{
7
- data?: object;
8
- }>;
9
- export declare const Node: FC<{
10
- data?: any;
11
- root?: boolean;
12
- }>;
13
- export declare const KeyValue: FC<{
14
- label: string;
15
- data?: any;
16
- className?: string;
17
- }>;
18
- //# sourceMappingURL=Tree.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"Tree.d.ts","sourceRoot":"","sources":["../../../../../src/components/DebugApp/Tree.tsx"],"names":[],"mappings":"AAIA,OAAc,EAAE,KAAK,EAAE,EAAiC,MAAM,OAAO,CAAC;AAQtE,eAAO,MAAM,QAAQ,GAAI,KAAK,GAAG,EAAE,OAAO,GAAG,QAgB5C,CAAC;AAEF,eAAO,MAAM,IAAI,EAAE,EAAE,CAAC;IAAE,IAAI,CAAC,EAAE,MAAM,CAAA;CAAE,CAEtC,CAAC;AAEF,eAAO,MAAM,IAAI,EAAE,EAAE,CAAC;IAAE,IAAI,CAAC,EAAE,MAAM,CAAA;CAAE,CAMtC,CAAC;AAEF,eAAO,MAAM,IAAI,EAAE,EAAE,CAAC;IAAE,IAAI,CAAC,EAAE,GAAG,CAAC;IAAC,IAAI,CAAC,EAAE,OAAO,CAAA;CAAE,CAsBnD,CAAC;AAEF,eAAO,MAAM,QAAQ,EAAE,EAAE,CAAC;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,IAAI,CAAC,EAAE,GAAG,CAAC;IAAC,SAAS,CAAC,EAAE,MAAM,CAAA;CAAE,CAiB1E,CAAC"}
@@ -1,3 +0,0 @@
1
- import { DebugApp } from './DebugApp';
2
- export default DebugApp;
3
- //# sourceMappingURL=index.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/components/DebugApp/index.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAEtC,eAAe,QAAQ,CAAC"}
@@ -1,84 +0,0 @@
1
- //
2
- // Copyright 2023 DXOS.org
3
- //
4
-
5
- import React, { type FC, useEffect, useState } from 'react';
6
-
7
- import { type Graph } from '@dxos/plugin-graph';
8
- import { useClient, useConfig } from '@dxos/react-client';
9
- import { ToggleGroup, ToggleGroupItem, Toolbar, Icon, IconButton } from '@dxos/react-ui';
10
-
11
- import { Json, Tree } from './Tree';
12
- import { Container } from '../Container';
13
-
14
- export const DebugApp: FC<{ graph: Graph }> = ({ graph }) => {
15
- const [view, setView] = useState<'config' | 'diagnostics' | 'graph'>('graph');
16
- const [data, setData] = useState<any>({});
17
- const client = useClient();
18
- const config = useConfig();
19
- const handleRefresh = async () => {
20
- const data = await client.diagnostics({ truncate: true });
21
- setData(data);
22
- };
23
- useEffect(() => {
24
- void handleRefresh();
25
- }, []);
26
-
27
- const handleResetClient = async (force = false) => {
28
- if (!force && !window.confirm('Reset storage?')) {
29
- return;
30
- }
31
-
32
- // TODO(burdon): Throws exception.
33
- await client.reset();
34
- window.location.href = window.location.origin;
35
- };
36
-
37
- const handleOpenDevtools = () => {
38
- const vaultUrl = config.values?.runtime?.client?.remoteSource;
39
- if (vaultUrl) {
40
- window.open(`https://devtools.dev.dxos.org/?target=${vaultUrl}`);
41
- }
42
- };
43
-
44
- return (
45
- <Container
46
- toolbar={
47
- <Toolbar.Root classNames='p-1'>
48
- <ToggleGroup type='single' value={view}>
49
- <ToggleGroupItem value={'graph'} onClick={() => setView('graph')} title={'Plugin graph'}>
50
- <Icon icon='ph--graph--regular' size={5} />
51
- </ToggleGroupItem>
52
- <ToggleGroupItem value={'diagnostics'} onClick={() => setView('diagnostics')} title={'Diagnostics'}>
53
- <Icon icon='ph--gauge--regular' size={5} />
54
- </ToggleGroupItem>
55
- <ToggleGroupItem value={'config'} onClick={() => setView('config')} title={'Config'}>
56
- <Icon icon='ph--gear--regular' size={5} />
57
- </ToggleGroupItem>
58
- </ToggleGroup>
59
-
60
- <Toolbar.Separator variant='gap' />
61
- <IconButton
62
- icon='ph--warning--regular'
63
- iconOnly
64
- size={5}
65
- classNames='text-red-700'
66
- onClick={(event) => handleResetClient(event.shiftKey)}
67
- label='Reset client'
68
- />
69
- <IconButton
70
- icon='ph--toolbox--duotone'
71
- iconOnly
72
- size={5}
73
- onClick={handleOpenDevtools}
74
- label='Open Devtools'
75
- />
76
- </Toolbar.Root>
77
- }
78
- >
79
- {view === 'graph' && <Tree data={graph.toJSON()} />}
80
- {view === 'config' && <Json data={data.diagnostics?.config} />}
81
- {view === 'diagnostics' && <Json data={data} />}
82
- </Container>
83
- );
84
- };
@@ -1,103 +0,0 @@
1
- //
2
- // Copyright 2023 DXOS.org
3
- //
4
-
5
- import React, { type FC, type HTMLAttributes, useState } from 'react';
6
-
7
- import { SyntaxHighlighter } from '@dxos/react-ui-syntax-highlighter';
8
- import { mx } from '@dxos/react-ui-theme';
9
- import { arrayToBuffer } from '@dxos/util';
10
-
11
- // TODO(burdon): Copied form devtools.
12
-
13
- export const replacer = (key: any, value: any) => {
14
- if (typeof value === 'object') {
15
- if (value instanceof Uint8Array) {
16
- return arrayToBuffer(value).toString('hex');
17
- }
18
-
19
- if (value?.type === 'Buffer') {
20
- return Buffer.from(value.data).toString('hex');
21
- }
22
-
23
- if (key === 'downloaded') {
24
- return undefined;
25
- }
26
- }
27
-
28
- return value;
29
- };
30
-
31
- export const Json: FC<{ data?: object }> = ({ data }) => {
32
- return <SyntaxHighlighter language='json'>{JSON.stringify(data, replacer, 2)}</SyntaxHighlighter>;
33
- };
34
-
35
- export const Tree: FC<{ data?: object }> = ({ data }) => {
36
- return (
37
- <div className='p-2'>
38
- <Node data={data} root />
39
- </div>
40
- );
41
- };
42
-
43
- export const Node: FC<{ data?: any; root?: boolean }> = ({ data, root }) => {
44
- if (typeof data !== 'object' || data === undefined || data === null) {
45
- return <Scalar value={data} />;
46
- }
47
-
48
- if (Array.isArray(data)) {
49
- return (
50
- <div className='flex flex-col space-y-2'>
51
- {data.map((value, index) => (
52
- <KeyValue key={index} label={String(index)} data={value} className='bg-teal-50' />
53
- ))}
54
- </div>
55
- );
56
- }
57
-
58
- return (
59
- <div className='flex flex-col space-y-2'>
60
- {Object.entries(data).map(([key, value]) => (
61
- <KeyValue key={key} label={key} data={value} className='bg-blue-50' />
62
- ))}
63
- </div>
64
- );
65
- };
66
-
67
- export const KeyValue: FC<{ label: string; data?: any; className?: string }> = ({ label, data, className }) => {
68
- const [open, setOpen] = useState(true);
69
- if (data === undefined) {
70
- return null;
71
- }
72
-
73
- return (
74
- <div className='flex'>
75
- <Box
76
- className={mx('border-blue-200 text-sm select-none cursor-pointer', className)}
77
- onClick={() => setOpen((open) => !open)}
78
- >
79
- {label}
80
- </Box>
81
- {open && <Node data={data} />}
82
- </div>
83
- );
84
- };
85
-
86
- const Scalar: FC<{ value: any }> = ({ value }) => {
87
- return (
88
- <Box className='bg-green-50 border-green-200 rounded-r text-sm font-thin'>
89
- {(value === undefined && 'undefined') ||
90
- (value === null && 'null') ||
91
- (typeof value === 'string' && value) ||
92
- JSON.stringify(value)}
93
- </Box>
94
- );
95
- };
96
-
97
- const Box: FC<HTMLAttributes<HTMLDivElement>> = ({ children, className, ...props }) => {
98
- return (
99
- <div className={mx('flex px-2 border border-l-0 font-mono truncate', className)} {...props}>
100
- {children}
101
- </div>
102
- );
103
- };
@@ -1,7 +0,0 @@
1
- //
2
- // Copyright 2023 DXOS.org
3
- //
4
-
5
- import { DebugApp } from './DebugApp';
6
-
7
- export default DebugApp;