@dxos/plugin-debug 0.8.4-main.72ec0f3 → 0.8.4-main.7996785055

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 (189) hide show
  1. package/dist/lib/browser/DebugGraph-7HXJ2PS2.mjs +16 -0
  2. package/dist/lib/browser/DebugGraph-7HXJ2PS2.mjs.map +7 -0
  3. package/dist/lib/browser/DebugObjectPanel-KXVFOGU6.mjs +35 -0
  4. package/dist/lib/browser/DebugObjectPanel-KXVFOGU6.mjs.map +7 -0
  5. package/dist/lib/browser/DebugSettings-DQXOXF6A.mjs +183 -0
  6. package/dist/lib/browser/DebugSettings-DQXOXF6A.mjs.map +7 -0
  7. package/dist/lib/browser/DebugSpaceObjectsPanel-SIK72DXV.mjs +45 -0
  8. package/dist/lib/browser/DebugSpaceObjectsPanel-SIK72DXV.mjs.map +7 -0
  9. package/dist/lib/browser/DebugStatus-FWF3YFBA.mjs +124 -0
  10. package/dist/lib/browser/DebugStatus-FWF3YFBA.mjs.map +7 -0
  11. package/dist/lib/browser/DevtoolsOverviewContainer-TBTTPXVF.mjs +24 -0
  12. package/dist/lib/browser/DevtoolsOverviewContainer-TBTTPXVF.mjs.map +7 -0
  13. package/dist/lib/browser/{SpaceGenerator-46TAISVE.mjs → SpaceGenerator-UUQS6TYY.mjs} +455 -425
  14. package/dist/lib/browser/SpaceGenerator-UUQS6TYY.mjs.map +7 -0
  15. package/dist/lib/browser/Wireframe-KAGOKEFW.mjs +53 -0
  16. package/dist/lib/browser/Wireframe-KAGOKEFW.mjs.map +7 -0
  17. package/dist/lib/browser/app-graph-builder-FBLOEOH5.mjs +594 -0
  18. package/dist/lib/browser/app-graph-builder-FBLOEOH5.mjs.map +7 -0
  19. package/dist/lib/browser/{chunk-SRV2AIGJ.mjs → chunk-Q37TZWW5.mjs} +12 -2
  20. package/dist/lib/browser/chunk-Q37TZWW5.mjs.map +7 -0
  21. package/dist/lib/browser/{chunk-WZFZ4ESO.mjs → chunk-ZOM2FBHQ.mjs} +2 -2
  22. package/dist/lib/browser/chunk-ZOM2FBHQ.mjs.map +7 -0
  23. package/dist/lib/browser/index.mjs +40 -38
  24. package/dist/lib/browser/index.mjs.map +4 -4
  25. package/dist/lib/browser/meta.json +1 -1
  26. package/dist/lib/browser/react-context-KBHXEMRS.mjs +18 -0
  27. package/dist/lib/browser/react-context-KBHXEMRS.mjs.map +7 -0
  28. package/dist/lib/browser/react-surface-HYT4HKZX.mjs +428 -0
  29. package/dist/lib/browser/react-surface-HYT4HKZX.mjs.map +7 -0
  30. package/dist/lib/browser/settings-XXFUM3QJ.mjs +32 -0
  31. package/dist/lib/browser/settings-XXFUM3QJ.mjs.map +7 -0
  32. package/dist/types/src/DebugPlugin.d.ts +7 -1
  33. package/dist/types/src/DebugPlugin.d.ts.map +1 -1
  34. package/dist/types/src/capabilities/app-graph-builder/app-graph-builder.d.ts +6 -0
  35. package/dist/types/src/capabilities/app-graph-builder/app-graph-builder.d.ts.map +1 -0
  36. package/dist/types/src/capabilities/app-graph-builder/index.d.ts +3 -0
  37. package/dist/types/src/capabilities/app-graph-builder/index.d.ts.map +1 -0
  38. package/dist/types/src/capabilities/index.d.ts +4 -8
  39. package/dist/types/src/capabilities/index.d.ts.map +1 -1
  40. package/dist/types/src/capabilities/react-context/index.d.ts +7 -0
  41. package/dist/types/src/capabilities/react-context/index.d.ts.map +1 -0
  42. package/dist/types/src/capabilities/react-context/react-context.d.ts +10 -0
  43. package/dist/types/src/capabilities/react-context/react-context.d.ts.map +1 -0
  44. package/dist/types/src/capabilities/react-surface/index.d.ts +5 -0
  45. package/dist/types/src/capabilities/react-surface/index.d.ts.map +1 -0
  46. package/dist/types/src/capabilities/react-surface/react-surface.d.ts +9 -0
  47. package/dist/types/src/capabilities/react-surface/react-surface.d.ts.map +1 -0
  48. package/dist/types/src/capabilities/settings/index.d.ts +3 -0
  49. package/dist/types/src/capabilities/settings/index.d.ts.map +1 -0
  50. package/dist/types/src/capabilities/settings/settings.d.ts +6 -0
  51. package/dist/types/src/capabilities/settings/settings.d.ts.map +1 -0
  52. package/dist/types/src/components/SchemaTable/SchemaTable.d.ts.map +1 -0
  53. package/dist/types/src/components/SchemaTable/index.d.ts +2 -0
  54. package/dist/types/src/components/SchemaTable/index.d.ts.map +1 -0
  55. package/dist/types/src/components/SpaceGenerator/ObjectGenerator.d.ts +5 -5
  56. package/dist/types/src/components/SpaceGenerator/ObjectGenerator.d.ts.map +1 -1
  57. package/dist/types/src/components/SpaceGenerator/index.d.ts +2 -2
  58. package/dist/types/src/components/SpaceGenerator/index.d.ts.map +1 -1
  59. package/dist/types/src/components/SpaceGenerator/presets.d.ts +1 -4
  60. package/dist/types/src/components/SpaceGenerator/presets.d.ts.map +1 -1
  61. package/dist/types/src/components/index.d.ts +2 -10
  62. package/dist/types/src/components/index.d.ts.map +1 -1
  63. package/dist/types/src/containers/DebugGraph/DebugGraph.d.ts +8 -0
  64. package/dist/types/src/containers/DebugGraph/DebugGraph.d.ts.map +1 -0
  65. package/dist/types/src/containers/DebugGraph/index.d.ts +3 -0
  66. package/dist/types/src/containers/DebugGraph/index.d.ts.map +1 -0
  67. package/dist/types/src/{components → containers/DebugObjectPanel}/DebugObjectPanel.d.ts +2 -2
  68. package/dist/types/src/containers/DebugObjectPanel/DebugObjectPanel.d.ts.map +1 -0
  69. package/dist/types/src/containers/DebugObjectPanel/index.d.ts +3 -0
  70. package/dist/types/src/containers/DebugObjectPanel/index.d.ts.map +1 -0
  71. package/dist/types/src/containers/DebugSettings/DebugSettings.d.ts +10 -0
  72. package/dist/types/src/containers/DebugSettings/DebugSettings.d.ts.map +1 -0
  73. package/dist/types/src/containers/DebugSettings/index.d.ts +3 -0
  74. package/dist/types/src/containers/DebugSettings/index.d.ts.map +1 -0
  75. package/dist/types/src/containers/DebugSpaceObjectsPanel/DebugSpaceObjectsPanel.d.ts +3 -0
  76. package/dist/types/src/containers/DebugSpaceObjectsPanel/DebugSpaceObjectsPanel.d.ts.map +1 -0
  77. package/dist/types/src/containers/DebugSpaceObjectsPanel/index.d.ts +3 -0
  78. package/dist/types/src/containers/DebugSpaceObjectsPanel/index.d.ts.map +1 -0
  79. package/dist/types/src/containers/DebugStatus/DebugStatus.d.ts.map +1 -0
  80. package/dist/types/src/containers/DebugStatus/index.d.ts +3 -0
  81. package/dist/types/src/containers/DebugStatus/index.d.ts.map +1 -0
  82. package/dist/types/src/{components → containers/DevtoolsOverviewContainer}/DevtoolsOverviewContainer.d.ts +0 -1
  83. package/dist/types/src/containers/DevtoolsOverviewContainer/DevtoolsOverviewContainer.d.ts.map +1 -0
  84. package/dist/types/src/containers/DevtoolsOverviewContainer/index.d.ts +3 -0
  85. package/dist/types/src/containers/DevtoolsOverviewContainer/index.d.ts.map +1 -0
  86. package/dist/types/src/containers/SpaceGenerator/SpaceGenerator.d.ts +15 -0
  87. package/dist/types/src/containers/SpaceGenerator/SpaceGenerator.d.ts.map +1 -0
  88. package/dist/types/src/containers/SpaceGenerator/index.d.ts +3 -0
  89. package/dist/types/src/containers/SpaceGenerator/index.d.ts.map +1 -0
  90. package/dist/types/src/{components → containers/Wireframe}/Wireframe.d.ts +1 -1
  91. package/dist/types/src/containers/Wireframe/Wireframe.d.ts.map +1 -0
  92. package/dist/types/src/containers/Wireframe/index.d.ts +3 -0
  93. package/dist/types/src/containers/Wireframe/index.d.ts.map +1 -0
  94. package/dist/types/src/containers/index.d.ts +10 -0
  95. package/dist/types/src/containers/index.d.ts.map +1 -0
  96. package/dist/types/src/meta.d.ts +2 -2
  97. package/dist/types/src/meta.d.ts.map +1 -1
  98. package/dist/types/src/translations.d.ts +2 -0
  99. package/dist/types/src/translations.d.ts.map +1 -1
  100. package/dist/types/src/types.d.ts +39 -34
  101. package/dist/types/src/types.d.ts.map +1 -1
  102. package/dist/types/tsconfig.tsbuildinfo +1 -1
  103. package/package.json +75 -70
  104. package/src/DebugPlugin.tsx +27 -31
  105. package/src/capabilities/app-graph-builder/app-graph-builder.ts +419 -0
  106. package/src/capabilities/app-graph-builder/index.ts +7 -0
  107. package/src/capabilities/index.ts +4 -6
  108. package/src/capabilities/react-context/index.ts +7 -0
  109. package/src/capabilities/react-context/react-context.tsx +25 -0
  110. package/src/capabilities/react-surface/index.ts +7 -0
  111. package/src/capabilities/react-surface/react-surface.tsx +414 -0
  112. package/src/capabilities/settings/index.ts +7 -0
  113. package/src/capabilities/settings/settings.ts +31 -0
  114. package/src/components/{SpaceGenerator → SchemaTable}/SchemaTable.tsx +2 -2
  115. package/src/components/SchemaTable/index.ts +5 -0
  116. package/src/components/SpaceGenerator/ObjectGenerator.tsx +19 -21
  117. package/src/components/SpaceGenerator/index.ts +2 -3
  118. package/src/components/SpaceGenerator/presets.ts +196 -75
  119. package/src/components/index.ts +2 -10
  120. package/src/containers/DebugGraph/DebugGraph.tsx +13 -0
  121. package/src/containers/DebugGraph/index.ts +7 -0
  122. package/src/containers/DebugObjectPanel/DebugObjectPanel.tsx +47 -0
  123. package/src/containers/DebugObjectPanel/index.ts +7 -0
  124. package/src/{components → containers/DebugSettings}/DebugSettings.tsx +51 -25
  125. package/src/containers/DebugSettings/index.ts +7 -0
  126. package/src/containers/DebugSpaceObjectsPanel/DebugSpaceObjectsPanel.tsx +55 -0
  127. package/src/containers/DebugSpaceObjectsPanel/index.ts +7 -0
  128. package/src/{components → containers/DebugStatus}/DebugStatus.tsx +40 -16
  129. package/src/containers/DebugStatus/index.ts +7 -0
  130. package/src/containers/DevtoolsOverviewContainer/DevtoolsOverviewContainer.tsx +25 -0
  131. package/src/containers/DevtoolsOverviewContainer/index.ts +7 -0
  132. package/src/containers/SpaceGenerator/SpaceGenerator.tsx +130 -0
  133. package/src/containers/SpaceGenerator/index.ts +7 -0
  134. package/src/{components → containers/Wireframe}/Wireframe.tsx +4 -4
  135. package/src/containers/Wireframe/index.ts +7 -0
  136. package/src/containers/index.ts +14 -0
  137. package/src/meta.ts +3 -3
  138. package/src/translations.ts +2 -0
  139. package/src/types.ts +9 -2
  140. package/dist/lib/browser/DebugGraph-EDOH6R2G.mjs +0 -20
  141. package/dist/lib/browser/DebugGraph-EDOH6R2G.mjs.map +0 -7
  142. package/dist/lib/browser/DevtoolsOverviewContainer-JXVZVPHN.mjs +0 -25
  143. package/dist/lib/browser/DevtoolsOverviewContainer-JXVZVPHN.mjs.map +0 -7
  144. package/dist/lib/browser/SpaceGenerator-46TAISVE.mjs.map +0 -7
  145. package/dist/lib/browser/app-graph-builder-CRH2HJKT.mjs +0 -588
  146. package/dist/lib/browser/app-graph-builder-CRH2HJKT.mjs.map +0 -7
  147. package/dist/lib/browser/chunk-SRV2AIGJ.mjs.map +0 -7
  148. package/dist/lib/browser/chunk-WZFZ4ESO.mjs.map +0 -7
  149. package/dist/lib/browser/react-context-P2YDWEWI.mjs +0 -16
  150. package/dist/lib/browser/react-context-P2YDWEWI.mjs.map +0 -7
  151. package/dist/lib/browser/react-surface-2SNVZDEA.mjs +0 -774
  152. package/dist/lib/browser/react-surface-2SNVZDEA.mjs.map +0 -7
  153. package/dist/lib/browser/settings-SQXR3OAH.mjs +0 -22
  154. package/dist/lib/browser/settings-SQXR3OAH.mjs.map +0 -7
  155. package/dist/types/src/capabilities/app-graph-builder.d.ts +0 -4
  156. package/dist/types/src/capabilities/app-graph-builder.d.ts.map +0 -1
  157. package/dist/types/src/capabilities/react-context.d.ts +0 -8
  158. package/dist/types/src/capabilities/react-context.d.ts.map +0 -1
  159. package/dist/types/src/capabilities/react-surface.d.ts +0 -4
  160. package/dist/types/src/capabilities/react-surface.d.ts.map +0 -1
  161. package/dist/types/src/capabilities/settings.d.ts +0 -4
  162. package/dist/types/src/capabilities/settings.d.ts.map +0 -1
  163. package/dist/types/src/components/Container.d.ts +0 -5
  164. package/dist/types/src/components/Container.d.ts.map +0 -1
  165. package/dist/types/src/components/DebugGraph.d.ts +0 -8
  166. package/dist/types/src/components/DebugGraph.d.ts.map +0 -1
  167. package/dist/types/src/components/DebugObjectPanel.d.ts.map +0 -1
  168. package/dist/types/src/components/DebugSettings.d.ts +0 -6
  169. package/dist/types/src/components/DebugSettings.d.ts.map +0 -1
  170. package/dist/types/src/components/DebugStatus.d.ts.map +0 -1
  171. package/dist/types/src/components/DevtoolsOverviewContainer.d.ts.map +0 -1
  172. package/dist/types/src/components/SpaceGenerator/SchemaTable.d.ts.map +0 -1
  173. package/dist/types/src/components/SpaceGenerator/SpaceGenerator.d.ts +0 -9
  174. package/dist/types/src/components/SpaceGenerator/SpaceGenerator.d.ts.map +0 -1
  175. package/dist/types/src/components/SpaceGenerator/SpaceGenerator.stories.d.ts +0 -15
  176. package/dist/types/src/components/SpaceGenerator/SpaceGenerator.stories.d.ts.map +0 -1
  177. package/dist/types/src/components/Wireframe.d.ts.map +0 -1
  178. package/src/capabilities/app-graph-builder.ts +0 -431
  179. package/src/capabilities/react-context.tsx +0 -16
  180. package/src/capabilities/react-surface.tsx +0 -418
  181. package/src/capabilities/settings.ts +0 -19
  182. package/src/components/Container.tsx +0 -15
  183. package/src/components/DebugGraph.tsx +0 -14
  184. package/src/components/DebugObjectPanel.tsx +0 -33
  185. package/src/components/DevtoolsOverviewContainer.tsx +0 -20
  186. package/src/components/SpaceGenerator/SpaceGenerator.stories.tsx +0 -52
  187. package/src/components/SpaceGenerator/SpaceGenerator.tsx +0 -122
  188. /package/dist/types/src/components/{SpaceGenerator → SchemaTable}/SchemaTable.d.ts +0 -0
  189. /package/dist/types/src/{components → containers/DebugStatus}/DebugStatus.d.ts +0 -0
