@dxos/plugin-debug 0.8.1-main.ba2dec9 → 0.8.1-staging.5be625a

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 (54) hide show
  1. package/dist/lib/browser/{DebugApp-LQHFFK3Y.mjs → DebugApp-7PFYN52J.mjs} +30 -23
  2. package/dist/lib/browser/{DebugApp-LQHFFK3Y.mjs.map → DebugApp-7PFYN52J.mjs.map} +4 -4
  3. package/dist/lib/browser/{SpaceGenerator-SPEJBGP7.mjs → SpaceGenerator-OIK3XDTA.mjs} +6 -5
  4. package/dist/lib/browser/SpaceGenerator-OIK3XDTA.mjs.map +7 -0
  5. package/dist/lib/browser/{app-graph-builder-MMXPWK2F.mjs → app-graph-builder-EJHONTKA.mjs} +73 -29
  6. package/dist/lib/browser/{app-graph-builder-MMXPWK2F.mjs.map → app-graph-builder-EJHONTKA.mjs.map} +3 -3
  7. package/dist/lib/browser/{chunk-LHJC7LSH.mjs → chunk-F2R7TJCJ.mjs} +1 -2
  8. package/dist/lib/browser/{chunk-EF3UVAVI.mjs → chunk-RORUXVAC.mjs} +1 -1
  9. package/dist/lib/browser/chunk-RORUXVAC.mjs.map +7 -0
  10. package/dist/lib/browser/index.mjs +5 -5
  11. package/dist/lib/browser/meta.json +1 -1
  12. package/dist/lib/browser/{react-context-TCD3MNIT.mjs → react-context-ZRLN5KUI.mjs} +2 -2
  13. package/dist/lib/browser/{react-surface-3CAWUFBU.mjs → react-surface-G43REICD.mjs} +36 -25
  14. package/dist/lib/browser/react-surface-G43REICD.mjs.map +7 -0
  15. package/dist/lib/browser/{settings-DLIPIUG7.mjs → settings-R47ZDKXO.mjs} +5 -5
  16. package/dist/types/src/capabilities/app-graph-builder.d.ts.map +1 -1
  17. package/dist/types/src/capabilities/react-surface.d.ts.map +1 -1
  18. package/dist/types/src/components/index.d.ts +0 -4
  19. package/dist/types/src/components/index.d.ts.map +1 -1
  20. package/dist/types/src/meta.d.ts +2 -9
  21. package/dist/types/src/meta.d.ts.map +1 -1
  22. package/package.json +48 -48
  23. package/src/capabilities/app-graph-builder.ts +44 -15
  24. package/src/capabilities/react-surface.tsx +25 -26
  25. package/src/components/SpaceGenerator/ObjectGenerator.tsx +1 -1
  26. package/src/components/SpaceGenerator/SchemaTable.tsx +1 -1
  27. package/src/components/SpaceGenerator/SpaceGenerator.tsx +2 -2
  28. package/src/components/index.ts +0 -1
  29. package/src/meta.ts +2 -2
  30. package/dist/lib/browser/DebugSpace-5A2QOKAZ.mjs +0 -277
  31. package/dist/lib/browser/DebugSpace-5A2QOKAZ.mjs.map +0 -7
  32. package/dist/lib/browser/SpaceGenerator-SPEJBGP7.mjs.map +0 -7
  33. package/dist/lib/browser/chunk-EF3UVAVI.mjs.map +0 -7
  34. package/dist/lib/browser/chunk-GSJS3HEM.mjs +0 -15
  35. package/dist/lib/browser/chunk-GSJS3HEM.mjs.map +0 -7
  36. package/dist/lib/browser/react-surface-3CAWUFBU.mjs.map +0 -7
  37. package/dist/types/src/components/DebugSpace/DebugSpace.d.ts +0 -8
  38. package/dist/types/src/components/DebugSpace/DebugSpace.d.ts.map +0 -1
  39. package/dist/types/src/components/DebugSpace/DebugSpace.stories.d.ts +0 -6
  40. package/dist/types/src/components/DebugSpace/DebugSpace.stories.d.ts.map +0 -1
  41. package/dist/types/src/components/DebugSpace/ObjectCreator.d.ts +0 -15
  42. package/dist/types/src/components/DebugSpace/ObjectCreator.d.ts.map +0 -1
  43. package/dist/types/src/components/DebugSpace/ObjectCreator.stories.d.ts +0 -6
  44. package/dist/types/src/components/DebugSpace/ObjectCreator.stories.d.ts.map +0 -1
  45. package/dist/types/src/components/DebugSpace/index.d.ts +0 -3
  46. package/dist/types/src/components/DebugSpace/index.d.ts.map +0 -1
  47. package/src/components/DebugSpace/DebugSpace.stories.tsx +0 -46
  48. package/src/components/DebugSpace/DebugSpace.tsx +0 -183
  49. package/src/components/DebugSpace/ObjectCreator.stories.tsx +0 -51
  50. package/src/components/DebugSpace/ObjectCreator.tsx +0 -100
  51. package/src/components/DebugSpace/index.ts +0 -7
  52. /package/dist/lib/browser/{chunk-LHJC7LSH.mjs.map → chunk-F2R7TJCJ.mjs.map} +0 -0
  53. /package/dist/lib/browser/{react-context-TCD3MNIT.mjs.map → react-context-ZRLN5KUI.mjs.map} +0 -0
  54. /package/dist/lib/browser/{settings-DLIPIUG7.mjs.map → settings-R47ZDKXO.mjs.map} +0 -0
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../src/capabilities/react-surface.tsx", "../../../src/components/index.ts", "../../../src/components/DebugObjectPanel.tsx", "../../../src/components/DebugSettings.tsx", "../../../src/components/DebugStatus.tsx", "../../../src/components/Wireframe.tsx"],
4
+ "sourcesContent": ["//\n// Copyright 2025 DXOS.org\n//\n\nimport React, { useCallback } from 'react';\n\nimport {\n Capabilities,\n contributes,\n createIntent,\n createSurface,\n LayoutAction,\n useCapability,\n type PluginsContext,\n} from '@dxos/app-framework';\nimport {\n ConfigPanel,\n CredentialsPanel,\n DeviceListPanel,\n DiagnosticsPanel,\n FeedsPanel,\n IdentityPanel,\n KeyringPanel,\n LoggingPanel,\n MembersPanel,\n MetadataPanel,\n NetworkPanel,\n ObjectsPanel,\n SignalPanel,\n SpaceInfoPanel,\n SpaceListPanel,\n StoragePanel,\n SwarmPanel,\n TracingPanel,\n DashboardPanel,\n EdgeDashboardPanel,\n AutomergePanel,\n WorkflowPanel,\n QueuesPanel,\n InvocationTracePanel,\n} from '@dxos/devtools';\nimport { SettingsStore } from '@dxos/local-storage';\nimport { ClientCapabilities } from '@dxos/plugin-client';\nimport { Graph } from '@dxos/plugin-graph';\nimport { SpaceAction, CollectionType } from '@dxos/plugin-space/types';\nimport {\n SpaceState,\n isSpace,\n isEchoObject,\n type ReactiveEchoObject,\n type ReactiveObject,\n type Space,\n parseId,\n} from '@dxos/react-client/echo';\n\nimport { DebugApp, DebugObjectPanel, DebugSettings, DebugStatus, SpaceGenerator, Wireframe } 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: PluginsContext) =>\n contributes(Capabilities.ReactSurface, [\n createSurface({\n id: `${DEBUG_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 handleCreateObject = useCallback(\n (objects: ReactiveObject<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[CollectionType.typename]?.target;\n if (!(collection instanceof CollectionType)) {\n return;\n }\n\n const { dispatchPromise: dispatch } = context.requestCapability(Capabilities.IntentDispatcher);\n objects.forEach((object) => {\n void dispatch(createIntent(SpaceAction.AddObject, { target: collection, object }));\n });\n },\n [data.subject.space],\n );\n\n return <SpaceGenerator space={data.subject.space} onCreateObjects={handleCreateObject} />;\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: ReactiveEchoObject<any> } => {\n const settings = context\n .requestCapability(Capabilities.SettingsStore)\n .getStore<DebugSettingsProps>(DEBUG_PLUGIN)!.value;\n return isEchoObject(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}/complementary`,\n role: 'complementary--debug',\n filter: (data): data is { subject: ReactiveEchoObject<any> } => isEchoObject(data.subject),\n component: ({ data }) => <DebugObjectPanel object={data.subject} />,\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: () => <CredentialsPanel />,\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 } = context.requestCapability(Capabilities.IntentDispatcher);\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 } = context.requestCapability(Capabilities.IntentDispatcher);\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: () => <FeedsPanel />,\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/automerge`,\n role: 'article',\n filter: (data): data is any => data.subject === Devtools.Echo.Automerge,\n component: () => <AutomergePanel />,\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: () => <MembersPanel />,\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: () => <NetworkPanel />,\n }),\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: () => <WorkflowPanel />,\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 <InvocationTracePanel space={space} />;\n },\n }),\n ]);\n", "//\n// Copyright 2023 DXOS.org\n//\n\nimport { lazy } from 'react';\n\nexport const DebugApp = lazy(() => import('./DebugApp'));\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 ReactiveEchoObject } from '@dxos/client/echo';\nimport { Clipboard, Input } from '@dxos/react-ui';\nimport { SyntaxHighlighter } from '@dxos/react-ui-syntax-highlighter';\n\nexport type DebugObjectPanelProps = {\n object: ReactiveEchoObject<any>;\n};\n\n// TODO(burdon): Get schema and traverse references.\nexport const DebugObjectPanel = ({ object }: DebugObjectPanelProps) => {\n const dxn = `dxn:echo:@:${object.id}`;\n return (\n <Clipboard.Provider>\n <div className='flex flex-col'>\n <Input.Root>\n <div role='none' className='flex flex-col gap-1'>\n <div role='none' className='flex gap-1'>\n <Input.TextInput disabled value={dxn} />\n <Clipboard.IconButton value={dxn} />\n </div>\n </div>\n </Input.Root>\n <SyntaxHighlighter classNames='flex text-xs' language='json'>\n {JSON.stringify(object, null, 2)}\n </SyntaxHighlighter>\n </div>\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 show debug panel')}>\n <Input.Switch checked={settings.debug} onCheckedChange={(checked) => (settings.debug = !!checked)} />\n </DeprecatedFormInput>\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 { useAppGraph, useLayout } from '@dxos/app-framework';\nimport { TimeoutError } from '@dxos/async';\nimport { StatsPanel, useStats } from '@dxos/devtools';\nimport { getActiveSpace } 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, Popover } 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 layout = useLayout();\n const { graph } = useAppGraph();\n const _space = graph ? getActiveSpace(graph, layout.active[0]) : undefined;\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 PerformanceIndicator = () => {\n const [visible, setVisible] = useState(false);\n const [stats, refreshStats] = useStats();\n\n return (\n <Popover.Root open={visible} onOpenChange={setVisible}>\n <Popover.Trigger asChild>\n <StatusBar.Button onClick={() => setVisible((visible) => !visible)} title='Performance panels'>\n <Icon icon='ph--chart-bar--regular' size={4} />\n </StatusBar.Button>\n </Popover.Trigger>\n <Popover.Portal>\n <Popover.Content classNames='max-is-[min(var(--radix-popover-content-available-width),300px)] max-bs-[--radix-popover-content-available-height]'>\n <StatsPanel stats={stats} onRefresh={refreshStats} />\n <Popover.Arrow />\n </Popover.Content>\n </Popover.Portal>\n </Popover.Root>\n );\n};\n\nconst indicators = [SavingIndicator, SwarmIndicator, PerformanceIndicator, 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 { fullyQualifiedId, type ReactiveEchoObject } from '@dxos/react-client/echo';\nimport { type ThemedClassName } from '@dxos/react-ui';\nimport { useAttendableAttributes } 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: ReactiveEchoObject<any>;\n}>;\n\n// TODO(burdon): Make focusable and attendable with input.\nexport const Wireframe = ({ classNames, label, object }: WireframeProps) => {\n const attendableAttrs = useAttendableAttributes(fullyQualifiedId(object));\n const { width, height, ref } = useResizeDetector();\n return (\n <div ref={ref} className={mx('relative grow min-bs-96', classNames)} {...attendableAttrs}>\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": ["React", "useCallback", "Capabilities", "contributes", "createIntent", "createSurface", "LayoutAction", "useCapability", "ConfigPanel", "CredentialsPanel", "DeviceListPanel", "DiagnosticsPanel", "FeedsPanel", "IdentityPanel", "KeyringPanel", "LoggingPanel", "MembersPanel", "MetadataPanel", "NetworkPanel", "ObjectsPanel", "SignalPanel", "SpaceInfoPanel", "SpaceListPanel", "StoragePanel", "SwarmPanel", "TracingPanel", "DashboardPanel", "EdgeDashboardPanel", "AutomergePanel", "WorkflowPanel", "QueuesPanel", "InvocationTracePanel", "SettingsStore", "ClientCapabilities", "Graph", "SpaceAction", "CollectionType", "SpaceState", "isSpace", "isEchoObject", "parseId", "lazy", "React", "Clipboard", "Input", "SyntaxHighlighter", "DebugObjectPanel", "object", "dxn", "id", "Clipboard", "Provider", "div", "className", "Input", "Root", "role", "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", "debug", "onCheckedChange", "wireframe", "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", "useAppGraph", "useLayout", "TimeoutError", "StatsPanel", "useStats", "getActiveSpace", "StatusBar", "ConnectionState", "useNetworkStatus", "Icon", "Popover", "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", "layout", "useLayout", "graph", "useAppGraph", "_space", "getActiveSpace", "active", "success", "PerformanceIndicator", "visible", "setVisible", "stats", "refreshStats", "useStats", "Popover", "Root", "open", "onOpenChange", "Trigger", "asChild", "Portal", "Content", "StatsPanel", "onRefresh", "Arrow", "indicators", "DebugStatus", "map", "Indicator", "key", "name", "React", "useResizeDetector", "fullyQualifiedId", "useAttendableAttributes", "SyntaxHighlighter", "mx", "Wireframe", "classNames", "label", "object", "attendableAttrs", "useAttendableAttributes", "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", "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", "handleCreateObject", "useCallback", "objects", "collection", "state", "SpaceState", "SPACE_READY", "properties", "CollectionType", "typename", "target", "dispatchPromise", "dispatch", "requestCapability", "IntentDispatcher", "forEach", "object", "createIntent", "SpaceAction", "AddObject", "SpaceGenerator", "onCreateObjects", "DebugApp", "position", "getStore", "isEchoObject", "wireframe", "Wireframe", "label", "name", "classNames", "DebugObjectPanel", "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", "Automerge", "AutomergePanel", "Queues", "QueuesPanel", "Members", "MembersPanel", "Metadata", "MetadataPanel", "Mesh", "Signal", "SignalPanel", "Swarm", "SwarmPanel", "Network", "NetworkPanel", "Agent", "Dashboard", "DashboardPanel", "Edge", "EdgeDashboardPanel", "Workflows", "WorkflowPanel", "Traces", "InvocationTracePanel"]
7
+ }
@@ -1,9 +1,9 @@
1
- import {
2
- DEBUG_PLUGIN
3
- } from "./chunk-EF3UVAVI.mjs";
4
1
  import {
5
2
  DebugSettingsSchema
6
- } from "./chunk-LHJC7LSH.mjs";
3
+ } from "./chunk-F2R7TJCJ.mjs";
4
+ import {
5
+ DEBUG_PLUGIN
6
+ } from "./chunk-RORUXVAC.mjs";
7
7
 
