@dxos/plugin-debug 0.8.4-main.ae835ea → 0.8.4-main.bc2380dfbc

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 (219) hide show
  1. package/LICENSE +102 -5
  2. package/README.md +1 -1
  3. package/dist/lib/neutral/DebugGraph-G4FWS57E.mjs +15 -0
  4. package/dist/lib/neutral/DebugGraph-G4FWS57E.mjs.map +7 -0
  5. package/dist/lib/neutral/DebugObjectPanel-UJ63CV25.mjs +59 -0
  6. package/dist/lib/neutral/DebugObjectPanel-UJ63CV25.mjs.map +7 -0
  7. package/dist/lib/neutral/DebugPlugin.mjs +47 -0
  8. package/dist/lib/neutral/DebugPlugin.mjs.map +7 -0
  9. package/dist/lib/neutral/DebugPlugin.node.mjs +18 -0
  10. package/dist/lib/neutral/DebugPlugin.node.mjs.map +7 -0
  11. package/dist/lib/neutral/DebugPlugin.workerd.mjs +12 -0
  12. package/dist/lib/neutral/DebugPlugin.workerd.mjs.map +7 -0
  13. package/dist/lib/neutral/DebugSettings-Z3XADRNK.mjs +224 -0
  14. package/dist/lib/neutral/DebugSettings-Z3XADRNK.mjs.map +7 -0
  15. package/dist/lib/neutral/DebugSpaceObjectsPanel-NISULU6U.mjs +34 -0
  16. package/dist/lib/neutral/DebugSpaceObjectsPanel-NISULU6U.mjs.map +7 -0
  17. package/dist/lib/neutral/DebugStatus-YB3KFP7G.mjs +121 -0
  18. package/dist/lib/neutral/DebugStatus-YB3KFP7G.mjs.map +7 -0
  19. package/dist/lib/neutral/DevtoolsOverviewContainer-YX7Z3D2H.mjs +23 -0
  20. package/dist/lib/neutral/DevtoolsOverviewContainer-YX7Z3D2H.mjs.map +7 -0
  21. package/dist/lib/neutral/SpaceGenerator-UBYB4NPD.mjs +143 -0
  22. package/dist/lib/neutral/SpaceGenerator-UBYB4NPD.mjs.map +7 -0
  23. package/dist/lib/neutral/Wireframe-7SNRUKET.mjs +52 -0
  24. package/dist/lib/neutral/Wireframe-7SNRUKET.mjs.map +7 -0
  25. package/dist/lib/neutral/app-graph-builder-YPYHL2K5.mjs +577 -0
  26. package/dist/lib/neutral/app-graph-builder-YPYHL2K5.mjs.map +7 -0
  27. package/dist/lib/neutral/capabilities/index.mjs +15 -0
  28. package/dist/lib/neutral/capabilities/index.mjs.map +7 -0
  29. package/dist/lib/{browser/chunk-WZFZ4ESO.mjs → neutral/chunk-3OGPOE7H.mjs} +2 -2
  30. package/dist/lib/neutral/chunk-3OGPOE7H.mjs.map +7 -0
  31. package/dist/lib/neutral/chunk-J5LGTIGS.mjs +10 -0
  32. package/dist/lib/neutral/chunk-J5LGTIGS.mjs.map +7 -0
  33. package/dist/lib/{browser/chunk-SRV2AIGJ.mjs → neutral/chunk-NFIOTQRZ.mjs} +30 -9
  34. package/dist/lib/neutral/chunk-NFIOTQRZ.mjs.map +7 -0
  35. package/dist/lib/{browser/SpaceGenerator-7Q7CX64P.mjs → neutral/components/index.mjs} +330 -509
  36. package/dist/lib/neutral/components/index.mjs.map +7 -0
  37. package/dist/lib/neutral/containers/index.mjs +21 -0
  38. package/dist/lib/neutral/containers/index.mjs.map +7 -0
  39. package/dist/lib/neutral/index.mjs +18 -0
  40. package/dist/lib/neutral/index.mjs.map +7 -0
  41. package/dist/lib/neutral/meta.json +1 -0
  42. package/dist/lib/neutral/meta.mjs +8 -0
  43. package/dist/lib/neutral/meta.mjs.map +7 -0
  44. package/dist/lib/neutral/plugin.mjs +12 -0
  45. package/dist/lib/neutral/plugin.mjs.map +7 -0
  46. package/dist/lib/neutral/react-context-MUZ3KVLU.mjs +17 -0
  47. package/dist/lib/neutral/react-context-MUZ3KVLU.mjs.map +7 -0
  48. package/dist/lib/neutral/react-surface-UR2SYHYW.mjs +419 -0
  49. package/dist/lib/neutral/react-surface-UR2SYHYW.mjs.map +7 -0
  50. package/dist/lib/neutral/settings-MPM6YUP4.mjs +28 -0
  51. package/dist/lib/neutral/settings-MPM6YUP4.mjs.map +7 -0
  52. package/dist/lib/neutral/translations.mjs +83 -0
  53. package/dist/lib/neutral/translations.mjs.map +7 -0
  54. package/dist/lib/neutral/types/index.mjs +14 -0
  55. package/dist/lib/neutral/types/index.mjs.map +7 -0
  56. package/dist/types/src/DebugPlugin.d.ts +4 -1
  57. package/dist/types/src/DebugPlugin.d.ts.map +1 -1
  58. package/dist/types/src/DebugPlugin.node.d.ts +5 -0
  59. package/dist/types/src/DebugPlugin.node.d.ts.map +1 -0
  60. package/dist/types/src/DebugPlugin.test.d.ts +2 -0
  61. package/dist/types/src/DebugPlugin.test.d.ts.map +1 -0
  62. package/dist/types/src/DebugPlugin.workerd.d.ts +5 -0
  63. package/dist/types/src/DebugPlugin.workerd.d.ts.map +1 -0
  64. package/dist/types/src/capabilities/app-graph-builder.d.ts +4 -2
  65. package/dist/types/src/capabilities/app-graph-builder.d.ts.map +1 -1
  66. package/dist/types/src/capabilities/index.d.ts +8 -5
  67. package/dist/types/src/capabilities/index.d.ts.map +1 -1
  68. package/dist/types/src/capabilities/react-context.d.ts +4 -2
  69. package/dist/types/src/capabilities/react-context.d.ts.map +1 -1
  70. package/dist/types/src/capabilities/react-surface.d.ts +7 -2
  71. package/dist/types/src/capabilities/react-surface.d.ts.map +1 -1
  72. package/dist/types/src/capabilities/settings.d.ts +5 -2
  73. package/dist/types/src/capabilities/settings.d.ts.map +1 -1
  74. package/dist/types/src/components/DebugSettings/DebugSettings.d.ts +11 -0
  75. package/dist/types/src/components/DebugSettings/DebugSettings.d.ts.map +1 -0
  76. package/dist/types/src/components/DebugSettings/DebugSettings.stories.d.ts +99 -0
  77. package/dist/types/src/components/DebugSettings/DebugSettings.stories.d.ts.map +1 -0
  78. package/dist/types/src/components/DebugSettings/index.d.ts +2 -0
  79. package/dist/types/src/components/DebugSettings/index.d.ts.map +1 -0
  80. package/dist/types/src/components/SchemaTable/SchemaTable.d.ts.map +1 -0
  81. package/dist/types/src/components/SchemaTable/index.d.ts +2 -0
  82. package/dist/types/src/components/SchemaTable/index.d.ts.map +1 -0
  83. package/dist/types/src/components/SpaceGenerator/ObjectGenerator.d.ts +5 -5
  84. package/dist/types/src/components/SpaceGenerator/ObjectGenerator.d.ts.map +1 -1
  85. package/dist/types/src/components/SpaceGenerator/draw-util.d.ts.map +1 -1
  86. package/dist/types/src/components/SpaceGenerator/index.d.ts +2 -2
  87. package/dist/types/src/components/SpaceGenerator/index.d.ts.map +1 -1
  88. package/dist/types/src/components/SpaceGenerator/presets.d.ts +2 -5
  89. package/dist/types/src/components/SpaceGenerator/presets.d.ts.map +1 -1
  90. package/dist/types/src/components/index.d.ts +4 -10
  91. package/dist/types/src/components/index.d.ts.map +1 -1
  92. package/dist/types/src/containers/DebugGraph/DebugGraph.d.ts +8 -0
  93. package/dist/types/src/containers/DebugGraph/DebugGraph.d.ts.map +1 -0
  94. package/dist/types/src/containers/DebugGraph/index.d.ts +2 -0
  95. package/dist/types/src/containers/DebugGraph/index.d.ts.map +1 -0
  96. package/dist/types/src/containers/DebugObjectPanel/DebugObjectPanel.d.ts +6 -0
  97. package/dist/types/src/containers/DebugObjectPanel/DebugObjectPanel.d.ts.map +1 -0
  98. package/dist/types/src/containers/DebugObjectPanel/index.d.ts +2 -0
  99. package/dist/types/src/containers/DebugObjectPanel/index.d.ts.map +1 -0
  100. package/dist/types/src/containers/DebugSpaceObjectsPanel/DebugSpaceObjectsPanel.d.ts +5 -0
  101. package/dist/types/src/containers/DebugSpaceObjectsPanel/DebugSpaceObjectsPanel.d.ts.map +1 -0
  102. package/dist/types/src/containers/DebugSpaceObjectsPanel/index.d.ts +2 -0
  103. package/dist/types/src/containers/DebugSpaceObjectsPanel/index.d.ts.map +1 -0
  104. package/dist/types/src/containers/DebugStatus/DebugStatus.d.ts.map +1 -0
  105. package/dist/types/src/containers/DebugStatus/index.d.ts +2 -0
  106. package/dist/types/src/containers/DebugStatus/index.d.ts.map +1 -0
  107. package/dist/types/src/{components → containers/DevtoolsOverviewContainer}/DevtoolsOverviewContainer.d.ts +0 -1
  108. package/dist/types/src/containers/DevtoolsOverviewContainer/DevtoolsOverviewContainer.d.ts.map +1 -0
  109. package/dist/types/src/containers/DevtoolsOverviewContainer/index.d.ts +2 -0
  110. package/dist/types/src/containers/DevtoolsOverviewContainer/index.d.ts.map +1 -0
  111. package/dist/types/src/containers/SpaceGenerator/SpaceGenerator.d.ts +11 -0
  112. package/dist/types/src/containers/SpaceGenerator/SpaceGenerator.d.ts.map +1 -0
  113. package/dist/types/src/containers/SpaceGenerator/index.d.ts +2 -0
  114. package/dist/types/src/containers/SpaceGenerator/index.d.ts.map +1 -0
  115. package/dist/types/src/{components → containers/Wireframe}/Wireframe.d.ts +2 -2
  116. package/dist/types/src/containers/Wireframe/Wireframe.d.ts.map +1 -0
  117. package/dist/types/src/containers/Wireframe/index.d.ts +2 -0
  118. package/dist/types/src/containers/Wireframe/index.d.ts.map +1 -0
  119. package/dist/types/src/containers/index.d.ts +9 -0
  120. package/dist/types/src/containers/index.d.ts.map +1 -0
  121. package/dist/types/src/index.d.ts +1 -1
  122. package/dist/types/src/index.d.ts.map +1 -1
  123. package/dist/types/src/meta.d.ts +2 -2
  124. package/dist/types/src/meta.d.ts.map +1 -1
  125. package/dist/types/src/plugin.d.ts +4 -0
  126. package/dist/types/src/plugin.d.ts.map +1 -0
  127. package/dist/types/src/translations.d.ts +80 -59
  128. package/dist/types/src/translations.d.ts.map +1 -1
  129. package/dist/types/src/types/Settings.d.ts +8 -0
  130. package/dist/types/src/types/Settings.d.ts.map +1 -0
  131. package/dist/types/src/types/index.d.ts +69 -0
  132. package/dist/types/src/types/index.d.ts.map +1 -0
  133. package/dist/types/tsconfig.tsbuildinfo +1 -1
  134. package/package.json +134 -75
  135. package/src/DebugPlugin.node.ts +18 -0
  136. package/src/DebugPlugin.test.ts +29 -0
  137. package/src/DebugPlugin.tsx +28 -34
  138. package/src/DebugPlugin.workerd.ts +12 -0
  139. package/src/capabilities/app-graph-builder.ts +362 -388
  140. package/src/capabilities/index.ts +5 -5
  141. package/src/capabilities/react-context.tsx +16 -7
  142. package/src/capabilities/react-surface.tsx +378 -339
  143. package/src/capabilities/settings.ts +24 -12
  144. package/src/components/DebugSettings/DebugSettings.stories.tsx +36 -0
  145. package/src/components/DebugSettings/DebugSettings.tsx +262 -0
  146. package/src/components/DebugSettings/index.ts +5 -0
  147. package/src/components/SchemaTable/index.ts +5 -0
  148. package/src/components/SpaceGenerator/ObjectGenerator.tsx +28 -31
  149. package/src/components/SpaceGenerator/draw-util.ts +8 -8
  150. package/src/components/SpaceGenerator/index.ts +2 -3
  151. package/src/components/SpaceGenerator/presets.ts +225 -128
  152. package/src/components/index.ts +4 -8
  153. package/src/containers/DebugGraph/DebugGraph.tsx +14 -0
  154. package/src/containers/DebugGraph/index.ts +5 -0
  155. package/src/containers/DebugObjectPanel/DebugObjectPanel.tsx +76 -0
  156. package/src/containers/DebugObjectPanel/index.ts +5 -0
  157. package/src/containers/DebugSpaceObjectsPanel/DebugSpaceObjectsPanel.tsx +47 -0
  158. package/src/containers/DebugSpaceObjectsPanel/index.ts +5 -0
  159. package/src/{components → containers/DebugStatus}/DebugStatus.tsx +41 -19
  160. package/src/containers/DebugStatus/index.ts +5 -0
  161. package/src/containers/DevtoolsOverviewContainer/DevtoolsOverviewContainer.tsx +25 -0
  162. package/src/containers/DevtoolsOverviewContainer/index.ts +5 -0
  163. package/src/containers/SpaceGenerator/SpaceGenerator.tsx +126 -0
  164. package/src/containers/SpaceGenerator/index.ts +5 -0
  165. package/src/{components → containers/Wireframe}/Wireframe.tsx +7 -12
  166. package/src/containers/Wireframe/index.ts +5 -0
  167. package/src/containers/index.ts +13 -0
  168. package/src/index.ts +1 -1
  169. package/src/meta.ts +3 -3
  170. package/src/plugin.ts +10 -0
  171. package/src/translations.ts +75 -58
  172. package/src/types/Settings.ts +16 -0
  173. package/src/{types.ts → types/index.ts} +20 -11
  174. package/dist/lib/browser/DebugGraph-EDOH6R2G.mjs +0 -20
  175. package/dist/lib/browser/DebugGraph-EDOH6R2G.mjs.map +0 -7
  176. package/dist/lib/browser/DevtoolsOverviewContainer-EPD6EWT5.mjs +0 -25
  177. package/dist/lib/browser/DevtoolsOverviewContainer-EPD6EWT5.mjs.map +0 -7
  178. package/dist/lib/browser/SpaceGenerator-7Q7CX64P.mjs.map +0 -7
  179. package/dist/lib/browser/app-graph-builder-RXWTHLEW.mjs +0 -588
  180. package/dist/lib/browser/app-graph-builder-RXWTHLEW.mjs.map +0 -7
  181. package/dist/lib/browser/chunk-SRV2AIGJ.mjs.map +0 -7
  182. package/dist/lib/browser/chunk-WZFZ4ESO.mjs.map +0 -7
  183. package/dist/lib/browser/index.mjs +0 -130
  184. package/dist/lib/browser/index.mjs.map +0 -7
  185. package/dist/lib/browser/meta.json +0 -1
  186. package/dist/lib/browser/react-context-P2YDWEWI.mjs +0 -16
  187. package/dist/lib/browser/react-context-P2YDWEWI.mjs.map +0 -7
  188. package/dist/lib/browser/react-surface-4XGZUT3Z.mjs +0 -772
  189. package/dist/lib/browser/react-surface-4XGZUT3Z.mjs.map +0 -7
  190. package/dist/lib/browser/settings-SQXR3OAH.mjs +0 -22
  191. package/dist/lib/browser/settings-SQXR3OAH.mjs.map +0 -7
  192. package/dist/types/src/components/Container.d.ts +0 -5
  193. package/dist/types/src/components/Container.d.ts.map +0 -1
  194. package/dist/types/src/components/DebugGraph.d.ts +0 -8
  195. package/dist/types/src/components/DebugGraph.d.ts.map +0 -1
  196. package/dist/types/src/components/DebugObjectPanel.d.ts +0 -7
  197. package/dist/types/src/components/DebugObjectPanel.d.ts.map +0 -1
  198. package/dist/types/src/components/DebugSettings.d.ts +0 -6
  199. package/dist/types/src/components/DebugSettings.d.ts.map +0 -1
  200. package/dist/types/src/components/DebugStatus.d.ts.map +0 -1
  201. package/dist/types/src/components/DevtoolsOverviewContainer.d.ts.map +0 -1
  202. package/dist/types/src/components/SpaceGenerator/SchemaTable.d.ts.map +0 -1
  203. package/dist/types/src/components/SpaceGenerator/SpaceGenerator.d.ts +0 -9
  204. package/dist/types/src/components/SpaceGenerator/SpaceGenerator.d.ts.map +0 -1
  205. package/dist/types/src/components/SpaceGenerator/SpaceGenerator.stories.d.ts +0 -15
  206. package/dist/types/src/components/SpaceGenerator/SpaceGenerator.stories.d.ts.map +0 -1
  207. package/dist/types/src/components/Wireframe.d.ts.map +0 -1
  208. package/dist/types/src/types.d.ts +0 -63
  209. package/dist/types/src/types.d.ts.map +0 -1
  210. package/src/components/Container.tsx +0 -15
  211. package/src/components/DebugGraph.tsx +0 -14
  212. package/src/components/DebugObjectPanel.tsx +0 -33
  213. package/src/components/DebugSettings.tsx +0 -159
  214. package/src/components/DevtoolsOverviewContainer.tsx +0 -20
  215. package/src/components/SpaceGenerator/SpaceGenerator.stories.tsx +0 -52
  216. package/src/components/SpaceGenerator/SpaceGenerator.tsx +0 -122
  217. /package/dist/types/src/components/{SpaceGenerator → SchemaTable}/SchemaTable.d.ts +0 -0
  218. /package/dist/types/src/{components → containers/DebugStatus}/DebugStatus.d.ts +0 -0
  219. /package/src/components/{SpaceGenerator → SchemaTable}/SchemaTable.tsx +0 -0
