@dxos/plugin-devtools 0.10.0 → 0.11.1

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 (99) hide show
  1. package/README.md +3 -3
  2. package/dist/lib/DevtoolsPlugin.mjs +39 -0
  3. package/dist/lib/DevtoolsPlugin.mjs.map +1 -0
  4. package/dist/lib/DevtoolsPlugin.node.mjs +10 -0
  5. package/dist/lib/DevtoolsPlugin.node.mjs.map +1 -0
  6. package/dist/lib/DevtoolsPlugin.workerd.mjs +8 -0
  7. package/dist/lib/DevtoolsPlugin.workerd.mjs.map +1 -0
  8. package/dist/lib/capabilities.mjs +9 -0
  9. package/dist/lib/capabilities.mjs.map +1 -0
  10. package/dist/lib/chunk-DebugGraph.mjs +20 -0
  11. package/dist/lib/chunk-DebugGraph.mjs.map +1 -0
  12. package/dist/lib/chunk-DevtoolsOverviewContainer.mjs +40 -0
  13. package/dist/lib/chunk-DevtoolsOverviewContainer.mjs.map +1 -0
  14. package/dist/lib/chunk-GithubPanel.mjs +158 -0
  15. package/dist/lib/chunk-GithubPanel.mjs.map +1 -0
  16. package/dist/lib/chunk-RegistryPanel.mjs +124 -0
  17. package/dist/lib/chunk-RegistryPanel.mjs.map +1 -0
  18. package/dist/lib/chunk-app-graph-builder.mjs +371 -0
  19. package/dist/lib/chunk-app-graph-builder.mjs.map +1 -0
  20. package/dist/lib/{neutral/chunk-QCL4JV4T.mjs → chunk-meta.mjs} +16 -25
  21. package/dist/lib/chunk-meta.mjs.map +1 -0
  22. package/dist/lib/chunk-react-context.mjs +16 -0
  23. package/dist/lib/chunk-react-context.mjs.map +1 -0
  24. package/dist/lib/chunk-react-surface.mjs +252 -0
  25. package/dist/lib/chunk-react-surface.mjs.map +1 -0
  26. package/dist/lib/chunk-types.mjs +92 -0
  27. package/dist/lib/chunk-types.mjs.map +1 -0
  28. package/dist/lib/containers.mjs +10 -0
  29. package/dist/lib/containers.mjs.map +1 -0
  30. package/dist/lib/index.mjs +3 -0
  31. package/dist/lib/meta.mjs +2 -0
  32. package/dist/lib/plugin.mjs +8 -0
  33. package/dist/lib/plugin.mjs.map +1 -0
  34. package/dist/lib/translations.mjs +55 -0
  35. package/dist/lib/translations.mjs.map +1 -0
  36. package/dist/lib/types.mjs +2 -0
  37. package/dist/types/src/capabilities/DevtoolsSurfaces.d.ts +18 -0
  38. package/dist/types/src/capabilities/DevtoolsSurfaces.d.ts.map +1 -0
  39. package/dist/types/src/capabilities/app-graph-builder.d.ts +1 -1
  40. package/dist/types/src/capabilities/react-context.d.ts +1 -1
  41. package/dist/types/src/capabilities/react-surface.d.ts +1 -1
  42. package/dist/types/src/capabilities/react-surface.d.ts.map +1 -1
  43. package/dist/types/src/containers/DebugGraph/DebugGraph.d.ts.map +1 -1
  44. package/dist/types/src/containers/GithubPanel/GithubComponent.stories.d.ts +1 -1
  45. package/dist/types/src/translations.d.ts +1 -1
  46. package/dist/types/src/translations.d.ts.map +1 -1
  47. package/dist/types/tsconfig.tsbuildinfo +1 -1
  48. package/package.json +77 -79
  49. package/src/DevtoolsPlugin.tsx +1 -1
  50. package/src/capabilities/DevtoolsSurfaces.tsx +100 -0
  51. package/src/capabilities/app-graph-builder.ts +3 -3
  52. package/src/capabilities/react-surface.ts +236 -0
  53. package/src/containers/DebugGraph/DebugGraph.tsx +12 -1
  54. package/src/containers/GithubPanel/GithubComponent.stories.tsx +1 -1
  55. package/src/containers/GithubPanel/GithubComponent.tsx +1 -1
  56. package/src/containers/GithubPanel/GithubPanel.tsx +1 -1
  57. package/src/containers/RegistryPanel/RegistryPanel.tsx +15 -14
  58. package/src/translations.ts +1 -1
  59. package/dist/lib/neutral/DebugGraph-F7AMZXKW.mjs +0 -16
  60. package/dist/lib/neutral/DebugGraph-F7AMZXKW.mjs.map +0 -7
  61. package/dist/lib/neutral/DevtoolsOverviewContainer-DCNZFKK5.mjs +0 -51
  62. package/dist/lib/neutral/DevtoolsOverviewContainer-DCNZFKK5.mjs.map +0 -7
  63. package/dist/lib/neutral/DevtoolsPlugin.mjs +0 -55
  64. package/dist/lib/neutral/DevtoolsPlugin.mjs.map +0 -7
  65. package/dist/lib/neutral/DevtoolsPlugin.node.mjs +0 -16
  66. package/dist/lib/neutral/DevtoolsPlugin.node.mjs.map +0 -7
  67. package/dist/lib/neutral/DevtoolsPlugin.workerd.mjs +0 -12
  68. package/dist/lib/neutral/DevtoolsPlugin.workerd.mjs.map +0 -7
  69. package/dist/lib/neutral/GithubPanel-DWFZXZUK.mjs +0 -178
  70. package/dist/lib/neutral/GithubPanel-DWFZXZUK.mjs.map +0 -7
  71. package/dist/lib/neutral/RegistryPanel-CVETZUZV.mjs +0 -162
  72. package/dist/lib/neutral/RegistryPanel-CVETZUZV.mjs.map +0 -7
  73. package/dist/lib/neutral/app-graph-builder-KHZ65O2Q.mjs +0 -560
  74. package/dist/lib/neutral/app-graph-builder-KHZ65O2Q.mjs.map +0 -7
  75. package/dist/lib/neutral/capabilities/index.mjs +0 -13
  76. package/dist/lib/neutral/capabilities/index.mjs.map +0 -7
  77. package/dist/lib/neutral/chunk-J5LGTIGS.mjs +0 -10
  78. package/dist/lib/neutral/chunk-J5LGTIGS.mjs.map +0 -7
  79. package/dist/lib/neutral/chunk-PJNVAE7D.mjs +0 -81
  80. package/dist/lib/neutral/chunk-PJNVAE7D.mjs.map +0 -7
  81. package/dist/lib/neutral/chunk-QCL4JV4T.mjs.map +0 -7
  82. package/dist/lib/neutral/containers/index.mjs +0 -15
  83. package/dist/lib/neutral/containers/index.mjs.map +0 -7
  84. package/dist/lib/neutral/index.mjs +0 -12
  85. package/dist/lib/neutral/index.mjs.map +0 -7
  86. package/dist/lib/neutral/meta.json +0 -1
  87. package/dist/lib/neutral/meta.mjs +0 -8
  88. package/dist/lib/neutral/meta.mjs.map +0 -7
  89. package/dist/lib/neutral/plugin.mjs +0 -12
  90. package/dist/lib/neutral/plugin.mjs.map +0 -7
  91. package/dist/lib/neutral/react-context-UJURDOO6.mjs +0 -17
  92. package/dist/lib/neutral/react-context-UJURDOO6.mjs.map +0 -7
  93. package/dist/lib/neutral/react-surface-XILLHGRR.mjs +0 -332
  94. package/dist/lib/neutral/react-surface-XILLHGRR.mjs.map +0 -7
  95. package/dist/lib/neutral/translations.mjs +0 -65
  96. package/dist/lib/neutral/translations.mjs.map +0 -7
  97. package/dist/lib/neutral/types/index.mjs +0 -8
  98. package/dist/lib/neutral/types/index.mjs.map +0 -7
  99. package/src/capabilities/react-surface.tsx +0 -331