8
8
  // packages/plugins/plugin-debug/src/capabilities/settings.ts
9
9
  import { Capabilities, contributes } from "@dxos/app-framework";
@@ -21,4 +21,4 @@ var settings_default = () => {
21
21
  export {
22
22
  settings_default as default
23
23
  };
24
- //# sourceMappingURL=settings-DLIPIUG7.mjs.map
24
+ //# sourceMappingURL=settings-R47ZDKXO.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"app-graph-builder.d.ts","sourceRoot":"","sources":["../../../../src/capabilities/app-graph-builder.ts"],"names":[],"mappings":"AAIA,OAAO,EAA6B,KAAK,cAAc,EAAE,MAAM,qBAAqB,CAAC;AACrF,OAAO,EAA6B,KAAK,IAAI,EAAE,MAAM,oBAAoB,CAAC;kCAUjD,cAAc;;qBAmFN,YAAY;sBACR,iBAC/B;uBACY,iBAClB;sBAAgD,iBAAiB;;2BAE/C,iBAAF;;;qBAG2B,YACjC;sBACQ,iBAAA;uBACS,iBACf;sBAAgD,iBACnD;;2BAEO,iBACd;;;qBAEyB,YAAY;sBACT,iBACtB;uBACgB,iBAAiB;sBACpB,iBAAiB;;2BAIpB,iBAAD;;;qBAEC,YAAJ;sBACI,iBAAY;uBACgB,iBAAiB;sBACxB,iBACrC;;2BAGU,iBACC;;;qBAGY,YACvB;sBACc,iBAAa;uBACb,iBAAiB;sBAEhB,iBACN;;2BAEO,iBAAc;;;qBAGZ,YAAR;sBAAsC,iBAClD;uBACkB,iBAAD;sBAGC,iBAAM;;2BAEN,iBAAC;;;qBAEiB,YAAY;sBAC5B,iBAAiB;uBAErB,iBACH;sBAEK,iBAAD;;2BAEC,iBAAF;;;qBAEI,YAAL;sBAAsC,iBACtC;uBAGG,iBAAI;sBACG,iBAAiB;;2BAEpB,iBACf;;;qBACoB,YAAY;sBAEvB,iBACb;uBAC8B,iBAC9B;sBACe,iBAAC;;2BAEC,iBAAW;;;qBACe,YACvC;sBAES,iBACZ;uBACc,iBAAO;sBACE,iBACtB;;2BACkC,iBAAiB;;;qBAGxC,YACf;sBACqB,iBAAgB;uBACG,iBAC9B;sBACS,iBACf;;2BACe,iBAAA;;;qBAIF,YAAP;sBACO,iBAAE;uBACA,iBAAiB;sBAEjB,iBAAW;;2BACH,iBAAiB;;;qBAKjC,YACN;sBACQ,iBAAW;uBAEX,iBACb;sBAAgD,iBAC5C;;2BAES,iBACV;;;qBAEuB,YAAY;sBACR,iBACtB;uBACgB,iBAAiB;sBACnB,iBAAiB;;2BAGxB,iBACH;;;qBAEK,YAAO;sBACD,iBACf;uBAAgD,iBACjD;sBACU,iBAAC;;2BAGQ,iBAAiB;;;qBAEP,YAC3B;sBACU,iBAAa;uBACb,iBAAU;sBAEd,iBACX;;2BAGoB,iBACpB;;;qBAGW,YAAA;sBAAsC,iBAC7C;uBACK,iBACD;sBAEO,iBAAiB;;2BAEnB,iBAAI;;;qBAEc,YAAY;sBAC5B,iBAAa;uBAEjB,iBACf;sBAC8B,iBAC5B;;2BACmB,iBACtB;;;qBACwD,YACvD;sBAAsC,iBAAiB;uBAG1C,iBACT;sBAEmB,iBACnB;;2BAES,iBAAa;;;qBAEJ,YAAY;sBAErB,iBACR;uBAC8B,iBAC9B;sBACY,iBAAI;;2BAEF,iBAAc;;;qBACkB,YAC7C;sBAES,iBACZ;uBACc,iBAAI;sBACD,iBAAiB;;2BAEL,iBAAiB;;;qBAEhC,YACb;sBAEa,iBAAK;uBACI,iBAAiB;sBAE1B,iBAAM;;2BACkC,iBAClD;;AA/SR,wBAmYK"}
1
+ {"version":3,"file":"app-graph-builder.d.ts","sourceRoot":"","sources":["../../../../src/capabilities/app-graph-builder.ts"],"names":[],"mappings":"AAIA,OAAO,EAA6B,KAAK,cAAc,EAAE,MAAM,qBAAqB,CAAC;AACrF,OAAO,EAA6B,KAAK,IAAI,EAAE,MAAM,oBAAoB,CAAC;kCAUjD,cAAc;;qBAmFN,YAAY;sBACR,iBAC/B;uBACY,iBAClB;sBAAgD,iBAAiB;;2BAE/C,iBAAF;;;qBAG2B,YACjC;sBACQ,iBAAA;uBACS,iBACf;sBAAgD,iBACnD;;2BAEO,iBACd;;;qBAEyB,YAAY;sBACT,iBACtB;uBACgB,iBAAiB;sBACpB,iBAAiB;;2BAIpB,iBAAD;;;qBAEC,YAAJ;sBACI,iBAAY;uBACgB,iBAAiB;sBACxB,iBACrC;;2BAGU,iBACC;;;qBAGY,YACvB;sBACc,iBAAa;uBACb,iBAAiB;sBAEhB,iBACN;;2BAEO,iBAAc;;;qBAGZ,YAAR;sBAAsC,iBAClD;uBACkB,iBAAD;sBAGC,iBAAM;;2BAEN,iBAAC;;;qBAEiB,YAAY;sBAC5B,iBAAiB;uBAErB,iBACH;sBAEK,iBAAD;;2BAEC,iBAAF;;;qBAEI,YAAL;sBAAsC,iBACtC;uBAGG,iBAAI;sBACG,iBAAiB;;2BAEpB,iBACf;;;qBACoB,YAAY;sBAEvB,iBACb;uBAC8B,iBAC9B;sBACe,iBAAC;;2BAEC,iBAAW;;;qBACe,YACvC;sBAES,iBACZ;uBACc,iBAAO;sBACE,iBACtB;;2BACkC,iBAAiB;;;qBAGxC,YACf;sBACqB,iBAAgB;uBACG,iBAC9B;sBACS,iBACf;;2BACe,iBAAA;;;qBAIF,YAAP;sBACO,iBAAE;uBACA,iBAAiB;sBAEjB,iBAAW;;2BACH,iBAAiB;;;qBAKjC,YACN;sBACQ,iBAAW;uBAEX,iBACb;sBAAgD,iBAC5C;;2BAES,iBACV;;;qBAEuB,YAAY;sBACR,iBACtB;uBACgB,iBAAiB;sBACnB,iBAAiB;;2BAGxB,iBACH;;;qBAEK,YAAO;sBACD,iBACf;uBAAgD,iBACjD;sBACU,iBAAC;;2BAGQ,iBAAiB;;;qBAEP,YAC3B;sBACU,iBAAa;uBACb,iBAAU;sBAEd,iBACX;;2BAGoB,iBACpB;;;qBAGW,YAAA;sBAAsC,iBAC7C;uBACK,iBACD;sBAEO,iBAAiB;;2BAEnB,iBAAI;;;qBAEc,YAAY;sBAC5B,iBAAa;uBAEjB,iBACf;sBAGa,iBAAM;;2BAEI,iBAClB;;;qBAEU,YAAC;sBACH,iBACH;uBAEO,iBAAiB;sBACC,iBAChC;;2BAEgB,iBAAJ;;;qBACe,YAAY;sBAE3B,iBACf;uBAC8B,iBAC9B;sBACiB,iBAAD;;2BAEG,iBAAS;;;qBACkB,YACvC;sBAEQ,iBACX;uBACa,iBAAQ;sBACE,iBACtB;;2BACkC,iBAAiB;;;qBAEtC,YACT;sBAEE,iBAEX;uBAKG,iBAAc;sBAEZ,iBAAc;;2BACoB,iBAAiB;;AApTzD,wBAgaK"}
@@ -1 +1 @@
1
- {"version":3,"file":"react-surface.d.ts","sourceRoot":"","sources":["../../../../src/capabilities/react-surface.tsx"],"names":[],"mappings":"AAMA,OAAO,EACL,YAAY,EAKZ,KAAK,cAAc,EACpB,MAAM,qBAAqB,CAAC;kCAgEJ,cAAc;AAAvC,wBAmPK"}
1
+ {"version":3,"file":"react-surface.d.ts","sourceRoot":"","sources":["../../../../src/capabilities/react-surface.tsx"],"names":[],"mappings":"AAMA,OAAO,EACL,YAAY,EAMZ,KAAK,cAAc,EACpB,MAAM,qBAAqB,CAAC;kCAkEJ,cAAc;AAAvC,wBA+OK"}
@@ -1,10 +1,6 @@
1
1
  export declare const DebugApp: import("react").LazyExoticComponent<import("react").FC<{
2
2
  graph: import("@dxos/app-graph").Graph;
3
3
  }>>;
4
- export declare const DebugSpace: import("react").LazyExoticComponent<import("react").FC<{
5
- space: import("@dxos/client-protocol").Space;
6
- onAddObjects?: (objects: import("@dxos/live-object").ReactiveObject<any>[]) => void;
7
- }>>;
8
4
  export declare const SpaceGenerator: import("react").LazyExoticComponent<({ space, onCreateObjects }: import("./SpaceGenerator/SpaceGenerator").SpaceGeneratorProps) => import("react").JSX.Element>;
9
5
  export * from './DebugObjectPanel';
10
6
  export * from './DebugSettings';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/components/index.ts"],"names":[],"mappings":"AAMA,eAAO,MAAM,QAAQ;;GAAmC,CAAC;AACzD,eAAO,MAAM,UAAU;;;GAAqC,CAAC;AAC7D,eAAO,MAAM,cAAc,iKAAyC,CAAC;AAErE,cAAc,oBAAoB,CAAC;AACnC,cAAc,iBAAiB,CAAC;AAChC,cAAc,eAAe,CAAC;AAC9B,cAAc,aAAa,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/components/index.ts"],"names":[],"mappings":"AAMA,eAAO,MAAM,QAAQ;;GAAmC,CAAC;AACzD,eAAO,MAAM,cAAc,iKAAyC,CAAC;AAErE,cAAc,oBAAoB,CAAC;AACnC,cAAc,iBAAiB,CAAC;AAChC,cAAc,eAAe,CAAC;AAC9B,cAAc,aAAa,CAAC"}
@@ -1,11 +1,4 @@
1
+ import { type PluginMeta } from '@dxos/app-framework';
1
2
  export declare const DEBUG_PLUGIN = "dxos.org/plugin/debug";
2
- export declare const meta: {
3
- id: string;
4
- name: string;
5
- description: string;
6
- icon: string;
7
- source: string;
8
- tags: string[];
9
- screenshots: string[];
10
- };
3
+ export declare const meta: PluginMeta;
11
4
  //# sourceMappingURL=meta.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"meta.d.ts","sourceRoot":"","sources":["../../../src/meta.ts"],"names":[],"mappings":"AAMA,eAAO,MAAM,YAAY,0BAA0B,CAAC;AAEpD,eAAO,MAAM,IAAI;;;;;;;;CASK,CAAC"}
1
+ {"version":3,"file":"meta.d.ts","sourceRoot":"","sources":["../../../src/meta.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,KAAK,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAEtD,eAAO,MAAM,YAAY,0BAA0B,CAAC;AAEpD,eAAO,MAAM,IAAI,EAAE,UASlB,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@dxos/plugin-debug",
3
- "version": "0.8.1-main.ba2dec9",
3
+ "version": "0.8.1-staging.5be625a",
4
4
  "description": "DXOS Surface plugin for testing.",
5
5
  "homepage": "https://dxos.org",
6
6
  "bugs": "https://github.com/dxos/dxos/issues",
@@ -33,47 +33,47 @@
33
33
  "react-json-tree": "^0.18.0",
34
34
  "react-resize-detector": "^11.0.1",
35
35
  "workerize-loader": "^2.0.2",
36
- "@dxos/async": "0.8.1-main.ba2dec9",
37
- "@dxos/automerge": "0.8.1-main.ba2dec9",
38
- "@dxos/app-framework": "0.8.1-main.ba2dec9",
39
- "@dxos/client-services": "0.8.1-main.ba2dec9",
40
- "@dxos/compute": "0.8.1-main.ba2dec9",
41
- "@dxos/config": "0.8.1-main.ba2dec9",
42
- "@dxos/conductor": "0.8.1-main.ba2dec9",
43
- "@dxos/devtools": "0.8.1-main.ba2dec9",
44
- "@dxos/echo-generator": "0.8.1-main.ba2dec9",
45
- "@dxos/echo-pipeline": "0.8.1-main.ba2dec9",
46
- "@dxos/echo-schema": "0.8.1-main.ba2dec9",
47
- "@dxos/functions": "0.8.1-main.ba2dec9",
48
- "@dxos/invariant": "0.8.1-main.ba2dec9",
49
- "@dxos/keys": "0.8.1-main.ba2dec9",
50
- "@dxos/local-storage": "0.8.1-main.ba2dec9",
51
- "@dxos/live-object": "0.8.1-main.ba2dec9",
52
- "@dxos/log": "0.8.1-main.ba2dec9",
53
- "@dxos/plugin-deck": "0.8.1-main.ba2dec9",
54
- "@dxos/plugin-client": "0.8.1-main.ba2dec9",
55
- "@dxos/plugin-graph": "0.8.1-main.ba2dec9",
56
- "@dxos/plugin-markdown": "0.8.1-main.ba2dec9",
57
- "@dxos/plugin-sheet": "0.8.1-main.ba2dec9",
58
- "@dxos/plugin-table": "0.8.1-main.ba2dec9",
59
- "@dxos/plugin-sketch": "0.8.1-main.ba2dec9",
60
- "@dxos/plugin-status-bar": "0.8.1-main.ba2dec9",
61
- "@dxos/plugin-space": "0.8.1-main.ba2dec9",
62
- "@dxos/plugin-theme": "0.8.1-main.ba2dec9",
63
- "@dxos/protocols": "0.8.1-main.ba2dec9",
64
- "@dxos/random": "0.8.1-main.ba2dec9",
65
- "@dxos/react-client": "0.8.1-main.ba2dec9",
66
- "@dxos/react-hooks": "0.8.1-main.ba2dec9",
67
- "@dxos/react-ui-attention": "0.8.1-main.ba2dec9",
68
- "@dxos/react-ui-canvas-compute": "0.8.1-main.ba2dec9",
69
- "@dxos/react-ui-canvas-editor": "0.8.1-main.ba2dec9",
70
- "@dxos/react-ui-kanban": "0.8.1-main.ba2dec9",
71
- "@dxos/react-ui-form": "0.8.1-main.ba2dec9",
72
- "@dxos/react-ui-stack": "0.8.1-main.ba2dec9",
73
- "@dxos/react-ui-syntax-highlighter": "0.8.1-main.ba2dec9",
74
- "@dxos/react-ui-table": "0.8.1-main.ba2dec9",
75
- "@dxos/util": "0.8.1-main.ba2dec9",
76
- "@dxos/schema": "0.8.1-main.ba2dec9"
36
+ "@dxos/app-framework": "0.8.1-staging.5be625a",
37
+ "@dxos/async": "0.8.1-staging.5be625a",
38
+ "@dxos/automerge": "0.8.1-staging.5be625a",
39
+ "@dxos/compute": "0.8.1-staging.5be625a",
40
+ "@dxos/client-services": "0.8.1-staging.5be625a",
41
+ "@dxos/conductor": "0.8.1-staging.5be625a",
42
+ "@dxos/config": "0.8.1-staging.5be625a",
43
+ "@dxos/devtools": "0.8.1-staging.5be625a",
44
+ "@dxos/echo-generator": "0.8.1-staging.5be625a",
45
+ "@dxos/echo-pipeline": "0.8.1-staging.5be625a",
46
+ "@dxos/functions": "0.8.1-staging.5be625a",
47
+ "@dxos/invariant": "0.8.1-staging.5be625a",
48
+ "@dxos/echo-schema": "0.8.1-staging.5be625a",
49
+ "@dxos/keys": "0.8.1-staging.5be625a",
50
+ "@dxos/live-object": "0.8.1-staging.5be625a",
51
+ "@dxos/local-storage": "0.8.1-staging.5be625a",
52
+ "@dxos/log": "0.8.1-staging.5be625a",
53
+ "@dxos/plugin-deck": "0.8.1-staging.5be625a",
54
+ "@dxos/plugin-graph": "0.8.1-staging.5be625a",
55
+ "@dxos/plugin-client": "0.8.1-staging.5be625a",
56
+ "@dxos/plugin-sheet": "0.8.1-staging.5be625a",
57
+ "@dxos/plugin-markdown": "0.8.1-staging.5be625a",
58
+ "@dxos/plugin-sketch": "0.8.1-staging.5be625a",
59
+ "@dxos/plugin-status-bar": "0.8.1-staging.5be625a",
60
+ "@dxos/plugin-space": "0.8.1-staging.5be625a",
61
+ "@dxos/plugin-table": "0.8.1-staging.5be625a",
62
+ "@dxos/plugin-theme": "0.8.1-staging.5be625a",
63
+ "@dxos/random": "0.8.1-staging.5be625a",
64
+ "@dxos/protocols": "0.8.1-staging.5be625a",
65
+ "@dxos/react-client": "0.8.1-staging.5be625a",
66
+ "@dxos/react-hooks": "0.8.1-staging.5be625a",
67
+ "@dxos/react-ui-attention": "0.8.1-staging.5be625a",
68
+ "@dxos/react-ui-canvas-compute": "0.8.1-staging.5be625a",
69
+ "@dxos/react-ui-form": "0.8.1-staging.5be625a",
70
+ "@dxos/react-ui-canvas-editor": "0.8.1-staging.5be625a",
71
+ "@dxos/react-ui-kanban": "0.8.1-staging.5be625a",
72
+ "@dxos/react-ui-stack": "0.8.1-staging.5be625a",
73
+ "@dxos/react-ui-syntax-highlighter": "0.8.1-staging.5be625a",
74
+ "@dxos/react-ui-table": "0.8.1-staging.5be625a",
75
+ "@dxos/schema": "0.8.1-staging.5be625a",
76
+ "@dxos/util": "0.8.1-staging.5be625a"
77
77
  },
78
78
  "devDependencies": {
79
79
  "@phosphor-icons/react": "^2.1.5",
@@ -83,17 +83,17 @@
83
83
  "react": "~18.2.0",
84
84
  "react-dom": "~18.2.0",
85
85
  "vite": "5.4.7",
86
- "@dxos/react-ui-theme": "0.8.1-main.ba2dec9",
87
- "@dxos/storybook-utils": "0.8.1-main.ba2dec9",
88
- "@dxos/react-ui": "0.8.1-main.ba2dec9"
86
+ "@dxos/react-ui-theme": "0.8.1-staging.5be625a",
87
+ "@dxos/storybook-utils": "0.8.1-staging.5be625a",
88
+ "@dxos/react-ui": "0.8.1-staging.5be625a"
89
89
  },
90
90
  "peerDependencies": {
91
91
  "@phosphor-icons/react": "^2.1.5",
92
92
  "react": "~18.2.0",
93
93
  "react-dom": "~18.2.0",
94
- "@dxos/random": "0.8.1-main.ba2dec9",
95
- "@dxos/react-ui-theme": "0.8.1-main.ba2dec9",
96
- "@dxos/react-ui": "0.8.1-main.ba2dec9"
94
+ "@dxos/random": "0.8.1-staging.5be625a",
95
+ "@dxos/react-ui-theme": "0.8.1-staging.5be625a",
96
+ "@dxos/react-ui": "0.8.1-staging.5be625a"
97
97
  },
98
98
  "publishConfig": {
99
99
  "access": "public"
@@ -272,15 +272,6 @@ export default (context: PluginsContext) =>
272
272
  icon: 'ph--computer-tower--regular',
273
273
  },
274
274
  },
275
- {
276
- id: Devtools.Agent.Search,
277
- data: Devtools.Agent.Search,
278
- type: DEVTOOLS_TYPE,
279
- properties: {
280
- label: ['search label', { ns: DEBUG_PLUGIN }],
281
- icon: 'ph--magnifying-glass--regular',
282
- },
283
- },
284
275
  ],
