@dxos/plugin-devtools 0.11.1 → 0.12.0-next-2800d0376abcc62d5544afdd744b16b2b960434e

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 (127) hide show
  1. package/dist/lib/{chunk-types.mjs → Devtools.mjs} +5 -14
  2. package/dist/lib/Devtools.mjs.map +1 -0
  3. package/dist/lib/DevtoolsEvents.mjs +15 -0
  4. package/dist/lib/DevtoolsEvents.mjs.map +1 -0
  5. package/dist/lib/DevtoolsPlugin.mjs +13 -36
  6. package/dist/lib/DevtoolsPlugin.mjs.map +1 -1
  7. package/dist/lib/capabilities.mjs +39 -5
  8. package/dist/lib/capabilities.mjs.map +1 -1
  9. package/dist/lib/capabilities.node.mjs +34 -0
  10. package/dist/lib/capabilities.node.mjs.map +1 -0
  11. package/dist/lib/capabilities.workerd.mjs +30 -0
  12. package/dist/lib/capabilities.workerd.mjs.map +1 -0
  13. package/dist/lib/chunk-CliPanel.mjs +103 -0
  14. package/dist/lib/chunk-CliPanel.mjs.map +1 -0
  15. package/dist/lib/chunk-DebugGraph.mjs +2 -2
  16. package/dist/lib/chunk-DebugGraph.mjs.map +1 -1
  17. package/dist/lib/chunk-DevtoolsOverviewContainer.mjs +14 -13
  18. package/dist/lib/chunk-DevtoolsOverviewContainer.mjs.map +1 -1
  19. package/dist/lib/chunk-GithubPanel.mjs +36 -30
  20. package/dist/lib/chunk-GithubPanel.mjs.map +1 -1
  21. package/dist/lib/chunk-RegistryPanel.mjs +2 -2
  22. package/dist/lib/chunk-RegistryPanel.mjs.map +1 -1
  23. package/dist/lib/chunk-app-graph-builder.mjs +66 -50
  24. package/dist/lib/chunk-app-graph-builder.mjs.map +1 -1
  25. package/dist/lib/chunk-react-context.mjs +4 -3
  26. package/dist/lib/chunk-react-context.mjs.map +1 -1
  27. package/dist/lib/chunk-react-surface.mjs +35 -28
  28. package/dist/lib/chunk-react-surface.mjs.map +1 -1
  29. package/dist/lib/chunk-rolldown-runtime.mjs +13 -0
  30. package/dist/lib/containers.mjs +2 -1
  31. package/dist/lib/containers.mjs.map +1 -1
  32. package/dist/lib/index.mjs +4 -3
  33. package/dist/lib/meta.mjs +29 -1
  34. package/dist/lib/meta.mjs.map +1 -0
  35. package/dist/lib/plugin.mjs +6 -5
  36. package/dist/lib/plugin.mjs.map +1 -1
  37. package/dist/lib/translations.mjs +1 -0
  38. package/dist/lib/translations.mjs.map +1 -1
  39. package/dist/lib/types.mjs +3 -2
  40. package/dist/types/src/DevtoolsPlugin.d.ts +36 -3
  41. package/dist/types/src/DevtoolsPlugin.d.ts.map +1 -1
  42. package/dist/types/src/capabilities/DevtoolsSurfaces.d.ts.map +1 -1
  43. package/dist/types/src/capabilities/app-graph-builder.d.ts +2 -2
  44. package/dist/types/src/capabilities/app-graph-builder.d.ts.map +1 -1
  45. package/dist/types/src/capabilities/gen/node.d.ts +8 -0
  46. package/dist/types/src/capabilities/gen/node.d.ts.map +1 -0
  47. package/dist/types/src/capabilities/gen/workerd.d.ts +8 -0
  48. package/dist/types/src/capabilities/gen/workerd.d.ts.map +1 -0
  49. package/dist/types/src/capabilities/index.d.ts +7 -4
  50. package/dist/types/src/capabilities/index.d.ts.map +1 -1
  51. package/dist/types/src/capabilities/react-context.d.ts +2 -2
  52. package/dist/types/src/capabilities/react-context.d.ts.map +1 -1
  53. package/dist/types/src/capabilities/react-surface.d.ts +2 -2
  54. package/dist/types/src/capabilities/react-surface.d.ts.map +1 -1
  55. package/dist/types/src/containers/CliPanel/CliPanel.d.ts +6 -0
  56. package/dist/types/src/containers/CliPanel/CliPanel.d.ts.map +1 -0
  57. package/dist/types/src/containers/CliPanel/CliPanel.stories.d.ts +89 -0
  58. package/dist/types/src/containers/CliPanel/CliPanel.stories.d.ts.map +1 -0
  59. package/dist/types/src/containers/CliPanel/index.d.ts +2 -0
  60. package/dist/types/src/containers/CliPanel/index.d.ts.map +1 -0
  61. package/dist/types/src/containers/CliPanel/useCliApp.d.ts +29 -0
  62. package/dist/types/src/containers/CliPanel/useCliApp.d.ts.map +1 -0
  63. package/dist/types/src/containers/DebugGraph/DebugGraph.d.ts +2 -2
  64. package/dist/types/src/containers/DebugGraph/DebugGraph.d.ts.map +1 -1
  65. package/dist/types/src/containers/GithubPanel/GithubComponent.d.ts +9 -4
  66. package/dist/types/src/containers/GithubPanel/GithubComponent.d.ts.map +1 -1
  67. package/dist/types/src/containers/GithubPanel/GithubComponent.stories.d.ts +6 -4
  68. package/dist/types/src/containers/GithubPanel/GithubComponent.stories.d.ts.map +1 -1
  69. package/dist/types/src/containers/index.d.ts +1 -0
  70. package/dist/types/src/containers/index.d.ts.map +1 -1
  71. package/dist/types/src/index.d.ts +3 -2
  72. package/dist/types/src/index.d.ts.map +1 -1
  73. package/dist/types/src/plugin.d.ts +2 -1
  74. package/dist/types/src/plugin.d.ts.map +1 -1
  75. package/dist/types/src/plugin.test.d.ts +2 -0
  76. package/dist/types/src/plugin.test.d.ts.map +1 -0
  77. package/dist/types/src/translations.d.ts +6 -4
  78. package/dist/types/src/translations.d.ts.map +1 -1
  79. package/dist/types/src/types/Devtools.d.ts +1 -0
  80. package/dist/types/src/types/Devtools.d.ts.map +1 -1
  81. package/dist/types/src/types/DevtoolsEvents.d.ts +8 -0
  82. package/dist/types/src/types/DevtoolsEvents.d.ts.map +1 -0
  83. package/dist/types/src/types/index.d.ts +1 -0
  84. package/dist/types/src/types/index.d.ts.map +1 -1
  85. package/dist/types/tsconfig.tsbuildinfo +1 -1
  86. package/package.json +73 -74
  87. package/src/DevtoolsPlugin.ts +15 -0
  88. package/src/capabilities/DevtoolsSurfaces.tsx +9 -4
  89. package/src/capabilities/app-graph-builder.ts +72 -49
  90. package/src/capabilities/gen/node.ts +49 -0
  91. package/src/capabilities/gen/workerd.ts +44 -0
  92. package/src/capabilities/index.ts +50 -4
  93. package/src/capabilities/react-context.tsx +3 -2
  94. package/src/capabilities/react-surface.ts +11 -5
  95. package/src/containers/CliPanel/CliPanel.stories.tsx +75 -0
  96. package/src/containers/CliPanel/CliPanel.tsx +45 -0
  97. package/src/containers/CliPanel/index.ts +5 -0
  98. package/src/containers/CliPanel/useCliApp.ts +103 -0
  99. package/src/containers/DebugGraph/DebugGraph.tsx +3 -3
  100. package/src/containers/GithubPanel/GithubComponent.tsx +13 -15
  101. package/src/containers/RegistryPanel/RegistryPanel.tsx +1 -1
  102. package/src/containers/index.ts +1 -0
  103. package/src/index.ts +3 -2
  104. package/src/meta.ts +1 -1
  105. package/src/{DevtoolsPlugin.test.ts → plugin.test.ts} +5 -4
  106. package/src/plugin.tsx +20 -0
  107. package/src/translations.ts +1 -0
  108. package/src/types/Devtools.ts +1 -0
  109. package/src/types/DevtoolsEvents.ts +16 -0
  110. package/src/types/index.ts +1 -0
  111. package/dist/lib/DevtoolsPlugin.node.mjs +0 -10
  112. package/dist/lib/DevtoolsPlugin.node.mjs.map +0 -1
  113. package/dist/lib/DevtoolsPlugin.workerd.mjs +0 -8
  114. package/dist/lib/DevtoolsPlugin.workerd.mjs.map +0 -1
  115. package/dist/lib/chunk-meta.mjs +0 -30
  116. package/dist/lib/chunk-meta.mjs.map +0 -1
  117. package/dist/lib/chunk-types.mjs.map +0 -1
  118. package/dist/types/src/DevtoolsPlugin.node.d.ts +0 -4
  119. package/dist/types/src/DevtoolsPlugin.node.d.ts.map +0 -1
  120. package/dist/types/src/DevtoolsPlugin.test.d.ts +0 -2
  121. package/dist/types/src/DevtoolsPlugin.test.d.ts.map +0 -1
  122. package/dist/types/src/DevtoolsPlugin.workerd.d.ts +0 -4
  123. package/dist/types/src/DevtoolsPlugin.workerd.d.ts.map +0 -1
  124. package/src/DevtoolsPlugin.node.ts +0 -16
  125. package/src/DevtoolsPlugin.tsx +0 -54
  126. package/src/DevtoolsPlugin.workerd.ts +0 -11
  127. package/src/plugin.ts +0 -9
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@dxos/plugin-devtools",
3
- "version": "0.11.1",
3
+ "version": "0.12.0-next-2800d0376abcc62d5544afdd744b16b2b960434e",
4
4
  "description": "DXOS developer inspector plugin.",
