@dxos/plugin-devtools 0.10.0
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/LICENSE +105 -0
- package/PLUGIN.mdl +373 -0
- package/README.md +15 -0
- package/dist/lib/neutral/DebugGraph-F7AMZXKW.mjs +16 -0
- package/dist/lib/neutral/DebugGraph-F7AMZXKW.mjs.map +7 -0
- package/dist/lib/neutral/DevtoolsOverviewContainer-DCNZFKK5.mjs +51 -0
- package/dist/lib/neutral/DevtoolsOverviewContainer-DCNZFKK5.mjs.map +7 -0
- package/dist/lib/neutral/DevtoolsPlugin.mjs +55 -0
- package/dist/lib/neutral/DevtoolsPlugin.mjs.map +7 -0
- package/dist/lib/neutral/DevtoolsPlugin.node.mjs +16 -0
- package/dist/lib/neutral/DevtoolsPlugin.node.mjs.map +7 -0
- package/dist/lib/neutral/DevtoolsPlugin.workerd.mjs +12 -0
- package/dist/lib/neutral/DevtoolsPlugin.workerd.mjs.map +7 -0
- package/dist/lib/neutral/GithubPanel-DWFZXZUK.mjs +178 -0
- package/dist/lib/neutral/GithubPanel-DWFZXZUK.mjs.map +7 -0
- package/dist/lib/neutral/RegistryPanel-CVETZUZV.mjs +162 -0
- package/dist/lib/neutral/RegistryPanel-CVETZUZV.mjs.map +7 -0
- package/dist/lib/neutral/app-graph-builder-KHZ65O2Q.mjs +560 -0
- package/dist/lib/neutral/app-graph-builder-KHZ65O2Q.mjs.map +7 -0
- package/dist/lib/neutral/capabilities/index.mjs +13 -0
- package/dist/lib/neutral/capabilities/index.mjs.map +7 -0
- package/dist/lib/neutral/chunk-J5LGTIGS.mjs +10 -0
- package/dist/lib/neutral/chunk-J5LGTIGS.mjs.map +7 -0
- package/dist/lib/neutral/chunk-PJNVAE7D.mjs +81 -0
- package/dist/lib/neutral/chunk-PJNVAE7D.mjs.map +7 -0
- package/dist/lib/neutral/chunk-QCL4JV4T.mjs +39 -0
- package/dist/lib/neutral/chunk-QCL4JV4T.mjs.map +7 -0
- package/dist/lib/neutral/containers/index.mjs +15 -0
- package/dist/lib/neutral/containers/index.mjs.map +7 -0
- package/dist/lib/neutral/index.mjs +12 -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/neutral/react-context-UJURDOO6.mjs +17 -0
- package/dist/lib/neutral/react-context-UJURDOO6.mjs.map +7 -0
- package/dist/lib/neutral/react-surface-XILLHGRR.mjs +332 -0
- package/dist/lib/neutral/react-surface-XILLHGRR.mjs.map +7 -0
- package/dist/lib/neutral/translations.mjs +65 -0
- package/dist/lib/neutral/translations.mjs.map +7 -0
- package/dist/lib/neutral/types/index.mjs +8 -0
- package/dist/lib/neutral/types/index.mjs.map +7 -0
- package/dist/types/dx.config.d.ts +28 -0
- package/dist/types/dx.config.d.ts.map +1 -0
- package/dist/types/src/DevtoolsPlugin.d.ts +4 -0
- package/dist/types/src/DevtoolsPlugin.d.ts.map +1 -0
- package/dist/types/src/DevtoolsPlugin.node.d.ts +4 -0
- package/dist/types/src/DevtoolsPlugin.node.d.ts.map +1 -0
- package/dist/types/src/DevtoolsPlugin.test.d.ts +2 -0
- package/dist/types/src/DevtoolsPlugin.test.d.ts.map +1 -0
- package/dist/types/src/DevtoolsPlugin.workerd.d.ts +4 -0
- package/dist/types/src/DevtoolsPlugin.workerd.d.ts.map +1 -0
- package/dist/types/src/capabilities/app-graph-builder.d.ts +5 -0
- package/dist/types/src/capabilities/app-graph-builder.d.ts.map +1 -0
- package/dist/types/src/capabilities/index.d.ts +5 -0
- package/dist/types/src/capabilities/index.d.ts.map +1 -0
- package/dist/types/src/capabilities/react-context.d.ts +5 -0
- package/dist/types/src/capabilities/react-context.d.ts.map +1 -0
- package/dist/types/src/capabilities/react-surface.d.ts +5 -0
- package/dist/types/src/capabilities/react-surface.d.ts.map +1 -0
- package/dist/types/src/containers/DebugGraph/DebugGraph.d.ts +11 -0
- package/dist/types/src/containers/DebugGraph/DebugGraph.d.ts.map +1 -0
- package/dist/types/src/containers/DebugGraph/index.d.ts +2 -0
- package/dist/types/src/containers/DebugGraph/index.d.ts.map +1 -0
- package/dist/types/src/containers/DevtoolsOverviewContainer/DevtoolsOverviewContainer.d.ts +6 -0
- package/dist/types/src/containers/DevtoolsOverviewContainer/DevtoolsOverviewContainer.d.ts.map +1 -0
- package/dist/types/src/containers/DevtoolsOverviewContainer/index.d.ts +2 -0
- package/dist/types/src/containers/DevtoolsOverviewContainer/index.d.ts.map +1 -0
- package/dist/types/src/containers/GithubPanel/GithubComponent.d.ts +15 -0
- package/dist/types/src/containers/GithubPanel/GithubComponent.d.ts.map +1 -0
- package/dist/types/src/containers/GithubPanel/GithubComponent.stories.d.ts +80 -0
- package/dist/types/src/containers/GithubPanel/GithubComponent.stories.d.ts.map +1 -0
- package/dist/types/src/containers/GithubPanel/GithubPanel.d.ts +6 -0
- package/dist/types/src/containers/GithubPanel/GithubPanel.d.ts.map +1 -0
- package/dist/types/src/containers/GithubPanel/index.d.ts +2 -0
- package/dist/types/src/containers/GithubPanel/index.d.ts.map +1 -0
- package/dist/types/src/containers/RegistryPanel/RegistryPanel.d.ts +6 -0
- package/dist/types/src/containers/RegistryPanel/RegistryPanel.d.ts.map +1 -0
- package/dist/types/src/containers/RegistryPanel/index.d.ts +2 -0
- package/dist/types/src/containers/RegistryPanel/index.d.ts.map +1 -0
- package/dist/types/src/containers/index.d.ts +6 -0
- package/dist/types/src/containers/index.d.ts.map +1 -0
- package/dist/types/src/index.d.ts +3 -0
- package/dist/types/src/index.d.ts.map +1 -0
- package/dist/types/src/meta.d.ts +33 -0
- package/dist/types/src/meta.d.ts.map +1 -0
- package/dist/types/src/plugin.d.ts +3 -0
- package/dist/types/src/plugin.d.ts.map +1 -0
- package/dist/types/src/translations.d.ts +67 -0
- package/dist/types/src/translations.d.ts.map +1 -0
- package/dist/types/src/types/Devtools.d.ts +56 -0
- package/dist/types/src/types/Devtools.d.ts.map +1 -0
- package/dist/types/src/types/index.d.ts +2 -0
- package/dist/types/src/types/index.d.ts.map +1 -0
- package/dist/types/tsconfig.tsbuildinfo +1 -0
- package/dx.config.ts +28 -0
- package/package.json +153 -0
- package/src/DevtoolsPlugin.node.ts +16 -0
- package/src/DevtoolsPlugin.test.ts +24 -0
- package/src/DevtoolsPlugin.tsx +54 -0
- package/src/DevtoolsPlugin.workerd.ts +11 -0
- package/src/capabilities/app-graph-builder.ts +388 -0
- package/src/capabilities/index.ts +9 -0
- package/src/capabilities/react-context.tsx +25 -0
- package/src/capabilities/react-surface.tsx +331 -0
- package/src/containers/DebugGraph/DebugGraph.tsx +16 -0
- package/src/containers/DebugGraph/index.ts +5 -0
- package/src/containers/DevtoolsOverviewContainer/DevtoolsOverviewContainer.tsx +52 -0
- package/src/containers/DevtoolsOverviewContainer/index.ts +5 -0
- package/src/containers/GithubPanel/GithubComponent.stories.tsx +38 -0
- package/src/containers/GithubPanel/GithubComponent.tsx +192 -0
- package/src/containers/GithubPanel/GithubPanel.tsx +19 -0
- package/src/containers/GithubPanel/index.ts +5 -0
- package/src/containers/RegistryPanel/RegistryPanel.tsx +152 -0
- package/src/containers/RegistryPanel/index.ts +5 -0
- package/src/containers/index.ts +10 -0
- package/src/index.ts +6 -0
- package/src/meta.ts +9 -0
- package/src/plugin.ts +9 -0
- package/src/translations.ts +66 -0
- package/src/types/Devtools.ts +72 -0
- package/src/types/index.ts +5 -0
- package/src/vite-env.d.ts +10 -0
|
@@ -0,0 +1,152 @@
|
|
|
1
|
+
//
|
|
2
|
+
// Copyright 2026 DXOS.org
|
|
3
|
+
//
|
|
4
|
+
|
|
5
|
+
import React, { useCallback, useEffect, useMemo, useState } from 'react';
|
|
6
|
+
|
|
7
|
+
import { Operation } from '@dxos/compute';
|
|
8
|
+
import { JsonView, PanelContainer, Placeholder, Searchbar } from '@dxos/devtools';
|
|
9
|
+
import { Entity, Format, Obj, Type } from '@dxos/echo';
|
|
10
|
+
import { useClient } from '@dxos/react-client';
|
|
11
|
+
import { Toolbar } from '@dxos/react-ui';
|
|
12
|
+
import { DynamicTable, type TableFeatures } from '@dxos/react-ui-table';
|
|
13
|
+
import { mx } from '@dxos/ui-theme';
|
|
14
|
+
|
|
15
|
+
type RegistryRow = {
|
|
16
|
+
id: string;
|
|
17
|
+
kind: string;
|
|
18
|
+
label: string;
|
|
19
|
+
_entity: Entity.Unknown;
|
|
20
|
+
};
|
|
21
|
+
|
|
22
|
+
const textFilter = (text?: string) => {
|
|
23
|
+
if (!text) {
|
|
24
|
+
return () => true;
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
const matcher = new RegExp(text, 'i');
|
|
28
|
+
return (entity: Entity.Unknown) => {
|
|
29
|
+
const typename = Entity.getTypename(entity) ?? '';
|
|
30
|
+
const metaKey = Obj.isObject(entity) ? (Obj.getMeta(entity).key ?? '') : '';
|
|
31
|
+
const uri = Type.isType(entity) ? (Type.getURI(entity)?.toString() ?? '') : '';
|
|
32
|
+
const operationKey =
|
|
33
|
+
Obj.isObject(entity) && Obj.instanceOf(Operation.PersistentOperation, entity)
|
|
34
|
+
? (Operation.getKey(entity) ?? '')
|
|
35
|
+
: '';
|
|
36
|
+
const name = Obj.isObject(entity) && Obj.instanceOf(Operation.PersistentOperation, entity) ? entity.name : '';
|
|
37
|
+
return [typename, metaKey, uri, operationKey, name, getEntityId(entity)].some((value) => value.match(matcher));
|
|
38
|
+
};
|
|
39
|
+
};
|
|
40
|
+
|
|
41
|
+
const getEntityId = (entity: Entity.Unknown): string => {
|
|
42
|
+
if (entity.id) {
|
|
43
|
+
return entity.id;
|
|
44
|
+
}
|
|
45
|
+
if (Type.isType(entity)) {
|
|
46
|
+
return Type.getURI(entity)?.toString() ?? Type.getTypename(entity) ?? 'unknown-type';
|
|
47
|
+
}
|
|
48
|
+
return Entity.getTypename(entity) ?? 'unknown';
|
|
49
|
+
};
|
|
50
|
+
|
|
51
|
+
const getKind = (entity: Entity.Unknown): string => {
|
|
52
|
+
if (Type.isType(entity)) {
|
|
53
|
+
return 'type';
|
|
54
|
+
}
|
|
55
|
+
if (Obj.isObject(entity) && Obj.instanceOf(Operation.PersistentOperation, entity)) {
|
|
56
|
+
return 'operation';
|
|
57
|
+
}
|
|
58
|
+
return 'other';
|
|
59
|
+
};
|
|
60
|
+
|
|
61
|
+
const getLabel = (entity: Entity.Unknown): string => {
|
|
62
|
+
if (Obj.isObject(entity) && Obj.instanceOf(Operation.PersistentOperation, entity)) {
|
|
63
|
+
return entity.name || Operation.getKey(entity) || getEntityId(entity);
|
|
64
|
+
}
|
|
65
|
+
if (Type.isType(entity)) {
|
|
66
|
+
return Type.getTypename(entity) ?? getEntityId(entity);
|
|
67
|
+
}
|
|
68
|
+
return getEntityId(entity);
|
|
69
|
+
};
|
|
70
|
+
|
|
71
|
+
const toDetailJson = (entity: Entity.Unknown): object => {
|
|
72
|
+
if (Type.isType(entity)) {
|
|
73
|
+
return {
|
|
74
|
+
id: getEntityId(entity),
|
|
75
|
+
typename: Type.getTypename(entity),
|
|
76
|
+
uri: Type.getURI(entity)?.toString(),
|
|
77
|
+
version: Type.getVersion(entity),
|
|
78
|
+
jsonSchema: entity.jsonSchema,
|
|
79
|
+
};
|
|
80
|
+
}
|
|
81
|
+
if (Obj.isObject(entity)) {
|
|
82
|
+
return Obj.toJSON(entity);
|
|
83
|
+
}
|
|
84
|
+
return { id: getEntityId(entity), typename: Entity.getTypename(entity) };
|
|
85
|
+
};
|
|
86
|
+
|
|
87
|
+
export const RegistryPanel = () => {
|
|
88
|
+
const client = useClient();
|
|
89
|
+
const [entities, setEntities] = useState<Entity.Unknown[]>([]);
|
|
90
|
+
const [filter, setFilter] = useState('');
|
|
91
|
+
const [selected, setSelected] = useState<Entity.Unknown>();
|
|
92
|
+
|
|
93
|
+
useEffect(() => {
|
|
94
|
+
const registry = client.graph.registry;
|
|
95
|
+
const refresh = () => setEntities([...registry.list()]);
|
|
96
|
+
refresh();
|
|
97
|
+
return registry.changed.on(refresh);
|
|
98
|
+
}, [client]);
|
|
99
|
+
|
|
100
|
+
const properties = useMemo(
|
|
101
|
+
() => [
|
|
102
|
+
{ name: 'kind', format: Format.TypeFormat.String, size: 100 },
|
|
103
|
+
{ name: 'label', format: Format.TypeFormat.String },
|
|
104
|
+
{ name: 'id', format: Format.TypeFormat.String, size: 280 },
|
|
105
|
+
],
|
|
106
|
+
[],
|
|
107
|
+
);
|
|
108
|
+
|
|
109
|
+
const rows = useMemo((): RegistryRow[] => {
|
|
110
|
+
return entities
|
|
111
|
+
.filter(textFilter(filter))
|
|
112
|
+
.map((entity) => ({
|
|
113
|
+
id: getEntityId(entity),
|
|
114
|
+
kind: getKind(entity),
|
|
115
|
+
label: getLabel(entity),
|
|
116
|
+
_entity: entity,
|
|
117
|
+
}))
|
|
118
|
+
.toSorted((left, right) => left.label.localeCompare(right.label));
|
|
119
|
+
}, [entities, filter]);
|
|
120
|
+
|
|
121
|
+
const handleRowClicked = useCallback((row: RegistryRow | undefined) => {
|
|
122
|
+
if (!row?._entity) {
|
|
123
|
+
return;
|
|
124
|
+
}
|
|
125
|
+
setSelected(row._entity);
|
|
126
|
+
}, []);
|
|
127
|
+
|
|
128
|
+
const detailJson = useMemo(() => (selected ? toDetailJson(selected) : undefined), [selected]);
|
|
129
|
+
|
|
130
|
+
const features: Partial<TableFeatures> = useMemo(() => ({ selection: { enabled: true, mode: 'single' } }), []);
|
|
131
|
+
|
|
132
|
+
return (
|
|
133
|
+
<PanelContainer
|
|
134
|
+
toolbar={
|
|
135
|
+
<Toolbar.Root>
|
|
136
|
+
<Searchbar placeholder='Filter...' onChange={setFilter} />
|
|
137
|
+
</Toolbar.Root>
|
|
138
|
+
}
|
|
139
|
+
>
|
|
140
|
+
<div className={mx('h-full grid grid-cols-[2fr_1fr] overflow-hidden')}>
|
|
141
|
+
<div className={mx('flex flex-col min-h-0 overflow-hidden')}>
|
|
142
|
+
<DynamicTable properties={properties} rows={rows} features={features} onRowClick={handleRowClicked} />
|
|
143
|
+
</div>
|
|
144
|
+
<div className={mx('min-h-0 h-full overflow-auto border-s border-separator text-sm')}>
|
|
145
|
+
{detailJson ? <JsonView data={detailJson} /> : <Placeholder label='Details' />}
|
|
146
|
+
</div>
|
|
147
|
+
</div>
|
|
148
|
+
</PanelContainer>
|
|
149
|
+
);
|
|
150
|
+
};
|
|
151
|
+
|
|
152
|
+
RegistryPanel.displayName = 'RegistryPanel';
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
//
|
|
2
|
+
// Copyright 2023 DXOS.org
|
|
3
|
+
//
|
|
4
|
+
|
|
5
|
+
import { type ComponentType, lazy } from 'react';
|
|
6
|
+
|
|
7
|
+
export const DebugGraph: ComponentType<any> = lazy(() => import('./DebugGraph'));
|
|
8
|
+
export const DevtoolsOverviewContainer: ComponentType<any> = lazy(() => import('./DevtoolsOverviewContainer'));
|
|
9
|
+
export const GithubPanel: ComponentType<any> = lazy(() => import('./GithubPanel'));
|
|
10
|
+
export const RegistryPanel: ComponentType<any> = lazy(() => import('./RegistryPanel'));
|
package/src/index.ts
ADDED
package/src/meta.ts
ADDED
package/src/plugin.ts
ADDED
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
//
|
|
2
|
+
// Copyright 2023 DXOS.org
|
|
3
|
+
//
|
|
4
|
+
|
|
5
|
+
import { type Resource } from '@dxos/react-ui';
|
|
6
|
+
import { translations as introspectTranslations } from '@dxos/react-ui-introspect/translations';
|
|
7
|
+
|
|
8
|
+
import { meta } from '#meta';
|
|
9
|
+
|
|
10
|
+
export const translations = [
|
|
11
|
+
...introspectTranslations,
|
|
12
|
+
{
|
|
13
|
+
'en-US': {
|
|
14
|
+
[meta.profile.key]: {
|
|
15
|
+
'plugin.name': 'Devtools',
|
|
16
|
+
'open-devtools.label': 'Open DevTools',
|
|
17
|
+
'devtools.label': 'DevTools',
|
|
18
|
+
'devtools-overview.label': 'Stats',
|
|
19
|
+
'debug-app-graph.label': 'App Graph',
|
|
20
|
+
'debug-tools-explorer.label': 'SDK Explorer',
|
|
21
|
+
|
|
22
|
+
'reset-data.label': 'Reset data (ERASES ALL DATA)',
|
|
23
|
+
'client.label': 'Client',
|
|
24
|
+
'config.label': 'Config',
|
|
25
|
+
'storage.label': 'Storage',
|
|
26
|
+
'sqlite.label': 'SQLite',
|
|
27
|
+
'logs.label': 'Logs',
|
|
28
|
+
'diagnostics.label': 'Diagnostics',
|
|
29
|
+
'tracing.label': 'Tracing',
|
|
30
|
+
'halo.label': 'HALO',
|
|
31
|
+
'identity.label': 'Identity',
|
|
32
|
+
'devices.label': 'Devices',
|
|
33
|
+
'keyring.label': 'Keyring',
|
|
34
|
+
'credentials.label': 'Credentials',
|
|
35
|
+
'echo.label': 'ECHO',
|
|
36
|
+
'spaces.label': 'Spaces',
|
|
37
|
+
'space.label': 'Space',
|
|
38
|
+
'feeds.label': 'Feeds',
|
|
39
|
+
'objects.label': 'Objects',
|
|
40
|
+
'schema.label': 'Schema',
|
|
41
|
+
'registry.label': 'Registry',
|
|
42
|
+
'automerge.label': 'Automerge',
|
|
43
|
+
'queues.label': 'Queues',
|
|
44
|
+
'members.label': 'Members',
|
|
45
|
+
'metadata.label': 'Metadata',
|
|
46
|
+
'mesh.label': 'MESH',
|
|
47
|
+
'signal.label': 'Signal',
|
|
48
|
+
'swarm.label': 'Swarm',
|
|
49
|
+
'network.label': 'Network',
|
|
50
|
+
'agent.label': 'Agent',
|
|
51
|
+
'dashboard.label': 'Dashboard',
|
|
52
|
+
'search.label': 'Search',
|
|
53
|
+
'edge.label': 'EDGE',
|
|
54
|
+
'workflows.label': 'Workflows',
|
|
55
|
+
'traces.label': 'Traces',
|
|
56
|
+
'testing.label': 'Testing',
|
|
57
|
+
// GitHub (deck-companion--github surface).
|
|
58
|
+
'github-loading.message': 'Loading…',
|
|
59
|
+
'github-unavailable.message': 'GitHub feed unavailable.',
|
|
60
|
+
'recent-prs.label_one': '{{count}} recent PR',
|
|
61
|
+
'recent-prs.label_other': '{{count}} recent PRs',
|
|
62
|
+
'view-on-github.button': 'View on GitHub',
|
|
63
|
+
},
|
|
64
|
+
},
|
|
65
|
+
},
|
|
66
|
+
] as const satisfies Resource[];
|
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
//
|
|
2
|
+
// Copyright 2025 DXOS.org
|
|
3
|
+
//
|
|
4
|
+
|
|
5
|
+
// @import-as-namespace
|
|
6
|
+
|
|
7
|
+
import { meta } from '#meta';
|
|
8
|
+
|
|
9
|
+
/**
|
|
10
|
+
* Extracts the last dot-separated segment of a Devtools namespaced ID string.
|
|
11
|
+
* Use this as the node segment `id` when building app-graph nodes whose `data`
|
|
12
|
+
* value is one of the other constants in this namespace.
|
|
13
|
+
*/
|
|
14
|
+
export const nodeId = (fullId: string): string => fullId.split('.').at(-1) ?? '';
|
|
15
|
+
|
|
16
|
+
const devtoolsId = `${meta.profile.key}.devtools`;
|
|
17
|
+
|
|
18
|
+
export const id = devtoolsId;
|
|
19
|
+
export const AppGraph = `${devtoolsId}.appGraph`;
|
|
20
|
+
export const ToolsExplorer = `${devtoolsId}.toolsExplorer`;
|
|
21
|
+
|
|
22
|
+
export namespace Client {
|
|
23
|
+
export const id = `${devtoolsId}.client`;
|
|
24
|
+
export const Config = `${Client.id}.config`;
|
|
25
|
+
export const Storage = `${Client.id}.storage`;
|
|
26
|
+
export const Sqlite = `${Client.id}.sqlite`;
|
|
27
|
+
export const Logs = `${Client.id}.logs`;
|
|
28
|
+
export const Diagnostics = `${Client.id}.diagnostics`;
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
export namespace Halo {
|
|
32
|
+
export const id = `${devtoolsId}.halo`;
|
|
33
|
+
export const Identity = `${Halo.id}.identity`;
|
|
34
|
+
export const Devices = `${Halo.id}.devices`;
|
|
35
|
+
export const Keyring = `${Halo.id}.keyring`;
|
|
36
|
+
export const Credentials = `${Halo.id}.credentials`;
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
export namespace Echo {
|
|
40
|
+
export const id = `${devtoolsId}.echo`;
|
|
41
|
+
export const Spaces = `${Echo.id}.spaces`;
|
|
42
|
+
export const Space = `${Echo.id}.space`;
|
|
43
|
+
export const Feeds = `${Echo.id}.feeds`;
|
|
44
|
+
export const Objects = `${Echo.id}.objects`;
|
|
45
|
+
export const Schema = `${Echo.id}.schema`;
|
|
46
|
+
export const Registry = `${Echo.id}.registry`;
|
|
47
|
+
export const Automerge = `${Echo.id}.automerge`;
|
|
48
|
+
export const Queues = `${Echo.id}.queues`;
|
|
49
|
+
export const Members = `${Echo.id}.members`;
|
|
50
|
+
export const Metadata = `${Echo.id}.metadata`;
|
|
51
|
+
}
|
|
52
|
+
|
|
53
|
+
export namespace Mesh {
|
|
54
|
+
export const id = `${devtoolsId}.mesh`;
|
|
55
|
+
export const Signal = `${Mesh.id}.signal`;
|
|
56
|
+
export const Swarm = `${Mesh.id}.swarm`;
|
|
57
|
+
export const Network = `${Mesh.id}.network`;
|
|
58
|
+
}
|
|
59
|
+
|
|
60
|
+
export namespace Agent {
|
|
61
|
+
export const id = `${devtoolsId}.agent`;
|
|
62
|
+
export const Dashboard = `${Agent.id}.dashboard`;
|
|
63
|
+
export const Search = `${Agent.id}.search`;
|
|
64
|
+
}
|
|
65
|
+
|
|
66
|
+
export namespace Edge {
|
|
67
|
+
export const id = `${devtoolsId}.edge`;
|
|
68
|
+
export const Dashboard = `${Edge.id}.dashboard`;
|
|
69
|
+
export const Workflows = `${Edge.id}.workflows`;
|
|
70
|
+
export const Traces = `${Edge.id}.traces`;
|
|
71
|
+
export const Testing = `${Edge.id}.testing`;
|
|
72
|
+
}
|