285
276
  },
286
277
  {
@@ -388,14 +379,52 @@ export default (context: PluginsContext) =>
388
379
 
389
380
  return [
390
381
  {
391
- // TODO(wittjosiah): Cannot use slashes in ids until we have a router which decouples ids from url paths.
392
- id: `${space.id}-debug`, // TODO(burdon): Change to slashes consistently.
393
- type: 'dxos.org/plugin/debug/space',
394
- data: { space, type: 'dxos.org/plugin/debug/space' },
382
+ id: `${space.id}-${Devtools.id}`,
383
+ data: null,
384
+ type: DEVTOOLS_TYPE,
395
385
  properties: {
396
- label: ['debug label', { ns: DEBUG_PLUGIN }],
397
- icon: 'ph--bug--regular',
386
+ label: ['devtools label', { ns: DEBUG_PLUGIN }],
387
+ icon: 'ph--hammer--regular',
398
388
  },
389
+ nodes: [
390
+ {
391
+ // TODO(wittjosiah): Cannot use slashes in ids until we have a router which decouples ids from url paths.
392
+ id: `${space.id}-debug`,
393
+ type: 'dxos.org/plugin/debug/space',
394
+ data: { space, type: 'dxos.org/plugin/debug/space' },
395
+ properties: {
396
+ label: ['debug label', { ns: DEBUG_PLUGIN }],
397
+ icon: 'ph--bug--regular',
398
+ },
399
+ },
400
+ {
401
+ id: `${space.id}-${Devtools.Echo.Space}`,
402
+ data: Devtools.Echo.Space,
403
+ type: DEVTOOLS_TYPE,
404
+ properties: {
405
+ label: ['space label', { ns: DEBUG_PLUGIN }],
406
+ icon: 'ph--planet--regular',
407
+ },
408
+ },
409
+ {
410
+ id: `${space.id}-${Devtools.Echo.Objects}`,
411
+ data: Devtools.Echo.Objects,
412
+ type: DEVTOOLS_TYPE,
413
+ properties: {
414
+ label: ['objects label', { ns: DEBUG_PLUGIN }],
415
+ icon: 'ph--database--regular',
416
+ },
417
+ },
418
+ {
419
+ id: `${space.id}-${Devtools.Edge.Traces}`,
420
+ data: Devtools.Edge.Traces,
421
+ type: DEVTOOLS_TYPE,
422
+ properties: {
423
+ label: ['traces label', { ns: DEBUG_PLUGIN }],
424
+ icon: 'ph--line-segments--regular',
425
+ },
426
+ },
427
+ ],
399
428
  },
400
429
  ];
401
430
  },