5
5
  "homepage": "https://dxos.org",
6
6
  "bugs": "https://github.com/dxos/dxos/issues",
@@ -14,8 +14,14 @@
14
14
  "type": "module",
15
15
  "imports": {
16
16
  "#capabilities": {
17
- "source": "./src/capabilities/index.ts",
17
+ "source": {
18
+ "workerd": "./src/capabilities/gen/workerd.ts",
19
+ "node": "./src/capabilities/gen/node.ts",
20
+ "default": "./src/capabilities/index.ts"
21
+ },
18
22
  "types": "./dist/types/src/capabilities/index.d.ts",
23
+ "workerd": "./dist/lib/capabilities.workerd.mjs",
24
+ "node": "./dist/lib/capabilities.node.mjs",
19
25
  "default": "./dist/lib/capabilities.mjs"
20
26
  },
21
27
  "#containers": {
@@ -29,15 +35,9 @@
29
35
  "default": "./dist/lib/meta.mjs"
30
36
  },
31
37
  "#plugin": {
32
- "source": {
33
- "workerd": "./src/DevtoolsPlugin.workerd.ts",
34
- "node": "./src/DevtoolsPlugin.node.ts",
35
- "default": "./src/DevtoolsPlugin.tsx"
36
- },
37
- "types": "./dist/types/src/DevtoolsPlugin.d.ts",
38
- "workerd": "./dist/lib/DevtoolsPlugin.workerd.mjs",
39
- "node": "./dist/lib/DevtoolsPlugin.node.mjs",
40
- "default": "./dist/lib/DevtoolsPlugin.mjs"
38
+ "source": "./src/plugin.tsx",
39
+ "types": "./dist/types/src/plugin.d.ts",
40
+ "default": "./dist/lib/plugin.mjs"
41
41
  },
42
42
  "#translations": {
43
43
  "source": "./src/translations.ts",
@@ -57,18 +57,39 @@
57
57
  "import": "./dist/lib/index.mjs"
58
58
  },
59
59
  "./assets/PLUGIN.mdl": "./PLUGIN.mdl",
60
- "./plugin": {
61
- "source": "./src/plugin.ts",
62
- "types": "./dist/types/src/plugin.d.ts",
63
- "import": "./dist/lib/plugin.mjs"
64
- },
65
60
  "./translations": {
66
61
  "source": "./src/translations.ts",
67
62
  "types": "./dist/types/src/translations.d.ts",
68
63
  "import": "./dist/lib/translations.mjs"
64
+ },
65
+ "./package.json": "./package.json",
66
+ "./Devtools": {
67
+ "source": "./src/types/Devtools.ts",
68
+ "types": "./dist/types/src/types/Devtools.d.ts",
69
+ "import": "./dist/lib/Devtools.mjs"
70
+ },
71
+ "./DevtoolsEvents": {
72
+ "source": "./src/types/DevtoolsEvents.ts",
73
+ "types": "./dist/types/src/types/DevtoolsEvents.d.ts",
74
+ "import": "./dist/lib/DevtoolsEvents.mjs"
75
+ },
76
+ "./DevtoolsPlugin": {
77
+ "source": "./src/DevtoolsPlugin.ts",
78
+ "types": "./dist/types/src/DevtoolsPlugin.d.ts",
79
+ "import": "./dist/lib/DevtoolsPlugin.mjs"
69
80
  }
70
81
  },
