@dxos/plugin-debug 0.8.4-main.406dc2a → 0.8.4-main.43cb759274

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 (244) hide show
  1. package/LICENSE +102 -5
  2. package/PLUGIN.mdl +373 -0
  3. package/README.md +1 -1
  4. package/dist/lib/neutral/DebugGraph-G4FWS57E.mjs +15 -0
  5. package/dist/lib/neutral/DebugGraph-G4FWS57E.mjs.map +7 -0
  6. package/dist/lib/neutral/DebugObjectPanel-OS65NC4M.mjs +59 -0
  7. package/dist/lib/neutral/DebugObjectPanel-OS65NC4M.mjs.map +7 -0
  8. package/dist/lib/neutral/DebugPlugin.mjs +59 -0
  9. package/dist/lib/neutral/DebugPlugin.mjs.map +7 -0
  10. package/dist/lib/neutral/DebugPlugin.node.mjs +18 -0
  11. package/dist/lib/neutral/DebugPlugin.node.mjs.map +7 -0
  12. package/dist/lib/neutral/DebugPlugin.workerd.mjs +12 -0
  13. package/dist/lib/neutral/DebugPlugin.workerd.mjs.map +7 -0
  14. package/dist/lib/neutral/DebugSettings-RKYNQIKH.mjs +223 -0
  15. package/dist/lib/neutral/DebugSettings-RKYNQIKH.mjs.map +7 -0
  16. package/dist/lib/neutral/DebugSpaceObjectsPanel-BHOCFWDJ.mjs +34 -0
  17. package/dist/lib/neutral/DebugSpaceObjectsPanel-BHOCFWDJ.mjs.map +7 -0
  18. package/dist/lib/neutral/DebugStatus-H2BAHN26.mjs +122 -0
  19. package/dist/lib/neutral/DebugStatus-H2BAHN26.mjs.map +7 -0
  20. package/dist/lib/neutral/DevtoolsOverviewContainer-YX7Z3D2H.mjs +23 -0
  21. package/dist/lib/neutral/DevtoolsOverviewContainer-YX7Z3D2H.mjs.map +7 -0
  22. package/dist/lib/neutral/GithubPanel-QJKDJRVQ.mjs +177 -0
  23. package/dist/lib/neutral/GithubPanel-QJKDJRVQ.mjs.map +7 -0
  24. package/dist/lib/neutral/RegistryPanel-64GIYJHN.mjs +161 -0
  25. package/dist/lib/neutral/RegistryPanel-64GIYJHN.mjs.map +7 -0
  26. package/dist/lib/neutral/SpaceGenerator-Y35G6DRV.mjs +146 -0
  27. package/dist/lib/neutral/SpaceGenerator-Y35G6DRV.mjs.map +7 -0
  28. package/dist/lib/neutral/Wireframe-WD7S2AUU.mjs +52 -0
  29. package/dist/lib/neutral/Wireframe-WD7S2AUU.mjs.map +7 -0
  30. package/dist/lib/neutral/app-graph-builder-XYLTBYKN.mjs +612 -0
  31. package/dist/lib/neutral/app-graph-builder-XYLTBYKN.mjs.map +7 -0
  32. package/dist/lib/neutral/capabilities/index.mjs +15 -0
  33. package/dist/lib/neutral/capabilities/index.mjs.map +7 -0
  34. package/dist/lib/neutral/chunk-HOV6MV5B.mjs +43 -0
  35. package/dist/lib/neutral/chunk-HOV6MV5B.mjs.map +7 -0
  36. package/dist/lib/neutral/chunk-J5LGTIGS.mjs +10 -0
  37. package/dist/lib/neutral/chunk-J5LGTIGS.mjs.map +7 -0
  38. package/dist/lib/{browser/chunk-SRV2AIGJ.mjs → neutral/chunk-UAAGABXZ.mjs} +31 -9
  39. package/dist/lib/neutral/chunk-UAAGABXZ.mjs.map +7 -0
  40. package/dist/lib/{browser/SpaceGenerator-VMWHGAJZ.mjs → neutral/components/index.mjs} +342 -529
  41. package/dist/lib/neutral/components/index.mjs.map +7 -0
  42. package/dist/lib/neutral/containers/index.mjs +25 -0
  43. package/dist/lib/neutral/containers/index.mjs.map +7 -0
  44. package/dist/lib/neutral/index.mjs +18 -0
  45. package/dist/lib/neutral/index.mjs.map +7 -0
  46. package/dist/lib/neutral/meta.json +1 -0
  47. package/dist/lib/neutral/meta.mjs +8 -0
  48. package/dist/lib/neutral/meta.mjs.map +7 -0
  49. package/dist/lib/neutral/plugin.mjs +12 -0
  50. package/dist/lib/neutral/plugin.mjs.map +7 -0
  51. package/dist/lib/neutral/react-context-MUZ3KVLU.mjs +17 -0
  52. package/dist/lib/neutral/react-context-MUZ3KVLU.mjs.map +7 -0
  53. package/dist/lib/neutral/react-surface-3MDMZGCA.mjs +425 -0
  54. package/dist/lib/neutral/react-surface-3MDMZGCA.mjs.map +7 -0
  55. package/dist/lib/neutral/settings-MPM6YUP4.mjs +28 -0
  56. package/dist/lib/neutral/settings-MPM6YUP4.mjs.map +7 -0
  57. package/dist/lib/neutral/translations.mjs +91 -0
  58. package/dist/lib/neutral/translations.mjs.map +7 -0
  59. package/dist/lib/neutral/types/index.mjs +14 -0
  60. package/dist/lib/neutral/types/index.mjs.map +7 -0
  61. package/dist/types/src/DebugPlugin.d.ts +4 -1
  62. package/dist/types/src/DebugPlugin.d.ts.map +1 -1
  63. package/dist/types/src/DebugPlugin.node.d.ts +5 -0
  64. package/dist/types/src/DebugPlugin.node.d.ts.map +1 -0
  65. package/dist/types/src/DebugPlugin.test.d.ts +2 -0
  66. package/dist/types/src/DebugPlugin.test.d.ts.map +1 -0
  67. package/dist/types/src/DebugPlugin.workerd.d.ts +5 -0
  68. package/dist/types/src/DebugPlugin.workerd.d.ts.map +1 -0
  69. package/dist/types/src/capabilities/app-graph-builder.d.ts +4 -2
  70. package/dist/types/src/capabilities/app-graph-builder.d.ts.map +1 -1
  71. package/dist/types/src/capabilities/index.d.ts +8 -5
  72. package/dist/types/src/capabilities/index.d.ts.map +1 -1
  73. package/dist/types/src/capabilities/react-context.d.ts +4 -2
  74. package/dist/types/src/capabilities/react-context.d.ts.map +1 -1
  75. package/dist/types/src/capabilities/react-surface.d.ts +7 -2
  76. package/dist/types/src/capabilities/react-surface.d.ts.map +1 -1
  77. package/dist/types/src/capabilities/settings.d.ts +5 -2
  78. package/dist/types/src/capabilities/settings.d.ts.map +1 -1
  79. package/dist/types/src/components/DebugSettings/DebugSettings.d.ts +11 -0
  80. package/dist/types/src/components/DebugSettings/DebugSettings.d.ts.map +1 -0
  81. package/dist/types/src/components/DebugSettings/DebugSettings.stories.d.ts +106 -0
  82. package/dist/types/src/components/DebugSettings/DebugSettings.stories.d.ts.map +1 -0
  83. package/dist/types/src/components/DebugSettings/index.d.ts +2 -0
  84. package/dist/types/src/components/DebugSettings/index.d.ts.map +1 -0
  85. package/dist/types/src/components/SchemaTable/SchemaTable.d.ts.map +1 -0
  86. package/dist/types/src/components/SchemaTable/index.d.ts +2 -0
  87. package/dist/types/src/components/SchemaTable/index.d.ts.map +1 -0
  88. package/dist/types/src/components/SpaceGenerator/ObjectGenerator.d.ts +4 -5
  89. package/dist/types/src/components/SpaceGenerator/ObjectGenerator.d.ts.map +1 -1
  90. package/dist/types/src/components/SpaceGenerator/draw-util.d.ts.map +1 -1
  91. package/dist/types/src/components/SpaceGenerator/index.d.ts +2 -2
  92. package/dist/types/src/components/SpaceGenerator/index.d.ts.map +1 -1
  93. package/dist/types/src/components/SpaceGenerator/presets.d.ts +2 -5
  94. package/dist/types/src/components/SpaceGenerator/presets.d.ts.map +1 -1
  95. package/dist/types/src/components/index.d.ts +4 -10
  96. package/dist/types/src/components/index.d.ts.map +1 -1
  97. package/dist/types/src/containers/DebugGraph/DebugGraph.d.ts +8 -0
  98. package/dist/types/src/containers/DebugGraph/DebugGraph.d.ts.map +1 -0
  99. package/dist/types/src/containers/DebugGraph/index.d.ts +2 -0
  100. package/dist/types/src/containers/DebugGraph/index.d.ts.map +1 -0
  101. package/dist/types/src/containers/DebugObjectPanel/DebugObjectPanel.d.ts +6 -0
  102. package/dist/types/src/containers/DebugObjectPanel/DebugObjectPanel.d.ts.map +1 -0
  103. package/dist/types/src/containers/DebugObjectPanel/index.d.ts +2 -0
  104. package/dist/types/src/containers/DebugObjectPanel/index.d.ts.map +1 -0
  105. package/dist/types/src/containers/DebugSpaceObjectsPanel/DebugSpaceObjectsPanel.d.ts +5 -0
  106. package/dist/types/src/containers/DebugSpaceObjectsPanel/DebugSpaceObjectsPanel.d.ts.map +1 -0
  107. package/dist/types/src/containers/DebugSpaceObjectsPanel/index.d.ts +2 -0
  108. package/dist/types/src/containers/DebugSpaceObjectsPanel/index.d.ts.map +1 -0
  109. package/dist/types/src/containers/DebugStatus/DebugStatus.d.ts.map +1 -0
  110. package/dist/types/src/containers/DebugStatus/index.d.ts +2 -0
  111. package/dist/types/src/containers/DebugStatus/index.d.ts.map +1 -0
  112. package/dist/types/src/{components → containers/DevtoolsOverviewContainer}/DevtoolsOverviewContainer.d.ts +0 -1
  113. package/dist/types/src/containers/DevtoolsOverviewContainer/DevtoolsOverviewContainer.d.ts.map +1 -0
  114. package/dist/types/src/containers/DevtoolsOverviewContainer/index.d.ts +2 -0
  115. package/dist/types/src/containers/DevtoolsOverviewContainer/index.d.ts.map +1 -0
  116. package/dist/types/src/containers/GithubPanel/GithubComponent.d.ts +15 -0
  117. package/dist/types/src/containers/GithubPanel/GithubComponent.d.ts.map +1 -0
  118. package/dist/types/src/containers/GithubPanel/GithubComponent.stories.d.ts +106 -0
  119. package/dist/types/src/containers/GithubPanel/GithubComponent.stories.d.ts.map +1 -0
  120. package/dist/types/src/containers/GithubPanel/GithubPanel.d.ts +3 -0
  121. package/dist/types/src/containers/GithubPanel/GithubPanel.d.ts.map +1 -0
  122. package/dist/types/src/containers/GithubPanel/index.d.ts +2 -0
  123. package/dist/types/src/containers/GithubPanel/index.d.ts.map +1 -0
  124. package/dist/types/src/containers/RegistryPanel/RegistryPanel.d.ts +3 -0
  125. package/dist/types/src/containers/RegistryPanel/RegistryPanel.d.ts.map +1 -0
  126. package/dist/types/src/containers/RegistryPanel/index.d.ts +2 -0
  127. package/dist/types/src/containers/RegistryPanel/index.d.ts.map +1 -0
  128. package/dist/types/src/containers/SpaceGenerator/SpaceGenerator.d.ts +11 -0
  129. package/dist/types/src/containers/SpaceGenerator/SpaceGenerator.d.ts.map +1 -0
  130. package/dist/types/src/containers/SpaceGenerator/index.d.ts +2 -0
  131. package/dist/types/src/containers/SpaceGenerator/index.d.ts.map +1 -0
  132. package/dist/types/src/{components → containers/Wireframe}/Wireframe.d.ts +2 -2
  133. package/dist/types/src/containers/Wireframe/Wireframe.d.ts.map +1 -0
  134. package/dist/types/src/containers/Wireframe/index.d.ts +2 -0
  135. package/dist/types/src/containers/Wireframe/index.d.ts.map +1 -0
  136. package/dist/types/src/containers/index.d.ts +11 -0
  137. package/dist/types/src/containers/index.d.ts.map +1 -0
  138. package/dist/types/src/index.d.ts +1 -1
  139. package/dist/types/src/index.d.ts.map +1 -1
  140. package/dist/types/src/meta.d.ts +2 -2
  141. package/dist/types/src/meta.d.ts.map +1 -1
  142. package/dist/types/src/plugin.d.ts +4 -0
  143. package/dist/types/src/plugin.d.ts.map +1 -0
  144. package/dist/types/src/translations.d.ts +87 -59
  145. package/dist/types/src/translations.d.ts.map +1 -1
  146. package/dist/types/src/types/Settings.d.ts +8 -0
  147. package/dist/types/src/types/Settings.d.ts.map +1 -0
  148. package/dist/types/src/types/index.d.ts +70 -0
  149. package/dist/types/src/types/index.d.ts.map +1 -0
  150. package/dist/types/tsconfig.tsbuildinfo +1 -1
  151. package/package.json +125 -78
  152. package/src/DebugPlugin.node.ts +18 -0
  153. package/src/DebugPlugin.test.ts +29 -0
  154. package/src/DebugPlugin.tsx +34 -34
  155. package/src/DebugPlugin.workerd.ts +12 -0
  156. package/src/capabilities/app-graph-builder.ts +390 -388
  157. package/src/capabilities/index.ts +5 -5
  158. package/src/capabilities/react-context.tsx +16 -7
  159. package/src/capabilities/react-surface.tsx +386 -339
  160. package/src/capabilities/settings.ts +24 -12
  161. package/src/components/DebugSettings/DebugSettings.stories.tsx +36 -0
  162. package/src/components/DebugSettings/DebugSettings.tsx +259 -0
  163. package/src/components/DebugSettings/index.ts +5 -0
  164. package/src/components/SchemaTable/index.ts +5 -0
  165. package/src/components/SpaceGenerator/ObjectGenerator.tsx +38 -44
  166. package/src/components/SpaceGenerator/draw-util.ts +8 -8
  167. package/src/components/SpaceGenerator/index.ts +2 -3
  168. package/src/components/SpaceGenerator/presets.ts +240 -140
  169. package/src/components/index.ts +4 -8
  170. package/src/containers/DebugGraph/DebugGraph.tsx +14 -0
  171. package/src/containers/DebugGraph/index.ts +5 -0
  172. package/src/containers/DebugObjectPanel/DebugObjectPanel.tsx +76 -0
  173. package/src/containers/DebugObjectPanel/index.ts +5 -0
  174. package/src/containers/DebugSpaceObjectsPanel/DebugSpaceObjectsPanel.tsx +47 -0
  175. package/src/containers/DebugSpaceObjectsPanel/index.ts +5 -0
  176. package/src/{components → containers/DebugStatus}/DebugStatus.tsx +42 -19
  177. package/src/containers/DebugStatus/index.ts +5 -0
  178. package/src/containers/DevtoolsOverviewContainer/DevtoolsOverviewContainer.tsx +25 -0
  179. package/src/containers/DevtoolsOverviewContainer/index.ts +5 -0
  180. package/src/containers/GithubPanel/GithubComponent.stories.tsx +38 -0
  181. package/src/containers/GithubPanel/GithubComponent.tsx +192 -0
  182. package/src/containers/GithubPanel/GithubPanel.tsx +17 -0
  183. package/src/containers/GithubPanel/index.ts +5 -0
  184. package/src/containers/RegistryPanel/RegistryPanel.tsx +150 -0
  185. package/src/containers/RegistryPanel/index.ts +5 -0
  186. package/src/containers/SpaceGenerator/SpaceGenerator.tsx +127 -0
  187. package/src/containers/SpaceGenerator/index.ts +5 -0
  188. package/src/{components → containers/Wireframe}/Wireframe.tsx +7 -12
  189. package/src/containers/Wireframe/index.ts +5 -0
  190. package/src/containers/index.ts +15 -0
  191. package/src/index.ts +1 -1
  192. package/src/meta.ts +29 -6
  193. package/src/plugin.ts +10 -0
  194. package/src/translations.ts +83 -58
  195. package/src/types/Settings.ts +16 -0
  196. package/src/{types.ts → types/index.ts} +21 -11
  197. package/src/vite-env.d.ts +10 -0
  198. package/dist/lib/browser/DebugGraph-EDOH6R2G.mjs +0 -20
  199. package/dist/lib/browser/DebugGraph-EDOH6R2G.mjs.map +0 -7
  200. package/dist/lib/browser/DevtoolsOverviewContainer-EPD6EWT5.mjs +0 -25
  201. package/dist/lib/browser/DevtoolsOverviewContainer-EPD6EWT5.mjs.map +0 -7
  202. package/dist/lib/browser/SpaceGenerator-VMWHGAJZ.mjs.map +0 -7
  203. package/dist/lib/browser/app-graph-builder-I4IHBKKN.mjs +0 -588
  204. package/dist/lib/browser/app-graph-builder-I4IHBKKN.mjs.map +0 -7
  205. package/dist/lib/browser/chunk-SRV2AIGJ.mjs.map +0 -7
  206. package/dist/lib/browser/chunk-SVCKCXCL.mjs +0 -16
  207. package/dist/lib/browser/chunk-SVCKCXCL.mjs.map +0 -7
  208. package/dist/lib/browser/index.mjs +0 -131
  209. package/dist/lib/browser/index.mjs.map +0 -7
  210. package/dist/lib/browser/meta.json +0 -1
  211. package/dist/lib/browser/react-context-QLZE7VSQ.mjs +0 -16
  212. package/dist/lib/browser/react-context-QLZE7VSQ.mjs.map +0 -7
  213. package/dist/lib/browser/react-surface-GFORPA3A.mjs +0 -772
  214. package/dist/lib/browser/react-surface-GFORPA3A.mjs.map +0 -7
  215. package/dist/lib/browser/settings-EBVICEEW.mjs +0 -22
  216. package/dist/lib/browser/settings-EBVICEEW.mjs.map +0 -7
  217. package/dist/types/src/components/Container.d.ts +0 -5
  218. package/dist/types/src/components/Container.d.ts.map +0 -1
  219. package/dist/types/src/components/DebugGraph.d.ts +0 -8
  220. package/dist/types/src/components/DebugGraph.d.ts.map +0 -1
  221. package/dist/types/src/components/DebugObjectPanel.d.ts +0 -7
  222. package/dist/types/src/components/DebugObjectPanel.d.ts.map +0 -1
  223. package/dist/types/src/components/DebugSettings.d.ts +0 -6
  224. package/dist/types/src/components/DebugSettings.d.ts.map +0 -1
  225. package/dist/types/src/components/DebugStatus.d.ts.map +0 -1
  226. package/dist/types/src/components/DevtoolsOverviewContainer.d.ts.map +0 -1
  227. package/dist/types/src/components/SpaceGenerator/SchemaTable.d.ts.map +0 -1
  228. package/dist/types/src/components/SpaceGenerator/SpaceGenerator.d.ts +0 -9
  229. package/dist/types/src/components/SpaceGenerator/SpaceGenerator.d.ts.map +0 -1
  230. package/dist/types/src/components/SpaceGenerator/SpaceGenerator.stories.d.ts +0 -15
  231. package/dist/types/src/components/SpaceGenerator/SpaceGenerator.stories.d.ts.map +0 -1
  232. package/dist/types/src/components/Wireframe.d.ts.map +0 -1
  233. package/dist/types/src/types.d.ts +0 -63
  234. package/dist/types/src/types.d.ts.map +0 -1
  235. package/src/components/Container.tsx +0 -15
  236. package/src/components/DebugGraph.tsx +0 -14
  237. package/src/components/DebugObjectPanel.tsx +0 -33
  238. package/src/components/DebugSettings.tsx +0 -159
  239. package/src/components/DevtoolsOverviewContainer.tsx +0 -20
  240. package/src/components/SpaceGenerator/SpaceGenerator.stories.tsx +0 -52
  241. package/src/components/SpaceGenerator/SpaceGenerator.tsx +0 -122
  242. /package/dist/types/src/components/{SpaceGenerator → SchemaTable}/SchemaTable.d.ts +0 -0
  243. /package/dist/types/src/{components → containers/DebugStatus}/DebugStatus.d.ts +0 -0
  244. /package/src/components/{SpaceGenerator → SchemaTable}/SchemaTable.tsx +0 -0
