@dxos/plugin-debug 0.8.4-main.4a85c3132b → 0.8.4-main.4f23b4e393
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.
- package/dist/lib/{browser/DebugGraph-7HXJ2PS2.mjs → neutral/DebugGraph-G4FWS57E.mjs} +4 -5
- package/dist/lib/neutral/DebugGraph-G4FWS57E.mjs.map +7 -0
- package/dist/lib/neutral/DebugObjectPanel-UJ63CV25.mjs +59 -0
- package/dist/lib/neutral/DebugObjectPanel-UJ63CV25.mjs.map +7 -0
- package/dist/lib/neutral/DebugPlugin.mjs +47 -0
- package/dist/lib/neutral/DebugPlugin.mjs.map +7 -0
- package/dist/lib/neutral/DebugPlugin.node.mjs +18 -0
- package/dist/lib/neutral/DebugPlugin.node.mjs.map +7 -0
- package/dist/lib/neutral/DebugSettings-Z3XADRNK.mjs +224 -0
- package/dist/lib/neutral/DebugSettings-Z3XADRNK.mjs.map +7 -0
- package/dist/lib/{browser/DebugSpaceObjectsPanel-7NRPLWZ4.mjs → neutral/DebugSpaceObjectsPanel-NISULU6U.mjs} +10 -26
- package/dist/lib/neutral/DebugSpaceObjectsPanel-NISULU6U.mjs.map +7 -0
- package/dist/lib/{browser/DebugStatus-COQGH37G.mjs → neutral/DebugStatus-YB3KFP7G.mjs} +35 -39
- package/dist/lib/neutral/DebugStatus-YB3KFP7G.mjs.map +7 -0
- package/dist/lib/{browser/DevtoolsOverviewContainer-C75NFVER.mjs → neutral/DevtoolsOverviewContainer-YX7Z3D2H.mjs} +9 -6
- package/dist/lib/neutral/DevtoolsOverviewContainer-YX7Z3D2H.mjs.map +7 -0
- package/dist/lib/neutral/SpaceGenerator-UBYB4NPD.mjs +143 -0
- package/dist/lib/neutral/SpaceGenerator-UBYB4NPD.mjs.map +7 -0
- package/dist/lib/{browser/Wireframe-KAGOKEFW.mjs → neutral/Wireframe-7SNRUKET.mjs} +8 -9
- package/dist/lib/neutral/Wireframe-7SNRUKET.mjs.map +7 -0
- package/dist/lib/{browser/app-graph-builder-LGUQNXHD.mjs → neutral/app-graph-builder-YPYHL2K5.mjs} +210 -258
- package/dist/lib/neutral/app-graph-builder-YPYHL2K5.mjs.map +7 -0
- package/dist/lib/neutral/capabilities/index.mjs +15 -0
- package/dist/lib/neutral/capabilities/index.mjs.map +7 -0
- package/dist/lib/{browser/chunk-A5H5GRV6.mjs → neutral/chunk-3OGPOE7H.mjs} +2 -2
- package/dist/lib/{browser/chunk-A5H5GRV6.mjs.map → neutral/chunk-3OGPOE7H.mjs.map} +3 -3
- package/dist/lib/neutral/chunk-J5LGTIGS.mjs +10 -0
- package/dist/lib/neutral/chunk-J5LGTIGS.mjs.map +7 -0
- package/dist/lib/{browser/chunk-4UFQXPP7.mjs → neutral/chunk-NFIOTQRZ.mjs} +23 -12
- package/dist/lib/neutral/chunk-NFIOTQRZ.mjs.map +7 -0
- package/dist/lib/{browser/SpaceGenerator-SWSGJEEL.mjs → neutral/components/index.mjs} +70 -264
- package/dist/lib/neutral/components/index.mjs.map +7 -0
- package/dist/lib/neutral/containers/index.mjs +21 -0
- package/dist/lib/neutral/containers/index.mjs.map +7 -0
- package/dist/lib/neutral/index.mjs +18 -0
- package/dist/lib/neutral/index.mjs.map +7 -0
- package/dist/lib/neutral/meta.json +1 -0
- package/dist/lib/neutral/meta.mjs +8 -0
- package/dist/lib/neutral/meta.mjs.map +7 -0
- package/dist/lib/neutral/plugin.mjs +12 -0
- package/dist/lib/neutral/plugin.mjs.map +7 -0
- package/dist/lib/{browser/react-context-I3USIAF6.mjs → neutral/react-context-MUZ3KVLU.mjs} +6 -6
- package/dist/lib/neutral/react-context-MUZ3KVLU.mjs.map +7 -0
- package/dist/lib/{browser/react-surface-BTVNKKVQ.mjs → neutral/react-surface-UR2SYHYW.mjs} +154 -178
- package/dist/lib/neutral/react-surface-UR2SYHYW.mjs.map +7 -0
- package/dist/lib/{browser/settings-SLTQJJNF.mjs → neutral/settings-MPM6YUP4.mjs} +7 -11
- package/dist/lib/neutral/settings-MPM6YUP4.mjs.map +7 -0
- package/dist/lib/neutral/translations.mjs +83 -0
- package/dist/lib/neutral/translations.mjs.map +7 -0
- package/dist/lib/neutral/types/index.mjs +14 -0
- package/dist/lib/neutral/types/index.mjs.map +7 -0
- package/dist/types/src/DebugPlugin.d.ts +2 -5
- package/dist/types/src/DebugPlugin.d.ts.map +1 -1
- package/dist/types/src/DebugPlugin.node.d.ts +5 -0
- package/dist/types/src/DebugPlugin.node.d.ts.map +1 -0
- package/dist/types/src/DebugPlugin.test.d.ts +2 -0
- package/dist/types/src/DebugPlugin.test.d.ts.map +1 -0
- package/dist/types/src/capabilities/app-graph-builder.d.ts.map +1 -0
- package/dist/types/src/capabilities/index.d.ts +11 -4
- package/dist/types/src/capabilities/index.d.ts.map +1 -1
- package/dist/types/src/capabilities/react-context.d.ts.map +1 -0
- package/dist/types/src/capabilities/{react-surface/react-surface.d.ts → react-surface.d.ts} +2 -2
- package/dist/types/src/capabilities/react-surface.d.ts.map +1 -0
- package/dist/types/src/capabilities/{settings/settings.d.ts → settings.d.ts} +2 -1
- package/dist/types/src/capabilities/settings.d.ts.map +1 -0
- package/dist/types/src/components/DebugSettings/DebugSettings.d.ts +11 -0
- package/dist/types/src/components/DebugSettings/DebugSettings.d.ts.map +1 -0
- package/dist/types/src/components/DebugSettings/DebugSettings.stories.d.ts +99 -0
- package/dist/types/src/components/DebugSettings/DebugSettings.stories.d.ts.map +1 -0
- package/dist/types/src/components/DebugSettings/index.d.ts +2 -0
- package/dist/types/src/components/DebugSettings/index.d.ts.map +1 -0
- package/dist/types/src/components/SchemaTable/SchemaTable.d.ts.map +1 -1
- package/dist/types/src/components/SpaceGenerator/ObjectGenerator.d.ts +2 -2
- package/dist/types/src/components/SpaceGenerator/ObjectGenerator.d.ts.map +1 -1
- package/dist/types/src/components/SpaceGenerator/draw-util.d.ts.map +1 -1
- package/dist/types/src/components/SpaceGenerator/presets.d.ts.map +1 -1
- package/dist/types/src/components/index.d.ts +2 -0
- package/dist/types/src/components/index.d.ts.map +1 -1
- package/dist/types/src/containers/DebugGraph/DebugGraph.d.ts +2 -2
- package/dist/types/src/containers/DebugGraph/DebugGraph.d.ts.map +1 -1
- package/dist/types/src/containers/DebugGraph/index.d.ts +1 -2
- package/dist/types/src/containers/DebugGraph/index.d.ts.map +1 -1
- package/dist/types/src/containers/DebugObjectPanel/DebugObjectPanel.d.ts +3 -4
- package/dist/types/src/containers/DebugObjectPanel/DebugObjectPanel.d.ts.map +1 -1
- package/dist/types/src/containers/DebugObjectPanel/index.d.ts +1 -2
- package/dist/types/src/containers/DebugObjectPanel/index.d.ts.map +1 -1
- package/dist/types/src/containers/DebugSpaceObjectsPanel/DebugSpaceObjectsPanel.d.ts +3 -1
- package/dist/types/src/containers/DebugSpaceObjectsPanel/DebugSpaceObjectsPanel.d.ts.map +1 -1
- package/dist/types/src/containers/DebugSpaceObjectsPanel/index.d.ts +1 -2
- package/dist/types/src/containers/DebugSpaceObjectsPanel/index.d.ts.map +1 -1
- package/dist/types/src/containers/DebugStatus/DebugStatus.d.ts.map +1 -1
- package/dist/types/src/containers/DebugStatus/index.d.ts +1 -2
- package/dist/types/src/containers/DebugStatus/index.d.ts.map +1 -1
- package/dist/types/src/containers/DevtoolsOverviewContainer/DevtoolsOverviewContainer.d.ts.map +1 -1
- package/dist/types/src/containers/DevtoolsOverviewContainer/index.d.ts +1 -2
- package/dist/types/src/containers/DevtoolsOverviewContainer/index.d.ts.map +1 -1
- package/dist/types/src/containers/SpaceGenerator/SpaceGenerator.d.ts +3 -1
- package/dist/types/src/containers/SpaceGenerator/SpaceGenerator.d.ts.map +1 -1
- package/dist/types/src/containers/SpaceGenerator/index.d.ts +1 -2
- package/dist/types/src/containers/SpaceGenerator/index.d.ts.map +1 -1
- package/dist/types/src/containers/Wireframe/Wireframe.d.ts.map +1 -1
- package/dist/types/src/containers/Wireframe/index.d.ts +1 -2
- package/dist/types/src/containers/Wireframe/index.d.ts.map +1 -1
- package/dist/types/src/containers/index.d.ts +0 -1
- package/dist/types/src/containers/index.d.ts.map +1 -1
- package/dist/types/src/index.d.ts +1 -1
- package/dist/types/src/index.d.ts.map +1 -1
- package/dist/types/src/plugin.d.ts +4 -0
- package/dist/types/src/plugin.d.ts.map +1 -0
- package/dist/types/src/translations.d.ts +80 -61
- package/dist/types/src/translations.d.ts.map +1 -1
- package/dist/types/src/types/Settings.d.ts +8 -0
- package/dist/types/src/types/Settings.d.ts.map +1 -0
- package/dist/types/src/types/index.d.ts +69 -0
- package/dist/types/src/types/index.d.ts.map +1 -0
- package/dist/types/tsconfig.tsbuildinfo +1 -1
- package/package.json +115 -64
- package/src/DebugPlugin.node.ts +18 -0
- package/src/DebugPlugin.test.ts +29 -0
- package/src/DebugPlugin.tsx +9 -11
- package/src/capabilities/app-graph-builder.ts +405 -0
- package/src/capabilities/index.ts +6 -4
- package/src/capabilities/{react-context/react-context.tsx → react-context.tsx} +7 -2
- package/src/capabilities/{react-surface/react-surface.tsx → react-surface.tsx} +169 -159
- package/src/capabilities/{settings/settings.ts → settings.ts} +4 -4
- package/src/components/DebugSettings/DebugSettings.stories.tsx +36 -0
- package/src/components/DebugSettings/DebugSettings.tsx +262 -0
- package/src/components/DebugSettings/index.ts +5 -0
- package/src/components/SpaceGenerator/ObjectGenerator.tsx +14 -17
- package/src/components/SpaceGenerator/draw-util.ts +8 -8
- package/src/components/SpaceGenerator/presets.ts +36 -58
- package/src/components/index.ts +4 -0
- package/src/containers/DebugGraph/DebugGraph.tsx +3 -2
- package/src/containers/DebugGraph/index.ts +1 -3
- package/src/containers/DebugObjectPanel/DebugObjectPanel.tsx +47 -16
- package/src/containers/DebugObjectPanel/index.ts +1 -3
- package/src/containers/DebugSpaceObjectsPanel/DebugSpaceObjectsPanel.tsx +10 -23
- package/src/containers/DebugSpaceObjectsPanel/index.ts +1 -3
- package/src/containers/DebugStatus/DebugStatus.tsx +41 -19
- package/src/containers/DebugStatus/index.ts +1 -3
- package/src/containers/DevtoolsOverviewContainer/DevtoolsOverviewContainer.tsx +8 -1
- package/src/containers/DevtoolsOverviewContainer/index.ts +1 -3
- package/src/containers/SpaceGenerator/SpaceGenerator.tsx +102 -103
- package/src/containers/SpaceGenerator/index.ts +1 -3
- package/src/containers/Wireframe/Wireframe.tsx +2 -6
- package/src/containers/Wireframe/index.ts +1 -3
- package/src/containers/index.ts +0 -1
- package/src/index.ts +1 -1
- package/src/meta.ts +1 -1
- package/src/plugin.ts +10 -0
- package/src/translations.ts +75 -60
- package/src/types/Settings.ts +16 -0
- package/src/{types.ts → types/index.ts} +15 -14
- package/dist/lib/browser/DebugGraph-7HXJ2PS2.mjs.map +0 -7
- package/dist/lib/browser/DebugObjectPanel-3TCDNUNW.mjs +0 -33
- package/dist/lib/browser/DebugObjectPanel-3TCDNUNW.mjs.map +0 -7
- package/dist/lib/browser/DebugSettings-JZMIUDYB.mjs +0 -174
- package/dist/lib/browser/DebugSettings-JZMIUDYB.mjs.map +0 -7
- package/dist/lib/browser/DebugSpaceObjectsPanel-7NRPLWZ4.mjs.map +0 -7
- package/dist/lib/browser/DebugStatus-COQGH37G.mjs.map +0 -7
- package/dist/lib/browser/DevtoolsOverviewContainer-C75NFVER.mjs.map +0 -7
- package/dist/lib/browser/SpaceGenerator-SWSGJEEL.mjs.map +0 -7
- package/dist/lib/browser/Wireframe-KAGOKEFW.mjs.map +0 -7
- package/dist/lib/browser/app-graph-builder-LGUQNXHD.mjs.map +0 -7
- package/dist/lib/browser/chunk-4UFQXPP7.mjs.map +0 -7
- package/dist/lib/browser/index.mjs +0 -132
- package/dist/lib/browser/index.mjs.map +0 -7
- package/dist/lib/browser/meta.json +0 -1
- package/dist/lib/browser/react-context-I3USIAF6.mjs.map +0 -7
- package/dist/lib/browser/react-surface-BTVNKKVQ.mjs.map +0 -7
- package/dist/lib/browser/settings-SLTQJJNF.mjs.map +0 -7
- package/dist/types/src/capabilities/app-graph-builder/app-graph-builder.d.ts.map +0 -1
- package/dist/types/src/capabilities/app-graph-builder/index.d.ts +0 -3
- package/dist/types/src/capabilities/app-graph-builder/index.d.ts.map +0 -1
- package/dist/types/src/capabilities/react-context/index.d.ts +0 -7
- package/dist/types/src/capabilities/react-context/index.d.ts.map +0 -1
- package/dist/types/src/capabilities/react-context/react-context.d.ts.map +0 -1
- package/dist/types/src/capabilities/react-surface/index.d.ts +0 -5
- package/dist/types/src/capabilities/react-surface/index.d.ts.map +0 -1
- package/dist/types/src/capabilities/react-surface/react-surface.d.ts.map +0 -1
- package/dist/types/src/capabilities/settings/index.d.ts +0 -3
- package/dist/types/src/capabilities/settings/index.d.ts.map +0 -1
- package/dist/types/src/capabilities/settings/settings.d.ts.map +0 -1
- package/dist/types/src/containers/DebugSettings/DebugSettings.d.ts +0 -10
- package/dist/types/src/containers/DebugSettings/DebugSettings.d.ts.map +0 -1
- package/dist/types/src/containers/DebugSettings/index.d.ts +0 -3
- package/dist/types/src/containers/DebugSettings/index.d.ts.map +0 -1
- package/dist/types/src/types.d.ts +0 -68
- package/dist/types/src/types.d.ts.map +0 -1
- package/src/capabilities/app-graph-builder/app-graph-builder.ts +0 -441
- package/src/capabilities/app-graph-builder/index.ts +0 -7
- package/src/capabilities/react-context/index.ts +0 -7
- package/src/capabilities/react-surface/index.ts +0 -7
- package/src/capabilities/settings/index.ts +0 -7
- package/src/containers/DebugSettings/DebugSettings.tsx +0 -201
- package/src/containers/DebugSettings/index.ts +0 -7
- /package/dist/types/src/capabilities/{app-graph-builder/app-graph-builder.d.ts → app-graph-builder.d.ts} +0 -0
- /package/dist/types/src/capabilities/{react-context/react-context.d.ts → react-context.d.ts} +0 -0
|
@@ -6,9 +6,9 @@ import * as Effect from 'effect/Effect';
|
|
|
6
6
|
import React, { useCallback } from 'react';
|
|
7
7
|
|
|
8
8
|
import { Capabilities, Capability } from '@dxos/app-framework';
|
|
9
|
-
import { Surface,
|
|
10
|
-
import { AppCapabilities, LayoutOperation } from '@dxos/app-toolkit';
|
|
11
|
-
import {
|
|
9
|
+
import { Surface, useOperationInvoker, useSettingsState } from '@dxos/app-framework/ui';
|
|
10
|
+
import { AppCapabilities, LayoutOperation, getObjectPathFromObject } from '@dxos/app-toolkit';
|
|
11
|
+
import { AppSurface, useActiveSpace } from '@dxos/app-toolkit/ui';
|
|
12
12
|
import {
|
|
13
13
|
AutomergePanel,
|
|
14
14
|
ConfigPanel,
|
|
@@ -33,32 +33,32 @@ import {
|
|
|
33
33
|
StoragePanel,
|
|
34
34
|
SwarmPanel,
|
|
35
35
|
TestingPanel,
|
|
36
|
-
TracingPanel,
|
|
37
36
|
WorkflowPanel,
|
|
38
37
|
} from '@dxos/devtools';
|
|
39
|
-
import { Obj } from '@dxos/echo';
|
|
40
|
-
import { Collection } from '@dxos/echo';
|
|
41
|
-
import { type LogBuffer } from '@dxos/log';
|
|
38
|
+
import { Collection, Feed, Obj } from '@dxos/echo';
|
|
42
39
|
import { log } from '@dxos/log';
|
|
43
|
-
import {
|
|
40
|
+
import { type IdbLogStore } from '@dxos/log-store-idb';
|
|
44
41
|
import { type Graph } from '@dxos/plugin-graph';
|
|
45
|
-
import { ScriptOperation } from '@dxos/plugin-script
|
|
46
|
-
import { SpaceOperation } from '@dxos/plugin-space
|
|
47
|
-
import { type Space, SpaceState, isSpace
|
|
48
|
-
import {
|
|
42
|
+
import { ScriptOperation } from '@dxos/plugin-script';
|
|
43
|
+
import { SpaceOperation } from '@dxos/plugin-space';
|
|
44
|
+
import { type Space, SpaceState, isSpace } from '@dxos/react-client/echo';
|
|
45
|
+
import { ToolsExplorer } from '@dxos/react-ui-introspect';
|
|
49
46
|
|
|
47
|
+
import { DebugSettings } from '#components';
|
|
50
48
|
import {
|
|
51
49
|
DebugGraph,
|
|
52
50
|
DebugObjectPanel,
|
|
53
|
-
DebugSettings,
|
|
54
51
|
DebugSpaceObjectsPanel,
|
|
55
52
|
DebugStatus,
|
|
56
53
|
DevtoolsOverviewContainer,
|
|
57
54
|
SpaceGenerator,
|
|
58
55
|
Wireframe,
|
|
59
|
-
} from '
|
|
60
|
-
import { meta } from '
|
|
61
|
-
import { DebugCapabilities, type
|
|
56
|
+
} from '#containers';
|
|
57
|
+
import { meta } from '#meta';
|
|
58
|
+
import { DebugCapabilities, type Settings, Devtools } from '#types';
|
|
59
|
+
|
|
60
|
+
// TODO(burdon): Move to config.
|
|
61
|
+
const MCP_SERVER_URL = 'https://introspect-service-labs.dxos.workers.dev/mcp';
|
|
62
62
|
|
|
63
63
|
type SpaceDebug = {
|
|
64
64
|
type: string;
|
|
@@ -70,7 +70,7 @@ type GraphDebug = {
|
|
|
70
70
|
root: string;
|
|
71
71
|
};
|
|
72
72
|
|
|
73
|
-
const isSpaceDebug = (data: any): data is SpaceDebug => data?.type === `${meta.id}
|
|
73
|
+
const isSpaceDebug = (data: any): data is SpaceDebug => data?.type === `${meta.id}.space` && isSpace(data.space);
|
|
74
74
|
const isGraphDebug = (data: any): data is GraphDebug => {
|
|
75
75
|
const graph = data?.graph;
|
|
76
76
|
return (
|
|
@@ -78,38 +78,35 @@ const isGraphDebug = (data: any): data is GraphDebug => {
|
|
|
78
78
|
);
|
|
79
79
|
};
|
|
80
80
|
|
|
81
|
-
// TODO(wittjosiah): Factor out?
|
|
82
|
-
const useCurrentSpace = () => {
|
|
83
|
-
const layout = useLayout();
|
|
84
|
-
const client = useCapability(ClientCapabilities.Client);
|
|
85
|
-
const { spaceId } = parseId(layout.workspace);
|
|
86
|
-
const space = spaceId ? client.spaces.get(spaceId) : undefined;
|
|
87
|
-
return space;
|
|
88
|
-
};
|
|
89
|
-
|
|
90
81
|
type ReactSurfaceOptions = {
|
|
91
|
-
|
|
82
|
+
logStore?: IdbLogStore;
|
|
92
83
|
};
|
|
93
84
|
|
|
94
85
|
export default Capability.makeModule(
|
|
95
|
-
Effect.fnUntraced(function* ({
|
|
86
|
+
Effect.fnUntraced(function* ({ logStore }: ReactSurfaceOptions) {
|
|
96
87
|
const capabilities = yield* Capability.Service;
|
|
97
88
|
const registry = capabilities.get(Capabilities.AtomRegistry);
|
|
98
89
|
const settingsAtom = capabilities.get(DebugCapabilities.Settings);
|
|
90
|
+
const fileUploader = capabilities.getAll(AppCapabilities.FileUploader)[0];
|
|
99
91
|
|
|
100
92
|
return Capability.contributes(Capabilities.ReactSurface, [
|
|
101
93
|
Surface.create({
|
|
102
|
-
id:
|
|
103
|
-
|
|
104
|
-
filter: (data): data is { subject: AppCapabilities.Settings } =>
|
|
105
|
-
AppCapabilities.isSettings(data.subject) && data.subject.prefix === meta.id,
|
|
94
|
+
id: 'plugin-settings',
|
|
95
|
+
filter: AppSurface.settings(AppSurface.Article, meta.id),
|
|
106
96
|
component: ({ data: { subject } }) => {
|
|
107
|
-
const { settings, updateSettings } = useSettingsState<
|
|
108
|
-
return
|
|
97
|
+
const { settings, updateSettings } = useSettingsState<Settings.Settings>(subject.atom);
|
|
98
|
+
return (
|
|
99
|
+
<DebugSettings
|
|
100
|
+
settings={settings}
|
|
101
|
+
onSettingsChange={updateSettings}
|
|
102
|
+
logStore={logStore}
|
|
103
|
+
onUpload={fileUploader}
|
|
104
|
+
/>
|
|
105
|
+
);
|
|
109
106
|
},
|
|
110
107
|
}),
|
|
111
108
|
Surface.create({
|
|
112
|
-
id:
|
|
109
|
+
id: 'space',
|
|
113
110
|
role: 'article',
|
|
114
111
|
filter: (data): data is { subject: SpaceDebug } => isSpaceDebug(data.subject),
|
|
115
112
|
component: ({ role, data }) => {
|
|
@@ -138,25 +135,23 @@ export default Capability.makeModule(
|
|
|
138
135
|
[data.subject.space, invokePromise],
|
|
139
136
|
);
|
|
140
137
|
|
|
141
|
-
return
|
|
142
|
-
<Panel.Root role={role} className='dx-article'>
|
|
143
|
-
<Panel.Content asChild>
|
|
144
|
-
<Panel.Content asChild>
|
|
145
|
-
<SpaceGenerator space={data.subject.space} onCreateObjects={handleCreateObject} />
|
|
146
|
-
</Panel.Content>
|
|
147
|
-
</Panel.Content>
|
|
148
|
-
</Panel.Root>
|
|
149
|
-
);
|
|
138
|
+
return <SpaceGenerator role={role} space={data.subject.space} onCreateObjects={handleCreateObject} />;
|
|
150
139
|
},
|
|
151
140
|
}),
|
|
152
141
|
Surface.create({
|
|
153
|
-
id:
|
|
142
|
+
id: 'app-graph',
|
|
154
143
|
role: 'article',
|
|
155
144
|
filter: (data): data is { subject: GraphDebug } => isGraphDebug(data.subject),
|
|
156
145
|
component: ({ data }) => <DebugGraph graph={data.subject.graph} root={data.subject.root} />,
|
|
157
146
|
}),
|
|
158
147
|
Surface.create({
|
|
159
|
-
id:
|
|
148
|
+
id: 'tools-explorer',
|
|
149
|
+
filter: AppSurface.literal(AppSurface.Article, Devtools.ToolsExplorer),
|
|
150
|
+
component: () => <ToolsExplorer serverUrl={MCP_SERVER_URL} />,
|
|
151
|
+
}),
|
|
152
|
+
Surface.create({
|
|
153
|
+
id: 'wireframe',
|
|
154
|
+
// TODO(wittjosiah): Split into multiple surfaces if this filter proves too strict for non-article roles.
|
|
160
155
|
role: ['article', 'section'],
|
|
161
156
|
position: 'hoist',
|
|
162
157
|
filter: (data): data is { subject: Obj.Unknown } => {
|
|
@@ -168,95 +163,95 @@ export default Capability.makeModule(
|
|
|
168
163
|
),
|
|
169
164
|
}),
|
|
170
165
|
Surface.create({
|
|
171
|
-
id:
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
166
|
+
id: 'object-debug',
|
|
167
|
+
filter: AppSurface.allOf(
|
|
168
|
+
AppSurface.literal(AppSurface.Article, 'debug'),
|
|
169
|
+
AppSurface.companion(AppSurface.Article),
|
|
170
|
+
),
|
|
171
|
+
component: ({ role, data }) => <DebugObjectPanel role={role} companionTo={data.companionTo} />,
|
|
176
172
|
}),
|
|
177
173
|
Surface.create({
|
|
178
|
-
id:
|
|
179
|
-
|
|
180
|
-
filter: (data): data is { subject: 'devtools' } => data.subject === 'devtools',
|
|
174
|
+
id: 'devtools-overview',
|
|
175
|
+
filter: AppSurface.literal(Surface.makeType<{ subject: string }>('deck-companion--devtools'), 'devtools'),
|
|
181
176
|
component: () => <DevtoolsOverviewContainer />,
|
|
182
177
|
}),
|
|
183
178
|
Surface.create({
|
|
184
|
-
id:
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
179
|
+
id: 'space-objects',
|
|
180
|
+
filter: AppSurface.literal(
|
|
181
|
+
Surface.makeType<{ subject: string }>('deck-companion--space-objects'),
|
|
182
|
+
'space-objects',
|
|
183
|
+
),
|
|
184
|
+
component: () => {
|
|
185
|
+
const space = useActiveSpace();
|
|
186
|
+
if (!space) {
|
|
187
|
+
return null;
|
|
188
|
+
}
|
|
189
|
+
|
|
190
|
+
return <DebugSpaceObjectsPanel space={space} />;
|
|
191
|
+
},
|
|
188
192
|
}),
|
|
189
193
|
|
|
190
194
|
Surface.create({
|
|
191
|
-
id:
|
|
192
|
-
role: 'status',
|
|
195
|
+
id: 'status',
|
|
196
|
+
role: 'status-indicator',
|
|
197
|
+
position: 'hoist',
|
|
193
198
|
component: () => <DebugStatus />,
|
|
194
199
|
}),
|
|
200
|
+
|
|
195
201
|
//
|
|
196
202
|
// Devtools
|
|
197
203
|
//
|
|
198
204
|
|
|
199
205
|
Surface.create({
|
|
200
|
-
id:
|
|
201
|
-
|
|
202
|
-
filter: (data): data is any => data.subject === Devtools.Client.Config,
|
|
206
|
+
id: 'client.config',
|
|
207
|
+
filter: AppSurface.literal(AppSurface.Article, Devtools.Client.Config),
|
|
203
208
|
component: () => <ConfigPanel vaultSelector={false} />,
|
|
204
209
|
}),
|
|
205
210
|
Surface.create({
|
|
206
|
-
id:
|
|
207
|
-
|
|
208
|
-
filter: (data): data is any => data.subject === Devtools.Client.Storage,
|
|
211
|
+
id: 'client.storage',
|
|
212
|
+
filter: AppSurface.literal(AppSurface.Article, Devtools.Client.Storage),
|
|
209
213
|
component: () => <StoragePanel />,
|
|
210
214
|
}),
|
|
211
215
|
Surface.create({
|
|
212
|
-
id:
|
|
213
|
-
|
|
214
|
-
filter: (data): data is any => data.subject === Devtools.Client.Logs,
|
|
216
|
+
id: 'client.logs',
|
|
217
|
+
filter: AppSurface.literal(AppSurface.Article, Devtools.Client.Logs),
|
|
215
218
|
component: () => <LoggingPanel />,
|
|
216
219
|
}),
|
|
217
220
|
Surface.create({
|
|
218
|
-
id:
|
|
219
|
-
|
|
220
|
-
filter: (data): data is any => data.subject === Devtools.Client.Diagnostics,
|
|
221
|
+
id: 'client.diagnostics',
|
|
222
|
+
filter: AppSurface.literal(AppSurface.Article, Devtools.Client.Diagnostics),
|
|
221
223
|
component: () => <DiagnosticsPanel />,
|
|
222
224
|
}),
|
|
223
225
|
Surface.create({
|
|
224
|
-
id:
|
|
225
|
-
|
|
226
|
-
filter: (data): data is any => data.subject === Devtools.Client.Tracing,
|
|
227
|
-
component: () => <TracingPanel />,
|
|
228
|
-
}),
|
|
229
|
-
Surface.create({
|
|
230
|
-
id: `${meta.id}/halo/identity`,
|
|
231
|
-
role: 'article',
|
|
232
|
-
filter: (data): data is any => data.subject === Devtools.Halo.Identity,
|
|
226
|
+
id: 'halo.identity',
|
|
227
|
+
filter: AppSurface.literal(AppSurface.Article, Devtools.Halo.Identity),
|
|
233
228
|
component: () => <IdentityPanel />,
|
|
234
229
|
}),
|
|
235
230
|
Surface.create({
|
|
236
|
-
id:
|
|
237
|
-
|
|
238
|
-
filter: (data): data is any => data.subject === Devtools.Halo.Devices,
|
|
231
|
+
id: 'halo.devices',
|
|
232
|
+
filter: AppSurface.literal(AppSurface.Article, Devtools.Halo.Devices),
|
|
239
233
|
component: () => <DeviceListPanel />,
|
|
240
234
|
}),
|
|
241
235
|
Surface.create({
|
|
242
|
-
id:
|
|
243
|
-
|
|
244
|
-
filter: (data): data is any => data.subject === Devtools.Halo.Keyring,
|
|
236
|
+
id: 'halo.keyring',
|
|
237
|
+
filter: AppSurface.literal(AppSurface.Article, Devtools.Halo.Keyring),
|
|
245
238
|
component: () => <KeyringPanel />,
|
|
246
239
|
}),
|
|
247
240
|
Surface.create({
|
|
248
|
-
id:
|
|
249
|
-
|
|
250
|
-
filter: (data): data is any => data.subject === Devtools.Halo.Credentials,
|
|
241
|
+
id: 'halo.credentials',
|
|
242
|
+
filter: AppSurface.literal(AppSurface.Article, Devtools.Halo.Credentials),
|
|
251
243
|
component: () => {
|
|
252
|
-
const space =
|
|
244
|
+
const space = useActiveSpace();
|
|
245
|
+
if (!space) {
|
|
246
|
+
return null;
|
|
247
|
+
}
|
|
248
|
+
|
|
253
249
|
return <CredentialsPanel space={space} />;
|
|
254
250
|
},
|
|
255
251
|
}),
|
|
256
252
|
Surface.create({
|
|
257
|
-
id:
|
|
258
|
-
|
|
259
|
-
filter: (data): data is any => data.subject === Devtools.Echo.Spaces,
|
|
253
|
+
id: 'echo.spaces',
|
|
254
|
+
filter: AppSurface.literal(AppSurface.Article, Devtools.Echo.Spaces),
|
|
260
255
|
component: () => {
|
|
261
256
|
const { invokePromise } = useOperationInvoker();
|
|
262
257
|
const handleSelect = useCallback(
|
|
@@ -267,133 +262,148 @@ export default Capability.makeModule(
|
|
|
267
262
|
},
|
|
268
263
|
}),
|
|
269
264
|
Surface.create({
|
|
270
|
-
id:
|
|
271
|
-
|
|
272
|
-
filter: (data): data is any => data.subject === Devtools.Echo.Space,
|
|
265
|
+
id: 'echo.space',
|
|
266
|
+
filter: AppSurface.literal(AppSurface.Article, Devtools.Echo.Space),
|
|
273
267
|
component: () => {
|
|
274
|
-
const space =
|
|
268
|
+
const space = useActiveSpace();
|
|
275
269
|
const { invokePromise } = useOperationInvoker();
|
|
276
270
|
const handleSelect = useCallback(
|
|
277
271
|
() => invokePromise(LayoutOperation.Open, { subject: [Devtools.Echo.Feeds] }),
|
|
278
272
|
[invokePromise],
|
|
279
273
|
);
|
|
274
|
+
if (!space) {
|
|
275
|
+
return null;
|
|
276
|
+
}
|
|
277
|
+
|
|
280
278
|
return <SpaceInfoPanel space={space} onSelectFeed={handleSelect} onSelectPipeline={handleSelect} />;
|
|
281
279
|
},
|
|
282
280
|
}),
|
|
283
281
|
Surface.create({
|
|
284
|
-
id:
|
|
285
|
-
|
|
286
|
-
filter: (data): data is any => data.subject === Devtools.Echo.Feeds,
|
|
282
|
+
id: 'echo.feeds',
|
|
283
|
+
filter: AppSurface.literal(AppSurface.Article, Devtools.Echo.Feeds),
|
|
287
284
|
component: () => {
|
|
288
|
-
const space =
|
|
285
|
+
const space = useActiveSpace();
|
|
286
|
+
if (!space) {
|
|
287
|
+
return null;
|
|
288
|
+
}
|
|
289
|
+
|
|
289
290
|
return <FeedsPanel space={space} />;
|
|
290
291
|
},
|
|
291
292
|
}),
|
|
292
293
|
Surface.create({
|
|
293
|
-
id:
|
|
294
|
-
|
|
295
|
-
filter: (data): data is any => data.subject === Devtools.Echo.Objects,
|
|
294
|
+
id: 'echo.objects',
|
|
295
|
+
filter: AppSurface.literal(AppSurface.Article, Devtools.Echo.Objects),
|
|
296
296
|
component: () => {
|
|
297
|
-
const space =
|
|
297
|
+
const space = useActiveSpace();
|
|
298
|
+
if (!space) {
|
|
299
|
+
return null;
|
|
300
|
+
}
|
|
301
|
+
|
|
298
302
|
return <ObjectsPanel space={space} />;
|
|
299
303
|
},
|
|
300
304
|
}),
|
|
301
305
|
Surface.create({
|
|
302
|
-
id:
|
|
303
|
-
|
|
304
|
-
filter: (data): data is any => data.subject === Devtools.Echo.Schema,
|
|
306
|
+
id: 'echo.schema',
|
|
307
|
+
filter: AppSurface.literal(AppSurface.Article, Devtools.Echo.Schema),
|
|
305
308
|
component: () => {
|
|
306
|
-
const space =
|
|
309
|
+
const space = useActiveSpace();
|
|
310
|
+
if (!space) {
|
|
311
|
+
return null;
|
|
312
|
+
}
|
|
313
|
+
|
|
307
314
|
return <SchemaPanel space={space} />;
|
|
308
315
|
},
|
|
309
316
|
}),
|
|
310
317
|
Surface.create({
|
|
311
|
-
id:
|
|
312
|
-
|
|
313
|
-
filter: (data): data is any => data.subject === Devtools.Echo.Automerge,
|
|
318
|
+
id: 'echo.automerge',
|
|
319
|
+
filter: AppSurface.literal(AppSurface.Article, Devtools.Echo.Automerge),
|
|
314
320
|
component: () => {
|
|
315
|
-
const space =
|
|
321
|
+
const space = useActiveSpace();
|
|
322
|
+
if (!space) {
|
|
323
|
+
return null;
|
|
324
|
+
}
|
|
325
|
+
|
|
316
326
|
return <AutomergePanel space={space} />;
|
|
317
327
|
},
|
|
318
328
|
}),
|
|
319
329
|
Surface.create({
|
|
320
|
-
id:
|
|
321
|
-
|
|
322
|
-
filter: (data): data is any => data.subject === Devtools.Echo.Queues,
|
|
330
|
+
id: 'echo.queues',
|
|
331
|
+
filter: AppSurface.literal(AppSurface.Article, Devtools.Echo.Queues),
|
|
323
332
|
component: () => <QueuesPanel />,
|
|
324
333
|
}),
|
|
325
334
|
Surface.create({
|
|
326
|
-
id:
|
|
327
|
-
|
|
328
|
-
filter: (data): data is any => data.subject === Devtools.Echo.Members,
|
|
335
|
+
id: 'echo.members',
|
|
336
|
+
filter: AppSurface.literal(AppSurface.Article, Devtools.Echo.Members),
|
|
329
337
|
component: () => {
|
|
330
|
-
const space =
|
|
338
|
+
const space = useActiveSpace();
|
|
339
|
+
if (!space) {
|
|
340
|
+
return null;
|
|
341
|
+
}
|
|
342
|
+
|
|
331
343
|
return <MembersPanel space={space} />;
|
|
332
344
|
},
|
|
333
345
|
}),
|
|
334
346
|
Surface.create({
|
|
335
|
-
id:
|
|
336
|
-
|
|
337
|
-
filter: (data): data is any => data.subject === Devtools.Echo.Metadata,
|
|
347
|
+
id: 'echo.metadata',
|
|
348
|
+
filter: AppSurface.literal(AppSurface.Article, Devtools.Echo.Metadata),
|
|
338
349
|
component: () => <MetadataPanel />,
|
|
339
350
|
}),
|
|
340
351
|
Surface.create({
|
|
341
|
-
id:
|
|
342
|
-
|
|
343
|
-
filter: (data): data is any => data.subject === Devtools.Mesh.Signal,
|
|
352
|
+
id: 'mesh.signal',
|
|
353
|
+
filter: AppSurface.literal(AppSurface.Article, Devtools.Mesh.Signal),
|
|
344
354
|
component: () => <SignalPanel />,
|
|
345
355
|
}),
|
|
346
356
|
Surface.create({
|
|
347
|
-
id:
|
|
348
|
-
|
|
349
|
-
filter: (data): data is any => data.subject === Devtools.Mesh.Swarm,
|
|
357
|
+
id: 'mesh.swarm',
|
|
358
|
+
filter: AppSurface.literal(AppSurface.Article, Devtools.Mesh.Swarm),
|
|
350
359
|
component: () => <SwarmPanel />,
|
|
351
360
|
}),
|
|
352
361
|
Surface.create({
|
|
353
|
-
id:
|
|
354
|
-
|
|
355
|
-
filter: (data): data is any => data.subject === Devtools.Mesh.Network,
|
|
362
|
+
id: 'mesh.network',
|
|
363
|
+
filter: AppSurface.literal(AppSurface.Article, Devtools.Mesh.Network),
|
|
356
364
|
component: () => {
|
|
357
|
-
const space =
|
|
365
|
+
const space = useActiveSpace();
|
|
366
|
+
if (!space) {
|
|
367
|
+
return null;
|
|
368
|
+
}
|
|
369
|
+
|
|
358
370
|
return <NetworkPanel space={space} />;
|
|
359
371
|
},
|
|
360
372
|
}),
|
|
361
|
-
// TODO(wittjosiah): Remove?
|
|
362
|
-
// createSurface({
|
|
363
|
-
// id: `${meta.id}/agent/dashboard`,
|
|
364
|
-
// role: 'article',
|
|
365
|
-
// filter: (data): data is any => data.subject === Devtools.Agent.Dashboard,
|
|
366
|
-
// component: () => <DashboardPanel />,
|
|
367
|
-
// }),
|
|
368
373
|
Surface.create({
|
|
369
|
-
id:
|
|
370
|
-
|
|
371
|
-
filter: (data): data is any => data.subject === Devtools.Edge.Dashboard,
|
|
374
|
+
id: 'edge.dashboard',
|
|
375
|
+
filter: AppSurface.literal(AppSurface.Article, Devtools.Edge.Dashboard),
|
|
372
376
|
component: () => <EdgeDashboardPanel />,
|
|
373
377
|
}),
|
|
374
378
|
Surface.create({
|
|
375
|
-
id:
|
|
376
|
-
|
|
377
|
-
filter: (data): data is any => data.subject === Devtools.Edge.Workflows,
|
|
379
|
+
id: 'edge.workflows',
|
|
380
|
+
filter: AppSurface.literal(AppSurface.Article, Devtools.Edge.Workflows),
|
|
378
381
|
component: () => {
|
|
379
|
-
const space =
|
|
382
|
+
const space = useActiveSpace();
|
|
383
|
+
if (!space) {
|
|
384
|
+
return null;
|
|
385
|
+
}
|
|
386
|
+
|
|
380
387
|
return <WorkflowPanel space={space} />;
|
|
381
388
|
},
|
|
382
389
|
}),
|
|
383
390
|
Surface.create({
|
|
384
|
-
id:
|
|
385
|
-
|
|
386
|
-
filter: (data): data is any => data.subject === Devtools.Edge.Traces,
|
|
391
|
+
id: 'edge.traces',
|
|
392
|
+
filter: AppSurface.literal(AppSurface.Article, Devtools.Edge.Traces),
|
|
387
393
|
component: () => {
|
|
388
|
-
const space =
|
|
389
|
-
|
|
390
|
-
|
|
394
|
+
const space = useActiveSpace();
|
|
395
|
+
if (!space) {
|
|
396
|
+
return null;
|
|
397
|
+
}
|
|
398
|
+
|
|
399
|
+
const feed = space.properties.invocationTraceFeed?.target;
|
|
400
|
+
const feedDXN = feed ? Feed.getQueueDxn(feed) : undefined;
|
|
401
|
+
return <InvocationTraceContainer db={space.db} feedDXN={feedDXN} detailAxis='block' />;
|
|
391
402
|
},
|
|
392
403
|
}),
|
|
393
404
|
Surface.create({
|
|
394
|
-
id:
|
|
395
|
-
|
|
396
|
-
filter: (data): data is any => data.subject === Devtools.Edge.Testing,
|
|
405
|
+
id: 'edge.testing',
|
|
406
|
+
filter: AppSurface.literal(AppSurface.Article, Devtools.Edge.Testing),
|
|
397
407
|
component: () => {
|
|
398
408
|
const { invokePromise } = useOperationInvoker();
|
|
399
409
|
const onSpaceCreate = useCallback(
|
|
@@ -412,9 +422,9 @@ export default Capability.makeModule(
|
|
|
412
422
|
await invokePromise(SpaceOperation.AddObject, { target: space.db, object: createResult.data.object });
|
|
413
423
|
}
|
|
414
424
|
log.info('script created', { result: createResult });
|
|
415
|
-
if (createResult.data?.object
|
|
425
|
+
if (createResult.data?.object) {
|
|
416
426
|
await invokePromise(LayoutOperation.Open, {
|
|
417
|
-
subject: [
|
|
427
|
+
subject: [getObjectPathFromObject(createResult.data.object)],
|
|
418
428
|
});
|
|
419
429
|
}
|
|
420
430
|
},
|
|
@@ -8,14 +8,14 @@ import { Capability } from '@dxos/app-framework';
|
|
|
8
8
|
import { AppCapabilities } from '@dxos/app-toolkit';
|
|
9
9
|
import { createKvsStore } from '@dxos/effect';
|
|
10
10
|
|
|
11
|
-
import { meta } from '
|
|
12
|
-
import { DebugCapabilities,
|
|
11
|
+
import { meta } from '#meta';
|
|
12
|
+
import { DebugCapabilities, Settings } from '#types';
|
|
13
13
|
|
|
14
14
|
export default Capability.makeModule(() =>
|
|
15
15
|
Effect.sync(() => {
|
|
16
16
|
const settingsAtom = createKvsStore({
|
|
17
17
|
key: meta.id,
|
|
18
|
-
schema:
|
|
18
|
+
schema: Settings.Settings,
|
|
19
19
|
defaultValue: () => ({}),
|
|
20
20
|
});
|
|
21
21
|
|
|
@@ -23,7 +23,7 @@ export default Capability.makeModule(() =>
|
|
|
23
23
|
Capability.contributes(DebugCapabilities.Settings, settingsAtom),
|
|
24
24
|
Capability.contributes(AppCapabilities.Settings, {
|
|
25
25
|
prefix: meta.id,
|
|
26
|
-
schema:
|
|
26
|
+
schema: Settings.Settings,
|
|
27
27
|
atom: settingsAtom,
|
|
28
28
|
}),
|
|
29
29
|
];
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
//
|
|
2
|
+
// Copyright 2025 DXOS.org
|
|
3
|
+
//
|
|
4
|
+
|
|
5
|
+
import { type Meta, type StoryObj } from '@storybook/react-vite';
|
|
6
|
+
|
|
7
|
+
import { withClientProvider } from '@dxos/react-client/testing';
|
|
8
|
+
import { withLayout, withTheme } from '@dxos/react-ui/testing';
|
|
9
|
+
|
|
10
|
+
import { translations } from '#translations';
|
|
11
|
+
|
|
12
|
+
import { DebugSettings } from './DebugSettings';
|
|
13
|
+
|
|
14
|
+
const meta = {
|
|
15
|
+
title: 'plugins/plugin-debug/components/DebugSettings',
|
|
16
|
+
component: DebugSettings,
|
|
17
|
+
decorators: [withTheme(), withLayout({ layout: 'fullscreen' }), withClientProvider({ createIdentity: true })],
|
|
18
|
+
tags: ['settings'],
|
|
19
|
+
parameters: {
|
|
20
|
+
layout: 'fullscreen',
|
|
21
|
+
translations,
|
|
22
|
+
},
|
|
23
|
+
} satisfies Meta<typeof DebugSettings>;
|
|
24
|
+
|
|
25
|
+
export default meta;
|
|
26
|
+
|
|
27
|
+
type Story = StoryObj<typeof meta>;
|
|
28
|
+
|
|
29
|
+
export const Default: Story = {
|
|
30
|
+
args: {
|
|
31
|
+
settings: {
|
|
32
|
+
wireframe: false,
|
|
33
|
+
},
|
|
34
|
+
logStore: { export: async () => '' } as any,
|
|
35
|
+
},
|
|
36
|
+
};
|