71
82
  "types": "dist/types/src/index.d.ts",
83
+ "typesVersions": {
84
+ "*": {
85
+ "Devtools": [
86
+ "dist/types/src/types/Devtools.d.ts"
87
+ ],
88
+ "DevtoolsEvents": [
89
+ "dist/types/src/types/DevtoolsEvents.d.ts"
90
+ ]
91
+ }
92
+ },
72
93
  "files": [
73
94
  "dist",
74
95
  "dx.config.ts",
@@ -76,74 +97,52 @@
76
97
  "PLUGIN.mdl"
77
98
  ],
78
99
  "dependencies": {
79
- "@antv/graphlib": "^2.0.4",
80
- "@antv/layout": "^1.2.13",
81
- "@tldraw/tldraw": "^3.0.0",
82
- "react-resize-detector": "^11.0.1",
83
- "@dxos/app-framework": "0.11.1",
84
- "@dxos/app-toolkit": "0.11.1",
85
- "@dxos/assistant-toolkit": "0.11.1",
86
- "@dxos/client-services": "0.11.1",
87
- "@dxos/compute": "0.11.1",
88
- "@dxos/async": "0.11.1",
89
- "@dxos/compute-hyperformula": "0.11.1",
90
- "@dxos/conductor": "0.11.1",
91
- "@dxos/config": "0.11.1",
92
- "@dxos/devtools": "0.11.1",
93
- "@dxos/echo": "0.11.1",
94
- "@dxos/echo-host": "0.11.1",
95
- "@dxos/effect": "0.11.1",
96
- "@dxos/invariant": "0.11.1",
97
- "@dxos/keys": "0.11.1",
98
- "@dxos/log": "0.11.1",
99
- "@dxos/log-store-idb": "0.11.1",
100
- "@dxos/operation": "0.11.1",
101
- "@dxos/plugin-client": "0.11.1",
102
- "@dxos/plugin-graph": "0.11.1",
103
- "@dxos/plugin-inbox": "0.11.1",
104
- "@dxos/plugin-markdown": "0.11.1",
105
- "@dxos/plugin-script": "0.11.1",
106
- "@dxos/plugin-sheet": "0.11.1",
107
- "@dxos/plugin-space": "0.11.1",
108
- "@dxos/plugin-status-bar": "0.11.1",
109
- "@dxos/protocols": "0.11.1",
110
- "@dxos/random": "0.11.1",
111
- "@dxos/react-client": "0.11.1",
112
- "@dxos/react-ui-attention": "0.11.1",
113
- "@dxos/react-ui-canvas-compute": "0.11.1",
114
- "@dxos/react-ui-canvas-editor": "0.11.1",
115
- "@dxos/react-ui-form": "0.11.1",
116
- "@dxos/react-ui-introspect": "0.11.1",
117
- "@dxos/react-ui-syntax-highlighter": "0.11.1",
118
- "@dxos/react-ui-table": "0.11.1",
119
- "@dxos/schema": "0.11.1",
120
- "@dxos/tracing": "0.11.1",
121
- "@dxos/types": "0.11.1",
122
- "@dxos/util": "0.11.1"
100
+ "@bufbuild/protobuf": "2.11.0",
101
+ "@dxos/app-framework": "0.12.0-next-2800d0376abcc62d5544afdd744b16b2b960434e",
102
+ "@dxos/app-graph": "0.12.0-next-2800d0376abcc62d5544afdd744b16b2b960434e",
103
+ "@dxos/app-toolkit": "0.12.0-next-2800d0376abcc62d5544afdd744b16b2b960434e",
104
+ "@dxos/async": "0.12.0-next-2800d0376abcc62d5544afdd744b16b2b960434e",
105
+ "@dxos/cli-util": "0.12.0-next-2800d0376abcc62d5544afdd744b16b2b960434e",
106
+ "@dxos/client-services": "0.12.0-next-2800d0376abcc62d5544afdd744b16b2b960434e",
107
+ "@dxos/compute": "0.12.0-next-2800d0376abcc62d5544afdd744b16b2b960434e",
108
+ "@dxos/config": "0.12.0-next-2800d0376abcc62d5544afdd744b16b2b960434e",
109
+ "@dxos/devtools": "0.12.0-next-2800d0376abcc62d5544afdd744b16b2b960434e",
110
+ "@dxos/echo": "0.12.0-next-2800d0376abcc62d5544afdd744b16b2b960434e",
111
+ "@dxos/effect": "0.12.0-next-2800d0376abcc62d5544afdd744b16b2b960434e",
112
+ "@dxos/graph": "0.12.0-next-2800d0376abcc62d5544afdd744b16b2b960434e",
113
+ "@dxos/keys": "0.12.0-next-2800d0376abcc62d5544afdd744b16b2b960434e",
114
+ "@dxos/log": "0.12.0-next-2800d0376abcc62d5544afdd744b16b2b960434e",
115
+ "@dxos/plugin-script": "0.12.0-next-2800d0376abcc62d5544afdd744b16b2b960434e",
116
+ "@dxos/plugin-space": "0.12.0-next-2800d0376abcc62d5544afdd744b16b2b960434e",
117
+ "@dxos/protocols": "0.12.0-next-2800d0376abcc62d5544afdd744b16b2b960434e",
118
+ "@dxos/react-client": "0.12.0-next-2800d0376abcc62d5544afdd744b16b2b960434e",
119
+ "@dxos/react-ui-introspect": "0.12.0-next-2800d0376abcc62d5544afdd744b16b2b960434e",
120
+ "@dxos/react-ui-table": "0.12.0-next-2800d0376abcc62d5544afdd744b16b2b960434e",
121
+ "@dxos/react-ui-terminal": "0.12.0-next-2800d0376abcc62d5544afdd744b16b2b960434e",
122
+ "@dxos/util": "0.12.0-next-2800d0376abcc62d5544afdd744b16b2b960434e",
123
+ "@dxos/client": "0.12.0-next-2800d0376abcc62d5544afdd744b16b2b960434e"
123
124
  },