@@ -0,0 +1,252 @@
1
+ import { Capabilities, Capability } from "@dxos/app-framework";
2
+ import * as Effect from "effect/Effect";
3
+ import { GraphPath, LayoutOperation } from "@dxos/app-toolkit";
4
+ import { useCallback } from "react";
5
+ import { Devtools } from "#types";
6
+ import { Surface, useOperationInvoker } from "@dxos/app-framework/ui";
7
+ import { AutomergePanel, ConfigPanel, CredentialsPanel, DeviceListPanel, DiagnosticsPanel, EdgeDashboardPanel, FeedsPanel, IdentityPanel, InvocationTraceContainer, KeyringPanel, LoggingPanel, MembersPanel, MetadataPanel, NetworkPanel, ObjectsPanel, QueuesPanel, SchemaPanel, SignalPanel, SpaceInfoPanel, SpaceListPanel, SqlitePanel, StoragePanel, SwarmPanel, TestingPanel, WorkflowPanel } from "@dxos/devtools";
8
+ import { jsx } from "react/jsx-runtime";
9
+ import { AppSurface, useActiveSpace } from "@dxos/app-toolkit/ui";
10
+ import { EDGE_SERVICE_DEFAULTS, EdgeServiceName } from "@dxos/config";
11
+ import { ToolsExplorer } from "@dxos/react-ui-introspect";
12
+ import { DebugGraph, DevtoolsOverviewContainer, RegistryPanel } from "#containers";
13
+ import { Feed } from "@dxos/echo";
14
+ import { log } from "@dxos/log";
15
+ import { ScriptOperation } from "@dxos/plugin-script";
16
+ import { SpaceOperation } from "@dxos/plugin-space";
17
+ //#region src/capabilities/DevtoolsSurfaces.tsx
18
+ var __dxlog_file = "/__w/dxos/dxos/packages/plugins/plugin-devtools/src/capabilities/DevtoolsSurfaces.tsx";
19
+ /**
20
+ * Most devtools panels take the active space and render nothing without one. A mapper cannot read
21
+ * the active space (it is a hook) nor decline to render, so they share this wrapper.
22
+ */
23
+ var ActiveSpacePanel = ({ Panel }) => {
24
+ const space = useActiveSpace();
25
+ return space ? /* @__PURE__ */ jsx(Panel, { space }) : null;
26
+ };
27
+ var SpaceListSurface = () => {
28
+ const { invokePromise } = useOperationInvoker();
29
+ return /* @__PURE__ */ jsx(SpaceListPanel, { onSelect: useCallback(() => invokePromise(LayoutOperation.Open, { subject: [Devtools.Echo.Space] }), [invokePromise]) });
30
+ };
31
+ var SpaceInfoSurface = () => {
32
+ const space = useActiveSpace();
33
+ const { invokePromise } = useOperationInvoker();
34
+ const handleSelect = useCallback(() => invokePromise(LayoutOperation.Open, { subject: [Devtools.Echo.Feeds] }), [invokePromise]);
35
+ if (!space) return null;
36
+ return /* @__PURE__ */ jsx(SpaceInfoPanel, {
37
+ space,
38
+ onSelectFeed: handleSelect,
39
+ onSelectPipeline: handleSelect
40
+ });
41
+ };
42
+ var EdgeTracesSurface = () => {
43
+ const space = useActiveSpace();
44
+ if (!space) return null;
45
+ const feed = space.properties.invocationTraceFeed?.target;
46
+ const feedDXN = feed ? Feed.getFeedUri(feed) : void 0;
47
+ return /* @__PURE__ */ jsx(InvocationTraceContainer, {
48
+ db: space.db,
49
+ feedDXN,
50
+ detailAxis: "block"
51
+ });
52
+ };
53
+ var EdgeTestingSurface = () => {
54
+ const { invokePromise } = useOperationInvoker();
55
+ return /* @__PURE__ */ jsx(TestingPanel, {
56
+ onSpaceCreate: useCallback(async (space) => {
57
+ await space.waitUntilReady();
58
+ await invokePromise(SpaceOperation.Migrate, { space });
59
+ await space.db.flush();
60
+ }, [invokePromise]),
61
+ onScriptPluginOpen: useCallback(async (space) => {
62
+ await space.waitUntilReady();
63
+ const createResult = await invokePromise(ScriptOperation.CreateScript, { db: space.db });
64
+ if (createResult.data?.object) await invokePromise(SpaceOperation.AddObject, {
65
+ target: space.db,
66
+ object: createResult.data.object
67
+ });
68
+ log.info("script created", { result: createResult }, {
69
+ "~LogMeta": "~LogMeta",
70
+ F: __dxlog_file,
71
+ L: 89,
72
+ S: void 0
73
+ });
74
+ if (createResult.data?.object) await invokePromise(LayoutOperation.Open, { subject: [GraphPath.getObjectPathFromObject(createResult.data.object)] });
75
+ }, [invokePromise])
76
+ });
77
+ };
78
+ //#endregion
79
+ //#region src/capabilities/react-surface.ts
80
+ var MCP_SERVER_URL = EDGE_SERVICE_DEFAULTS[EdgeServiceName.Introspect];
81
+ var isGraphDebug = (data) => {
82
+ if (typeof data !== "object" || data === null || !("graph" in data) || !("root" in data)) return false;
83
+ const { graph, root } = data;
84
+ return typeof graph === "object" && graph !== null && "json" in graph && typeof graph.json === "function" && typeof root === "string";
85
+ };
86
+ var react_surface_default = Capability.makeModule(Effect.fnUntraced(function* () {
87
+ return Capability.contributes(Capabilities.ReactSurface, [
88
+ Surface.create({
89
+ id: "appGraph",
90
+ filter: AppSurface.subject(AppSurface.Article, isGraphDebug),
91
+ component: DebugGraph,
92
+ props: ({ data: { subject } }) => ({
93
+ graph: subject.graph,
94
+ root: subject.root
95
+ })
96
+ }),
97
+ Surface.create({
98
+ id: "toolsExplorer",
99
+ filter: AppSurface.literal(AppSurface.Article, Devtools.ToolsExplorer),
100
+ component: ToolsExplorer,
101
+ props: () => ({ serverUrl: MCP_SERVER_URL })
102
+ }),
103
+ Surface.create({
104
+ id: "registry",
105
+ filter: AppSurface.literal(AppSurface.Article, Devtools.Echo.Registry),
106
+ component: RegistryPanel
107
+ }),
108
+ Surface.create({
109
+ id: "devtoolsOverview",
110
+ filter: Surface.makeFilter(AppSurface.deckCompanion("devtoolsOverview")),
111
+ component: DevtoolsOverviewContainer
112
+ }),
113
+ Surface.create({
114
+ id: "client.config",
115
+ filter: AppSurface.literal(AppSurface.Article, Devtools.Client.Config),
116
+ component: ConfigPanel,
117
+ props: () => ({ vaultSelector: false })
118
+ }),
119
+ Surface.create({
120
+ id: "client.storage",
121
+ filter: AppSurface.literal(AppSurface.Article, Devtools.Client.Storage),
122
+ component: StoragePanel
123
+ }),
124
+ Surface.create({
125
+ id: "client.sqlite",
126
+ filter: AppSurface.literal(AppSurface.Article, Devtools.Client.Sqlite),
127
+ component: SqlitePanel
128
+ }),
129
+ Surface.create({
130
+ id: "client.logs",
131
+ filter: AppSurface.literal(AppSurface.Article, Devtools.Client.Logs),
132
+ component: LoggingPanel
133
+ }),
134
+ Surface.create({
135
+ id: "client.diagnostics",
136
+ filter: AppSurface.literal(AppSurface.Article, Devtools.Client.Diagnostics),
137
+ component: DiagnosticsPanel
138
+ }),
139
+ Surface.create({
140
+ id: "halo.identity",
141
+ filter: AppSurface.literal(AppSurface.Article, Devtools.Halo.Identity),
142
+ component: IdentityPanel
143
+ }),
144
+ Surface.create({
145
+ id: "halo.devices",
146
+ filter: AppSurface.literal(AppSurface.Article, Devtools.Halo.Devices),
147
+ component: DeviceListPanel
148
+ }),
149
+ Surface.create({
150
+ id: "halo.keyring",
151
+ filter: AppSurface.literal(AppSurface.Article, Devtools.Halo.Keyring),
152
+ component: KeyringPanel
153
+ }),
154
+ Surface.create({
155
+ id: "halo.credentials",
156
+ filter: AppSurface.literal(AppSurface.Article, Devtools.Halo.Credentials),
157
+ component: ActiveSpacePanel,
158
+ props: () => ({ Panel: CredentialsPanel })
159
+ }),
160
+ Surface.create({
161
+ id: "echo.spaces",
162
+ filter: AppSurface.literal(AppSurface.Article, Devtools.Echo.Spaces),
163
+ component: SpaceListSurface
164
+ }),
165
+ Surface.create({
166
+ id: "echo.space",
167
+ filter: AppSurface.literal(AppSurface.Article, Devtools.Echo.Space),
168
+ component: SpaceInfoSurface
169
+ }),
170
+ Surface.create({
171
+ id: "echo.feeds",
172
+ filter: AppSurface.literal(AppSurface.Article, Devtools.Echo.Feeds),
173
+ component: ActiveSpacePanel,
174
+ props: () => ({ Panel: FeedsPanel })
175
+ }),
176
+ Surface.create({
177
+ id: "echo.objects",
178
+ filter: AppSurface.literal(AppSurface.Article, Devtools.Echo.Objects),
179
+ component: ActiveSpacePanel,
180
+ props: () => ({ Panel: ObjectsPanel })
181
+ }),
182
+ Surface.create({
183
+ id: "echo.schema",
184
+ filter: AppSurface.literal(AppSurface.Article, Devtools.Echo.Schema),
185
+ component: ActiveSpacePanel,
186
+ props: () => ({ Panel: SchemaPanel })
187
+ }),
188
+ Surface.create({
189
+ id: "echo.automerge",
190
+ filter: AppSurface.literal(AppSurface.Article, Devtools.Echo.Automerge),
191
+ component: ActiveSpacePanel,
192
+ props: () => ({ Panel: AutomergePanel })
193
+ }),
194
+ Surface.create({
195
+ id: "echo.queues",
196
+ filter: AppSurface.literal(AppSurface.Article, Devtools.Echo.Queues),
197
+ component: QueuesPanel
198
+ }),
199
+ Surface.create({
200
+ id: "echo.members",
201
+ filter: AppSurface.literal(AppSurface.Article, Devtools.Echo.Members),
202
+ component: ActiveSpacePanel,
203
+ props: () => ({ Panel: MembersPanel })
204
+ }),
205
+ Surface.create({
206
+ id: "echo.metadata",
207
+ filter: AppSurface.literal(AppSurface.Article, Devtools.Echo.Metadata),
208
+ component: MetadataPanel
209
+ }),
210
+ Surface.create({
211
+ id: "mesh.signal",
212
+ filter: AppSurface.literal(AppSurface.Article, Devtools.Mesh.Signal),
213
+ component: SignalPanel
214
+ }),
215
+ Surface.create({
216
+ id: "mesh.swarm",
217
+ filter: AppSurface.literal(AppSurface.Article, Devtools.Mesh.Swarm),
218
+ component: SwarmPanel
219
+ }),
220
+ Surface.create({
221
+ id: "mesh.network",
222
+ filter: AppSurface.literal(AppSurface.Article, Devtools.Mesh.Network),
223
+ component: ActiveSpacePanel,
224
+ props: () => ({ Panel: NetworkPanel })
225
+ }),
226
+ Surface.create({
227
+ id: "edge.dashboard",
228
+ filter: AppSurface.literal(AppSurface.Article, Devtools.Edge.Dashboard),
229
+ component: EdgeDashboardPanel
230
+ }),
231
+ Surface.create({
232
+ id: "edge.workflows",
233
+ filter: AppSurface.literal(AppSurface.Article, Devtools.Edge.Workflows),
234
+ component: ActiveSpacePanel,
235
+ props: () => ({ Panel: WorkflowPanel })
236
+ }),
237
+ Surface.create({
238
+ id: "edge.traces",
239
+ filter: AppSurface.literal(AppSurface.Article, Devtools.Edge.Traces),
240
+ component: EdgeTracesSurface
241
+ }),
242
+ Surface.create({
243
+ id: "edge.testing",
244
+ filter: AppSurface.literal(AppSurface.Article, Devtools.Edge.Testing),
245
+ component: EdgeTestingSurface
246
+ })
247
+ ]);
248
+ }));
249
+ //#endregion
250
+ export { react_surface_default as default };
251
+
252
+ //# sourceMappingURL=chunk-react-surface.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"chunk-react-surface.mjs","names":[],"sources":["../../src/capabilities/DevtoolsSurfaces.tsx","../../src/capabilities/react-surface.ts"],"sourcesContent":["//\n// Copyright 2025 DXOS.org\n//\n\n// Surface components that cannot be expressed as a `props` mapper, because they call hooks.\n\nimport React, { type ComponentType, useCallback } from 'react';\n\nimport { useOperationInvoker } from '@dxos/app-framework/ui';\nimport { GraphPath, LayoutOperation } from '@dxos/app-toolkit';\nimport { useActiveSpace } from '@dxos/app-toolkit/ui';\nimport { InvocationTraceContainer, SpaceInfoPanel, SpaceListPanel, TestingPanel } from '@dxos/devtools';\nimport { Feed } from '@dxos/echo';\nimport { log } from '@dxos/log';\nimport { ScriptOperation } from '@dxos/plugin-script';\nimport { SpaceOperation } from '@dxos/plugin-space';\nimport { type Space } from '@dxos/react-client/echo';\n\nimport { Devtools } from '#types';\n\nexport type ActiveSpacePanelProps = {\n /** Stable module-level panel component; the surface passes it through its `props` mapper. */\n Panel: ComponentType<{ space: Space }>;\n};\n\n/**\n * Most devtools panels take the active space and render nothing without one. A mapper cannot read\n * the active space (it is a hook) nor decline to render, so they share this wrapper.\n */\nexport const ActiveSpacePanel = ({ Panel }: ActiveSpacePanelProps) => {\n const space = useActiveSpace();\n\n return space ? <Panel space={space} /> : null;\n};\n\nexport const SpaceListSurface = () => {\n const { invokePromise } = useOperationInvoker();\n const handleSelect = useCallback(\n () => invokePromise(LayoutOperation.Open, { subject: [Devtools.Echo.Space] }),\n [invokePromise],\n );\n\n return <SpaceListPanel onSelect={handleSelect} />;\n};\n\nexport const SpaceInfoSurface = () => {\n const space = useActiveSpace();\n const { invokePromise } = useOperationInvoker();\n const handleSelect = useCallback(\n () => invokePromise(LayoutOperation.Open, { subject: [Devtools.Echo.Feeds] }),\n [invokePromise],\n );\n if (!space) {\n return null;\n }\n\n return <SpaceInfoPanel space={space} onSelectFeed={handleSelect} onSelectPipeline={handleSelect} />;\n};\n\nexport const EdgeTracesSurface = () => {\n const space = useActiveSpace();\n if (!space) {\n return null;\n }\n\n const feed = space.properties.invocationTraceFeed?.target;\n const feedDXN = feed ? Feed.getFeedUri(feed) : undefined;\n\n return <InvocationTraceContainer db={space.db} feedDXN={feedDXN} detailAxis='block' />;\n};\n\nexport const EdgeTestingSurface = () => {\n const { invokePromise } = useOperationInvoker();\n const onSpaceCreate = useCallback(\n async (space: Space) => {\n await space.waitUntilReady();\n await invokePromise(SpaceOperation.Migrate, { space });\n await space.db.flush();\n },\n [invokePromise],\n );\n const onScriptPluginOpen = useCallback(\n async (space: Space) => {\n await space.waitUntilReady();\n const createResult = await invokePromise(ScriptOperation.CreateScript, { db: space.db });\n if (createResult.data?.object) {\n await invokePromise(SpaceOperation.AddObject, { target: space.db, object: createResult.data.object });\n }\n log.info('script created', { result: createResult });\n if (createResult.data?.object) {\n await invokePromise(LayoutOperation.Open, {\n subject: [GraphPath.getObjectPathFromObject(createResult.data.object)],\n });\n }\n },\n [invokePromise],\n );\n\n return <TestingPanel onSpaceCreate={onSpaceCreate} onScriptPluginOpen={onScriptPluginOpen} />;\n};\n","//\n// Copyright 2025 DXOS.org\n//\n\nimport * as Effect from 'effect/Effect';\n\nimport { Capabilities, Capability } from '@dxos/app-framework';\nimport { Surface } from '@dxos/app-framework/ui';\nimport { AppSurface } from '@dxos/app-toolkit/ui';\nimport { EDGE_SERVICE_DEFAULTS, EdgeServiceName } from '@dxos/config';\nimport {\n AutomergePanel,\n ConfigPanel,\n CredentialsPanel,\n DeviceListPanel,\n DiagnosticsPanel,\n EdgeDashboardPanel,\n FeedsPanel,\n IdentityPanel,\n KeyringPanel,\n LoggingPanel,\n MembersPanel,\n MetadataPanel,\n NetworkPanel,\n ObjectsPanel,\n QueuesPanel,\n SchemaPanel,\n SignalPanel,\n SqlitePanel,\n StoragePanel,\n SwarmPanel,\n WorkflowPanel,\n} from '@dxos/devtools';\nimport { type Graph } from '@dxos/plugin-graph';\nimport { ToolsExplorer } from '@dxos/react-ui-introspect';\n\nimport { DebugGraph, DevtoolsOverviewContainer, RegistryPanel } from '#containers';\nimport { Devtools } from '#types';\n\nimport {\n ActiveSpacePanel,\n EdgeTestingSurface,\n EdgeTracesSurface,\n SpaceInfoSurface,\n SpaceListSurface,\n} from './DevtoolsSurfaces';\n\nconst MCP_SERVER_URL = EDGE_SERVICE_DEFAULTS[EdgeServiceName.Introspect];\n\ntype GraphDebug = {\n graph: Graph.Graph;\n root: string;\n};\n\nconst isGraphDebug = (data: unknown): data is GraphDebug => {\n if (typeof data !== 'object' || data === null || !('graph' in data) || !('root' in data)) {\n return false;\n }\n\n const { graph, root } = data;\n return (\n typeof graph === 'object' &&\n graph !== null &&\n 'json' in graph &&\n typeof graph.json === 'function' &&\n typeof root === 'string'\n );\n};\n\nexport default Capability.makeModule(\n Effect.fnUntraced(function* () {\n return Capability.contributes(Capabilities.ReactSurface, [\n Surface.create({\n id: 'appGraph',\n filter: AppSurface.subject(AppSurface.Article, isGraphDebug),\n component: DebugGraph,\n props: ({ data: { subject } }) => ({ graph: subject.graph, root: subject.root }),\n }),\n Surface.create({\n id: 'toolsExplorer',\n filter: AppSurface.literal(AppSurface.Article, Devtools.ToolsExplorer),\n component: ToolsExplorer,\n props: () => ({ serverUrl: MCP_SERVER_URL }),\n }),\n Surface.create({\n id: 'registry',\n filter: AppSurface.literal(AppSurface.Article, Devtools.Echo.Registry),\n component: RegistryPanel,\n }),\n Surface.create({\n id: 'devtoolsOverview',\n filter: Surface.makeFilter(AppSurface.deckCompanion('devtoolsOverview')),\n component: DevtoolsOverviewContainer,\n }),\n\n //\n // Devtools\n //\n\n Surface.create({\n id: 'client.config',\n filter: AppSurface.literal(AppSurface.Article, Devtools.Client.Config),\n component: ConfigPanel,\n props: () => ({ vaultSelector: false }),\n }),\n Surface.create({\n id: 'client.storage',\n filter: AppSurface.literal(AppSurface.Article, Devtools.Client.Storage),\n component: StoragePanel,\n }),\n Surface.create({\n id: 'client.sqlite',\n filter: AppSurface.literal(AppSurface.Article, Devtools.Client.Sqlite),\n component: SqlitePanel,\n }),\n Surface.create({\n id: 'client.logs',\n filter: AppSurface.literal(AppSurface.Article, Devtools.Client.Logs),\n component: LoggingPanel,\n }),\n Surface.create({\n id: 'client.diagnostics',\n filter: AppSurface.literal(AppSurface.Article, Devtools.Client.Diagnostics),\n component: DiagnosticsPanel,\n }),\n Surface.create({\n id: 'halo.identity',\n filter: AppSurface.literal(AppSurface.Article, Devtools.Halo.Identity),\n component: IdentityPanel,\n }),\n Surface.create({\n id: 'halo.devices',\n filter: AppSurface.literal(AppSurface.Article, Devtools.Halo.Devices),\n component: DeviceListPanel,\n }),\n Surface.create({\n id: 'halo.keyring',\n filter: AppSurface.literal(AppSurface.Article, Devtools.Halo.Keyring),\n component: KeyringPanel,\n }),\n Surface.create({\n id: 'halo.credentials',\n filter: AppSurface.literal(AppSurface.Article, Devtools.Halo.Credentials),\n component: ActiveSpacePanel,\n props: () => ({ Panel: CredentialsPanel }),\n }),\n Surface.create({\n id: 'echo.spaces',\n filter: AppSurface.literal(AppSurface.Article, Devtools.Echo.Spaces),\n component: SpaceListSurface,\n }),\n Surface.create({\n id: 'echo.space',\n filter: AppSurface.literal(AppSurface.Article, Devtools.Echo.Space),\n component: SpaceInfoSurface,\n }),\n Surface.create({\n id: 'echo.feeds',\n filter: AppSurface.literal(AppSurface.Article, Devtools.Echo.Feeds),\n component: ActiveSpacePanel,\n props: () => ({ Panel: FeedsPanel }),\n }),\n Surface.create({\n id: 'echo.objects',\n filter: AppSurface.literal(AppSurface.Article, Devtools.Echo.Objects),\n component: ActiveSpacePanel,\n props: () => ({ Panel: ObjectsPanel }),\n }),\n Surface.create({\n id: 'echo.schema',\n filter: AppSurface.literal(AppSurface.Article, Devtools.Echo.Schema),\n component: ActiveSpacePanel,\n props: () => ({ Panel: SchemaPanel }),\n }),\n Surface.create({\n id: 'echo.automerge',\n filter: AppSurface.literal(AppSurface.Article, Devtools.Echo.Automerge),\n component: ActiveSpacePanel,\n props: () => ({ Panel: AutomergePanel }),\n }),\n Surface.create({\n id: 'echo.queues',\n filter: AppSurface.literal(AppSurface.Article, Devtools.Echo.Queues),\n component: QueuesPanel,\n }),\n Surface.create({\n id: 'echo.members',\n filter: AppSurface.literal(AppSurface.Article, Devtools.Echo.Members),\n component: ActiveSpacePanel,\n props: () => ({ Panel: MembersPanel }),\n }),\n Surface.create({\n id: 'echo.metadata',\n filter: AppSurface.literal(AppSurface.Article, Devtools.Echo.Metadata),\n component: MetadataPanel,\n }),\n Surface.create({\n id: 'mesh.signal',\n filter: AppSurface.literal(AppSurface.Article, Devtools.Mesh.Signal),\n component: SignalPanel,\n }),\n Surface.create({\n id: 'mesh.swarm',\n filter: AppSurface.literal(AppSurface.Article, Devtools.Mesh.Swarm),\n component: SwarmPanel,\n }),\n Surface.create({\n id: 'mesh.network',\n filter: AppSurface.literal(AppSurface.Article, Devtools.Mesh.Network),\n component: ActiveSpacePanel,\n props: () => ({ Panel: NetworkPanel }),\n }),\n Surface.create({\n id: 'edge.dashboard',\n filter: AppSurface.literal(AppSurface.Article, Devtools.Edge.Dashboard),\n component: EdgeDashboardPanel,\n }),\n Surface.create({\n id: 'edge.workflows',\n filter: AppSurface.literal(AppSurface.Article, Devtools.Edge.Workflows),\n component: ActiveSpacePanel,\n props: () => ({ Panel: WorkflowPanel }),\n }),\n Surface.create({\n id: 'edge.traces',\n filter: AppSurface.literal(AppSurface.Article, Devtools.Edge.Traces),\n component: EdgeTracesSurface,\n }),\n Surface.create({\n id: 'edge.testing',\n filter: AppSurface.literal(AppSurface.Article, Devtools.Edge.Testing),\n component: EdgeTestingSurface,\n }),\n ]);\n }),\n);\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;AA6BA,IAAa,oBAAoB,EAAE,YAAmC;CACpE,MAAM,QAAQ,eAAe;CAE7B,OAAO,QAAQ,oBAAC,OAAD,EAAc,MAAQ,CAAA,IAAI;AAC3C;AAEA,IAAa,yBAAyB;CACpC,MAAM,EAAE,kBAAkB,oBAAoB;CAM9C,OAAO,oBAAC,gBAAD,EAAgB,UALF,kBACb,cAAc,gBAAgB,MAAM,EAAE,SAAS,CAAC,SAAS,KAAK,KAAK,EAAE,CAAC,GAC5E,CAAC,aAAa,CAGiB,EAAe,CAAA;AAClD;AAEA,IAAa,yBAAyB;CACpC,MAAM,QAAQ,eAAe;CAC7B,MAAM,EAAE,kBAAkB,oBAAoB;CAC9C,MAAM,eAAe,kBACb,cAAc,gBAAgB,MAAM,EAAE,SAAS,CAAC,SAAS,KAAK,KAAK,EAAE,CAAC,GAC5E,CAAC,aAAa,CAChB;CACA,IAAI,CAAC,OACH,OAAO;CAGT,OAAO,oBAAC,gBAAD;EAAuB;EAAO,cAAc;EAAc,kBAAkB;CAAe,CAAA;AACpG;AAEA,IAAa,0BAA0B;CACrC,MAAM,QAAQ,eAAe;CAC7B,IAAI,CAAC,OACH,OAAO;CAGT,MAAM,OAAO,MAAM,WAAW,qBAAqB;CACnD,MAAM,UAAU,OAAO,KAAK,WAAW,IAAI,IAAI,KAAA;CAE/C,OAAO,oBAAC,0BAAD;EAA0B,IAAI,MAAM;EAAa;EAAS,YAAW;CAAS,CAAA;AACvF;AAEA,IAAa,2BAA2B;CACtC,MAAM,EAAE,kBAAkB,oBAAoB;CA0B9C,OAAO,oBAAC,cAAD;EAA6B,eAzBd,YACpB,OAAO,UAAiB;GACtB,MAAM,MAAM,eAAe;GAC3B,MAAM,cAAc,eAAe,SAAS,EAAE,MAAM,CAAC;GACrD,MAAM,MAAM,GAAG,MAAM;EACvB,GACA,CAAC,aAAa,CAmBoB;EAAmC,oBAjB5C,YACzB,OAAO,UAAiB;GACtB,MAAM,MAAM,eAAe;GAC3B,MAAM,eAAe,MAAM,cAAc,gBAAgB,cAAc,EAAE,IAAI,MAAM,GAAG,CAAC;GACvF,IAAI,aAAa,MAAM,QACrB,MAAM,cAAc,eAAe,WAAW;IAAE,QAAQ,MAAM;IAAI,QAAQ,aAAa,KAAK;GAAO,CAAC;GAEtG,IAAI,KAAK,kBAAkB,EAAE,QAAQ,aAAa,GAAA;IAAA,YAAA;IAAA,GAAA;IAAA,GAAA;IAAA,GAAA,KAAA;GAAA,CAAC;GACnD,IAAI,aAAa,MAAM,QACrB,MAAM,cAAc,gBAAgB,MAAM,EACxC,SAAS,CAAC,UAAU,wBAAwB,aAAa,KAAK,MAAM,CAAC,EACvE,CAAC;EAEL,GACA,CAAC,aAAa,CAGuD;CAAqB,CAAA;AAC9F;;;ACpDA,IAAM,iBAAiB,sBAAsB,gBAAgB;AAO7D,IAAM,gBAAgB,SAAsC;CAC1D,IAAI,OAAO,SAAS,YAAY,SAAS,QAAQ,EAAE,WAAW,SAAS,EAAE,UAAU,OACjF,OAAO;CAGT,MAAM,EAAE,OAAO,SAAS;CACxB,OACE,OAAO,UAAU,YACjB,UAAU,QACV,UAAU,SACV,OAAO,MAAM,SAAS,cACtB,OAAO,SAAS;AAEpB;AAEA,IAAA,wBAAe,WAAW,WACxB,OAAO,WAAW,aAAa;CAC7B,OAAO,WAAW,YAAY,aAAa,cAAc;EACvD,QAAQ,OAAO;GACb,IAAI;GACJ,QAAQ,WAAW,QAAQ,WAAW,SAAS,YAAY;GAC3D,WAAW;GACX,QAAQ,EAAE,MAAM,EAAE,iBAAiB;IAAE,OAAO,QAAQ;IAAO,MAAM,QAAQ;GAAK;EAChF,CAAC;EACD,QAAQ,OAAO;GACb,IAAI;GACJ,QAAQ,WAAW,QAAQ,WAAW,SAAS,SAAS,aAAa;GACrE,WAAW;GACX,cAAc,EAAE,WAAW,eAAe;EAC5C,CAAC;EACD,QAAQ,OAAO;GACb,IAAI;GACJ,QAAQ,WAAW,QAAQ,WAAW,SAAS,SAAS,KAAK,QAAQ;GACrE,WAAW;EACb,CAAC;EACD,QAAQ,OAAO;GACb,IAAI;GACJ,QAAQ,QAAQ,WAAW,WAAW,cAAc,kBAAkB,CAAC;GACvE,WAAW;EACb,CAAC;EAMD,QAAQ,OAAO;GACb,IAAI;GACJ,QAAQ,WAAW,QAAQ,WAAW,SAAS,SAAS,OAAO,MAAM;GACrE,WAAW;GACX,cAAc,EAAE,eAAe,MAAM;EACvC,CAAC;EACD,QAAQ,OAAO;GACb,IAAI;GACJ,QAAQ,WAAW,QAAQ,WAAW,SAAS,SAAS,OAAO,OAAO;GACtE,WAAW;EACb,CAAC;EACD,QAAQ,OAAO;GACb,IAAI;GACJ,QAAQ,WAAW,QAAQ,WAAW,SAAS,SAAS,OAAO,MAAM;GACrE,WAAW;EACb,CAAC;EACD,QAAQ,OAAO;GACb,IAAI;GACJ,QAAQ,WAAW,QAAQ,WAAW,SAAS,SAAS,OAAO,IAAI;GACnE,WAAW;EACb,CAAC;EACD,QAAQ,OAAO;GACb,IAAI;GACJ,QAAQ,WAAW,QAAQ,WAAW,SAAS,SAAS,OAAO,WAAW;GAC1E,WAAW;EACb,CAAC;EACD,QAAQ,OAAO;GACb,IAAI;GACJ,QAAQ,WAAW,QAAQ,WAAW,SAAS,SAAS,KAAK,QAAQ;GACrE,WAAW;EACb,CAAC;EACD,QAAQ,OAAO;GACb,IAAI;GACJ,QAAQ,WAAW,QAAQ,WAAW,SAAS,SAAS,KAAK,OAAO;GACpE,WAAW;EACb,CAAC;EACD,QAAQ,OAAO;GACb,IAAI;GACJ,QAAQ,WAAW,QAAQ,WAAW,SAAS,SAAS,KAAK,OAAO;GACpE,WAAW;EACb,CAAC;EACD,QAAQ,OAAO;GACb,IAAI;GACJ,QAAQ,WAAW,QAAQ,WAAW,SAAS,SAAS,KAAK,WAAW;GACxE,WAAW;GACX,cAAc,EAAE,OAAO,iBAAiB;EAC1C,CAAC;EACD,QAAQ,OAAO;GACb,IAAI;GACJ,QAAQ,WAAW,QAAQ,WAAW,SAAS,SAAS,KAAK,MAAM;GACnE,WAAW;EACb,CAAC;EACD,QAAQ,OAAO;GACb,IAAI;GACJ,QAAQ,WAAW,QAAQ,WAAW,SAAS,SAAS,KAAK,KAAK;GAClE,WAAW;EACb,CAAC;EACD,QAAQ,OAAO;GACb,IAAI;GACJ,QAAQ,WAAW,QAAQ,WAAW,SAAS,SAAS,KAAK,KAAK;GAClE,WAAW;GACX,cAAc,EAAE,OAAO,WAAW;EACpC,CAAC;EACD,QAAQ,OAAO;GACb,IAAI;GACJ,QAAQ,WAAW,QAAQ,WAAW,SAAS,SAAS,KAAK,OAAO;GACpE,WAAW;GACX,cAAc,EAAE,OAAO,aAAa;EACtC,CAAC;EACD,QAAQ,OAAO;GACb,IAAI;GACJ,QAAQ,WAAW,QAAQ,WAAW,SAAS,SAAS,KAAK,MAAM;GACnE,WAAW;GACX,cAAc,EAAE,OAAO,YAAY;EACrC,CAAC;EACD,QAAQ,OAAO;GACb,IAAI;GACJ,QAAQ,WAAW,QAAQ,WAAW,SAAS,SAAS,KAAK,SAAS;GACtE,WAAW;GACX,cAAc,EAAE,OAAO,eAAe;EACxC,CAAC;EACD,QAAQ,OAAO;GACb,IAAI;GACJ,QAAQ,WAAW,QAAQ,WAAW,SAAS,SAAS,KAAK,MAAM;GACnE,WAAW;EACb,CAAC;EACD,QAAQ,OAAO;GACb,IAAI;GACJ,QAAQ,WAAW,QAAQ,WAAW,SAAS,SAAS,KAAK,OAAO;GACpE,WAAW;GACX,cAAc,EAAE,OAAO,aAAa;EACtC,CAAC;EACD,QAAQ,OAAO;GACb,IAAI;GACJ,QAAQ,WAAW,QAAQ,WAAW,SAAS,SAAS,KAAK,QAAQ;GACrE,WAAW;EACb,CAAC;EACD,QAAQ,OAAO;GACb,IAAI;GACJ,QAAQ,WAAW,QAAQ,WAAW,SAAS,SAAS,KAAK,MAAM;GACnE,WAAW;EACb,CAAC;EACD,QAAQ,OAAO;GACb,IAAI;GACJ,QAAQ,WAAW,QAAQ,WAAW,SAAS,SAAS,KAAK,KAAK;GAClE,WAAW;EACb,CAAC;EACD,QAAQ,OAAO;GACb,IAAI;GACJ,QAAQ,WAAW,QAAQ,WAAW,SAAS,SAAS,KAAK,OAAO;GACpE,WAAW;GACX,cAAc,EAAE,OAAO,aAAa;EACtC,CAAC;EACD,QAAQ,OAAO;GACb,IAAI;GACJ,QAAQ,WAAW,QAAQ,WAAW,SAAS,SAAS,KAAK,SAAS;GACtE,WAAW;EACb,CAAC;EACD,QAAQ,OAAO;GACb,IAAI;GACJ,QAAQ,WAAW,QAAQ,WAAW,SAAS,SAAS,KAAK,SAAS;GACtE,WAAW;GACX,cAAc,EAAE,OAAO,cAAc;EACvC,CAAC;EACD,QAAQ,OAAO;GACb,IAAI;GACJ,QAAQ,WAAW,QAAQ,WAAW,SAAS,SAAS,KAAK,MAAM;GACnE,WAAW;EACb,CAAC;EACD,QAAQ,OAAO;GACb,IAAI;GACJ,QAAQ,WAAW,QAAQ,WAAW,SAAS,SAAS,KAAK,OAAO;GACpE,WAAW;EACb,CAAC;CACH,CAAC;AACH,CAAC,CACH"}
@@ -0,0 +1,92 @@
1
+ import { meta } from "#meta";
2
+ //#region \0rolldown/runtime.js
3
+ var __defProp = Object.defineProperty;
4
+ var __exportAll = (all, no_symbols) => {
5
+ let target = {};
6
+ for (var name in all) __defProp(target, name, {
7
+ get: all[name],
8
+ enumerable: true
9
+ });
10
+ if (!no_symbols) __defProp(target, Symbol.toStringTag, { value: "Module" });
11
+ return target;
12
+ };
13
+ //#endregion
14
+ //#region src/types/Devtools.ts
15
+ var Devtools_exports = /* @__PURE__ */ __exportAll({
16
+ Agent: () => Agent,
17
+ AppGraph: () => AppGraph,
18
+ Client: () => Client,
19
+ Echo: () => Echo,
20
+ Edge: () => Edge,
21
+ Halo: () => Halo,
22
+ Mesh: () => Mesh,
23
+ ToolsExplorer: () => ToolsExplorer,
24
+ id: () => id,
25
+ nodeId: () => nodeId
26
+ });
27
+ /**
28
+ * Extracts the last dot-separated segment of a Devtools namespaced ID string.
29
+ * Use this as the node segment `id` when building app-graph nodes whose `data`
30
+ * value is one of the other constants in this namespace.
31
+ */
32
+ var nodeId = (fullId) => fullId.split(".").at(-1) ?? "";
33
+ var devtoolsId = `${meta.profile.key}.devtools`;
34
+ var id = devtoolsId;
35
+ var AppGraph = `${devtoolsId}.appGraph`;
36
+ var ToolsExplorer = `${devtoolsId}.toolsExplorer`;
37
+ var Client;
38
+ (function(_Client) {
39
+ _Client.id = `${devtoolsId}.client`;
40
+ _Client.Config = `${Client.id}.config`;
41
+ _Client.Storage = `${Client.id}.storage`;
42
+ _Client.Sqlite = `${Client.id}.sqlite`;
43
+ _Client.Logs = `${Client.id}.logs`;
44
+ _Client.Diagnostics = `${Client.id}.diagnostics`;
45
+ })(Client || (Client = {}));
46
+ var Halo;
47
+ (function(_Halo) {
48
+ _Halo.id = `${devtoolsId}.halo`;
49
+ _Halo.Identity = `${Halo.id}.identity`;
50
+ _Halo.Devices = `${Halo.id}.devices`;
51
+ _Halo.Keyring = `${Halo.id}.keyring`;
52
+ _Halo.Credentials = `${Halo.id}.credentials`;
53
+ })(Halo || (Halo = {}));
54
+ var Echo;
55
+ (function(_Echo) {
56
+ _Echo.id = `${devtoolsId}.echo`;
57
+ _Echo.Spaces = `${Echo.id}.spaces`;
58
+ _Echo.Space = `${Echo.id}.space`;
59
+ _Echo.Feeds = `${Echo.id}.feeds`;
60
+ _Echo.Objects = `${Echo.id}.objects`;
61
+ _Echo.Schema = `${Echo.id}.schema`;
62
+ _Echo.Registry = `${Echo.id}.registry`;
63
+ _Echo.Automerge = `${Echo.id}.automerge`;
64
+ _Echo.Queues = `${Echo.id}.queues`;
65
+ _Echo.Members = `${Echo.id}.members`;
66
+ _Echo.Metadata = `${Echo.id}.metadata`;
67
+ })(Echo || (Echo = {}));
68
+ var Mesh;
69
+ (function(_Mesh) {
70
+ _Mesh.id = `${devtoolsId}.mesh`;
71
+ _Mesh.Signal = `${Mesh.id}.signal`;
72
+ _Mesh.Swarm = `${Mesh.id}.swarm`;
73
+ _Mesh.Network = `${Mesh.id}.network`;
74
+ })(Mesh || (Mesh = {}));
75
+ var Agent;
76
+ (function(_Agent) {
77
+ _Agent.id = `${devtoolsId}.agent`;
78
+ _Agent.Dashboard = `${Agent.id}.dashboard`;
79
+ _Agent.Search = `${Agent.id}.search`;
80
+ })(Agent || (Agent = {}));
81
+ var Edge;
82
+ (function(_Edge) {
83
+ _Edge.id = `${devtoolsId}.edge`;
84
+ _Edge.Dashboard = `${Edge.id}.dashboard`;
85
+ _Edge.Workflows = `${Edge.id}.workflows`;
86
+ _Edge.Traces = `${Edge.id}.traces`;
87
+ _Edge.Testing = `${Edge.id}.testing`;
88
+ })(Edge || (Edge = {}));
89
+ //#endregion
90
+ export { Devtools_exports as t };
91
+
92
+ //# sourceMappingURL=chunk-types.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"chunk-types.mjs","names":[],"sources":["../../src/types/Devtools.ts"],"sourcesContent":["//\n// Copyright 2025 DXOS.org\n//\n\n// @import-as-namespace\n\nimport { meta } from '#meta';\n\n/**\n * Extracts the last dot-separated segment of a Devtools namespaced ID string.\n * Use this as the node segment `id` when building app-graph nodes whose `data`\n * value is one of the other constants in this namespace.\n */\nexport const nodeId = (fullId: string): string => fullId.split('.').at(-1) ?? '';\n\nconst devtoolsId = `${meta.profile.key}.devtools`;\n\nexport const id = devtoolsId;\nexport const AppGraph = `${devtoolsId}.appGraph`;\nexport const ToolsExplorer = `${devtoolsId}.toolsExplorer`;\n\nexport namespace Client {\n export const id = `${devtoolsId}.client`;\n export const Config = `${Client.id}.config`;\n export const Storage = `${Client.id}.storage`;\n export const Sqlite = `${Client.id}.sqlite`;\n export const Logs = `${Client.id}.logs`;\n export const Diagnostics = `${Client.id}.diagnostics`;\n}\n\nexport namespace Halo {\n export const id = `${devtoolsId}.halo`;\n export const Identity = `${Halo.id}.identity`;\n export const Devices = `${Halo.id}.devices`;\n export const Keyring = `${Halo.id}.keyring`;\n export const Credentials = `${Halo.id}.credentials`;\n}\n\nexport namespace Echo {\n export const id = `${devtoolsId}.echo`;\n export const Spaces = `${Echo.id}.spaces`;\n export const Space = `${Echo.id}.space`;\n export const Feeds = `${Echo.id}.feeds`;\n export const Objects = `${Echo.id}.objects`;\n export const Schema = `${Echo.id}.schema`;\n export const Registry = `${Echo.id}.registry`;\n export const Automerge = `${Echo.id}.automerge`;\n export const Queues = `${Echo.id}.queues`;\n export const Members = `${Echo.id}.members`;\n export const Metadata = `${Echo.id}.metadata`;\n}\n\nexport namespace Mesh {\n export const id = `${devtoolsId}.mesh`;\n export const Signal = `${Mesh.id}.signal`;\n export const Swarm = `${Mesh.id}.swarm`;\n export const Network = `${Mesh.id}.network`;\n}\n\nexport namespace Agent {\n export const id = `${devtoolsId}.agent`;\n export const Dashboard = `${Agent.id}.dashboard`;\n export const Search = `${Agent.id}.search`;\n}\n\nexport namespace Edge {\n export const id = `${devtoolsId}.edge`;\n export const Dashboard = `${Edge.id}.dashboard`;\n export const Workflows = `${Edge.id}.workflows`;\n export const Traces = `${Edge.id}.traces`;\n export const Testing = `${Edge.id}.testing`;\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAaA,IAAa,UAAU,WAA2B,OAAO,MAAM,GAAG,CAAC,CAAC,GAAG,EAAE,KAAK;AAE9E,IAAM,aAAa,GAAG,KAAK,QAAQ,IAAI;AAEvC,IAAa,KAAK;AAClB,IAAa,WAAW,GAAG,WAAW;AACtC,IAAa,gBAAgB,GAAG,WAAW;AAEpC,IAAA;;CACQ,QAAA,KAAK,GAAG,WAAW;CACnB,QAAA,SAAS,GAAG,OAAO,GAAG;CACtB,QAAA,UAAU,GAAG,OAAO,GAAG;CACvB,QAAA,SAAS,GAAG,OAAO,GAAG;CACtB,QAAA,OAAO,GAAG,OAAO,GAAG;CACpB,QAAA,cAAc,GAAG,OAAO,GAAG;GAC1C,WAAA,SAAA,CAAA,EAAA;AAEO,IAAA;;CACQ,MAAA,KAAK,GAAG,WAAW;CACnB,MAAA,WAAW,GAAG,KAAK,GAAG;CACtB,MAAA,UAAU,GAAG,KAAK,GAAG;CACrB,MAAA,UAAU,GAAG,KAAK,GAAG;CACrB,MAAA,cAAc,GAAG,KAAK,GAAG;GACxC,SAAA,OAAA,CAAA,EAAA;AAEO,IAAA;;CACQ,MAAA,KAAK,GAAG,WAAW;CACnB,MAAA,SAAS,GAAG,KAAK,GAAG;CACpB,MAAA,QAAQ,GAAG,KAAK,GAAG;CACnB,MAAA,QAAQ,GAAG,KAAK,GAAG;CACnB,MAAA,UAAU,GAAG,KAAK,GAAG;CACrB,MAAA,SAAS,GAAG,KAAK,GAAG;CACpB,MAAA,WAAW,GAAG,KAAK,GAAG;CACtB,MAAA,YAAY,GAAG,KAAK,GAAG;CACvB,MAAA,SAAS,GAAG,KAAK,GAAG;CACpB,MAAA,UAAU,GAAG,KAAK,GAAG;CACrB,MAAA,WAAW,GAAG,KAAK,GAAG;GACrC,SAAA,OAAA,CAAA,EAAA;AAEO,IAAA;;CACQ,MAAA,KAAK,GAAG,WAAW;CACnB,MAAA,SAAS,GAAG,KAAK,GAAG;CACpB,MAAA,QAAQ,GAAG,KAAK,GAAG;CACnB,MAAA,UAAU,GAAG,KAAK,GAAG;GACpC,SAAA,OAAA,CAAA,EAAA;AAEO,IAAA;;CACQ,OAAA,KAAK,GAAG,WAAW;CACnB,OAAA,YAAY,GAAG,MAAM,GAAG;CACxB,OAAA,SAAS,GAAG,MAAM,GAAG;GACpC,UAAA,QAAA,CAAA,EAAA;AAEO,IAAA;;CACQ,MAAA,KAAK,GAAG,WAAW;CACnB,MAAA,YAAY,GAAG,KAAK,GAAG;CACvB,MAAA,YAAY,GAAG,KAAK,GAAG;CACvB,MAAA,SAAS,GAAG,KAAK,GAAG;CACpB,MAAA,UAAU,GAAG,KAAK,GAAG;GACpC,SAAA,OAAA,CAAA,EAAA"}
@@ -0,0 +1,10 @@
1
+ import { lazy } from "react";
2
+ //#region src/containers/index.ts
3
+ var DebugGraph = lazy(() => import("./chunk-DebugGraph.mjs"));
4
+ var DevtoolsOverviewContainer = lazy(() => import("./chunk-DevtoolsOverviewContainer.mjs"));
5
+ var GithubPanel = lazy(() => import("./chunk-GithubPanel.mjs"));
6
+ var RegistryPanel = lazy(() => import("./chunk-RegistryPanel.mjs"));
7
+ //#endregion
8
+ export { DebugGraph, DevtoolsOverviewContainer, GithubPanel, RegistryPanel };
9
+
10
+ //# sourceMappingURL=containers.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"containers.mjs","names":[],"sources":["../../src/containers/index.ts"],"sourcesContent":["//\n// Copyright 2023 DXOS.org\n//\n\nimport { type ComponentType, lazy } from 'react';\n\nexport const DebugGraph: ComponentType<any> = lazy(() => import('./DebugGraph'));\nexport const DevtoolsOverviewContainer: ComponentType<any> = lazy(() => import('./DevtoolsOverviewContainer'));\nexport const GithubPanel: ComponentType<any> = lazy(() => import('./GithubPanel'));\nexport const RegistryPanel: ComponentType<any> = lazy(() => import('./RegistryPanel'));\n"],"mappings":";;AAMA,IAAa,aAAiC,WAAW,OAAO,yBAAe;AAC/E,IAAa,4BAAgD,WAAW,OAAO,wCAA8B;AAC7G,IAAa,cAAkC,WAAW,OAAO,0BAAgB;AACjF,IAAa,gBAAoC,WAAW,OAAO,4BAAkB"}
@@ -0,0 +1,3 @@
1
+ import { t as Devtools_exports } from "./chunk-types.mjs";
2
+ import { t as meta } from "./chunk-meta.mjs";
3
+ export { Devtools_exports as Devtools, meta };
@@ -0,0 +1,2 @@
1
+ import { t as meta } from "./chunk-meta.mjs";
2
+ export { meta };
@@ -0,0 +1,8 @@
1
+ import { t as meta } from "./chunk-meta.mjs";
2
+ import { Plugin } from "@dxos/app-framework";
3
+ //#region src/plugin.ts
4
+ var DevtoolsPlugin = Plugin.lazy(meta, () => import("#plugin"));
5
+ //#endregion
6
+ export { DevtoolsPlugin };
7
+
8
+ //# sourceMappingURL=plugin.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"plugin.mjs","names":[],"sources":["../../src/plugin.ts"],"sourcesContent":["//\n// Copyright 2023 DXOS.org\n//\n\nimport { Plugin } from '@dxos/app-framework';\n\nimport { meta } from './meta';\n\nexport const DevtoolsPlugin = Plugin.lazy(meta, () => import('#plugin'));\n"],"mappings":";;;AAQA,IAAa,iBAAiB,OAAO,KAAK,YAAY,OAAO,UAAU"}
@@ -0,0 +1,55 @@
1
+ import { meta } from "#meta";
2
+ import { translations as translations$1 } from "@dxos/react-ui-introspect/translations";
3
+ //#region src/translations.ts
4
+ var translations = [...translations$1, { "en-US": { [meta.profile.key]: {
5
+ "plugin.name": "Devtools",
6
+ "open-devtools.label": "Open DevTools",
7
+ "devtools.label": "DevTools",
8
+ "devtools-overview.label": "Stats",
9
+ "debug-app-graph.label": "App Graph",
10
+ "debug-tools-explorer.label": "SDK Explorer",
11
+ "reset-data.label": "Reset data (ERASES ALL DATA)",
12
+ "client.label": "Client",
13
+ "config.label": "Config",
14
+ "storage.label": "Storage",
15
+ "sqlite.label": "SQLite",
16
+ "logging.label": "Logging",
17
+ "diagnostics.label": "Diagnostics",
18
+ "tracing.label": "Tracing",
19
+ "halo.label": "HALO",
20
+ "identity.label": "Identity",
21
+ "devices.label": "Devices",
22
+ "keyring.label": "Keyring",
23
+ "credentials.label": "Credentials",
24
+ "echo.label": "ECHO",
25
+ "spaces.label": "Spaces",
26
+ "space.label": "Space",
27
+ "feeds.label": "Feeds",
28
+ "objects.label": "Objects",
29
+ "schema.label": "Schema",
30
+ "registry.label": "Registry",
31
+ "automerge.label": "Automerge",
32
+ "queues.label": "Queues",
33
+ "members.label": "Members",
34
+ "metadata.label": "Metadata",
35
+ "mesh.label": "MESH",
36
+ "signal.label": "Signal",
37
+ "swarm.label": "Swarm",
38
+ "network.label": "Network",
39
+ "agent.label": "Agent",
40
+ "dashboard.label": "Dashboard",
41
+ "search.label": "Search",
42
+ "edge.label": "EDGE",
43
+ "workflows.label": "Workflows",
44
+ "traces.label": "Traces",
45
+ "testing.label": "Testing",
46
+ "github-loading.message": "Loading…",
47
+ "github-unavailable.message": "GitHub feed unavailable.",
48
+ "recent-prs.label_one": "{{count}} recent PR",
49
+ "recent-prs.label_other": "{{count}} recent PRs",
50
+ "view-on-github.button": "View on GitHub"
51
+ } } }];
52
+ //#endregion
53
+ export { translations };
54
+
55
+ //# sourceMappingURL=translations.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"translations.mjs","names":[],"sources":["../../src/translations.ts"],"sourcesContent":["//\n// Copyright 2023 DXOS.org\n//\n\nimport { type Resource } from '@dxos/react-ui';\nimport { translations as introspectTranslations } from '@dxos/react-ui-introspect/translations';\n\nimport { meta } from '#meta';\n\nexport const translations = [\n ...introspectTranslations,\n {\n 'en-US': {\n [meta.profile.key]: {\n 'plugin.name': 'Devtools',\n 'open-devtools.label': 'Open DevTools',\n 'devtools.label': 'DevTools',\n 'devtools-overview.label': 'Stats',\n 'debug-app-graph.label': 'App Graph',\n 'debug-tools-explorer.label': 'SDK Explorer',\n\n 'reset-data.label': 'Reset data (ERASES ALL DATA)',\n 'client.label': 'Client',\n 'config.label': 'Config',\n 'storage.label': 'Storage',\n 'sqlite.label': 'SQLite',\n 'logging.label': 'Logging',\n 'diagnostics.label': 'Diagnostics',\n 'tracing.label': 'Tracing',\n 'halo.label': 'HALO',\n 'identity.label': 'Identity',\n 'devices.label': 'Devices',\n 'keyring.label': 'Keyring',\n 'credentials.label': 'Credentials',\n 'echo.label': 'ECHO',\n 'spaces.label': 'Spaces',\n 'space.label': 'Space',\n 'feeds.label': 'Feeds',\n 'objects.label': 'Objects',\n 'schema.label': 'Schema',\n 'registry.label': 'Registry',\n 'automerge.label': 'Automerge',\n 'queues.label': 'Queues',\n 'members.label': 'Members',\n 'metadata.label': 'Metadata',\n 'mesh.label': 'MESH',\n 'signal.label': 'Signal',\n 'swarm.label': 'Swarm',\n 'network.label': 'Network',\n 'agent.label': 'Agent',\n 'dashboard.label': 'Dashboard',\n 'search.label': 'Search',\n 'edge.label': 'EDGE',\n 'workflows.label': 'Workflows',\n 'traces.label': 'Traces',\n 'testing.label': 'Testing',\n // GitHub (deck-companion--github surface).\n 'github-loading.message': 'Loading…',\n 'github-unavailable.message': 'GitHub feed unavailable.',\n 'recent-prs.label_one': '{{count}} recent PR',\n 'recent-prs.label_other': '{{count}} recent PRs',\n 'view-on-github.button': 'View on GitHub',\n },\n },\n },\n] as const satisfies Resource[];\n"],"mappings":";;;AASA,IAAa,eAAe,CAC1B,GAAG,gBACH,EACE,SAAS,GACN,KAAK,QAAQ,MAAM;CAClB,eAAe;CACf,uBAAuB;CACvB,kBAAkB;CAClB,2BAA2B;CAC3B,yBAAyB;CACzB,8BAA8B;CAE9B,oBAAoB;CACpB,gBAAgB;CAChB,gBAAgB;CAChB,iBAAiB;CACjB,gBAAgB;CAChB,iBAAiB;CACjB,qBAAqB;CACrB,iBAAiB;CACjB,cAAc;CACd,kBAAkB;CAClB,iBAAiB;CACjB,iBAAiB;CACjB,qBAAqB;CACrB,cAAc;CACd,gBAAgB;CAChB,eAAe;CACf,eAAe;CACf,iBAAiB;CACjB,gBAAgB;CAChB,kBAAkB;CAClB,mBAAmB;CACnB,gBAAgB;CAChB,iBAAiB;CACjB,kBAAkB;CAClB,cAAc;CACd,gBAAgB;CAChB,eAAe;CACf,iBAAiB;CACjB,eAAe;CACf,mBAAmB;CACnB,gBAAgB;CAChB,cAAc;CACd,mBAAmB;CACnB,gBAAgB;CAChB,iBAAiB;CAEjB,0BAA0B;CAC1B,8BAA8B;CAC9B,wBAAwB;CACxB,0BAA0B;CAC1B,yBAAyB;AAC3B,EACF,EACF,CACF"}
@@ -0,0 +1,2 @@
1
+ import { t as Devtools_exports } from "./chunk-types.mjs";
2
+ export { Devtools_exports as Devtools };
@@ -0,0 +1,18 @@
1
+ import React, { type ComponentType } from 'react';
2
+ import { type Space } from '@dxos/react-client/echo';
3
+ export type ActiveSpacePanelProps = {
4
+ /** Stable module-level panel component; the surface passes it through its `props` mapper. */
5
+ Panel: ComponentType<{
6
+ space: Space;
7
+ }>;
8
+ };
9
+ /**
10
+ * Most devtools panels take the active space and render nothing without one. A mapper cannot read
11
+ * the active space (it is a hook) nor decline to render, so they share this wrapper.
12
+ */
13
+ export declare const ActiveSpacePanel: ({ Panel }: ActiveSpacePanelProps) => React.JSX.Element | null;
14
+ export declare const SpaceListSurface: () => React.JSX.Element;
15
+ export declare const SpaceInfoSurface: () => React.JSX.Element | null;
16
+ export declare const EdgeTracesSurface: () => React.JSX.Element | null;
17
+ export declare const EdgeTestingSurface: () => React.JSX.Element;
18
+ //# sourceMappingURL=DevtoolsSurfaces.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DevtoolsSurfaces.d.ts","sourceRoot":"","sources":["../../../../src/capabilities/DevtoolsSurfaces.tsx"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,EAAE,KAAK,aAAa,EAAe,MAAM,OAAO,CAAC;AAU/D,OAAO,EAAE,KAAK,KAAK,EAAE,MAAM,yBAAyB,CAAC;AAIrD,MAAM,MAAM,qBAAqB,GAAG;IAClC,6FAA6F;IAC7F,KAAK,EAAE,aAAa,CAAC;QAAE,KAAK,EAAE,KAAK,CAAA;KAAE,CAAC,CAAC;CACxC,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,gBAAgB,cAAe,qBAAqB,6BAIhE,CAAC;AAEF,eAAO,MAAM,gBAAgB,yBAQ5B,CAAC;AAEF,eAAO,MAAM,gBAAgB,gCAY5B,CAAC;AAEF,eAAO,MAAM,iBAAiB,gCAU7B,CAAC;AAEF,eAAO,MAAM,kBAAkB,yBA4B9B,CAAC"}
@@ -1,5 +1,5 @@
1
1
  import * as Effect from 'effect/Effect';
