@dxos/plugin-debug 0.8.4-main.c4373fc → 0.8.4-main.d9fc60f731

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-54FUIZIH.mjs → neutral/components/index.mjs} +343 -530
  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 +245 -151
  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-54FUIZIH.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-BTWJ2I3F.mjs +0 -772
  214. package/dist/lib/browser/react-surface-BTWJ2I3F.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, ResearchOn, 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, Relation, 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,43 +44,68 @@ 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 org = space.db.add(Obj.make(DataType.Organization, { name: 'DXOS', website: 'https://dxos.org' }));
67
-
61
+ const org = space.db.add(
62
+ Obj.make(Organization.Organization, {
63
+ name: 'DXOS',
64
+ website: 'https://dxos.org',
65
+ }),
66
+ );
68
67
  const doc = space.db.add(
69
- Markdown.makeDocument({
68
+ Markdown.make({
70
69
  name: 'DXOS Research',
71
70
  content: 'DXOS builds Composer, an open-source AI-powered malleable application.',
72
71
  }),
73
72
  );
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
+
80
+ // space.db.add(
81
+ // Relation.make(HasSubject, {
82
+ // [Relation.Source]: doc,
83
+ // [Relation.Target]: org,
84
+ // completedAt: new Date().toISOString(),
85
+ // }),
86
+ // );
87
+
88
+ space.db.add(
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
+ );
74
97
  space.db.add(
75
- Relation.make(ResearchOn, {
76
- [Relation.Source]: doc,
77
- [Relation.Target]: org,
78
- completedAt: new Date().toISOString(),
98
+ Obj.make(Person.Person, {
99
+ fullName: 'Dima',
100
+ organization: Ref.make(org),
79
101
  }),
80
102
  );
81
-
82
103
  space.db.add(
83
- Obj.make(DataType.Person, { fullName: 'Rich', jobTitle: 'investor', organization: Ref.make(org) }),
104
+ Obj.make(Person.Person, {
105
+ fullName: 'Mykola',
106
+ organization: Ref.make(org),
107
+ }),
84
108
  );
85
- space.db.add(Obj.make(DataType.Person, { fullName: 'Josiah', organization: Ref.make(org) }));
86
- space.db.add(Obj.make(DataType.Person, { fullName: 'Dima', organization: Ref.make(org) }));
87
- space.db.add(Obj.make(DataType.Person, { fullName: 'Mykola', organization: Ref.make(org) }));
88
- space.db.add(Obj.make(DataType.Person, { fullName: 'Will', organization: Ref.make(org) }));
89
109
 
90
110
  return doc;
91
111
  });
@@ -96,47 +116,34 @@ export const generator = () => ({
96
116
  [
97
117
  PresetName.ORG_RESEARCH_PROJECT,
98
118
  async (space, n, cb) => {
99
- 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');
126
+ const tag = await space.db.query(Filter.type(Tag.Tag, { label: 'Investor' })).first();
127
+ const tagUri = Obj.getURI(tag);
100
128
 
101
129
  const objects = range(n, () => {
102
- // TODO(wittjosiah): Move filter to a tag.
103
- const contactsQuery = Query.select(Filter.type(DataType.Person, { jobTitle: 'investor' }));
104
- const organizationsQuery = contactsQuery.reference('organization');
105
- const notesQuery = organizationsQuery.targetOf(ResearchOn).source();
106
-
107
- const contactsQueryString = 'Query.select(Filter.type(DataType.Person, { jobTitle: "investor" }))';
108
- const organizationsQueryString = `${contactsQueryString}.reference("organization")`;
109
- const notesQueryString = `${organizationsQueryString}.targetOf(ResearchOn).source()`;
110
-
111
- const emailSyncTrigger = Obj.make(FunctionTrigger, {
112
- enabled: true,
113
- spec: {
114
- kind: 'timer',
115
- cron: '* * * * *', // Every minute.
116
- },
117
- function: Ref.make(serializeFunction(sync)),
118
- input: {
119
- mailboxId: Obj.getDXN(mailbox).toString(),
120
- },
121
- });
122
- space.db.add(emailSyncTrigger);
123
-
124
- const contactExtractionTrigger = Obj.make(FunctionTrigger, {
125
- enabled: true,
126
- // TODO(wittjosiah): Queue trigger doesn't support matching query of the column.
127
- spec: {
128
- kind: 'queue',
129
- queue: mailbox.queue.dxn.toString(),
130
- },
131
- function: Ref.make(serializeFunction(entityExtraction)),
132
- input: {
133
- source: '{{event.item}}',
134
- },
135
- });
136
- 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
+ );
137
144
 
138
145
  const researchPrompt = space.db.add(
139
- Prompt.make({
146
+ Routine.make({
140
147
  name: 'Research',
141
148
  description: 'Research organization',
142
149
  input: Schema.Struct({
@@ -146,70 +153,77 @@ export const generator = () => ({
146
153
 
147
154
  // TODO(dmaretskyi): This mocks research (returns pre-baked result), the actual research might take compute minutes.
148
155
  // Remove the mock prompt to do the actual research.
149
- instructions:
150
- 'Research the organization provided as input. Create a research note for it at the end. NOTE: Do mocked reseach (set mockSearch to true).',
151
- 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())],
152
162
  }),
153
163
  );
154
164
 
155
- const researchTrigger = Obj.make(FunctionTrigger, {
156
- enabled: true,
157
- spec: {
158
- kind: 'subscription',
159
- query: {
160
- string: organizationsQueryString,
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
- queryString:
180
- 'Query.select(Filter.type(DataType.Message, { properties: { labels: Filter.contains("investor") } }))',
181
- jsonSchema: Type.toJsonSchema(DataType.Message),
182
- 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),
183
184
  });
184
- const contactsView = createView({
185
- name: 'Contacts',
185
+ const contactsView = ViewModel.make({
186
186
  query: contactsQuery,
187
- queryString: contactsQueryString,
188
- jsonSchema: Type.toJsonSchema(DataType.Person),
189
- presentation: Obj.make(DataType.Collection, { objects: [] }),
187
+ jsonSchema: JsonSchema.toJsonSchema(Person.Person),
190
188
  });
191
- const organizationsView = createView({
192
- name: 'Organizations',
189
+ const organizationsView = ViewModel.make({
193
190
  query: organizationsQuery,
194
- queryString: organizationsQueryString,
195
- jsonSchema: Type.toJsonSchema(DataType.Organization),
196
- presentation: Obj.make(DataType.Collection, { objects: [] }),
191
+ jsonSchema: JsonSchema.toJsonSchema(Organization.Organization),
197
192
  });
198
- const notesView = createView({
199
- name: 'Notes',
193
+ const notesView = ViewModel.make({
200
194
  query: notesQuery,
201
- queryString: notesQueryString,
202
- jsonSchema: Type.toJsonSchema(Markdown.Document),
203
- presentation: Obj.make(DataType.Collection, { objects: [] }),
195
+ jsonSchema: JsonSchema.toJsonSchema(Markdown.Document),
204
196
  });
205
197
 
206
198
  return space.db.add(
207
- DataType.makeProject({
199
+ Pipeline.make({
208
200
  name: 'Investor Research',
209
- 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
+ ],
210
223
  }),
211
224
  );
212
225
  });
226
+
213
227
  cb?.(objects.flat());
214
228
  return objects.flat();
215
229
  },
@@ -220,7 +234,7 @@ export const generator = () => ({
220
234
  const objects = range(n, () => {
221
235
  const canvasModel = CanvasGraphModel.create<ComputeShape>();
222
236
 
223
- let functionTrigger: FunctionTrigger | undefined;
237
+ let functionTrigger: Trigger.Trigger | undefined;
224
238
  canvasModel.builder.call((builder) => {
225
239
  const gpt = canvasModel.createNode(createGpt(position({ x: 0, y: -14 })));
226
240
  const triggerShape = createTrigger({
@@ -234,10 +248,24 @@ export const generator = () => ({
234
248
  const append = canvasModel.createNode(createAppend(position({ x: 10, y: 6 })));
235
249
 
236
250
  builder
237
- .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
+ })
238
257
  .createEdge({ source: gpt.id, target: text.id, output: 'text' })
239
- .createEdge({ source: queueId.id, target: append.id, input: 'id' })
240
- .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
+ });
241
269
 
242
270
  functionTrigger = triggerShape.functionTrigger!.target!;
243
271
  });
@@ -262,8 +290,7 @@ export const generator = () => ({
262
290
  'subscription',
263
291
  (triggerSpec) =>
264
292
  (triggerSpec.query = {
265
- string: 'Query.select(Filter.typename("dxos.org/type/Chess"))',
266
- 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>,
267
294
  }),
268
295
  'type',
269
296
  );
@@ -348,7 +375,7 @@ export const generator = () => ({
348
375
  // const templateComputeNode = computeModel.nodes.find((n) => n.id === template.node);
349
376
  // invariant(templateComputeNode, 'Template compute node was not created.');
350
377
  // templateComputeNode.value = templateContent.join('\n');
351
- // templateComputeNode.inputSchema = Type.toJsonSchema(EmailTriggerOutput);
378
+ // templateComputeNode.inputSchema = JsonSchema.toJsonSchema(EmailTriggerOutput);
352
379
 
353
380
  // attachTrigger(functionTrigger, computeModel);
354
381
 
@@ -376,8 +403,17 @@ export const generator = () => ({
376
403
  builder
377
404
  .createEdge({ source: chat.id, target: gpt.id, input: 'prompt' })
378
405
  .createEdge({ source: gpt.id, target: text.id, output: 'text' })
379
- .createEdge({ source: queueId.id, target: append.id, input: 'id' })
380
- .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
+ });
381
417
  });
382
418
 
383
419
  const computeModel = createComputeGraph(canvasModel);
@@ -473,7 +509,7 @@ export const generator = () => ({
473
509
  // invariant(templateComputeNode, 'Template compute node was not created.');
474
510
  // templateComputeNode.value = templateContent.join('\n');
475
511
  // const extendedSchema = Schema.extend(EmailTriggerOutput, Schema.Struct({ text: Schema.String }));
476
- // templateComputeNode.inputSchema = Type.toJsonSchema(extendedSchema);
512
+ // templateComputeNode.inputSchema = JsonSchema.toJsonSchema(extendedSchema);
477
513
 
478
514
  // attachTrigger(functionTrigger, computeModel);
479
515
 
@@ -501,9 +537,21 @@ export const generator = () => ({
501
537
  const view = canvasModel.createNode(createSurface(position({ x: 12, y: 0 })));
502
538
 
503
539
  builder
504
- .createEdge({ source: sourceCurrency.id, target: converter.id, input: 'from' })
505
- .createEdge({ source: targetCurrency.id, target: converter.id, input: 'to' })
506
- .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
+ });
507
555
  });
508
556
 
509
557
  const computeModel = createComputeGraph(canvasModel);
@@ -521,7 +569,7 @@ export const generator = () => ({
521
569
  const objects = range(n, () => {
522
570
  const canvasModel = CanvasGraphModel.create<ComputeShape>();
523
571
 
524
- let functionTrigger: FunctionTrigger | undefined;
572
+ let functionTrigger: Trigger.Trigger | undefined;
525
573
  canvasModel.builder.call((builder) => {
526
574
  const triggerShape = createTrigger({
527
575
  spaceId: space.id,
@@ -531,24 +579,47 @@ export const generator = () => ({
531
579
  const trigger = canvasModel.createNode(triggerShape);
532
580
  // DXOS dev-null channel.
533
581
  const channelId = canvasModel.createNode(
534
- createConstant({ value: '1088569858767212554', ...position({ x: -10, y: 0 }) }),
582
+ createConstant({
583
+ value: '1088569858767212554',
584
+ ...position({ x: -10, y: 0 }),
585
+ }),
535
586
  );
536
587
  const queueId = canvasModel.createNode(
537
588
  createConstant({
538
- value: new DXN(DXN.kind.QUEUE, ['data', space.id, Key.ObjectId.random()]).toString(),
589
+ value: EID.make({ spaceId: space.id, entityId: Key.EntityId.random() }),
539
590
  ...position({ x: -10, y: 5 }),
540
591
  }),
541
592
  );
542
593
  const converter = canvasModel.createNode(createFunction(position({ x: 0, y: 0 })));
543
594
  const view = canvasModel.createNode(createText(position({ x: 12, y: 0 })));
544
- const queue = canvasModel.createNode(createQueue(position({ x: 0, y: 12 })));
595
+ const queue = canvasModel.createNode(createFeed(position({ x: 0, y: 12 })));
545
596
 
546
597
  builder
547
- .createEdge({ source: trigger.id, target: converter.id, input: 'tick' })
548
- .createEdge({ source: channelId.id, target: converter.id, input: 'channelId' })
549
- .createEdge({ source: queueId.id, target: converter.id, input: 'queueId' })
550
- .createEdge({ source: converter.id, target: view.id, output: 'newMessages' })
551
- .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
+ });
552
623
 
553
624
  functionTrigger = triggerShape.functionTrigger!.target!;
554
625
  });
@@ -615,10 +686,10 @@ export const generator = () => ({
615
686
  ] as [PresetName, ObjectGenerator<any>][],
616
687
  });
617
688
 
618
- const createQueueSinkPreset = <SpecType extends TriggerKind>(
689
+ const createQueueSinkPreset = <SpecType extends Trigger.Kind>(
619
690
  space: Space,
620
691
  triggerKind: SpecType,
621
- initSpec: (spec: Extract<TriggerType, { kind: SpecType }>) => void,
692
+ initSpec: (spec: Obj.Mutable<Extract<Trigger.Spec, { kind: SpecType }>>) => void,
622
693
  triggerOutputName: string,
623
694
  ) => {
624
695
  const canvasModel = CanvasGraphModel.create<ComputeShape>();
@@ -630,7 +701,7 @@ const createQueueSinkPreset = <SpecType extends TriggerKind>(
630
701
  }),
631
702
  );
632
703
 
633
- let functionTrigger: FunctionTrigger | undefined;
704
+ let functionTrigger: Trigger.Trigger | undefined;
634
705
  canvasModel.builder.call((builder) => {
635
706
  const triggerShape = createTrigger({
636
707
  spaceId: space.id,
@@ -651,7 +722,12 @@ const createQueueSinkPreset = <SpecType extends TriggerKind>(
651
722
  builder
652
723
  .createEdge({ source: queueId.id, target: append.id, input: 'id' })
653
724
  .createEdge({ source: template.id, target: append.id, input: 'items' })
654
- .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
+ })
655
731
  .createEdge({
656
732
  source: random.id,
657
733
  target: template.id,
@@ -661,15 +737,20 @@ const createQueueSinkPreset = <SpecType extends TriggerKind>(
661
737
  functionTrigger = triggerShape.functionTrigger!.target!;
662
738
  const triggerSpec = functionTrigger.spec;
663
739
  invariant(triggerSpec && triggerSpec.kind === triggerKind, 'No trigger spec.');
664
- initSpec(triggerSpec as any);
740
+ Obj.update(functionTrigger, (functionTrigger) => {
741
+ initSpec(functionTrigger.spec as any);
742
+ });
665
743
  });
666
744
 
667
745
  const computeModel = createComputeGraph(canvasModel);
668
746
 
669
747
  const templateComputeNode = computeModel.nodes.find((n) => n.id === template.node);
670
748
  invariant(templateComputeNode, 'Template compute node was not created.');
749
+ // NOTE: These are plain object mutations during model construction, not ECHO object mutations.
671
750
  templateComputeNode.value = ['{', ' "@type": "{{type}}",', ' "id": "@{{changeId}}"', '}'].join('\n');
672
- 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
+ );
673
754
  attachTrigger(functionTrigger, computeModel);
674
755
 
675
756
  return { canvasModel, computeModel };
@@ -677,7 +758,7 @@ const createQueueSinkPreset = <SpecType extends TriggerKind>(
677
758
 
678
759
  const addToSpace = (name: string, space: Space, canvas: CanvasGraphModel, compute: ComputeGraphModel) => {
679
760
  return space.db.add(
680
- Obj.make(CanvasBoardType, {
761
+ Obj.make(CanvasBoard.CanvasBoard, {
681
762
  name,
682
763
  computeGraph: Ref.make(compute.root),
683
764
  layout: canvas.graph,
@@ -692,12 +773,12 @@ const setupQueue = (
692
773
  ) => {
693
774
  const queueId = canvasModel.createNode(
694
775
  createConstant({
695
- value: new DXN(DXN.kind.QUEUE, ['data', space.id, Key.ObjectId.random()]).toString(),
776
+ value: EID.make({ spaceId: space.id, entityId: Key.EntityId.random() }),
696
777
  ...(args?.idPosition ? rawPosition(args.idPosition) : position({ x: -18, y: 5, width: 8, height: 6 })),
697
778
  }),
698
779
  );
699
780
  const queue = canvasModel.createNode(
700
- createQueue(
781
+ createFeed(
701
782
  args?.queuePosition ? rawPosition(args.queuePosition) : position({ x: -3, y: 3, width: 14, height: 10 }),
702
783
  ),
703
784
  );
@@ -705,17 +786,27 @@ const setupQueue = (
705
786
  return { queue, queueId };
706
787
  };
707
788
 
708
- const attachTrigger = (functionTrigger: FunctionTrigger | undefined, computeModel: ComputeGraphModel) => {
789
+ const attachTrigger = (functionTrigger: Trigger.Trigger | undefined, computeModel: ComputeGraphModel) => {
709
790
  invariant(functionTrigger);
710
- functionTrigger.function = Ref.make(computeModel.root);
711
791
  const inputNode = computeModel.nodes.find((node) => node.type === NODE_INPUT)!;
712
- functionTrigger.inputNodeId = inputNode.id;
792
+ Obj.update(functionTrigger, (functionTrigger) => {
793
+ functionTrigger.function = Ref.make(computeModel.root);
794
+ functionTrigger.inputNodeId = inputNode.id;
795
+ });
713
796
  };
714
797
 
715
- 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
+ };
716
804
 
717
805
  const rawPosition = (args: RawPositionInput) => {
718
- 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
+ };
719
810
  };
720
811
 
721
812
  const position = (rect: { x: number; y: number; width?: number; height?: number }) => {
@@ -723,7 +814,10 @@ const position = (rect: { x: number; y: number; width?: number; height?: number
723
814
  const [center, size] = rectToPoints({ width: 0, height: 0, ...rect });
724
815
  const { x, y, width, height } = pointsToRect([pointMultiply(center, snap), pointMultiply(size, snap)]);
725
816
  if (width && height) {
726
- return { center: { x, y }, size: width && height ? { width, height } : undefined };
817
+ return {
818
+ center: { x, y },
819
+ size: width && height ? { width, height } : undefined,
820
+ };
727
821
  } else {
728
822
  return { center: { x, y } };
729
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';