124
125
  "devDependencies": {
125
- "@effect-atom/atom-react": "^0.5.0",
126
- "@effect/platform": "0.96.2",
126
+ "@effect/atom-react": "4.0.0-rc.108",
127
+ "@storybook/react-vite": "^10.5.8",
127
128
  "@types/react": "~19.2.17",
128
129
  "@types/react-dom": "~19.2.3",
129
- "effect": "3.21.4",
130
+ "effect": "4.0.0-rc.108",
130
131
  "react": "~19.2.7",
131
132
  "react-dom": "~19.2.7",
132
- "vite": "^8.1.4",
133
- "@dxos/plugin-testing": "0.11.1",
134
- "@dxos/react-ui": "0.11.1",
135
- "@dxos/storybook-utils": "0.11.1",
136
- "@dxos/ui-theme": "0.11.1"
133
+ "vite": "^8.2.1",
134
+ "@dxos/plugin-client": "0.12.0-next-2800d0376abcc62d5544afdd744b16b2b960434e",
135
+ "@dxos/plugin-testing": "0.12.0-next-2800d0376abcc62d5544afdd744b16b2b960434e",
136
+ "@dxos/react-ui": "0.12.0-next-2800d0376abcc62d5544afdd744b16b2b960434e",
137
+ "@dxos/ui-theme": "0.12.0-next-2800d0376abcc62d5544afdd744b16b2b960434e"
137
138
  },