2
2
  import { Capability } from '@dxos/app-framework';
3
- declare const _default: (props: void) => Effect.Effect<Capability.Any, never, Capability.Service>;
3
+ declare const _default: (props: void) => Effect.Effect<Capability.Any, never, import("effect/Scope").Scope | Capability.Service>;
4
4
  export default _default;
5
5
  //# sourceMappingURL=app-graph-builder.d.ts.map
@@ -1,5 +1,5 @@
1
1
  import * as Effect from 'effect/Effect';
2
2
  import { Capability } from '@dxos/app-framework';
3
- declare const _default: (props: void) => Effect.Effect<Capability.Any, never, never>;
3
+ declare const _default: (props: void) => Effect.Effect<Capability.Any, never, import("effect/Scope").Scope>;
4
4
  export default _default;
5
5
  //# sourceMappingURL=react-context.d.ts.map
@@ -1,5 +1,5 @@
1
1
  import * as Effect from 'effect/Effect';
2
2
  import { Capability } from '@dxos/app-framework';
3
- declare const _default: (props: void) => Effect.Effect<Capability.Any, never, never>;
3
+ declare const _default: (props: void) => Effect.Effect<Capability.Any, never, import("effect/Scope").Scope>;
4
4
  export default _default;
5
5
  //# sourceMappingURL=react-surface.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"react-surface.d.ts","sourceRoot":"","sources":["../../../../src/capabilities/react-surface.tsx"],"names":[],"mappings":"AAIA,OAAO,KAAK,MAAM,MAAM,eAAe,CAAC;AAGxC,OAAO,EAAgB,UAAU,EAAE,MAAM,qBAAqB,CAAC"}