@@ -1,418 +0,0 @@
1
- //
2
- // Copyright 2025 DXOS.org
3
- //
4
-
5
- import * as Function from 'effect/Function';
6
- import React, { useCallback } from 'react';
7
-
8
- import {
9
- Capabilities,
10
- LayoutAction,
11
- type PluginContext,
12
- chain,
13
- contributes,
14
- createIntent,
15
- createSurface,
16
- } from '@dxos/app-framework';
17
- import { useCapability, useIntentDispatcher } from '@dxos/app-framework/react';
18
- import {
19
- AutomergePanel,
20
- ConfigPanel,
21
- CredentialsPanel,
22
- DeviceListPanel,
23
- DiagnosticsPanel,
24
- EdgeDashboardPanel,
25
- FeedsPanel,
26
- IdentityPanel,
27
- InvocationTraceContainer,
28
- KeyringPanel,
29
- LoggingPanel,
30
- MembersPanel,
31
- MetadataPanel,
32
- NetworkPanel,
33
- ObjectsPanel,
34
- QueuesPanel,
35
- SchemaPanel,
36
- SignalPanel,
37
- SpaceInfoPanel,
38
- SpaceListPanel,
39
- StoragePanel,
40
- SwarmPanel,
41
- TestingPanel,
42
- TracingPanel,
43
- WorkflowPanel,
44
- } from '@dxos/devtools';
45
- import { Obj } from '@dxos/echo';
46
- import { SettingsStore } from '@dxos/local-storage';
47
- import { log } from '@dxos/log';
48
- import { ClientCapabilities } from '@dxos/plugin-client';
49
- import { Graph } from '@dxos/plugin-graph';
50
- import { ScriptAction } from '@dxos/plugin-script/types';
51
- import { SpaceAction } from '@dxos/plugin-space/types';
52
- import { type Space, SpaceState, isSpace, parseId } from '@dxos/react-client/echo';
53
- import { StackItem } from '@dxos/react-ui-stack';
54
- import { Collection } from '@dxos/schema';
55
-
56
- import {
57
- DebugGraph,
58
- DebugObjectPanel,
59
- DebugSettings,
60
- DebugStatus,
61
- DevtoolsOverviewContainer,
62
- SpaceGenerator,
63
- Wireframe,
64
- } from '../components';
65
- import { meta } from '../meta';
66
- import { type DebugSettingsProps, Devtools } from '../types';
67
-
68
- type SpaceDebug = {
69
- type: string;
70
- space: Space;
71
- };
72
-
73
- type GraphDebug = {
74
- graph: Graph;
75
- root: string;
76
- };
77
-
78
- const isSpaceDebug = (data: any): data is SpaceDebug => data?.type === `${meta.id}/space` && isSpace(data.space);
79
- const isGraphDebug = (data: any): data is GraphDebug => data?.graph instanceof Graph && typeof data?.root === 'string';
80
-
81
- // TODO(wittjosiah): Factor out?
82
- const useCurrentSpace = () => {
83
- const layout = useCapability(Capabilities.Layout);
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
- export default (context: PluginContext) =>
91
- contributes(Capabilities.ReactSurface, [
92
- createSurface({
93
- id: `${meta.id}/plugin-settings`,
94
- role: 'article',
95
- filter: (data): data is { subject: SettingsStore<DebugSettingsProps> } =>
96
- data.subject instanceof SettingsStore && data.subject.prefix === meta.id,
97
- component: ({ data: { subject } }) => <DebugSettings settings={subject.value} />,
98
- }),
99
- createSurface({
100
- id: `${meta.id}/space`,
101
- role: 'article',
102
- filter: (data): data is { subject: SpaceDebug } => isSpaceDebug(data.subject),
103
- component: ({ data }) => {
104
- const { dispatchPromise: dispatch } = useIntentDispatcher();
105
-
106
- const handleCreateObject = useCallback(
107
- (objects: Obj.Any[]) => {
108
- if (!isSpace(data.subject.space)) {
109
- return;
110
- }
111
-
112
- const collection =
113
- data.subject.space.state.get() === SpaceState.SPACE_READY &&
114
- data.subject.space.properties[Collection.Collection.typename]?.target;
115
- if (!Obj.instanceOf(Collection.Collection, collection)) {
116
- return;
117
- }
118
-
119
- objects.forEach((object) => {
120
- void dispatch(
121
- createIntent(SpaceAction.AddObject, {
122
- target: collection,
123
- object,
124
- }),
125
- );
126
- });
127
- },
128
- [data.subject.space],
129
- );
130
-
131
- return (
132
- <StackItem.Content>
133
- <SpaceGenerator space={data.subject.space} onCreateObjects={handleCreateObject} />
134
- </StackItem.Content>
135
- );
136
- },
137
- }),
138
- createSurface({
139
- id: `${meta.id}/app-graph`,
140
- role: 'article',
141
- filter: (data): data is { subject: GraphDebug } => isGraphDebug(data.subject),
142
- component: ({ data }) => <DebugGraph graph={data.subject.graph} root={data.subject.root} />,
143
- }),
144
- createSurface({
145
- id: `${meta.id}/wireframe`,
146
- role: ['article', 'section'],
147
- position: 'hoist',
148
- filter: (data): data is { subject: Obj.Any } => {
149
- const settings = context.getCapability(Capabilities.SettingsStore).getStore<DebugSettingsProps>(meta.id)!.value;
150
- return Obj.isObject(data.subject) && !!settings.wireframe;
151
- },
152
- component: ({ data, role }) => (
153
- <Wireframe label={`${role}:${name}`} object={data.subject} classNames='row-span-2 overflow-hidden' />
154
- ),
155
- }),
156
- createSurface({
157
- id: `${meta.id}/object-debug`,
158
- role: 'article',
159
- filter: (data): data is { companionTo: Obj.Any } => data.subject === 'debug' && Obj.isObject(data.companionTo),
160
- component: ({ data }) => <DebugObjectPanel object={data.companionTo} />,
161
- }),
162
- createSurface({
163
- id: `${meta.id}/devtools-overview`,
164
- role: 'deck-companion--devtools',
165
- component: () => <DevtoolsOverviewContainer />,
166
- }),
167
- createSurface({
168
- id: `${meta.id}/status`,
169
- role: 'status',
170
- component: () => <DebugStatus />,
171
- }),
172
-
173
- //
174
- // Devtools
175
- //
176
-
177
- createSurface({
178
- id: `${meta.id}/client/config`,
179
- role: 'article',
180
- filter: (data): data is any => data.subject === Devtools.Client.Config,
181
- component: () => <ConfigPanel vaultSelector={false} />,
182
- }),
183
- createSurface({
184
- id: `${meta.id}/client/storage`,
185
- role: 'article',
186
- filter: (data): data is any => data.subject === Devtools.Client.Storage,
187
- component: () => <StoragePanel />,
188
- }),
189
- createSurface({
190
- id: `${meta.id}/client/logs`,
191
- role: 'article',
192
- filter: (data): data is any => data.subject === Devtools.Client.Logs,
193
- component: () => <LoggingPanel />,
194
- }),
195
- createSurface({
196
- id: `${meta.id}/client/diagnostics`,
197
- role: 'article',
198
- filter: (data): data is any => data.subject === Devtools.Client.Diagnostics,
199
- component: () => <DiagnosticsPanel />,
200
- }),
201
- createSurface({
202
- id: `${meta.id}/client/tracing`,
203
- role: 'article',
204
- filter: (data): data is any => data.subject === Devtools.Client.Tracing,
205
- component: () => <TracingPanel />,
206
- }),
207
- createSurface({
208
- id: `${meta.id}/halo/identity`,
209
- role: 'article',
210
- filter: (data): data is any => data.subject === Devtools.Halo.Identity,
211
- component: () => <IdentityPanel />,
212
- }),
213
- createSurface({
214
- id: `${meta.id}/halo/devices`,
215
- role: 'article',
216
- filter: (data): data is any => data.subject === Devtools.Halo.Devices,
217
- component: () => <DeviceListPanel />,
218
- }),
219
- createSurface({
220
- id: `${meta.id}/halo/keyring`,
221
- role: 'article',
222
- filter: (data): data is any => data.subject === Devtools.Halo.Keyring,
223
- component: () => <KeyringPanel />,
224
- }),
225
- createSurface({
226
- id: `${meta.id}/halo/credentials`,
227
- role: 'article',
228
- filter: (data): data is any => data.subject === Devtools.Halo.Credentials,
229
- component: () => {
230
- const space = useCurrentSpace();
231
- return <CredentialsPanel space={space} />;
232
- },
233
- }),
234
- createSurface({
235
- id: `${meta.id}/echo/spaces`,
236
- role: 'article',
237
- filter: (data): data is any => data.subject === Devtools.Echo.Spaces,
238
- component: () => {
239
- const { dispatchPromise: dispatch } = useIntentDispatcher();
240
- const handleSelect = useCallback(
241
- () =>
242
- dispatch(
243
- createIntent(LayoutAction.Open, {
244
- part: 'main',
245
- subject: [Devtools.Echo.Space],
246
- }),
247
- ),
248
- [dispatch],
249
- );
250
- return <SpaceListPanel onSelect={handleSelect} />;
251
- },
252
- }),
253
- createSurface({
254
- id: `${meta.id}/echo/space`,
255
- role: 'article',
256
- filter: (data): data is any => data.subject === Devtools.Echo.Space,
257
- component: () => {
258
- const space = useCurrentSpace();
259
- const { dispatchPromise: dispatch } = useIntentDispatcher();
260
- const handleSelect = useCallback(
261
- () =>
262
- dispatch(
263
- createIntent(LayoutAction.Open, {
264
- part: 'main',
265
- subject: [Devtools.Echo.Feeds],
266
- }),
267
- ),
268
- [dispatch],
269
- );
270
- return <SpaceInfoPanel space={space} onSelectFeed={handleSelect} onSelectPipeline={handleSelect} />;
271
- },
272
- }),
273
- createSurface({
274
- id: `${meta.id}/echo/feeds`,
275
- role: 'article',
276
- filter: (data): data is any => data.subject === Devtools.Echo.Feeds,
277
- component: () => {
278
- const space = useCurrentSpace();
279
- return <FeedsPanel space={space} />;
280
- },
281
- }),
282
- createSurface({
283
- id: `${meta.id}/echo/objects`,
284
- role: 'article',
285
- filter: (data): data is any => data.subject === Devtools.Echo.Objects,
286
- component: () => {
287
- const space = useCurrentSpace();
288
- return <ObjectsPanel space={space} />;
289
- },
290
- }),
291
- createSurface({
292
- id: `${meta.id}/echo/schema`,
293
- role: 'article',
294
- filter: (data): data is any => data.subject === Devtools.Echo.Schema,
295
- component: () => {
296
- const space = useCurrentSpace();
297
- return <SchemaPanel space={space} />;
298
- },
299
- }),
300
- createSurface({
301
- id: `${meta.id}/echo/automerge`,
302
- role: 'article',
303
- filter: (data): data is any => data.subject === Devtools.Echo.Automerge,
304
- component: () => {
305
- const space = useCurrentSpace();
306
- return <AutomergePanel space={space} />;
307
- },
308
- }),
309
- createSurface({
310
- id: `${meta.id}/echo/queues`,
311
- role: 'article',
312
- filter: (data): data is any => data.subject === Devtools.Echo.Queues,
313
- component: () => <QueuesPanel />,
314
- }),
315
- createSurface({
316
- id: `${meta.id}/echo/members`,
317
- role: 'article',
318
- filter: (data): data is any => data.subject === Devtools.Echo.Members,
319
- component: () => {
320
- const space = useCurrentSpace();
321
- return <MembersPanel space={space} />;
322
- },
323
- }),
324
- createSurface({
325
- id: `${meta.id}/echo/metadata`,
326
- role: 'article',
327
- filter: (data): data is any => data.subject === Devtools.Echo.Metadata,
328
- component: () => <MetadataPanel />,
329
- }),
330
- createSurface({
331
- id: `${meta.id}/mesh/signal`,
332
- role: 'article',
333
- filter: (data): data is any => data.subject === Devtools.Mesh.Signal,
334
- component: () => <SignalPanel />,
335
- }),
336
- createSurface({
337
- id: `${meta.id}/mesh/swarm`,
338
- role: 'article',
339
- filter: (data): data is any => data.subject === Devtools.Mesh.Swarm,
340
- component: () => <SwarmPanel />,
341
- }),
342
- createSurface({
343
- id: `${meta.id}/mesh/network`,
344
- role: 'article',
345
- filter: (data): data is any => data.subject === Devtools.Mesh.Network,
346
- component: () => {
347
- const space = useCurrentSpace();
348
- return <NetworkPanel space={space} />;
349
- },
350
- }),
351
- // TODO(wittjosiah): Remove?
352
- // createSurface({
353
- // id: `${meta.id}/agent/dashboard`,
354
- // role: 'article',
355
- // filter: (data): data is any => data.subject === Devtools.Agent.Dashboard,
356
- // component: () => <DashboardPanel />,
357
- // }),
358
- createSurface({
359
- id: `${meta.id}/edge/dashboard`,
360
- role: 'article',
361
- filter: (data): data is any => data.subject === Devtools.Edge.Dashboard,
362
- component: () => <EdgeDashboardPanel />,
363
- }),
364
- createSurface({
365
- id: `${meta.id}/edge/workflows`,
366
- role: 'article',
367
- filter: (data): data is any => data.subject === Devtools.Edge.Workflows,
368
- component: () => {
369
- const space = useCurrentSpace();
370
- return <WorkflowPanel space={space} />;
371
- },
372
- }),
373
- createSurface({
374
- id: `${meta.id}/edge/traces`,
375
- role: 'article',
376
- filter: (data): data is any => data.subject === Devtools.Edge.Traces,
377
- component: () => {
378
- const space = useCurrentSpace();
379
- return <InvocationTraceContainer space={space} detailAxis='block' />;
380
- },
381
- }),
382
- createSurface({
383
- id: `${meta.id}/edge/testing`,
384
- role: 'article',
385
- filter: (data): data is any => data.subject === Devtools.Edge.Testing,
386
- component: () => {
387
- const { dispatchPromise: dispatch } = useIntentDispatcher();
388
- const onSpaceCreate = useCallback(
389
- async (space: Space) => {
390
- await space.waitUntilReady();
391
- await dispatch(createIntent(SpaceAction.Migrate, { space }));
392
- await space.db.flush();
393
- },
394
- [dispatch],
395
- );
396
- const onScriptPluginOpen = useCallback(
397
- async (space: Space) => {
398
- await space.waitUntilReady();
399
- const result = await dispatch(
400
- Function.pipe(
401
- createIntent(ScriptAction.CreateScript, { space }),
402
- chain(SpaceAction.AddObject, { target: space }),
403
- ),
404
- );
405
- log.info('script created', { result });
406
- await dispatch(
407
- createIntent(LayoutAction.Open, {
408
- part: 'main',
409
- subject: [`${space.id}:${result.data?.object.id}`],
410
- }),
411
- );
412
- },
413
- [dispatch],
414
- );
415
- return <TestingPanel onSpaceCreate={onSpaceCreate} onScriptPluginOpen={onScriptPluginOpen} />;
416
- },
417
- }),
418
- ]);
@@ -1,19 +0,0 @@
1
- //
2
- // Copyright 2025 DXOS.org
3
- //
4
-
5
- import { Capabilities, contributes } from '@dxos/app-framework';
6
- import { live } from '@dxos/live-object';
7
-
8
- import { meta } from '../meta';
9
- import { type DebugSettingsProps, DebugSettingsSchema } from '../types';
10
-
11
- export default () => {
12
- const settings = live<DebugSettingsProps>({});
13
-
14
- return contributes(Capabilities.Settings, {
15
- prefix: meta.id,
16
- schema: DebugSettingsSchema,
17
- value: settings,
18
- });
19
- };
@@ -1,15 +0,0 @@
1
- //
2
- // Copyright 2023 DXOS.org
3
- //
4
-
5
- import React, { type PropsWithChildren, type ReactNode } from 'react';
6
-
7
- // TODO(burdon): Convert to grid.
8
- export const Container = ({ toolbar, children }: PropsWithChildren<{ toolbar: ReactNode }>) => {
9
- return (
10
- <div role='none' className='flex flex-col grow overflow-hidden divide-y divide-separator'>
11
- {toolbar}
12
- <div className='flex flex-col grow overflow-auto'>{children}</div>
13
- </div>
14
- );
15
- };
@@ -1,14 +0,0 @@
1
- //
2
- // Copyright 2023 DXOS.org
3
- //
4
-
5
- import React, { type FC } from 'react';
6
-
7
- import { Tree } from '@dxos/devtools';
8
- import { type Graph } from '@dxos/plugin-graph';
9
-
10
- export const DebugGraph: FC<{ graph: Graph; root: string }> = ({ graph, root }) => {
11
- return <Tree data={graph.toJSON(root)} />;
12
- };
13
-
14
- export default DebugGraph;
@@ -1,33 +0,0 @@
1
- //
2
- // Copyright 2024 DXOS.org
3
- //
4
-
5
- import React from 'react';
6
-
7
- import { type Obj } from '@dxos/echo';
8
- import { Clipboard, Input, Toolbar } from '@dxos/react-ui';
9
- import { StackItem } from '@dxos/react-ui-stack';
10
- import { Json } from '@dxos/react-ui-syntax-highlighter';
11
-
12
- export type DebugObjectPanelProps = {
13
- object: Obj.Any;
14
- };
15
-
16
- // TODO(burdon): Get schema and traverse references.
17
- export const DebugObjectPanel = ({ object }: DebugObjectPanelProps) => {
18
- const dxn = `dxn:echo:@:${object.id}`;
19
-
20
- return (
21
- <Clipboard.Provider>
22
- <StackItem.Content toolbar>
23
- <Toolbar.Root>
24
- <Input.Root>
25
- <Input.TextInput disabled value={dxn} />
26
- <Clipboard.IconButton value={dxn} />
27
- </Input.Root>
28
- </Toolbar.Root>
29
- <Json data={object} />
30
- </StackItem.Content>
31
- </Clipboard.Provider>
32
- );
33
- };
@@ -1,20 +0,0 @@
1
- //
2
- // Copyright 2025 DXOS.org
3
- //
4
-
5
- import React from 'react';
6
-
7
- import { Surface } from '@dxos/app-framework/react';
8
- import { StatsPanel, useStats } from '@dxos/devtools';
9
-
10
- export const DevtoolsOverviewContainer = () => {
11
- const [stats, refreshStats] = useStats();
12
-
13
- return (
14
- <StatsPanel stats={stats} onRefresh={refreshStats}>
15
- <Surface role='devtools-overview' />
16
- </StatsPanel>
17
- );
18
- };
19
-
20
- export default DevtoolsOverviewContainer;
@@ -1,52 +0,0 @@
1
- //
2
- // Copyright 2023 DXOS.org
3
- //
4
-
5
- import { type Meta, type StoryObj } from '@storybook/react-vite';
6
- import React from 'react';
7
-
8
- import { IntentPlugin } from '@dxos/app-framework';
9
- import { withPluginManager } from '@dxos/app-framework/testing';
10
- import { ClientPlugin } from '@dxos/plugin-client';
11
- import { useSpaces } from '@dxos/react-client/echo';
12
- import { withTheme } from '@dxos/react-ui/testing';
13
- import { render } from '@dxos/storybook-utils';
14
-
15
- import { SpaceGenerator } from './SpaceGenerator';
16
-
17
- const DefaultStory = () => {
18
- const [space] = useSpaces();
19
- if (!space) {
20
- return null;
21
- }
22
-
23
- return <SpaceGenerator space={space} />;
24
- };
25
-
26
- const meta = {
27
- title: 'plugins/plugin-debug/SpaceGenerator',
28
- component: SpaceGenerator as any,
29
- render: render(DefaultStory),
30
- decorators: [
31
- withTheme,
32
- withPluginManager({
33
- plugins: [
34
- ClientPlugin({
35
- onClientInitialized: async ({ client }) => {
36
- await client.halo.createIdentity();
37
- },
38
- }),
39
- IntentPlugin(),
40
- ],
41
- }),
42
- ],
43
- parameters: {
44
- layout: 'fullscreen',
45
- },
46
- } satisfies Meta<typeof DefaultStory>;
47
-
48
- export default meta;
49
-
50
- type Story = StoryObj<typeof meta>;
51
-
52
- export const Default: Story = {};
@@ -1,122 +0,0 @@
1
- //
2
- // Copyright 2024 DXOS.org
3
- //
4
-
5
- import React, { useCallback, useMemo, useState } from 'react';
6
-
7
- import { useIntentDispatcher } from '@dxos/app-framework/react';
8
- import { ComputeGraph } from '@dxos/conductor';
9
- import { Filter, type Obj } from '@dxos/echo';
10
- import { Markdown } from '@dxos/plugin-markdown/types';
11
- import { Sheet } from '@dxos/plugin-sheet/types';
12
- import { Diagram } from '@dxos/plugin-sketch/types';
13
- import { useClient } from '@dxos/react-client';
14
- import { type Space, getTypename } from '@dxos/react-client/echo';
15
- import { IconButton, Input, Toolbar, useAsyncEffect } from '@dxos/react-ui';
16
- import { SyntaxHighlighter } from '@dxos/react-ui-syntax-highlighter';
17
- import { Organization, Person, Task } from '@dxos/types';
18
- import { jsonKeyReplacer, sortKeys } from '@dxos/util';
19
-
20
- import { type ObjectGenerator, createGenerator, staticGenerators } from './ObjectGenerator';
21
- import { generator } from './presets';
22
- import { SchemaTable } from './SchemaTable';
23
-
24
- export type SpaceGeneratorProps = {
25
- space: Space;
26
- onCreateObjects?: (objects: Obj.Any[]) => void;
27
- };
28
-
29
- export const SpaceGenerator = ({ space, onCreateObjects }: SpaceGeneratorProps) => {
30
- const { dispatchPromise: dispatch } = useIntentDispatcher();
31
- const client = useClient();
32
- const staticTypes = [Markdown.Document, Diagram.Diagram, Sheet.Sheet, ComputeGraph]; // TODO(burdon): Make extensible.
33
- const recordTypes = [Organization.Organization, Person.Person, Task.Task];
34
- const [count, setCount] = useState(1);
35
- const [info, setInfo] = useState<any>({});
36
- const presets = useMemo(() => generator(), []);
37
-
38
- // Create type generators.
39
- const typeMap = useMemo(() => {
40
- client.addTypes([...staticTypes, ...recordTypes, ...presets.schemas]);
41
- const recordGenerators = new Map<string, ObjectGenerator<any>>(
42
- recordTypes.map((type) => [type.typename, createGenerator(client, dispatch, type as any)]),
43
- );
44
-
45
- return new Map([...staticGenerators, ...presets.items, ...recordGenerators]);
46
- }, [client, recordTypes]);
47
-
48
- // Query space to get info.
49
- const updateInfo = async () => {
50
- // Create schema map.
51
- const echoSchema = await space.db.schemaRegistry.query().run();
52
- const staticSchema = space.db.graph.schemaRegistry.schemas;
53
-
54
- // Create object map.
55
- const { objects } = await space.db.query(Filter.everything()).run();
56
- const objectMap = sortKeys(
57
- objects.reduce<Record<string, number>>((map, obj) => {
58
- const type = getTypename(obj);
59
- if (type) {
60
- const count = map[type] ?? 0;
61
- map[type] = count + 1;
62
- }
63
- return map;
64
- }, {}),
65
- );
66
-
67
- setInfo({
68
- schema: {
69
- static: staticSchema.length,
70
- mutable: echoSchema.length,
71
- },
72
- objects: objectMap,
73
- });
74
- };
75
-
76
- useAsyncEffect(updateInfo, [space]);
77
-
78
- const handleCreateData = useCallback(
79
- async (typename: string) => {
80
- const constructor = typeMap.get(typename);
81
- if (constructor) {
82
- // TODO(burdon): Input to specify number of objects.
83
- await constructor(space, count, onCreateObjects);
84
- await updateInfo();
85
- }
86
- },
87
- [typeMap, count],
88
- );
89
-
90
- return (
91
- <div role='none' className='flex flex-col grow overflow-hidden'>
92
- <Toolbar.Root classNames='border-be border-subduedSeparator'>
93
- <IconButton icon='ph--arrow-clockwise--regular' iconOnly label='Refresh' onClick={updateInfo} />
94
- <Toolbar.Separator variant='gap' />
95
- <Input.Root>
96
- <Input.TextInput
97
- type='number'
98
- min={1}
99
- max={100}
100
- placeholder={'Count'}
101
- classNames='!w-[4rem] !text-right'
102
- size={8}
103
- value={count}
104
- onChange={(ev) => setCount(parseInt(ev.target.value))}
105
- />
106
- </Input.Root>
107
- </Toolbar.Root>
108
-
109
- <div className='flex flex-col overflow-y-auto divide-y divide-separator'>
110
- <SchemaTable types={staticTypes} objects={info.objects} label='Static Types' onClick={handleCreateData} />
111
- <SchemaTable types={recordTypes} objects={info.objects} label='Record Types' onClick={handleCreateData} />
112
- <SchemaTable types={presets.types} objects={info.objects} label='Presets' onClick={handleCreateData} />
113
-
114
- <div>
115
- <SyntaxHighlighter language='json' classNames='text-xs'>
116
- {JSON.stringify({ space, ...info }, jsonKeyReplacer({ truncate: true }), 2)}
117
- </SyntaxHighlighter>
118
- </div>
119
- </div>
120
- </div>
121
- );
122
- };