138
139
  "peerDependencies": {
139
- "@effect-atom/atom-react": "^0.5.0",
140
- "@effect/platform": "0.96.2",
141
- "effect": "3.21.4",
140
+ "@effect/atom-react": "4.0.0-rc.108",
141
+ "effect": "4.0.0-rc.108",
142
142
  "react": "~19.2.7",
143
143
  "react-dom": "~19.2.7",
144
- "@dxos/random": "0.11.1",
145
- "@dxos/react-ui": "0.11.1",
146
- "@dxos/ui-theme": "0.11.1"
144
+ "@dxos/react-ui": "^0.12.0-next-2800d0376abcc62d5544afdd744b16b2b960434e",
145
+ "@dxos/ui-theme": "^0.12.0-next-2800d0376abcc62d5544afdd744b16b2b960434e"
147
146
  },
148
147
  "publishConfig": {
149
148
  "access": "public"
@@ -0,0 +1,15 @@
1
+ //
2
+ // Copyright 2023 DXOS.org
3
+ //
4
+
5
+ // @import-as-namespace
6
+
7
+ import * as Plugin from '@dxos/app-framework/Plugin';
8
+
9
+ import { meta as pluginMeta } from '#meta';
10
+
11
+ /** Plugin metadata, available without loading the plugin body. */
12
+ export const meta = pluginMeta;
13
+
14
+ /** Constructs the plugin; the body loads on first enable. */
15
+ export const make = Plugin.lazy(meta, () => import('#plugin'));
@@ -7,13 +7,14 @@
7
7
  import React, { type ComponentType, useCallback } from 'react';
8
8
 
9
9
  import { useOperationInvoker } from '@dxos/app-framework/ui';
10
- import { GraphPath, LayoutOperation } from '@dxos/app-toolkit';
10
+ import * as GraphPath from '@dxos/app-toolkit/GraphPath';
11
+ import * as LayoutOperation from '@dxos/app-toolkit/LayoutOperation';
11
12
  import { useActiveSpace } from '@dxos/app-toolkit/ui';
12
13
  import { InvocationTraceContainer, SpaceInfoPanel, SpaceListPanel, TestingPanel } from '@dxos/devtools';
13
14
  import { Feed } from '@dxos/echo';
14
15
  import { log } from '@dxos/log';
15
- import { ScriptOperation } from '@dxos/plugin-script';
16
- import { SpaceOperation } from '@dxos/plugin-space';
16
+ import * as ScriptOperation from '@dxos/plugin-script/ScriptOperation';
17
+ import * as SpaceOperation from '@dxos/plugin-space/SpaceOperation';
17
18
  import { type Space } from '@dxos/react-client/echo';
18
19
 
19
20
  import { Devtools } from '#types';
@@ -84,7 +85,11 @@ export const EdgeTestingSurface = () => {
84
85
  await space.waitUntilReady();
85
86
  const createResult = await invokePromise(ScriptOperation.CreateScript, { db: space.db });
86
87
  if (createResult.data?.object) {
87
- await invokePromise(SpaceOperation.AddObject, { target: space.db, object: createResult.data.object });
88
+ await invokePromise(
89
+ SpaceOperation.AddObject,
90
+ { object: createResult.data.object },
91
+ { spaceId: space.db.spaceId },
92
+ );
88
93
  }
89
94
  log.info('script created', { result: createResult });
90
95
  if (createResult.data?.object) {
@@ -4,9 +4,15 @@
4
4
 
5
5
  import * as Effect from 'effect/Effect';
6
6
 
7
- import { Capability } from '@dxos/app-framework';
8
- import { AppCapabilities, AppNode, AppNodeMatcher, GraphPath } from '@dxos/app-toolkit';
9
- import { GraphBuilder, Node, NodeMatcher } from '@dxos/plugin-graph';
7
+ import * as Capability from '@dxos/app-framework/Capability';
8
+ import * as AppGraphBuilder from '@dxos/app-graph/AppGraphBuilder';
9
+ import * as AppGraphNode from '@dxos/app-graph/AppGraphNode';
10
+ import * as AppCapabilities from '@dxos/app-toolkit/AppCapabilities';
11
+ import * as AppNode from '@dxos/app-toolkit/AppNode';
12
+ import * as AppNodeMatcher from '@dxos/app-toolkit/AppNodeMatcher';
13
+ import * as GraphPath from '@dxos/app-toolkit/GraphPath';
14
+ import * as GraphNode from '@dxos/graph/GraphNode';
15
+ import * as GraphNodeMatcher from '@dxos/graph/GraphNodeMatcher';
10
16
  import { type Space } from '@dxos/react-client/echo';
11
17
  import { Position } from '@dxos/util';
12
18
 
@@ -15,17 +21,22 @@ import { Devtools } from '#types';
15
21
 
16
22
  export default Capability.makeModule(
17
23
  Effect.fnUntraced(function* () {
24
+ // Read the app graph through its atom so the extension establishes a reactive dependency
25
+ // and re-evaluates once the capability lands (dependency modules contribute individually,
26
+ // not batched per wave).
27
+ const appGraphAtom = yield* Capability.atom(AppCapabilities.AppGraph);
28
+
18
29
  const extensions = yield* Effect.all([
19
- GraphBuilder.createExtension({
30
+ AppGraphBuilder.createExtension({
20
31
  id: 'root',
21
- match: NodeMatcher.whenRoot,
32
+ match: GraphNodeMatcher.whenRoot,
22
33
  actions: () =>
23
34
  Effect.succeed([
24
- Node.makeAction({
35
+ AppGraphNode.makeAction({
25
36
  id: 'resetData',
26
37
  data: () =>
27
38
  Effect.sync(() => {
28
- window.location.href = '/reset.html#continue';
39
+ window.location.href = '/reset.html';
29
40
  }),
30
41
  properties: {
31
42
  label: ['reset-data.label', { ns: meta.profile.key }],
@@ -35,15 +46,18 @@ export default Capability.makeModule(
35
46
  ]),
36
47
  }),
37
48
 
38
- GraphBuilder.createExtension({
49
+ AppGraphBuilder.createExtension({
39
50
  id: 'devtools',
40
- match: NodeMatcher.whenAny(NodeMatcher.whenRoot, AppNodeMatcher.whenNavTreeGroup(GraphPath.GroupTypes.system)),
41
- connector: (_nodeOrSpace: Node.Node | Space, get) =>
51
+ match: GraphNodeMatcher.whenAny(
52
+ GraphNodeMatcher.whenRoot,
53
+ AppNodeMatcher.whenNavTreeGroup(GraphPath.GroupTypes.system),
54
+ ),
55
+ connector: (_nodeOrSpace: AppGraphNode.Node | Space, get) =>
42
56
  Effect.gen(function* () {
43
- const [graph] = get(yield* Capability.atom(AppCapabilities.AppGraph));
57
+ const [graph] = get(appGraphAtom);
44
58
 
45
59
  return [
46
- Node.make({
60
+ AppGraphNode.make({
47
61
  id: Devtools.nodeId(Devtools.id),
48
62
  data: null,
49
63
  type: Devtools.id,
@@ -53,16 +67,16 @@ export default Capability.makeModule(
53
67
  position: Position.last,
54
68
  },
55
69
  nodes: [
56
- Node.make({
70
+ AppGraphNode.make({
57
71
  id: Devtools.nodeId(Devtools.AppGraph),
58
72
  type: `${meta.profile.key}.app-graph`,
59
- data: { graph: graph?.graph, root: Node.RootId },
73
+ data: { graph: graph?.graph, root: GraphNode.RootId },
60
74
  properties: {
61
75
  label: ['debug-app-graph.label', { ns: meta.profile.key }],
62
76
  icon: 'ph--graph--regular',
63
77
  },
64
78
  }),
65
- Node.make({
79
+ AppGraphNode.make({
66
80
  id: Devtools.nodeId(Devtools.ToolsExplorer),
67
81
  data: Devtools.ToolsExplorer,
68
82
  type: Devtools.id,
@@ -71,7 +85,16 @@ export default Capability.makeModule(
71
85
  icon: 'ph--toolbox--regular',
72
86
  },
73
87
  }),
74
- Node.make({
88
+ AppGraphNode.make({
89
+ id: Devtools.nodeId(Devtools.Cli),
90
+ data: Devtools.Cli,
91
+ type: Devtools.id,
92
+ properties: {
93
+ label: ['cli.label', { ns: meta.profile.key }],
94
+ icon: 'ph--terminal-window--regular',
95
+ },
96
+ }),
97
+ AppGraphNode.make({
75
98
  id: Devtools.nodeId(Devtools.Client.id),
76
99
  data: null,
77
100
  type: Devtools.id,
@@ -80,7 +103,7 @@ export default Capability.makeModule(
80
103
  icon: 'ph--users--regular',
81
104
  },
82
105
  nodes: [
83
- Node.make({
106
+ AppGraphNode.make({
84
107
  id: Devtools.nodeId(Devtools.Client.Config),
85
108
  data: Devtools.Client.Config,
86
109
  type: Devtools.id,
@@ -89,7 +112,7 @@ export default Capability.makeModule(
89
112
  icon: 'ph--gear--regular',
90
113
  },
91
114
  }),
92
- Node.make({
115
+ AppGraphNode.make({
93
116
  id: Devtools.nodeId(Devtools.Client.Storage),
94
117
  data: Devtools.Client.Storage,
95
118
  type: Devtools.id,
@@ -98,7 +121,7 @@ export default Capability.makeModule(
98
121
  icon: 'ph--hard-drives--regular',
99
122
  },
100
123
  }),
101
- Node.make({
124
+ AppGraphNode.make({
102
125
  id: Devtools.nodeId(Devtools.Client.Sqlite),
103
126
  data: Devtools.Client.Sqlite,
104
127
  type: Devtools.id,
@@ -107,7 +130,7 @@ export default Capability.makeModule(
107
130
  icon: 'ph--database--regular',
108
131
  },
109
132
  }),
110
- Node.make({
133
+ AppGraphNode.make({
111
134
  id: Devtools.nodeId(Devtools.Client.Logs),
112
135
  data: Devtools.Client.Logs,
113
136
  type: Devtools.id,
@@ -116,7 +139,7 @@ export default Capability.makeModule(
116
139
  icon: 'ph--file-text--regular',
117
140
  },
118
141
  }),
119
- Node.make({
142
+ AppGraphNode.make({
120
143
  id: Devtools.nodeId(Devtools.Client.Diagnostics),
121
144
  data: Devtools.Client.Diagnostics,
122
145
  type: Devtools.id,
@@ -127,7 +150,7 @@ export default Capability.makeModule(
127
150
  }),
128
151
  ],
129
152
  }),
130
- Node.make({
153
+ AppGraphNode.make({
131
154
  id: Devtools.nodeId(Devtools.Halo.id),
132
155
  data: null,
133
156
  type: Devtools.id,
@@ -136,7 +159,7 @@ export default Capability.makeModule(
136
159
  icon: 'ph--identification-badge--regular',
137
160
  },
138
161
  nodes: [
139
- Node.make({
162
+ AppGraphNode.make({
140
163
  id: Devtools.nodeId(Devtools.Halo.Identity),
141
164
  data: Devtools.Halo.Identity,
142
165
  type: Devtools.id,
@@ -145,7 +168,7 @@ export default Capability.makeModule(
145
168
  icon: 'ph--identification-badge--regular',
146
169
  },
147
170
  }),
148
- Node.make({
171
+ AppGraphNode.make({
149
172
  id: Devtools.nodeId(Devtools.Halo.Devices),
150
173
  data: Devtools.Halo.Devices,
151
174
  type: Devtools.id,
@@ -154,7 +177,7 @@ export default Capability.makeModule(
154
177
  icon: 'ph--devices--regular',
155
178
  },
156
179
  }),
157
- Node.make({
180
+ AppGraphNode.make({
158
181
  id: Devtools.nodeId(Devtools.Halo.Keyring),
159
182
  data: Devtools.Halo.Keyring,
160
183
  type: Devtools.id,
@@ -163,7 +186,7 @@ export default Capability.makeModule(
163
186
  icon: 'ph--key--regular',
164
187
  },
165
188
  }),
166
- Node.make({
189
+ AppGraphNode.make({
167
190
  id: Devtools.nodeId(Devtools.Halo.Credentials),
168
191
  data: Devtools.Halo.Credentials,
169
192
  type: Devtools.id,
@@ -174,7 +197,7 @@ export default Capability.makeModule(
174
197
  }),
175
198
  ],
176
199
  }),
177
- Node.make({
200
+ AppGraphNode.make({
178
201
  id: Devtools.nodeId(Devtools.Echo.id),
179
202
  data: null,
180
203
  type: Devtools.id,
@@ -183,7 +206,7 @@ export default Capability.makeModule(
183
206
  icon: 'ph--database--regular',
184
207
  },
185
208
  nodes: [
186
- Node.make({
209
+ AppGraphNode.make({
187
210
  id: Devtools.nodeId(Devtools.Echo.Spaces),
188
211
  data: Devtools.Echo.Spaces,
189
212
  type: Devtools.id,
@@ -192,7 +215,7 @@ export default Capability.makeModule(
192
215
  icon: 'ph--graph--regular',
193
216
  },
194
217
  }),
195
- Node.make({
218
+ AppGraphNode.make({
196
219
  id: Devtools.nodeId(Devtools.Echo.Space),
197
220
  data: Devtools.Echo.Space,
198
221
  type: Devtools.id,
@@ -201,7 +224,7 @@ export default Capability.makeModule(
201
224
  icon: 'ph--planet--regular',
202
225
  },
203
226
  }),
204
- Node.make({
227
+ AppGraphNode.make({
205
228
  id: Devtools.nodeId(Devtools.Echo.Feeds),
206
229
  data: Devtools.Echo.Feeds,
207
230
  type: Devtools.id,
@@ -210,7 +233,7 @@ export default Capability.makeModule(
210
233
  icon: 'ph--list-bullets--regular',
211
234
  },
212
235
  }),
213
- Node.make({
236
+ AppGraphNode.make({
214
237
  id: Devtools.nodeId(Devtools.Echo.Objects),
215
238
  data: Devtools.Echo.Objects,
216
239
  type: Devtools.id,
@@ -219,7 +242,7 @@ export default Capability.makeModule(
219
242
  icon: 'ph--cube--regular',
220
243
  },
221
244
  }),
222
- Node.make({
245
+ AppGraphNode.make({
223
246
  id: Devtools.nodeId(Devtools.Echo.Schema),
224
247
  data: Devtools.Echo.Schema,
225
248
  type: Devtools.id,
@@ -228,7 +251,7 @@ export default Capability.makeModule(
228
251
  icon: 'ph--database--regular',
229
252
  },
230
253
  }),
231
- Node.make({
254
+ AppGraphNode.make({
232
255
  id: Devtools.nodeId(Devtools.Echo.Registry),
233
256
  data: Devtools.Echo.Registry,
234
257
  type: Devtools.id,
@@ -237,7 +260,7 @@ export default Capability.makeModule(
237
260
  icon: 'ph--books--regular',
238
261
  },
239
262
  }),
240
- Node.make({
263
+ AppGraphNode.make({
241
264
  id: Devtools.nodeId(Devtools.Echo.Automerge),
242
265
  data: Devtools.Echo.Automerge,
243
266
  type: Devtools.id,
@@ -246,7 +269,7 @@ export default Capability.makeModule(
246
269
  icon: 'ph--gear-six--regular',
247
270
  },
248
271
  }),
249
- Node.make({
272
+ AppGraphNode.make({
250
273
  id: Devtools.nodeId(Devtools.Echo.Queues),
251
274
  data: Devtools.Echo.Queues,
252
275
  type: Devtools.id,
@@ -255,7 +278,7 @@ export default Capability.makeModule(
255
278
  icon: 'ph--queue--regular',
256
279
  },
257
280
  }),
258
- Node.make({
281
+ AppGraphNode.make({
259
282
  id: Devtools.nodeId(Devtools.Echo.Members),
260
283
  data: Devtools.Echo.Members,
261
284
  type: Devtools.id,
@@ -264,7 +287,7 @@ export default Capability.makeModule(
264
287
  icon: 'ph--users--regular',
265
288
  },
266
289
  }),
267
- Node.make({
290
+ AppGraphNode.make({
268
291
  id: Devtools.nodeId(Devtools.Echo.Metadata),
269
292
  data: Devtools.Echo.Metadata,
270
293
  type: Devtools.id,
@@ -275,7 +298,7 @@ export default Capability.makeModule(
275
298
  }),
276
299
  ],
277
300
  }),
278
- Node.make({
301
+ AppGraphNode.make({
279
302
  id: Devtools.nodeId(Devtools.Mesh.id),
280
303
  data: null,
281
304
  type: Devtools.id,
@@ -284,7 +307,7 @@ export default Capability.makeModule(
284
307
  icon: 'ph--graph--regular',
285
308
  },
286
309
  nodes: [
287
- Node.make({
310
+ AppGraphNode.make({
288
311
  id: Devtools.nodeId(Devtools.Mesh.Signal),
289
312
  data: Devtools.Mesh.Signal,
290
313
  type: Devtools.id,
@@ -293,7 +316,7 @@ export default Capability.makeModule(
293
316
  icon: 'ph--wifi-high--regular',
294
317
  },
295
318
  }),
296
- Node.make({
319
+ AppGraphNode.make({
297
320
  id: Devtools.nodeId(Devtools.Mesh.Swarm),
298
321
  data: Devtools.Mesh.Swarm,
299
322
  type: Devtools.id,
@@ -302,7 +325,7 @@ export default Capability.makeModule(
302
325
  icon: 'ph--users-three--regular',
303
326
  },
304
327
  }),
305
- Node.make({
328
+ AppGraphNode.make({
306
329
  id: Devtools.nodeId(Devtools.Mesh.Network),
307
330
  data: Devtools.Mesh.Network,
308
331
  type: Devtools.id,
@@ -313,7 +336,7 @@ export default Capability.makeModule(
313
336
  }),
314
337
  ],
315
338
  }),
316
- Node.make({
339
+ AppGraphNode.make({
317
340
  id: Devtools.nodeId(Devtools.Edge.id),
318
341
  data: null,
319
342
  type: Devtools.id,
@@ -322,7 +345,7 @@ export default Capability.makeModule(
322
345
  icon: 'ph--cloud--regular',
323
346
  },
324
347
  nodes: [
325
- Node.make({
348
+ AppGraphNode.make({
326
349
  id: Devtools.nodeId(Devtools.Edge.Dashboard),
327
350
  data: Devtools.Edge.Dashboard,
328
351
  type: Devtools.id,
@@ -331,7 +354,7 @@ export default Capability.makeModule(
331
354
  icon: 'ph--computer-tower--regular',
332
355
  },
333
356
  }),
334
- Node.make({
357
+ AppGraphNode.make({
335
358
  id: Devtools.nodeId(Devtools.Edge.Workflows),
336
359
  data: Devtools.Edge.Workflows,
337
360
  type: Devtools.id,
@@ -340,7 +363,7 @@ export default Capability.makeModule(
340
363
  icon: 'ph--function--regular',
341
364
  },
342
365
  }),
343
- Node.make({
366
+ AppGraphNode.make({
344
367
  id: Devtools.nodeId(Devtools.Edge.Traces),
345
368
  data: Devtools.Edge.Traces,
346
369
  type: Devtools.id,
@@ -349,7 +372,7 @@ export default Capability.makeModule(
349
372
  icon: 'ph--line-segments--regular',
350
373
  },
351
374
  }),
352
- Node.make({
375
+ AppGraphNode.make({
353
376
  id: Devtools.nodeId(Devtools.Edge.Testing),
354
377
  data: Devtools.Edge.Testing,
355
378
  type: Devtools.id,
@@ -367,9 +390,9 @@ export default Capability.makeModule(
367
390
  }),
368
391
 
369
392
  // Devtools deck companion.
370
- GraphBuilder.createExtension({
393
+ AppGraphBuilder.createExtension({
371
394
  id: 'devtoolsOverview',
372
- match: NodeMatcher.whenRoot,
395
+ match: GraphNodeMatcher.whenRoot,
373
396
  connector: () =>
374
397
  Effect.succeed([
375
398
  AppNode.makeDeckCompanion({
@@ -383,6 +406,6 @@ export default Capability.makeModule(
383
406
  }),
384
407
  ]);
385
408
 
386
- return Capability.contributes(AppCapabilities.AppGraphBuilder, extensions);
409
+ return Capability.contribute(AppCapabilities.AppGraphBuilder, extensions);
387
410
  }),
388
411
  );