@@ -10,6 +10,7 @@ import {
10
10
  createIntent,
11
11
  createSurface,
12
12
  LayoutAction,
13
+ useCapability,
13
14
  type PluginsContext,
14
15
  } from '@dxos/app-framework';
15
16
  import {
@@ -33,13 +34,13 @@ import {
33
34
  TracingPanel,
34
35
  DashboardPanel,
35
36
  EdgeDashboardPanel,
36
- SearchPanel,
37
37
  AutomergePanel,
38
38
  WorkflowPanel,
39
39
  QueuesPanel,
40
40
  InvocationTracePanel,
41
41
  } from '@dxos/devtools';
42
42
  import { SettingsStore } from '@dxos/local-storage';
43
+ import { ClientCapabilities } from '@dxos/plugin-client';
43
44
  import { Graph } from '@dxos/plugin-graph';
44
45
  import { SpaceAction, CollectionType } from '@dxos/plugin-space/types';
45
46
  import {
@@ -49,17 +50,10 @@ import {
49
50
  type ReactiveEchoObject,
50
51
  type ReactiveObject,
51
52
  type Space,
53
+ parseId,
52
54
  } from '@dxos/react-client/echo';
53
55
 
54
- import {
55
- DebugApp,
56
- DebugObjectPanel,
57
- DebugSettings,
58
- DebugSpace,
59
- DebugStatus,
60
- SpaceGenerator,
61
- Wireframe,
62
- } from '../components';
56
+ import { DebugApp, DebugObjectPanel, DebugSettings, DebugStatus, SpaceGenerator, Wireframe } from '../components';
63
57
  import { DEBUG_PLUGIN } from '../meta';
64
58
  import { type DebugSettingsProps, Devtools } from '../types';
65
59
 
@@ -75,6 +69,15 @@ type GraphDebug = {
75
69
  const isSpaceDebug = (data: any): data is SpaceDebug => data?.type === `${DEBUG_PLUGIN}/space` && isSpace(data.space);
76
70
  const isGraphDebug = (data: any): data is GraphDebug => data?.graph instanceof Graph;
77
71
 
72
+ // TODO(wittjosiah): Factor out?
73
+ const useCurrentSpace = () => {
74
+ const layout = useCapability(Capabilities.Layout);
75
+ const client = useCapability(ClientCapabilities.Client);
76
+ const { spaceId } = parseId(layout.workspace);
77
+ const space = spaceId ? client.spaces.get(spaceId) : undefined;
78
+ return space;
79
+ };
80
+
78
81
  export default (context: PluginsContext) =>
79
82
  contributes(Capabilities.ReactSurface, [
80
83
  createSurface({
@@ -110,12 +113,7 @@ export default (context: PluginsContext) =>
110
113
  [data.subject.space],
111
114
  );
112
115
 
113
- const deprecated = false;
114
- return deprecated ? (
115
- <DebugSpace space={data.subject.space} onAddObjects={handleCreateObject} />
116
- ) : (
117
- <SpaceGenerator space={data.subject.space} onCreateObjects={handleCreateObject} />
118
- );
116
+ return <SpaceGenerator space={data.subject.space} onCreateObjects={handleCreateObject} />;
119
117
  },
120
118
  }),
121
119
  createSurface({
@@ -158,7 +156,7 @@ export default (context: PluginsContext) =>
158
156
  id: `${DEBUG_PLUGIN}/client/config`,
159
157
  role: 'article',
160
158
  filter: (data): data is any => data.subject === Devtools.Client.Config,
161
- component: () => <ConfigPanel />,
159
+ component: () => <ConfigPanel vaultSelector={false} />,
162
160
  }),
163
161
  createSurface({
164
162
  id: `${DEBUG_PLUGIN}/client/storage`,
@@ -226,12 +224,13 @@ export default (context: PluginsContext) =>
226
224
  role: 'article',
227
225
  filter: (data): data is any => data.subject === Devtools.Echo.Space,
228
226
  component: () => {
227
+ const space = useCurrentSpace();
229
228
  const { dispatchPromise: dispatch } = context.requestCapability(Capabilities.IntentDispatcher);
230
229
  const handleSelect = useCallback(
231
230
  () => dispatch(createIntent(LayoutAction.Open, { part: 'main', subject: [Devtools.Echo.Feeds] })),
232
231
  [dispatch],
233
232
  );
234
- return <SpaceInfoPanel onSelectFeed={handleSelect} onSelectPipeline={handleSelect} />;
233
+ return <SpaceInfoPanel space={space} onSelectFeed={handleSelect} onSelectPipeline={handleSelect} />;
235
234
  },
236
235
  }),
237
236
  createSurface({
@@ -244,7 +243,10 @@ export default (context: PluginsContext) =>
244
243
  id: `${DEBUG_PLUGIN}/echo/objects`,
245
244
  role: 'article',
246
245
  filter: (data): data is any => data.subject === Devtools.Echo.Objects,
247
- component: () => <ObjectsPanel />,
246
+ component: () => {
247
+ const space = useCurrentSpace();
248
+ return <ObjectsPanel space={space} />;
249
+ },
248
250
  }),
249
251
  createSurface({
250
252
  id: `${DEBUG_PLUGIN}/echo/automerge`,
@@ -294,12 +296,6 @@ export default (context: PluginsContext) =>
294
296
  filter: (data): data is any => data.subject === Devtools.Agent.Dashboard,
295
297
  component: () => <DashboardPanel />,
296
298
  }),
297
- createSurface({
298
- id: `${DEBUG_PLUGIN}/agent/search`,
299
- role: 'article',
300
- filter: (data): data is any => data.subject === Devtools.Agent.Search,
301
- component: () => <SearchPanel />,
302
- }),
303
299
  createSurface({
304
300
  id: `${DEBUG_PLUGIN}/edge/dashboard`,
305
301
  role: 'article',
@@ -316,6 +312,9 @@ export default (context: PluginsContext) =>
316
312
  id: `${DEBUG_PLUGIN}/edge/traces`,
317
313
  role: 'article',
318
314
  filter: (data): data is any => data.subject === Devtools.Edge.Traces,
319
- component: () => <InvocationTracePanel />,
315
+ component: () => {
316
+ const space = useCurrentSpace();
317
+ return <InvocationTracePanel space={space} />;
318
+ },
320
319
  }),
321
320
  ]);
@@ -150,7 +150,7 @@ export const createGenerator = <T extends BaseObject>(type: TypedObject<T>): Obj
150
150
  (await space.db.schemaRegistry.register([type]))[0];
151
151
 
152
152
  // Create objects.
153
- const generate = createAsyncGenerator(generator, schema.getSchemaSnapshot(), { db: space.db });
153
+ const generate = createAsyncGenerator(generator, schema.snapshot, { db: space.db });
154
154
  const objects = await generate.createObjects(n);
155
155
 
156
156
  // Find or create table and view.
@@ -15,7 +15,7 @@ export type SchemaTableProps = {
15
15
 
16
16
  export const SchemaTable = ({ types, objects = {}, label, onClick }: SchemaTableProps) => {
17
17
  return (
18
- <div className='grid grid-cols-[1fr_80px_40px] gap-1 overflow-hidden'>
18
+ <div className='grid grid-cols-[1fr_80px_40px] gap-1 overflow-none'>
19
19
  <div className='grid grid-cols-subgrid col-span-3'>
20
20
  <div className='px-2 text-sm text-primary-500'>{label}</div>
21
21
  <div className='px-2 text-xs text-subdued text-right'>count</div>
@@ -118,7 +118,7 @@ export const SpaceGenerator = ({ space, onCreateObjects }: SpaceGeneratorProps)
118
118
  const parts = schema.typename.split('/');
119
119
  const name = parts[parts.length - 1];
120
120
  const table = create(TableType, { name, threads: [] });
121
- await initializeTable({ space, table, initialSchema: schema.typename });
121
+ await initializeTable({ client, space, table, typename: schema.typename });
122
122
  await dispatch(createIntent(SpaceAction.AddObject, { target: space, object: table }));
123
123
  return table;
124
124
  }),
@@ -145,7 +145,7 @@ export const SpaceGenerator = ({ space, onCreateObjects }: SpaceGeneratorProps)
145
145
  }, []);