@@ -4,15 +4,15 @@
4
4
 
5
5
  import * as Schema from 'effect/Schema';
6
6
 
7
- import { RESEARCH_BLUEPRINT, agent, entityExtraction } from '@dxos/assistant-testing';
8
- import { Prompt } from '@dxos/blueprints';
7
+ import { AgentPrompt, WebSearchBlueprint } from '@dxos/assistant-toolkit';
8
+ import { Routine, Trigger, Operation } from '@dxos/compute';
9
9
  import { type ComputeGraphModel, NODE_INPUT } from '@dxos/conductor';
10
- import { DXN, Filter, Key, Obj, Query, Ref, Tag, Type } from '@dxos/echo';
11
- import { FunctionTrigger, type TriggerKind, type TriggerType, serializeFunction } from '@dxos/functions';
10
+ import { Feed, Filter, JsonSchema, Key, Obj, Query, type QueryAST, Ref, Scope, Tag } from '@dxos/echo';
12
11
  import { invariant } from '@dxos/invariant';
13
- import { sync } from '@dxos/plugin-inbox';
14
- import { Mailbox } from '@dxos/plugin-inbox/types';
15
- import { Markdown } from '@dxos/plugin-markdown/types';
12
+ import { EID } from '@dxos/keys';
13
+ import { InboxOperation } from '@dxos/plugin-inbox';
14
+ import { Mailbox } from '@dxos/plugin-inbox';
15
+ import { Markdown } from '@dxos/plugin-markdown';
16
16
  import { type Space } from '@dxos/react-client/echo';