1
+ {"version":3,"file":"react-surface.d.ts","sourceRoot":"","sources":["../../../../src/capabilities/react-surface.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,MAAM,MAAM,eAAe,CAAC;AAExC,OAAO,EAAgB,UAAU,EAAE,MAAM,qBAAqB,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"DebugGraph.d.ts","sourceRoot":"","sources":["../../../../../src/containers/DebugGraph/DebugGraph.tsx"],"names":[],"mappings":"AAIA,OAAO,KAAK,MAAM,OAAO,CAAC;AAG1B,OAAO,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAC;AAE3C,MAAM,MAAM,eAAe,GAAG;IAAE,KAAK,EAAE,KAAK,CAAC,KAAK,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,CAAC;mCAExC,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE,eAAe"}
1
+ {"version":3,"file":"DebugGraph.d.ts","sourceRoot":"","sources":["../../../../../src/containers/DebugGraph/DebugGraph.tsx"],"names":[],"mappings":"AAIA,OAAO,KAAK,MAAM,OAAO,CAAC;AAG1B,OAAO,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAC;AAG3C,MAAM,MAAM,eAAe,GAAG;IAAE,KAAK,EAAE,KAAK,CAAC,KAAK,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,CAAC;mCAExC,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE,eAAe"}
@@ -34,7 +34,7 @@ declare const meta: {
34
34
  readonly 'config.label': 'Config';
35
35
  readonly 'storage.label': 'Storage';
36
36
  readonly 'sqlite.label': 'SQLite';
37
- readonly 'logs.label': 'Logs';
37
+ readonly 'logging.label': 'Logging';
38
38
  readonly 'diagnostics.label': 'Diagnostics';
39
39
  readonly 'tracing.label': 'Tracing';
40
40
  readonly 'halo.label': 'HALO';
@@ -26,7 +26,7 @@ export declare const translations: [{
26
26
  readonly 'config.label': 'Config';
27
27
  readonly 'storage.label': 'Storage';
28
28
  readonly 'sqlite.label': 'SQLite';
29
- readonly 'logs.label': 'Logs';
29
+ readonly 'logging.label': 'Logging';
30
30
  readonly 'diagnostics.label': 'Diagnostics';
31
31
  readonly 'tracing.label': 'Tracing';
32
32
  readonly 'halo.label': 'HALO';
@@ -1 +1 @@
1
- {"version":3,"file":"translations.d.ts","sourceRoot":"","sources":["../../../src/translations.ts"],"names":[],"mappings":"AASA,eAAO,MAAM,YAAY;;;;;;;;;;;;;;;;;oCAKF,UAAU;4CACF,eAAe;uCACpB,UAAU;gDACD,OAAO;8CACT,WAAW;mDACN,cAAc;yCAExB,8BAA8B;qCAClC,QAAQ;qCACR,QAAQ;sCACP,SAAS;qCACV,QAAQ;mCACV,MAAM;0CACC,aAAa;sCACjB,SAAS;mCACZ,MAAM;uCACF,UAAU;sCACX,SAAS;sCACT,SAAS;0CACL,aAAa;mCACpB,MAAM;qCACJ,QAAQ;oCACT,OAAO;oCACP,OAAO;sCACL,SAAS;qCACV,QAAQ;uCACN,UAAU;wCACT,WAAW;qCACd,QAAQ;sCACP,SAAS;uCACR,UAAU;mCACd,MAAM;qCACJ,QAAQ;oCACT,OAAO;sCACL,SAAS;oCACX,OAAO;wCACH,WAAW;qCACd,QAAQ;mCACV,MAAM;wCACD,WAAW;qCACd,QAAQ;sCACP,SAAS;+CAEA,eAAU;mDACN,0BAA0B;6CAChC,qBAAqB;+CACnB,sBAAsB;8CACvB,gBAAgB;;;EAIlB,CAAC"}
1
+ {"version":3,"file":"translations.d.ts","sourceRoot":"","sources":["../../../src/translations.ts"],"names":[],"mappings":"AASA,eAAO,MAAM,YAAY;;;;;;;;;;;;;;;;;oCAKF,UAAU;4CACF,eAAe;uCACpB,UAAU;gDACD,OAAO;8CACT,WAAW;mDACN,cAAc;yCAExB,8BAA8B;qCAClC,QAAQ;qCACR,QAAQ;sCACP,SAAS;qCACV,QAAQ;sCACP,SAAS;0CACL,aAAa;sCACjB,SAAS;mCACZ,MAAM;uCACF,UAAU;sCACX,SAAS;sCACT,SAAS;0CACL,aAAa;mCACpB,MAAM;qCACJ,QAAQ;oCACT,OAAO;oCACP,OAAO;sCACL,SAAS;qCACV,QAAQ;uCACN,UAAU;wCACT,WAAW;qCACd,QAAQ;sCACP,SAAS;uCACR,UAAU;mCACd,MAAM;qCACJ,QAAQ;oCACT,OAAO;sCACL,SAAS;oCACX,OAAO;wCACH,WAAW;qCACd,QAAQ;mCACV,MAAM;wCACD,WAAW;qCACd,QAAQ;sCACP,SAAS;+CAEA,eAAU;mDACN,0BAA0B;6CAChC,qBAAqB;+CACnB,sBAAsB;8CACvB,gBAAgB;;;EAIlB,CAAC"}