146
146
 
147
147
  return (
148
- <div role='none' className='flex flex-col divide-y divide-separator'>
148
+ <div role='none' className='flex flex-col divide-y divide-separator overflow-y-auto'>
149
149
  <Toolbar.Root classNames='p-1'>
150
150
  <IconButton icon='ph--arrow-clockwise--regular' iconOnly label='Refresh' onClick={updateInfo} />
151
151
  <IconButton
@@ -5,7 +5,6 @@
5
5
  import { lazy } from 'react';
6
6
 
7
7
  export const DebugApp = lazy(() => import('./DebugApp'));
8
- export const DebugSpace = lazy(() => import('./DebugSpace'));
9
8
  export const SpaceGenerator = lazy(() => import('./SpaceGenerator'));
10
9
 
11
10
  export * from './DebugObjectPanel';
package/src/meta.ts CHANGED
@@ -6,7 +6,7 @@ import { type PluginMeta } from '@dxos/app-framework';
6
6
 
7
7
  export const DEBUG_PLUGIN = 'dxos.org/plugin/debug';
8
8
 
9
- export const meta = {
9
+ export const meta: PluginMeta = {
10
10
  id: DEBUG_PLUGIN,
11
11
  name: 'Debug',
12
12
  description:
@@ -15,4 +15,4 @@ export const meta = {
15
15
  source: 'https://github.com/dxos/dxos/tree/main/packages/plugins/plugin-debug',
16
16
  tags: ['experimental'],
17
17
  screenshots: ['https://dxos.network/plugin-details-debug-dark.png'],
18
- } satisfies PluginMeta;
18
+ };