17
17
  import {
18
18
  type ComputeShape,
@@ -20,24 +20,19 @@ import {
20
20
  createChat,
21
21
  createComputeGraph,
22
22
  createConstant,
23
+ createFeed,
23
24
  createFunction,
24
25
  createGpt,
25
- createQueue,
26
26
  createRandom,
27
27
  createSurface,
28
28
  createTemplate,
29
29
  createText,
30
30
  createTrigger,
31
31
  } from '@dxos/react-ui-canvas-compute';
32
- import {
33
- CanvasBoardType,
34
- CanvasGraphModel,
35
- pointMultiply,
36
- pointsToRect,
37
- rectToPoints,
38
- } from '@dxos/react-ui-canvas-editor';
39
- import { DataType, createView } from '@dxos/schema';
40
- import { range } from '@dxos/util';
32
+ import { CanvasBoard, CanvasGraphModel, pointMultiply, pointsToRect, rectToPoints } from '@dxos/react-ui-canvas-editor';
33
+ import { ViewModel } from '@dxos/schema';
34
+ import { Message, Organization, Person, Pipeline } from '@dxos/types';
35
+ import { range, trim } from '@dxos/util';
41
36
 
42
37
  import { type ObjectGenerator } from './ObjectGenerator';
43
38
 
@@ -49,34 +44,41 @@ export enum PresetName {
49
44
  CHAT_GPT = 'chat-gpt-text',
50
45
  // EMAIL_WITH_SUMMARY = 'email-gptSummary-table',
51
46
  OBJECT_CHANGE_QUEUE = 'objectChange-queue',
52
- FOREX_FUNCTION_CALL = 'forex-function-call',
53
47
  TIMER_TICK_QUEUE = 'timerTick-queue',
48
+ FOREX_FUNCTION_CALL = 'forex-function-call',
54
49
  DISCORD_MESSAGES = 'discord-messages',
55
50
  // KANBAN_QUEUE = 'kanban-queue',
56
51
  }
57
52
 
58
53
  export const generator = () => ({
59
- schemas: [CanvasBoardType, FunctionTrigger],
54
+ schemas: [CanvasBoard.CanvasBoard, Trigger.Trigger] as any[],
60
55
  types: Object.values(PresetName).map((name) => ({ typename: name })),
61
56
  items: [
62
57
  [
63
58
  PresetName.DXOS_TEAM,
64
59
  async (space, n, cb) => {
65
60
  const objects = range(n, () => {
66
- const tag = space.db.add(Tag.make({ label: 'Investor' }));
67
- const tagDxn = Obj.getDXN(tag).toString();
68
-
69
- const org = space.db.add(Obj.make(DataType.Organization, { name: 'DXOS', website: 'https://dxos.org' }));
70
-
61
+ const org = space.db.add(
62
+ Obj.make(Organization.Organization, {
63
+ name: 'DXOS',
64
+ website: 'https://dxos.org',
65
+ }),
66
+ );
71
67
  const doc = space.db.add(
72
- Markdown.makeDocument({
68
+ Markdown.make({
73
69
  name: 'DXOS Research',
74
70
  content: 'DXOS builds Composer, an open-source AI-powered malleable application.',
75
71
  }),
76
72
  );
77
- Obj.getMeta(doc).tags = [tagDxn];
73
+
74
+ const tag = space.db.add(Tag.make({ label: 'Investor' }));
75
+ const tagRef = Ref.make(tag);
76
+ Obj.update(doc, (doc) => {
77
+ Obj.getMeta(doc).tags = [tagRef];
78
+ });
79
+
78
80
  // space.db.add(
79
- // Relation.make(ResearchOn, {
81
+ // Relation.make(HasSubject, {
80
82
  // [Relation.Source]: doc,
81
83
  // [Relation.Target]: org,
82
84
  // completedAt: new Date().toISOString(),
@@ -84,12 +86,26 @@ export const generator = () => ({
84
86
  // );
85
87
 
86
88
  space.db.add(
87
- Obj.make(DataType.Person, { fullName: 'Rich', organization: Ref.make(org) }, { tags: [tagDxn] }),
89
+ Obj.make(Person.Person, { [Obj.Meta]: { tags: [tagRef] }, fullName: 'Rich', organization: Ref.make(org) }),
90
+ );
91
+ space.db.add(
92
+ Obj.make(Person.Person, {
93
+ fullName: 'Josiah',
94
+ organization: Ref.make(org),
95
+ }),
96
+ );
97
+ space.db.add(
98
+ Obj.make(Person.Person, {
99
+ fullName: 'Dima',
100
+ organization: Ref.make(org),
101
+ }),
102
+ );
103
+ space.db.add(
104
+ Obj.make(Person.Person, {
105
+ fullName: 'Mykola',
106
+ organization: Ref.make(org),
107
+ }),
88
108
  );
89
- space.db.add(Obj.make(DataType.Person, { fullName: 'Josiah', organization: Ref.make(org) }));
90
- space.db.add(Obj.make(DataType.Person, { fullName: 'Dima', organization: Ref.make(org) }));
91
- space.db.add(Obj.make(DataType.Person, { fullName: 'Mykola', organization: Ref.make(org) }));
92
- space.db.add(Obj.make(DataType.Person, { fullName: 'Will', organization: Ref.make(org) }));
93
109
 
94
110
  return doc;
95
111
  });
@@ -100,44 +116,34 @@ export const generator = () => ({
100
116
  [
101
117
  PresetName.ORG_RESEARCH_PROJECT,
102
118
  async (space, n, cb) => {
103
- const mailbox = await space.db.query(Filter.type(Mailbox.Mailbox)).first();
119
+ const mailboxes = await space.db.query(Filter.type(Mailbox.Mailbox)).run();
120
+ const mailbox = mailboxes[0];
121
+ invariant(mailbox, 'Mailbox not found');
122
+ const mailboxFeed = await mailbox.feed?.tryLoad();
123
+ invariant(mailboxFeed, 'Mailbox missing feed reference');
124
+ const queueDxn = Feed.getQueueUri(mailboxFeed);
125
+ invariant(queueDxn, 'Mailbox feed missing queue DXN key');
104
126
  const tag = await space.db.query(Filter.type(Tag.Tag, { label: 'Investor' })).first();
105
- const tagDxn = Obj.getDXN(tag).toString();
127
+ const tagUri = Obj.getURI(tag);
106
128
 
107
129
  const objects = range(n, () => {
108
- const contactsQuery = Query.select(Filter.type(DataType.Person)).select(Filter.tag(tagDxn));
109
- const organizationsQuery = Query.select(Filter.type(DataType.Organization)).select(Filter.tag(tagDxn));
110
- const notesQuery = Query.select(Filter.type(Markdown.Document)).select(Filter.tag(tagDxn));
111
-
112
- const emailSyncTrigger = Obj.make(FunctionTrigger, {
113
- enabled: true,
114
- spec: {
115
- kind: 'timer',
116
- cron: '* * * * *', // Every minute.
117
- },
118
- function: Ref.make(serializeFunction(sync)),
119
- input: {
120
- mailboxId: Obj.getDXN(mailbox).toString(),
121
- },
122
- });
123
- space.db.add(emailSyncTrigger);
124
-
125
- const contactExtractionTrigger = Obj.make(FunctionTrigger, {
126
- enabled: true,
127
- // TODO(wittjosiah): Queue trigger doesn't support matching query of the column.
128
- spec: {
129
- kind: 'queue',
130
- queue: mailbox.queue.dxn.toString(),
131
- },
132
- function: Ref.make(serializeFunction(entityExtraction)),
133
- input: {
134
- source: '{{event.item}}',
135
- },
136
- });
137
- space.db.add(contactExtractionTrigger);
130
+ const contactsQuery = Query.select(Filter.type(Person.Person)).select(Filter.tag(tagUri));
131
+ const organizationsQuery = Query.select(Filter.type(Organization.Organization)).select(Filter.tag(tagUri));
132
+ const notesQuery = Query.select(Filter.type(Markdown.Document)).select(Filter.tag(tagUri));
133
+
134
+ space.db.add(
135
+ Trigger.make({
136
+ enabled: true,
137
+ spec: Trigger.specTimer('* * * * *'), // Every minute.
138
+ function: Ref.make(Operation.serialize(InboxOperation.GoogleMailSync)),
139
+ input: {
140
+ mailbox: Ref.make(mailbox),
141
+ },
142
+ }),
143
+ );
138
144
 
139
145
  const researchPrompt = space.db.add(
140
- Prompt.make({
146
+ Routine.make({
141
147
  name: 'Research',
142
148
  description: 'Research organization',
143
149
  input: Schema.Struct({
@@ -147,64 +153,77 @@ export const generator = () => ({
147
153
 
148
154
  // TODO(dmaretskyi): This mocks research (returns pre-baked result), the actual research might take compute minutes.
149
155
  // Remove the mock prompt to do the actual research.
150
- instructions:
151
- 'Research the organization provided as input. Create a research note for it at the end. NOTE: Do mocked reseach (set mockSearch to true).',
152
- blueprints: [Ref.make(RESEARCH_BLUEPRINT)],
156
+ instructions: trim`
157
+ Research the organization provided as input.
158
+ Create a research note for it at the end.
159
+ NOTE: Do mocked reseach (set mockSearch to true).
160
+ `,
161
+ blueprints: [Ref.make(WebSearchBlueprint.make())],
153
162
  }),
154
163
  );
155
164
 
156
- const researchTrigger = Obj.make(FunctionTrigger, {
157
- enabled: true,
158
- spec: {
159
- kind: 'subscription',
160
- query: {
161
- ast: organizationsQuery.ast,
165
+ space.db.add(
166
+ Trigger.make({
167
+ enabled: true,
168
+ spec: Trigger.specSubscription(organizationsQuery),
169
+ function: Ref.make(Operation.serialize(AgentPrompt)),
170
+ input: {
171
+ prompt: Ref.make(researchPrompt),
172
+ input: '{{event.subject}}',
162
173
  },
163
- },
164
- function: Ref.make(serializeFunction(agent)),
165
- input: {
166
- prompt: Ref.make(researchPrompt),
167
- input: '{{event.subject}}',
168
- },
169
- });
170
- space.db.add(researchTrigger);
174
+ }),
175
+ );
171
176
 
172
- const mailboxView = createView({
173
- name: 'Mailbox',
177
+ const mailboxView = ViewModel.make({
174
178
  query: Query.select(
175
- Filter.type(DataType.Message, { properties: { labels: Filter.contains('investor') } }),
176
- ).options({
177
- queues: [mailbox.queue.dxn.toString()],
178
- }),
179
- jsonSchema: Type.toJsonSchema(DataType.Message),
180
- presentation: Obj.make(DataType.Collection, { objects: [] }),
179
+ Filter.type(Message.Message, {
180
+ properties: { labels: Filter.contains('investor') },
181
+ }),
182
+ ).from(Scope.feed(Obj.getURI(mailboxFeed))),
183
+ jsonSchema: JsonSchema.toJsonSchema(Message.Message),
181
184
  });
182
- const contactsView = createView({
183
- name: 'Contacts',
185
+ const contactsView = ViewModel.make({
184
186
  query: contactsQuery,
185
- jsonSchema: Type.toJsonSchema(DataType.Person),
186
- presentation: Obj.make(DataType.Collection, { objects: [] }),
187
+ jsonSchema: JsonSchema.toJsonSchema(Person.Person),
187
188
  });
188
- const organizationsView = createView({
189
- name: 'Organizations',
189
+ const organizationsView = ViewModel.make({
190
190
  query: organizationsQuery,
191
- jsonSchema: Type.toJsonSchema(DataType.Organization),
192
- presentation: Obj.make(DataType.Collection, { objects: [] }),
191
+ jsonSchema: JsonSchema.toJsonSchema(Organization.Organization),
193
192
  });
194
- const notesView = createView({
195
- name: 'Notes',
193
+ const notesView = ViewModel.make({
196
194
  query: notesQuery,
197
- jsonSchema: Type.toJsonSchema(Markdown.Document),
198
- presentation: Obj.make(DataType.Collection, { objects: [] }),
195
+ jsonSchema: JsonSchema.toJsonSchema(Markdown.Document),
199
196
  });
200
197
 
201
198
  return space.db.add(
202
- DataType.makeProject({
199
+ Pipeline.make({
203
200
  name: 'Investor Research',
204
- collections: [mailboxView, contactsView, organizationsView, notesView].map((view) => Ref.make(view)),
201
+ columns: [
202
+ {
203
+ name: 'Mailbox',
204
+ view: Ref.make(mailboxView),
205
+ order: [],
206
+ },
207
+ {
208
+ name: 'Contacts',
209
+ view: Ref.make(contactsView),
210
+ order: [],
211
+ },
212
+ {
213
+ name: 'Organizations',
214
+ view: Ref.make(organizationsView),
215
+ order: [],
216
+ },
217
+ {
218
+ name: 'Notes',
219
+ view: Ref.make(notesView),
220
+ order: [],
221
+ },
222
+ ],
205
223
  }),
206
224
  );
207
225
  });
226
+
208
227
  cb?.(objects.flat());
209
228
  return objects.flat();
210
229
  },
@@ -215,7 +234,7 @@ export const generator = () => ({
215
234
  const objects = range(n, () => {
216
235
  const canvasModel = CanvasGraphModel.create<ComputeShape>();
217
236
 
218
- let functionTrigger: FunctionTrigger | undefined;
237
+ let functionTrigger: Trigger.Trigger | undefined;
219
238
  canvasModel.builder.call((builder) => {
220
239
  const gpt = canvasModel.createNode(createGpt(position({ x: 0, y: -14 })));
221
240
  const triggerShape = createTrigger({
@@ -229,10 +248,24 @@ export const generator = () => ({
229
248
  const append = canvasModel.createNode(createAppend(position({ x: 10, y: 6 })));
230
249
 
231
250
  builder
232
- .createEdge({ source: trigger.id, target: gpt.id, input: 'prompt', output: 'bodyText' })
251
+ .createEdge({
252
+ source: trigger.id,
253
+ target: gpt.id,
254
+ input: 'prompt',
255
+ output: 'bodyText',
256
+ })
233
257
  .createEdge({ source: gpt.id, target: text.id, output: 'text' })
234
- .createEdge({ source: queueId.id, target: append.id, input: 'id' })
235
- .createEdge({ source: gpt.id, target: append.id, output: 'messages', input: 'items' });
258
+ .createEdge({
259
+ source: queueId.id,
260
+ target: append.id,
261
+ input: 'id',
262
+ })
263
+ .createEdge({
264
+ source: gpt.id,
265
+ target: append.id,
266
+ output: 'messages',
267
+ input: 'items',
268
+ });
236
269
 
237
270
  functionTrigger = triggerShape.functionTrigger!.target!;
238
271
  });
@@ -257,7 +290,7 @@ export const generator = () => ({
257
290
  'subscription',
258
291
  (triggerSpec) =>
259
292
  (triggerSpec.query = {
260
- ast: Query.select(Filter.typename('dxos.org/type/Chess')).ast,
293
+ ast: Query.select(Filter.typename('org.dxos.type.chess')).ast as Obj.Mutable<QueryAST.Query>,
261
294
  }),
262
295
  'type',
263
296
  );
@@ -342,7 +375,7 @@ export const generator = () => ({
342
375
  // const templateComputeNode = computeModel.nodes.find((n) => n.id === template.node);
343
376
  // invariant(templateComputeNode, 'Template compute node was not created.');
344
377
  // templateComputeNode.value = templateContent.join('\n');
345
- // templateComputeNode.inputSchema = Type.toJsonSchema(EmailTriggerOutput);
378
+ // templateComputeNode.inputSchema = JsonSchema.toJsonSchema(EmailTriggerOutput);
346
379
 
347
380
  // attachTrigger(functionTrigger, computeModel);
348
381
 
@@ -370,8 +403,17 @@ export const generator = () => ({
370
403
  builder
371
404
  .createEdge({ source: chat.id, target: gpt.id, input: 'prompt' })
372
405
  .createEdge({ source: gpt.id, target: text.id, output: 'text' })
373
- .createEdge({ source: queueId.id, target: append.id, input: 'id' })
374
- .createEdge({ source: gpt.id, target: append.id, output: 'messages', input: 'items' });
406
+ .createEdge({
407
+ source: queueId.id,
408
+ target: append.id,
409
+ input: 'id',
410
+ })
411
+ .createEdge({
412
+ source: gpt.id,
413
+ target: append.id,
414
+ output: 'messages',
415
+ input: 'items',
416
+ });
375
417
  });
376
418
 
377
419
  const computeModel = createComputeGraph(canvasModel);
@@ -467,7 +509,7 @@ export const generator = () => ({
467
509
  // invariant(templateComputeNode, 'Template compute node was not created.');
468
510
  // templateComputeNode.value = templateContent.join('\n');
469
511
  // const extendedSchema = Schema.extend(EmailTriggerOutput, Schema.Struct({ text: Schema.String }));
470
- // templateComputeNode.inputSchema = Type.toJsonSchema(extendedSchema);
512
+ // templateComputeNode.inputSchema = JsonSchema.toJsonSchema(extendedSchema);
471
513
 
472
514
  // attachTrigger(functionTrigger, computeModel);
473
515
 
@@ -495,9 +537,21 @@ export const generator = () => ({
495
537
  const view = canvasModel.createNode(createSurface(position({ x: 12, y: 0 })));
496
538
 
497
539
  builder
498
- .createEdge({ source: sourceCurrency.id, target: converter.id, input: 'from' })
499
- .createEdge({ source: targetCurrency.id, target: converter.id, input: 'to' })
500
- .createEdge({ source: converter.id, target: view.id, output: 'rate' });
540
+ .createEdge({
541
+ source: sourceCurrency.id,
542
+ target: converter.id,
543
+ input: 'from',
544
+ })
545
+ .createEdge({
546
+ source: targetCurrency.id,
547
+ target: converter.id,
548
+ input: 'to',
549
+ })
550
+ .createEdge({
551
+ source: converter.id,
552
+ target: view.id,
553
+ output: 'rate',
554
+ });
501
555
  });
502
556
 
503
557
  const computeModel = createComputeGraph(canvasModel);
@@ -515,7 +569,7 @@ export const generator = () => ({
515
569
  const objects = range(n, () => {
516
570
  const canvasModel = CanvasGraphModel.create<ComputeShape>();
517
571
 
518
- let functionTrigger: FunctionTrigger | undefined;
572
+ let functionTrigger: Trigger.Trigger | undefined;
519
573
  canvasModel.builder.call((builder) => {
520
574
  const triggerShape = createTrigger({
521
575
  spaceId: space.id,
@@ -525,24 +579,47 @@ export const generator = () => ({
525
579
  const trigger = canvasModel.createNode(triggerShape);
526
580
  // DXOS dev-null channel.
527
581
  const channelId = canvasModel.createNode(
528
- createConstant({ value: '1088569858767212554', ...position({ x: -10, y: 0 }) }),
582
+ createConstant({
583
+ value: '1088569858767212554',
584
+ ...position({ x: -10, y: 0 }),
585
+ }),
529
586
  );
530
587
  const queueId = canvasModel.createNode(
531
588
  createConstant({
532
- value: new DXN(DXN.kind.QUEUE, ['data', space.id, Key.ObjectId.random()]).toString(),
589
+ value: EID.make({ spaceId: space.id, entityId: Key.EntityId.random() }),
533
590
  ...position({ x: -10, y: 5 }),
534
591
  }),
535
592
  );
536
593
  const converter = canvasModel.createNode(createFunction(position({ x: 0, y: 0 })));
537
594
  const view = canvasModel.createNode(createText(position({ x: 12, y: 0 })));
538
- const queue = canvasModel.createNode(createQueue(position({ x: 0, y: 12 })));
595
+ const queue = canvasModel.createNode(createFeed(position({ x: 0, y: 12 })));
539
596
 
540
597
  builder
541
- .createEdge({ source: trigger.id, target: converter.id, input: 'tick' })
542
- .createEdge({ source: channelId.id, target: converter.id, input: 'channelId' })
543
- .createEdge({ source: queueId.id, target: converter.id, input: 'queueId' })
544
- .createEdge({ source: converter.id, target: view.id, output: 'newMessages' })
545
- .createEdge({ source: queueId.id, target: queue.id, input: 'input' });
598
+ .createEdge({
599
+ source: trigger.id,
600
+ target: converter.id,
601
+ input: 'tick',
602
+ })
603
+ .createEdge({
604
+ source: channelId.id,
605
+ target: converter.id,
606
+ input: 'channelId',
607
+ })
608
+ .createEdge({
609
+ source: queueId.id,
610
+ target: converter.id,
611
+ input: 'queueId',
612
+ })
613
+ .createEdge({
614
+ source: converter.id,
615
+ target: view.id,
616
+ output: 'newMessages',
617
+ })
618
+ .createEdge({
619
+ source: queueId.id,
620
+ target: queue.id,
621
+ input: 'input',
622
+ });
546
623
 
547
624
  functionTrigger = triggerShape.functionTrigger!.target!;
548
625
  });
@@ -609,10 +686,10 @@ export const generator = () => ({
609
686
  ] as [PresetName, ObjectGenerator<any>][],
610
687
  });
611
688
 
612
- const createQueueSinkPreset = <SpecType extends TriggerKind>(
689
+ const createQueueSinkPreset = <SpecType extends Trigger.Kind>(
613
690
  space: Space,
614
691
  triggerKind: SpecType,
615
- initSpec: (spec: Extract<TriggerType, { kind: SpecType }>) => void,
692
+ initSpec: (spec: Obj.Mutable<Extract<Trigger.Spec, { kind: SpecType }>>) => void,
616
693
  triggerOutputName: string,
617
694
  ) => {
618
695
  const canvasModel = CanvasGraphModel.create<ComputeShape>();
@@ -624,7 +701,7 @@ const createQueueSinkPreset = <SpecType extends TriggerKind>(
624
701
  }),
625
702
  );
626
703
 
627
- let functionTrigger: FunctionTrigger | undefined;
704
+ let functionTrigger: Trigger.Trigger | undefined;
628
705
  canvasModel.builder.call((builder) => {
629
706
  const triggerShape = createTrigger({
630
707
  spaceId: space.id,
@@ -645,7 +722,12 @@ const createQueueSinkPreset = <SpecType extends TriggerKind>(
645
722
  builder
646
723
  .createEdge({ source: queueId.id, target: append.id, input: 'id' })
647
724
  .createEdge({ source: template.id, target: append.id, input: 'items' })
648
- .createEdge({ source: trigger.id, target: template.id, output: triggerOutputName, input: 'type' })
725
+ .createEdge({
726
+ source: trigger.id,
727
+ target: template.id,
728
+ output: triggerOutputName,
729
+ input: 'type',
730
+ })
649
731
  .createEdge({
650
732
  source: random.id,
651
733
  target: template.id,
@@ -655,15 +737,20 @@ const createQueueSinkPreset = <SpecType extends TriggerKind>(
655
737
  functionTrigger = triggerShape.functionTrigger!.target!;
656
738
  const triggerSpec = functionTrigger.spec;
657
739
  invariant(triggerSpec && triggerSpec.kind === triggerKind, 'No trigger spec.');
658
- initSpec(triggerSpec as any);
740
+ Obj.update(functionTrigger, (functionTrigger) => {
741
+ initSpec(functionTrigger.spec as any);
742
+ });
659
743
  });
660
744
 
661
745
  const computeModel = createComputeGraph(canvasModel);
662
746
 
663
747
  const templateComputeNode = computeModel.nodes.find((n) => n.id === template.node);
664
748
  invariant(templateComputeNode, 'Template compute node was not created.');
749
+ // NOTE: These are plain object mutations during model construction, not ECHO object mutations.
665
750
  templateComputeNode.value = ['{', ' "@type": "{{type}}",', ' "id": "@{{changeId}}"', '}'].join('\n');
666
- templateComputeNode.inputSchema = Type.toJsonSchema(Schema.Struct({ type: Schema.String, changeId: Schema.String }));
751
+ templateComputeNode.inputSchema = JsonSchema.toJsonSchema(
752
+ Schema.Struct({ type: Schema.String, changeId: Schema.String }),
753
+ );
667
754
  attachTrigger(functionTrigger, computeModel);
668
755
 
669
756
  return { canvasModel, computeModel };
@@ -671,7 +758,7 @@ const createQueueSinkPreset = <SpecType extends TriggerKind>(
671
758
 
672
759
  const addToSpace = (name: string, space: Space, canvas: CanvasGraphModel, compute: ComputeGraphModel) => {
673
760
  return space.db.add(
674
- Obj.make(CanvasBoardType, {
761
+ Obj.make(CanvasBoard.CanvasBoard, {
675
762
  name,
676
763
  computeGraph: Ref.make(compute.root),
677
764
  layout: canvas.graph,
@@ -686,12 +773,12 @@ const setupQueue = (
686
773
  ) => {
687
774
  const queueId = canvasModel.createNode(
688
775
  createConstant({
689
- value: new DXN(DXN.kind.QUEUE, ['data', space.id, Key.ObjectId.random()]).toString(),
776
+ value: EID.make({ spaceId: space.id, entityId: Key.EntityId.random() }),
690
777
  ...(args?.idPosition ? rawPosition(args.idPosition) : position({ x: -18, y: 5, width: 8, height: 6 })),
691
778
  }),
692
779
  );
693
780
  const queue = canvasModel.createNode(
694
- createQueue(
781
+ createFeed(
695
782
  args?.queuePosition ? rawPosition(args.queuePosition) : position({ x: -3, y: 3, width: 14, height: 10 }),
696
783
  ),
697
784
  );
@@ -699,17 +786,27 @@ const setupQueue = (
699
786
  return { queue, queueId };
700
787
  };
701
788
 
702
- const attachTrigger = (functionTrigger: FunctionTrigger | undefined, computeModel: ComputeGraphModel) => {
789
+ const attachTrigger = (functionTrigger: Trigger.Trigger | undefined, computeModel: ComputeGraphModel) => {
703
790
  invariant(functionTrigger);
704
- functionTrigger.function = Ref.make(computeModel.root);
705
791
  const inputNode = computeModel.nodes.find((node) => node.type === NODE_INPUT)!;
706
- functionTrigger.inputNodeId = inputNode.id;
792
+ Obj.update(functionTrigger, (functionTrigger) => {
793
+ functionTrigger.function = Ref.make(computeModel.root);
794
+ functionTrigger.inputNodeId = inputNode.id;
795
+ });
707
796
  };
708
797
 
709
- type RawPositionInput = { centerX: number; centerY: number; width: number; height: number };
798
+ type RawPositionInput = {
799
+ centerX: number;
800
+ centerY: number;
801
+ width: number;
802
+ height: number;
803
+ };
710
804
 
711
805
  const rawPosition = (args: RawPositionInput) => {
712
- return { center: { x: args.centerX, y: args.centerY }, size: { width: args.width, height: args.height } };
806
+ return {
807
+ center: { x: args.centerX, y: args.centerY },
808
+ size: { width: args.width, height: args.height },
809
+ };
713
810
  };
714
811
 
715
812
  const position = (rect: { x: number; y: number; width?: number; height?: number }) => {
@@ -717,7 +814,10 @@ const position = (rect: { x: number; y: number; width?: number; height?: number
717
814
  const [center, size] = rectToPoints({ width: 0, height: 0, ...rect });
718
815
  const { x, y, width, height } = pointsToRect([pointMultiply(center, snap), pointMultiply(size, snap)]);
719
816
  if (width && height) {
720
- return { center: { x, y }, size: width && height ? { width, height } : undefined };
817
+ return {
818
+ center: { x, y },
819
+ size: width && height ? { width, height } : undefined,
820
+ };
721
821
  } else {
722
822
  return { center: { x, y } };
723
823
  }
@@ -2,13 +2,9 @@
2
2
  // Copyright 2023 DXOS.org
3
3
  //
4
4
 
5
- import { lazy } from 'react';
5
+ import { type ComponentType, lazy } from 'react';
6
6
 
7
- export const DebugGraph = lazy(() => import('./DebugGraph'));
8
- export const DevtoolsOverviewContainer = lazy(() => import('./DevtoolsOverviewContainer'));
9
- export const SpaceGenerator = lazy(() => import('./SpaceGenerator'));
7
+ export const DebugSettings: ComponentType<any> = lazy(() => import('./DebugSettings'));
10
8
 
11
- export * from './DebugObjectPanel';
12
- export * from './DebugSettings';
13
- export * from './DebugStatus';
14
- export * from './Wireframe';
9
+ export * from './SchemaTable';
10
+ export * from './SpaceGenerator';
@@ -0,0 +1,14 @@
1
+ //
2
+ // Copyright 2023 DXOS.org
3
+ //
4
+
5
+ import React from 'react';
6
+
7
+ import { Tree } from '@dxos/devtools';
8
+ import { Graph } from '@dxos/plugin-graph';
9
+
10
+ export type DebugGraphProps = { graph: Graph.Graph; root: string };
11
+
12
+ export const DebugGraph = ({ graph, root }: DebugGraphProps) => {
13
+ return <Tree data={Graph.toJSON(graph, root)} />;
14
+ };
@@ -0,0 +1,5 @@
1
+ //
2
+ // Copyright 2023 DXOS.org
3
+ //
4
+
5
+ export { DebugGraph as default } from './DebugGraph';