@@ -4,15 +4,14 @@
4
4
 
5
5
  import * as Schema from 'effect/Schema';
6
6
 
7
- import { Agent, EntityExtraction, ResearchBlueprint } from '@dxos/assistant-toolkit';
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 { Trigger, serializeFunction } from '@dxos/functions';
10
+ import { DXN, Feed, Filter, JsonSchema, Key, Obj, Query, type QueryAST, Ref, 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 { InboxOperation } from '@dxos/plugin-inbox';
13
+ import { Mailbox } from '@dxos/plugin-inbox';
14
+ import { Markdown } from '@dxos/plugin-markdown';
16
15
  import { type Space } from '@dxos/react-client/echo';
17
16
  import {
18
17
  type ComputeShape,
@@ -20,23 +19,18 @@ import {
20
19
  createChat,
21
20
  createComputeGraph,
22
21
  createConstant,
22
+ createFeed,
23
23
  createFunction,
24
24
  createGpt,
25
- createQueue,
26
25
  createRandom,
27
26
  createSurface,
28
27
  createTemplate,
29
28
  createText,
30
29
  createTrigger,
31
30
  } 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';
31
+ import { CanvasBoard, CanvasGraphModel, pointMultiply, pointsToRect, rectToPoints } from '@dxos/react-ui-canvas-editor';
32
+ import { ViewModel } from '@dxos/schema';
33
+ import { Message, Organization, Person, Pipeline } from '@dxos/types';
40
34
  import { range, trim } from '@dxos/util';
41
35
 
42
36
  import { type ObjectGenerator } from './ObjectGenerator';
@@ -49,32 +43,39 @@ export enum PresetName {
49
43
  CHAT_GPT = 'chat-gpt-text',
50
44
  // EMAIL_WITH_SUMMARY = 'email-gptSummary-table',
51
45
  OBJECT_CHANGE_QUEUE = 'objectChange-queue',
52
- FOREX_FUNCTION_CALL = 'forex-function-call',
53
46
  TIMER_TICK_QUEUE = 'timerTick-queue',
47
+ FOREX_FUNCTION_CALL = 'forex-function-call',
54
48
  DISCORD_MESSAGES = 'discord-messages',
55
49
  // KANBAN_QUEUE = 'kanban-queue',
56
50
  }
57
51
 
58
52
  export const generator = () => ({
59
- schemas: [CanvasBoardType, Trigger.Trigger],
53
+ schemas: [CanvasBoard.CanvasBoard, Trigger.Trigger] as any[],
60
54
  types: Object.values(PresetName).map((name) => ({ typename: name })),
61
55
  items: [
62
56
  [
63
57
  PresetName.DXOS_TEAM,
64
58
  async (space, n, cb) => {
65
59
  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
-
60
+ const org = space.db.add(
61
+ Obj.make(Organization.Organization, {
62
+ name: 'DXOS',
63
+ website: 'https://dxos.org',
64
+ }),
65
+ );
71
66
  const doc = space.db.add(
72
- Markdown.makeDocument({
67
+ Markdown.make({
73
68
  name: 'DXOS Research',
74
69
  content: 'DXOS builds Composer, an open-source AI-powered malleable application.',
75
70
  }),
76
71
  );
77
- Obj.getMeta(doc).tags = [tagDxn];
72
+
73
+ const tag = space.db.add(Tag.make({ label: 'Investor' }));
74
+ const tagDXN = Obj.getDXN(tag).toString();
75
+ Obj.update(doc, (doc) => {
76
+ Obj.getMeta(doc).tags = [tagDXN];
77
+ });
78
+
78
79
  // space.db.add(
79
80
  // Relation.make(HasSubject, {
80
81
  // [Relation.Source]: doc,
@@ -84,12 +85,26 @@ export const generator = () => ({
84
85
  // );
85
86
 
86
87
  space.db.add(
87
- Obj.make(DataType.Person, { fullName: 'Rich', organization: Ref.make(org) }, { tags: [tagDxn] }),
88
+ Obj.make(Person.Person, { [Obj.Meta]: { tags: [tagDXN] }, fullName: 'Rich', organization: Ref.make(org) }),
89
+ );
90
+ space.db.add(
91
+ Obj.make(Person.Person, {
92
+ fullName: 'Josiah',
93
+ organization: Ref.make(org),
94
+ }),
95
+ );
96
+ space.db.add(
97
+ Obj.make(Person.Person, {
98
+ fullName: 'Dima',
99
+ organization: Ref.make(org),
100
+ }),
101
+ );
102
+ space.db.add(
103
+ Obj.make(Person.Person, {
104
+ fullName: 'Mykola',
105
+ organization: Ref.make(org),
106
+ }),
88
107
  );
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
108
 
94
109
  return doc;
95
110
  });
@@ -100,44 +115,34 @@ export const generator = () => ({
100
115
  [
101
116
  PresetName.ORG_RESEARCH_PROJECT,
102
117
  async (space, n, cb) => {
103
- const mailbox = await space.db.query(Filter.type(Mailbox.Mailbox)).first();
118
+ const mailboxes = await space.db.query(Filter.type(Mailbox.Mailbox)).run();
119
+ const mailbox = mailboxes[0];
120
+ invariant(mailbox, 'Mailbox not found');
121
+ const mailboxFeed = await mailbox.feed?.tryLoad();
122
+ invariant(mailboxFeed, 'Mailbox missing feed reference');
123
+ const feedDXN = Feed.getQueueDxn(mailboxFeed)?.toString();
124
+ invariant(feedDXN, 'Mailbox feed missing DXN');
104
125
  const tag = await space.db.query(Filter.type(Tag.Tag, { label: 'Investor' })).first();
105
- const tagDxn = Obj.getDXN(tag).toString();
126
+ const tagDXN = Obj.getDXN(tag).toString();
106
127
 
107
128
  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 = Trigger.make({
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 = Trigger.make({
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.extract)),
133
- input: {
134
- source: '{{event.item}}',
135
- },
136
- });
137
- space.db.add(contactExtractionTrigger);
129
+ const contactsQuery = Query.select(Filter.type(Person.Person)).select(Filter.tag(tagDXN));
130
+ const organizationsQuery = Query.select(Filter.type(Organization.Organization)).select(Filter.tag(tagDXN));
131
+ const notesQuery = Query.select(Filter.type(Markdown.Document)).select(Filter.tag(tagDXN));
132
+
133
+ space.db.add(
134
+ Trigger.make({
135
+ enabled: true,
136
+ spec: Trigger.specTimer('* * * * *'), // Every minute.
137
+ function: Ref.make(Operation.serialize(InboxOperation.GoogleMailSync)),
138
+ input: {
139
+ mailbox: Ref.make(mailbox),
140
+ },
141
+ }),
142
+ );
138
143
 
139
144
  const researchPrompt = space.db.add(
140
- Prompt.make({
145
+ Routine.make({
141
146
  name: 'Research',
142
147
  description: 'Research organization',
143
148
  input: Schema.Struct({
@@ -152,59 +157,70 @@ export const generator = () => ({
152
157
  Create a research note for it at the end.
153
158
  NOTE: Do mocked reseach (set mockSearch to true).
154
159
  `,
155
- blueprints: [Ref.make(ResearchBlueprint)],
160
+ blueprints: [Ref.make(WebSearchBlueprint.make())],
156
161
  }),
157
162
  );
158
163
 
159
- const researchTrigger = Trigger.make({
160
- enabled: true,
161
- spec: {
162
- kind: 'subscription',
163
- query: {
164
- ast: organizationsQuery.ast,
164
+ space.db.add(
165
+ Trigger.make({
166
+ enabled: true,
167
+ spec: Trigger.specSubscription(organizationsQuery),
168
+ function: Ref.make(Operation.serialize(AgentPrompt)),
169
+ input: {
170
+ prompt: Ref.make(researchPrompt),
171
+ input: '{{event.subject}}',
165
172
  },
166
- },
167
- function: Ref.make(serializeFunction(Agent.prompt)),
168
- input: {
169
- prompt: Ref.make(researchPrompt),
170
- input: '{{event.subject}}',
171
- },
172
- });
173
- space.db.add(researchTrigger);
173
+ }),
174
+ );
174
175
 
175
- const mailboxView = createView({
176
- name: 'Mailbox',
176
+ const mailboxView = ViewModel.make({
177
177
  query: Query.select(
178
- Filter.type(DataType.Message, { properties: { labels: Filter.contains('investor') } }),
179
- ).options({
180
- queues: [mailbox.queue.dxn.toString()],
178
+ Filter.type(Message.Message, {
179
+ properties: { labels: Filter.contains('investor') },
180
+ }),
181
+ ).from({
182
+ feeds: [feedDXN],
181
183
  }),
182
- jsonSchema: Type.toJsonSchema(DataType.Message),
183
- presentation: Obj.make(DataType.Collection, { objects: [] }),
184
+ jsonSchema: JsonSchema.toJsonSchema(Message.Message),
184
185
  });
185
- const contactsView = createView({
186
- name: 'Contacts',
186
+ const contactsView = ViewModel.make({
187
187
  query: contactsQuery,
188
- jsonSchema: Type.toJsonSchema(DataType.Person),
189
- presentation: Obj.make(DataType.Collection, { objects: [] }),
188
+ jsonSchema: JsonSchema.toJsonSchema(Person.Person),
190
189
  });
191
- const organizationsView = createView({
192
- name: 'Organizations',
190
+ const organizationsView = ViewModel.make({
193
191
  query: organizationsQuery,
194
- jsonSchema: Type.toJsonSchema(DataType.Organization),
195
- presentation: Obj.make(DataType.Collection, { objects: [] }),
192
+ jsonSchema: JsonSchema.toJsonSchema(Organization.Organization),
196
193
  });
197
- const notesView = createView({
198
- name: 'Notes',
194
+ const notesView = ViewModel.make({
199
195
  query: notesQuery,
200
- jsonSchema: Type.toJsonSchema(Markdown.Document),
201
- presentation: Obj.make(DataType.Collection, { objects: [] }),
196
+ jsonSchema: JsonSchema.toJsonSchema(Markdown.Document),
202
197
  });
203
198
 
204
199
  return space.db.add(
205
- DataType.makeProject({
200
+ Pipeline.make({
206
201
  name: 'Investor Research',
207
- collections: [mailboxView, contactsView, organizationsView, notesView].map((view) => Ref.make(view)),
202
+ columns: [
203
+ {
204
+ name: 'Mailbox',
205
+ view: Ref.make(mailboxView),
206
+ order: [],
207
+ },
208
+ {
209
+ name: 'Contacts',
210
+ view: Ref.make(contactsView),
211
+ order: [],
212
+ },
213
+ {
214
+ name: 'Organizations',
215
+ view: Ref.make(organizationsView),
216
+ order: [],
217
+ },
218
+ {
219
+ name: 'Notes',
220
+ view: Ref.make(notesView),
221
+ order: [],
222
+ },
223
+ ],
208
224
  }),
209
225
  );
210
226
  });
@@ -233,10 +249,24 @@ export const generator = () => ({
233
249
  const append = canvasModel.createNode(createAppend(position({ x: 10, y: 6 })));
234
250
 
235
251
  builder
236
- .createEdge({ source: trigger.id, target: gpt.id, input: 'prompt', output: 'bodyText' })
252
+ .createEdge({
253
+ source: trigger.id,
254
+ target: gpt.id,
255
+ input: 'prompt',
256
+ output: 'bodyText',
257
+ })
237
258
  .createEdge({ source: gpt.id, target: text.id, output: 'text' })
238
- .createEdge({ source: queueId.id, target: append.id, input: 'id' })
239
- .createEdge({ source: gpt.id, target: append.id, output: 'messages', input: 'items' });
259
+ .createEdge({
260
+ source: queueId.id,
261
+ target: append.id,
262
+ input: 'id',
263
+ })
264
+ .createEdge({
265
+ source: gpt.id,
266
+ target: append.id,
267
+ output: 'messages',
268
+ input: 'items',
269
+ });
240
270
 
241
271
  functionTrigger = triggerShape.functionTrigger!.target!;
242
272
  });
@@ -261,7 +291,7 @@ export const generator = () => ({
261
291
  'subscription',
262
292
  (triggerSpec) =>
263
293
  (triggerSpec.query = {
264
- ast: Query.select(Filter.typename('dxos.org/type/Chess')).ast,
294
+ ast: Query.select(Filter.typename('org.dxos.type.chess')).ast as Obj.Mutable<QueryAST.Query>,
265
295
  }),
266
296
  'type',
267
297
  );
@@ -346,7 +376,7 @@ export const generator = () => ({
346
376
  // const templateComputeNode = computeModel.nodes.find((n) => n.id === template.node);
347
377
  // invariant(templateComputeNode, 'Template compute node was not created.');
348
378
  // templateComputeNode.value = templateContent.join('\n');
349
- // templateComputeNode.inputSchema = Type.toJsonSchema(EmailTriggerOutput);
379
+ // templateComputeNode.inputSchema = JsonSchema.toJsonSchema(EmailTriggerOutput);
350
380
 
351
381
  // attachTrigger(functionTrigger, computeModel);
352
382
 
@@ -374,8 +404,17 @@ export const generator = () => ({
374
404
  builder
375
405
  .createEdge({ source: chat.id, target: gpt.id, input: 'prompt' })
376
406
  .createEdge({ source: gpt.id, target: text.id, output: 'text' })
377
- .createEdge({ source: queueId.id, target: append.id, input: 'id' })
378
- .createEdge({ source: gpt.id, target: append.id, output: 'messages', input: 'items' });
407
+ .createEdge({
408
+ source: queueId.id,
409
+ target: append.id,
410
+ input: 'id',
411
+ })
412
+ .createEdge({
413
+ source: gpt.id,
414
+ target: append.id,
415
+ output: 'messages',
416
+ input: 'items',
417
+ });
379
418
  });
380
419
 
381
420
  const computeModel = createComputeGraph(canvasModel);
@@ -471,7 +510,7 @@ export const generator = () => ({
471
510
  // invariant(templateComputeNode, 'Template compute node was not created.');
472
511
  // templateComputeNode.value = templateContent.join('\n');
473
512
  // const extendedSchema = Schema.extend(EmailTriggerOutput, Schema.Struct({ text: Schema.String }));
474
- // templateComputeNode.inputSchema = Type.toJsonSchema(extendedSchema);
513
+ // templateComputeNode.inputSchema = JsonSchema.toJsonSchema(extendedSchema);
475
514
 
476
515
  // attachTrigger(functionTrigger, computeModel);
477
516
 
@@ -499,9 +538,21 @@ export const generator = () => ({
499
538
  const view = canvasModel.createNode(createSurface(position({ x: 12, y: 0 })));
500
539
 
501
540
  builder
502
- .createEdge({ source: sourceCurrency.id, target: converter.id, input: 'from' })
503
- .createEdge({ source: targetCurrency.id, target: converter.id, input: 'to' })
504
- .createEdge({ source: converter.id, target: view.id, output: 'rate' });
541
+ .createEdge({
542
+ source: sourceCurrency.id,
543
+ target: converter.id,
544
+ input: 'from',
545
+ })
546
+ .createEdge({
547
+ source: targetCurrency.id,
548
+ target: converter.id,
549
+ input: 'to',
550
+ })
551
+ .createEdge({
552
+ source: converter.id,
553
+ target: view.id,
554
+ output: 'rate',
555
+ });
505
556
  });
506
557
 
507
558
  const computeModel = createComputeGraph(canvasModel);
@@ -529,7 +580,10 @@ export const generator = () => ({
529
580
  const trigger = canvasModel.createNode(triggerShape);
530
581
  // DXOS dev-null channel.
531
582
  const channelId = canvasModel.createNode(
532
- createConstant({ value: '1088569858767212554', ...position({ x: -10, y: 0 }) }),
583
+ createConstant({
584
+ value: '1088569858767212554',
585
+ ...position({ x: -10, y: 0 }),
586
+ }),
533
587
  );
534
588
  const queueId = canvasModel.createNode(
535
589
  createConstant({
@@ -539,14 +593,34 @@ export const generator = () => ({
539
593
  );
540
594
  const converter = canvasModel.createNode(createFunction(position({ x: 0, y: 0 })));
541
595
  const view = canvasModel.createNode(createText(position({ x: 12, y: 0 })));
542
- const queue = canvasModel.createNode(createQueue(position({ x: 0, y: 12 })));
596
+ const queue = canvasModel.createNode(createFeed(position({ x: 0, y: 12 })));
543
597
 
544
598
  builder
545
- .createEdge({ source: trigger.id, target: converter.id, input: 'tick' })
546
- .createEdge({ source: channelId.id, target: converter.id, input: 'channelId' })
547
- .createEdge({ source: queueId.id, target: converter.id, input: 'queueId' })
548
- .createEdge({ source: converter.id, target: view.id, output: 'newMessages' })
549
- .createEdge({ source: queueId.id, target: queue.id, input: 'input' });
599
+ .createEdge({
600
+ source: trigger.id,
601
+ target: converter.id,
602
+ input: 'tick',
603
+ })
604
+ .createEdge({
605
+ source: channelId.id,
606
+ target: converter.id,
607
+ input: 'channelId',
608
+ })
609
+ .createEdge({
610
+ source: queueId.id,
611
+ target: converter.id,
612
+ input: 'queueId',
613
+ })
614
+ .createEdge({
615
+ source: converter.id,
616
+ target: view.id,
617
+ output: 'newMessages',
618
+ })
619
+ .createEdge({
620
+ source: queueId.id,
621
+ target: queue.id,
622
+ input: 'input',
623
+ });
550
624
 
551
625
  functionTrigger = triggerShape.functionTrigger!.target!;
552
626
  });
@@ -616,7 +690,7 @@ export const generator = () => ({
616
690
  const createQueueSinkPreset = <SpecType extends Trigger.Kind>(
617
691
  space: Space,
618
692
  triggerKind: SpecType,
619
- initSpec: (spec: Extract<Trigger.Spec, { kind: SpecType }>) => void,
693
+ initSpec: (spec: Obj.Mutable<Extract<Trigger.Spec, { kind: SpecType }>>) => void,
620
694
  triggerOutputName: string,
621
695
  ) => {
622
696
  const canvasModel = CanvasGraphModel.create<ComputeShape>();
@@ -649,7 +723,12 @@ const createQueueSinkPreset = <SpecType extends Trigger.Kind>(
649
723
  builder
650
724
  .createEdge({ source: queueId.id, target: append.id, input: 'id' })
651
725
  .createEdge({ source: template.id, target: append.id, input: 'items' })
652
- .createEdge({ source: trigger.id, target: template.id, output: triggerOutputName, input: 'type' })
726
+ .createEdge({
727
+ source: trigger.id,
728
+ target: template.id,
729
+ output: triggerOutputName,
730
+ input: 'type',
731
+ })
653
732
  .createEdge({
654
733
  source: random.id,
655
734
  target: template.id,
@@ -659,15 +738,20 @@ const createQueueSinkPreset = <SpecType extends Trigger.Kind>(
659
738
  functionTrigger = triggerShape.functionTrigger!.target!;
660
739
  const triggerSpec = functionTrigger.spec;
661
740
  invariant(triggerSpec && triggerSpec.kind === triggerKind, 'No trigger spec.');
662
- initSpec(triggerSpec as any);
741
+ Obj.update(functionTrigger, (functionTrigger) => {
742
+ initSpec(functionTrigger.spec as any);
743
+ });
663
744
  });
664
745
 
665
746
  const computeModel = createComputeGraph(canvasModel);
666
747
 
667
748
  const templateComputeNode = computeModel.nodes.find((n) => n.id === template.node);
668
749
  invariant(templateComputeNode, 'Template compute node was not created.');
750
+ // NOTE: These are plain object mutations during model construction, not ECHO object mutations.
669
751
  templateComputeNode.value = ['{', ' "@type": "{{type}}",', ' "id": "@{{changeId}}"', '}'].join('\n');
670
- templateComputeNode.inputSchema = Type.toJsonSchema(Schema.Struct({ type: Schema.String, changeId: Schema.String }));
752
+ templateComputeNode.inputSchema = JsonSchema.toJsonSchema(
753
+ Schema.Struct({ type: Schema.String, changeId: Schema.String }),
754
+ );
671
755
  attachTrigger(functionTrigger, computeModel);
672
756
 
673
757
  return { canvasModel, computeModel };
@@ -675,7 +759,7 @@ const createQueueSinkPreset = <SpecType extends Trigger.Kind>(
675
759
 
676
760
  const addToSpace = (name: string, space: Space, canvas: CanvasGraphModel, compute: ComputeGraphModel) => {
677
761
  return space.db.add(
678
- Obj.make(CanvasBoardType, {
762
+ Obj.make(CanvasBoard.CanvasBoard, {
679
763
  name,
680
764
  computeGraph: Ref.make(compute.root),
681
765
  layout: canvas.graph,
@@ -695,7 +779,7 @@ const setupQueue = (
695
779
  }),
696
780
  );
697
781
  const queue = canvasModel.createNode(
698
- createQueue(
782
+ createFeed(
699
783
  args?.queuePosition ? rawPosition(args.queuePosition) : position({ x: -3, y: 3, width: 14, height: 10 }),
700
784
  ),
701
785
  );
@@ -705,15 +789,25 @@ const setupQueue = (
705
789
 
706
790
  const attachTrigger = (functionTrigger: Trigger.Trigger | undefined, computeModel: ComputeGraphModel) => {
707
791
  invariant(functionTrigger);
708
- functionTrigger.function = Ref.make(computeModel.root);
709
792
  const inputNode = computeModel.nodes.find((node) => node.type === NODE_INPUT)!;
710
- functionTrigger.inputNodeId = inputNode.id;
793
+ Obj.update(functionTrigger, (functionTrigger) => {
794
+ functionTrigger.function = Ref.make(computeModel.root);
795
+ functionTrigger.inputNodeId = inputNode.id;
796
+ });
711
797
  };
712
798
 
713
- type RawPositionInput = { centerX: number; centerY: number; width: number; height: number };
799
+ type RawPositionInput = {
800
+ centerX: number;
801
+ centerY: number;
802
+ width: number;
803
+ height: number;
804
+ };
714
805
 
715
806
  const rawPosition = (args: RawPositionInput) => {
716
- return { center: { x: args.centerX, y: args.centerY }, size: { width: args.width, height: args.height } };
807
+ return {
808
+ center: { x: args.centerX, y: args.centerY },
809
+ size: { width: args.width, height: args.height },
810
+ };
717
811
  };
718
812
 
719
813
  const position = (rect: { x: number; y: number; width?: number; height?: number }) => {
@@ -721,7 +815,10 @@ const position = (rect: { x: number; y: number; width?: number; height?: number
721
815
  const [center, size] = rectToPoints({ width: 0, height: 0, ...rect });
722
816
  const { x, y, width, height } = pointsToRect([pointMultiply(center, snap), pointMultiply(size, snap)]);
723
817
  if (width && height) {
724
- return { center: { x, y }, size: width && height ? { width, height } : undefined };
818
+ return {
819
+ center: { x, y },
820
+ size: width && height ? { width, height } : undefined,
821
+ };
725
822
  } else {
726
823
  return { center: { x, y } };
727
824
  }
@@ -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';
@@ -0,0 +1,76 @@
1
+ //
2
+ // Copyright 2024 DXOS.org
3
+ //
4
+
5
+ import React, { useMemo, useState } from 'react';
6
+
7
+ import { AppSurface } from '@dxos/app-toolkit/ui';
8
+ import { ObjectsTree } from '@dxos/devtools';
9
+ import { Filter, Json, Obj, Query } from '@dxos/echo';
10
+ import type { ObjectId } from '@dxos/keys';
11
+ import { useQuery } from '@dxos/react-client/echo';
12
+ import { Clipboard, Input, Panel, ScrollArea, Toolbar } from '@dxos/react-ui';
13
+ import { Syntax } from '@dxos/react-ui-syntax-highlighter';
14
+ import { mx } from '@dxos/ui-theme';
15
+
16
+ export type DebugObjectPanelProps = Pick<
17
+ AppSurface.ObjectArticleProps<Obj.Unknown, {}, Obj.Unknown>,
18
+ 'role' | 'companionTo'
19
+ >;
20
+
21
+ export const DebugObjectPanel = ({ role, companionTo }: DebugObjectPanelProps) => {
22
+ const db = Obj.getDatabase(companionTo);
23
+ const [selectedId, setSelectedId] = useState<ObjectId | null>(null);
24
+ const [depth, setDepth] = useState(0);
25
+ const [selectedObject] = useQuery(
26
+ db,
27
+ Query.select(Filter.id(selectedId ?? companionTo.id)).options({ deleted: 'include' }),
28
+ );
29
+ const refReplacer = useMemo(() => (db ? Json.createRefReplacer({ db, depth }) : undefined), [db, depth]);
30
+
31
+ return (
32
+ <Clipboard.Provider>
33
+ <Panel.Root role={role}>
34
+ <Panel.Toolbar asChild>
35
+ <Toolbar.Root />
36
+ </Panel.Toolbar>
37
+ <Panel.Content asChild>
38
+ <div className={mx('grid divide-y divide-separator', db && 'grid-rows-[1fr_2fr]')}>
39
+ {db && (
40
+ <ScrollArea.Root>
41
+ <ScrollArea.Viewport>
42
+ <ObjectsTree db={db} root={companionTo} onSelect={(entity) => setSelectedId(entity.id)} />
43
+ </ScrollArea.Viewport>
44
+ </ScrollArea.Root>
45
+ )}
46
+ <Syntax.Root data={selectedObject} replacer={refReplacer}>
47
+ <Panel.Root>
48
+ <Panel.Toolbar asChild>
49
+ <Toolbar.Root classNames='grid grid-cols-[1fr_3rem]'>
50
+ <Syntax.Filter />
51
+ <Input.Root>
52
+ <Input.TextInput
53
+ variant='subdued'
54
+ type='number'
55
+ min={0}
56
+ step={1}
57
+ aria-label='Ref depth'
58
+ value={depth}
59
+ onChange={(event) => setDepth(Math.max(0, Number(event.target.value) || 0))}
60
+ />
61
+ </Input.Root>
62
+ </Toolbar.Root>
63
+ </Panel.Toolbar>
64
+ <Panel.Content asChild>
65
+ <Syntax.Viewport>
66
+ <Syntax.Code />
67
+ </Syntax.Viewport>
68
+ </Panel.Content>
69
+ </Panel.Root>
70
+ </Syntax.Root>
71
+ </div>
72
+ </Panel.Content>
73
+ </Panel.Root>
74
+ </Clipboard.Provider>
75
+ );
76
+ };