@dxos/plugin-debug 0.8.4-main.72ec0f3 → 0.8.4-main.765dc60934

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 (214) 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/DebugSettings-Z3XADRNK.mjs +224 -0
  12. package/dist/lib/neutral/DebugSettings-Z3XADRNK.mjs.map +7 -0
  13. package/dist/lib/neutral/DebugSpaceObjectsPanel-NISULU6U.mjs +34 -0
  14. package/dist/lib/neutral/DebugSpaceObjectsPanel-NISULU6U.mjs.map +7 -0
  15. package/dist/lib/neutral/DebugStatus-YB3KFP7G.mjs +121 -0
  16. package/dist/lib/neutral/DebugStatus-YB3KFP7G.mjs.map +7 -0
  17. package/dist/lib/neutral/DevtoolsOverviewContainer-YX7Z3D2H.mjs +23 -0
  18. package/dist/lib/neutral/DevtoolsOverviewContainer-YX7Z3D2H.mjs.map +7 -0
  19. package/dist/lib/neutral/SpaceGenerator-UBYB4NPD.mjs +143 -0
  20. package/dist/lib/neutral/SpaceGenerator-UBYB4NPD.mjs.map +7 -0
  21. package/dist/lib/neutral/Wireframe-7SNRUKET.mjs +52 -0
  22. package/dist/lib/neutral/Wireframe-7SNRUKET.mjs.map +7 -0
  23. package/dist/lib/neutral/app-graph-builder-YPYHL2K5.mjs +577 -0
  24. package/dist/lib/neutral/app-graph-builder-YPYHL2K5.mjs.map +7 -0
  25. package/dist/lib/neutral/capabilities/index.mjs +15 -0
  26. package/dist/lib/neutral/capabilities/index.mjs.map +7 -0
  27. package/dist/lib/{browser/chunk-WZFZ4ESO.mjs → neutral/chunk-3OGPOE7H.mjs} +2 -2
  28. package/dist/lib/neutral/chunk-3OGPOE7H.mjs.map +7 -0
  29. package/dist/lib/neutral/chunk-J5LGTIGS.mjs +10 -0
  30. package/dist/lib/neutral/chunk-J5LGTIGS.mjs.map +7 -0
  31. package/dist/lib/{browser/chunk-SRV2AIGJ.mjs → neutral/chunk-NFIOTQRZ.mjs} +30 -9
  32. package/dist/lib/neutral/chunk-NFIOTQRZ.mjs.map +7 -0
  33. package/dist/lib/{browser/SpaceGenerator-46TAISVE.mjs → neutral/components/index.mjs} +317 -490
  34. package/dist/lib/neutral/components/index.mjs.map +7 -0
  35. package/dist/lib/neutral/containers/index.mjs +21 -0
  36. package/dist/lib/neutral/containers/index.mjs.map +7 -0
  37. package/dist/lib/neutral/index.mjs +18 -0
  38. package/dist/lib/neutral/index.mjs.map +7 -0
  39. package/dist/lib/neutral/meta.json +1 -0
  40. package/dist/lib/neutral/meta.mjs +8 -0
  41. package/dist/lib/neutral/meta.mjs.map +7 -0
  42. package/dist/lib/neutral/plugin.mjs +12 -0
  43. package/dist/lib/neutral/plugin.mjs.map +7 -0
  44. package/dist/lib/neutral/react-context-MUZ3KVLU.mjs +17 -0
  45. package/dist/lib/neutral/react-context-MUZ3KVLU.mjs.map +7 -0
  46. package/dist/lib/neutral/react-surface-UR2SYHYW.mjs +419 -0
  47. package/dist/lib/neutral/react-surface-UR2SYHYW.mjs.map +7 -0
  48. package/dist/lib/neutral/settings-MPM6YUP4.mjs +28 -0
  49. package/dist/lib/neutral/settings-MPM6YUP4.mjs.map +7 -0
  50. package/dist/lib/neutral/translations.mjs +83 -0
  51. package/dist/lib/neutral/translations.mjs.map +7 -0
  52. package/dist/lib/neutral/types/index.mjs +14 -0
  53. package/dist/lib/neutral/types/index.mjs.map +7 -0
  54. package/dist/types/src/DebugPlugin.d.ts +4 -1
  55. package/dist/types/src/DebugPlugin.d.ts.map +1 -1
  56. package/dist/types/src/DebugPlugin.node.d.ts +5 -0
  57. package/dist/types/src/DebugPlugin.node.d.ts.map +1 -0
  58. package/dist/types/src/DebugPlugin.test.d.ts +2 -0
  59. package/dist/types/src/DebugPlugin.test.d.ts.map +1 -0
  60. package/dist/types/src/capabilities/app-graph-builder.d.ts +4 -2
  61. package/dist/types/src/capabilities/app-graph-builder.d.ts.map +1 -1
  62. package/dist/types/src/capabilities/index.d.ts +8 -5
  63. package/dist/types/src/capabilities/index.d.ts.map +1 -1
  64. package/dist/types/src/capabilities/react-context.d.ts +4 -2
  65. package/dist/types/src/capabilities/react-context.d.ts.map +1 -1
  66. package/dist/types/src/capabilities/react-surface.d.ts +7 -2
  67. package/dist/types/src/capabilities/react-surface.d.ts.map +1 -1
  68. package/dist/types/src/capabilities/settings.d.ts +5 -2
  69. package/dist/types/src/capabilities/settings.d.ts.map +1 -1
  70. package/dist/types/src/components/DebugSettings/DebugSettings.d.ts +11 -0
  71. package/dist/types/src/components/DebugSettings/DebugSettings.d.ts.map +1 -0
  72. package/dist/types/src/components/DebugSettings/DebugSettings.stories.d.ts +99 -0
  73. package/dist/types/src/components/DebugSettings/DebugSettings.stories.d.ts.map +1 -0
  74. package/dist/types/src/components/DebugSettings/index.d.ts +2 -0
  75. package/dist/types/src/components/DebugSettings/index.d.ts.map +1 -0
  76. package/dist/types/src/components/SchemaTable/SchemaTable.d.ts.map +1 -0
  77. package/dist/types/src/components/SchemaTable/index.d.ts +2 -0
  78. package/dist/types/src/components/SchemaTable/index.d.ts.map +1 -0
  79. package/dist/types/src/components/SpaceGenerator/ObjectGenerator.d.ts +5 -5
  80. package/dist/types/src/components/SpaceGenerator/ObjectGenerator.d.ts.map +1 -1
  81. package/dist/types/src/components/SpaceGenerator/draw-util.d.ts.map +1 -1
  82. package/dist/types/src/components/SpaceGenerator/index.d.ts +2 -2
  83. package/dist/types/src/components/SpaceGenerator/index.d.ts.map +1 -1
  84. package/dist/types/src/components/SpaceGenerator/presets.d.ts +1 -4
  85. package/dist/types/src/components/SpaceGenerator/presets.d.ts.map +1 -1
  86. package/dist/types/src/components/index.d.ts +4 -10
  87. package/dist/types/src/components/index.d.ts.map +1 -1
  88. package/dist/types/src/containers/DebugGraph/DebugGraph.d.ts +8 -0
  89. package/dist/types/src/containers/DebugGraph/DebugGraph.d.ts.map +1 -0
  90. package/dist/types/src/containers/DebugGraph/index.d.ts +2 -0
  91. package/dist/types/src/containers/DebugGraph/index.d.ts.map +1 -0
  92. package/dist/types/src/containers/DebugObjectPanel/DebugObjectPanel.d.ts +6 -0
  93. package/dist/types/src/containers/DebugObjectPanel/DebugObjectPanel.d.ts.map +1 -0
  94. package/dist/types/src/containers/DebugObjectPanel/index.d.ts +2 -0
  95. package/dist/types/src/containers/DebugObjectPanel/index.d.ts.map +1 -0
  96. package/dist/types/src/containers/DebugSpaceObjectsPanel/DebugSpaceObjectsPanel.d.ts +5 -0
  97. package/dist/types/src/containers/DebugSpaceObjectsPanel/DebugSpaceObjectsPanel.d.ts.map +1 -0
  98. package/dist/types/src/containers/DebugSpaceObjectsPanel/index.d.ts +2 -0
  99. package/dist/types/src/containers/DebugSpaceObjectsPanel/index.d.ts.map +1 -0
  100. package/dist/types/src/containers/DebugStatus/DebugStatus.d.ts.map +1 -0
  101. package/dist/types/src/containers/DebugStatus/index.d.ts +2 -0
  102. package/dist/types/src/containers/DebugStatus/index.d.ts.map +1 -0
  103. package/dist/types/src/{components → containers/DevtoolsOverviewContainer}/DevtoolsOverviewContainer.d.ts +0 -1
  104. package/dist/types/src/containers/DevtoolsOverviewContainer/DevtoolsOverviewContainer.d.ts.map +1 -0
  105. package/dist/types/src/containers/DevtoolsOverviewContainer/index.d.ts +2 -0
  106. package/dist/types/src/containers/DevtoolsOverviewContainer/index.d.ts.map +1 -0
  107. package/dist/types/src/containers/SpaceGenerator/SpaceGenerator.d.ts +11 -0
  108. package/dist/types/src/containers/SpaceGenerator/SpaceGenerator.d.ts.map +1 -0
  109. package/dist/types/src/containers/SpaceGenerator/index.d.ts +2 -0
  110. package/dist/types/src/containers/SpaceGenerator/index.d.ts.map +1 -0
  111. package/dist/types/src/{components → containers/Wireframe}/Wireframe.d.ts +1 -1
  112. package/dist/types/src/containers/Wireframe/Wireframe.d.ts.map +1 -0
  113. package/dist/types/src/containers/Wireframe/index.d.ts +2 -0
  114. package/dist/types/src/containers/Wireframe/index.d.ts.map +1 -0
  115. package/dist/types/src/containers/index.d.ts +9 -0
  116. package/dist/types/src/containers/index.d.ts.map +1 -0
  117. package/dist/types/src/index.d.ts +1 -1
  118. package/dist/types/src/index.d.ts.map +1 -1
  119. package/dist/types/src/meta.d.ts +2 -2
  120. package/dist/types/src/meta.d.ts.map +1 -1
  121. package/dist/types/src/plugin.d.ts +4 -0
  122. package/dist/types/src/plugin.d.ts.map +1 -0
  123. package/dist/types/src/translations.d.ts +80 -59
  124. package/dist/types/src/translations.d.ts.map +1 -1
  125. package/dist/types/src/types/Settings.d.ts +8 -0
  126. package/dist/types/src/types/Settings.d.ts.map +1 -0
  127. package/dist/types/src/types/index.d.ts +69 -0
  128. package/dist/types/src/types/index.d.ts.map +1 -0
  129. package/dist/types/tsconfig.tsbuildinfo +1 -1
  130. package/package.json +132 -76
  131. package/src/DebugPlugin.node.ts +18 -0
  132. package/src/DebugPlugin.test.ts +29 -0
  133. package/src/DebugPlugin.tsx +28 -34
  134. package/src/capabilities/app-graph-builder.ts +362 -388
  135. package/src/capabilities/index.ts +5 -5
  136. package/src/capabilities/react-context.tsx +16 -7
  137. package/src/capabilities/react-surface.tsx +376 -356
  138. package/src/capabilities/settings.ts +24 -12
  139. package/src/components/DebugSettings/DebugSettings.stories.tsx +36 -0
  140. package/src/components/DebugSettings/DebugSettings.tsx +262 -0
  141. package/src/components/DebugSettings/index.ts +5 -0
  142. package/src/components/{SpaceGenerator → SchemaTable}/SchemaTable.tsx +2 -2
  143. package/src/components/SchemaTable/index.ts +5 -0
  144. package/src/components/SpaceGenerator/ObjectGenerator.tsx +26 -29
  145. package/src/components/SpaceGenerator/draw-util.ts +8 -8
  146. package/src/components/SpaceGenerator/index.ts +2 -3
  147. package/src/components/SpaceGenerator/presets.ts +206 -110
  148. package/src/components/index.ts +4 -8
  149. package/src/containers/DebugGraph/DebugGraph.tsx +14 -0
  150. package/src/containers/DebugGraph/index.ts +5 -0
  151. package/src/containers/DebugObjectPanel/DebugObjectPanel.tsx +76 -0
  152. package/src/containers/DebugObjectPanel/index.ts +5 -0
  153. package/src/containers/DebugSpaceObjectsPanel/DebugSpaceObjectsPanel.tsx +47 -0
  154. package/src/containers/DebugSpaceObjectsPanel/index.ts +5 -0
  155. package/src/{components → containers/DebugStatus}/DebugStatus.tsx +41 -19
  156. package/src/containers/DebugStatus/index.ts +5 -0
  157. package/src/containers/DevtoolsOverviewContainer/DevtoolsOverviewContainer.tsx +25 -0
  158. package/src/containers/DevtoolsOverviewContainer/index.ts +5 -0
  159. package/src/containers/SpaceGenerator/SpaceGenerator.tsx +126 -0
  160. package/src/containers/SpaceGenerator/index.ts +5 -0
  161. package/src/{components → containers/Wireframe}/Wireframe.tsx +5 -9
  162. package/src/containers/Wireframe/index.ts +5 -0
  163. package/src/containers/index.ts +13 -0
  164. package/src/index.ts +1 -1
  165. package/src/meta.ts +3 -3
  166. package/src/plugin.ts +10 -0
  167. package/src/translations.ts +75 -58
  168. package/src/types/Settings.ts +16 -0
  169. package/src/{types.ts → types/index.ts} +20 -11
  170. package/dist/lib/browser/DebugGraph-EDOH6R2G.mjs +0 -20
  171. package/dist/lib/browser/DebugGraph-EDOH6R2G.mjs.map +0 -7
  172. package/dist/lib/browser/DevtoolsOverviewContainer-JXVZVPHN.mjs +0 -25
  173. package/dist/lib/browser/DevtoolsOverviewContainer-JXVZVPHN.mjs.map +0 -7
  174. package/dist/lib/browser/SpaceGenerator-46TAISVE.mjs.map +0 -7
  175. package/dist/lib/browser/app-graph-builder-CRH2HJKT.mjs +0 -588
  176. package/dist/lib/browser/app-graph-builder-CRH2HJKT.mjs.map +0 -7
  177. package/dist/lib/browser/chunk-SRV2AIGJ.mjs.map +0 -7
  178. package/dist/lib/browser/chunk-WZFZ4ESO.mjs.map +0 -7
  179. package/dist/lib/browser/index.mjs +0 -130
  180. package/dist/lib/browser/index.mjs.map +0 -7
  181. package/dist/lib/browser/meta.json +0 -1
  182. package/dist/lib/browser/react-context-P2YDWEWI.mjs +0 -16
  183. package/dist/lib/browser/react-context-P2YDWEWI.mjs.map +0 -7
  184. package/dist/lib/browser/react-surface-2SNVZDEA.mjs +0 -774
  185. package/dist/lib/browser/react-surface-2SNVZDEA.mjs.map +0 -7
  186. package/dist/lib/browser/settings-SQXR3OAH.mjs +0 -22
  187. package/dist/lib/browser/settings-SQXR3OAH.mjs.map +0 -7
  188. package/dist/types/src/components/Container.d.ts +0 -5
  189. package/dist/types/src/components/Container.d.ts.map +0 -1
  190. package/dist/types/src/components/DebugGraph.d.ts +0 -8
  191. package/dist/types/src/components/DebugGraph.d.ts.map +0 -1
  192. package/dist/types/src/components/DebugObjectPanel.d.ts +0 -7
  193. package/dist/types/src/components/DebugObjectPanel.d.ts.map +0 -1
  194. package/dist/types/src/components/DebugSettings.d.ts +0 -6
  195. package/dist/types/src/components/DebugSettings.d.ts.map +0 -1
  196. package/dist/types/src/components/DebugStatus.d.ts.map +0 -1
  197. package/dist/types/src/components/DevtoolsOverviewContainer.d.ts.map +0 -1
  198. package/dist/types/src/components/SpaceGenerator/SchemaTable.d.ts.map +0 -1
  199. package/dist/types/src/components/SpaceGenerator/SpaceGenerator.d.ts +0 -9
  200. package/dist/types/src/components/SpaceGenerator/SpaceGenerator.d.ts.map +0 -1
  201. package/dist/types/src/components/SpaceGenerator/SpaceGenerator.stories.d.ts +0 -15
  202. package/dist/types/src/components/SpaceGenerator/SpaceGenerator.stories.d.ts.map +0 -1
  203. package/dist/types/src/components/Wireframe.d.ts.map +0 -1
  204. package/dist/types/src/types.d.ts +0 -63
  205. package/dist/types/src/types.d.ts.map +0 -1
  206. package/src/components/Container.tsx +0 -15
  207. package/src/components/DebugGraph.tsx +0 -14
  208. package/src/components/DebugObjectPanel.tsx +0 -33
  209. package/src/components/DebugSettings.tsx +0 -180
  210. package/src/components/DevtoolsOverviewContainer.tsx +0 -20
  211. package/src/components/SpaceGenerator/SpaceGenerator.stories.tsx +0 -52
  212. package/src/components/SpaceGenerator/SpaceGenerator.tsx +0 -122
  213. /package/dist/types/src/components/{SpaceGenerator → SchemaTable}/SchemaTable.d.ts +0 -0
  214. /package/dist/types/src/{components → containers/DebugStatus}/DebugStatus.d.ts +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 { gmail } 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,24 +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 { Collection, View } from '@dxos/schema';
40
- import { Message, Organization, Person, Project } from '@dxos/types';
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';
41
34
  import { range, trim } from '@dxos/util';
42
35
 
43
36
  import { type ObjectGenerator } from './ObjectGenerator';
@@ -57,14 +50,19 @@ export enum PresetName {
57
50
  }
58
51
 
59
52
  export const generator = () => ({
60
- schemas: [CanvasBoardType, Trigger.Trigger],
53
+ schemas: [CanvasBoard.CanvasBoard, Trigger.Trigger] as any[],
61
54
  types: Object.values(PresetName).map((name) => ({ typename: name })),
62
55
  items: [
63
56
  [
64
57
  PresetName.DXOS_TEAM,
65
58
  async (space, n, cb) => {
66
59
  const objects = range(n, () => {
67
- const org = space.db.add(Obj.make(Organization.Organization, { name: 'DXOS', website: 'https://dxos.org' }));
60
+ const org = space.db.add(
61
+ Obj.make(Organization.Organization, {
62
+ name: 'DXOS',
63
+ website: 'https://dxos.org',
64
+ }),
65
+ );
68
66
  const doc = space.db.add(
69
67
  Markdown.make({
70
68
  name: 'DXOS Research',
@@ -73,8 +71,10 @@ export const generator = () => ({
73
71
  );
74
72
 
75
73
  const tag = space.db.add(Tag.make({ label: 'Investor' }));
76
- const tagDxn = Obj.getDXN(tag).toString();
77
- Obj.getMeta(doc).tags = [tagDxn];
74
+ const tagDXN = Obj.getDXN(tag).toString();
75
+ Obj.update(doc, (doc) => {
76
+ Obj.getMeta(doc).tags = [tagDXN];
77
+ });
78
78
 
79
79
  // space.db.add(
80
80
  // Relation.make(HasSubject, {
@@ -84,10 +84,27 @@ export const generator = () => ({
84
84
  // }),
85
85
  // );
86
86
 
87
- space.db.add(Obj.make(Person.Person, { fullName: 'Rich', organization: Ref.make(org) }, { tags: [tagDxn] }));
88
- space.db.add(Obj.make(Person.Person, { fullName: 'Josiah', organization: Ref.make(org) }));
89
- space.db.add(Obj.make(Person.Person, { fullName: 'Dima', organization: Ref.make(org) }));
90
- space.db.add(Obj.make(Person.Person, { fullName: 'Mykola', organization: Ref.make(org) }));
87
+ space.db.add(
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
+ }),
107
+ );
91
108
 
92
109
  return doc;
93
110
  });
@@ -98,46 +115,34 @@ export const generator = () => ({
98
115
  [
99
116
  PresetName.ORG_RESEARCH_PROJECT,
100
117
  async (space, n, cb) => {
101
- 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');
102
125
  const tag = await space.db.query(Filter.type(Tag.Tag, { label: 'Investor' })).first();
103
- const tagDxn = Obj.getDXN(tag).toString();
126
+ const tagDXN = Obj.getDXN(tag).toString();
104
127
 
105
128
  const objects = range(n, () => {
106
- const contactsQuery = Query.select(Filter.type(Person.Person)).select(Filter.tag(tagDxn));
107
- const organizationsQuery = Query.select(Filter.type(Organization.Organization)).select(Filter.tag(tagDxn));
108
- const notesQuery = Query.select(Filter.type(Markdown.Document)).select(Filter.tag(tagDxn));
109
-
110
- space.db.add(
111
- Trigger.make({
112
- enabled: true,
113
- spec: {
114
- kind: 'timer',
115
- cron: '* * * * *', // Every minute.
116
- },
117
- function: Ref.make(serializeFunction(gmail.sync)),
118
- input: {
119
- mailboxId: Obj.getDXN(mailbox).toString(),
120
- },
121
- }),
122
- );
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));
123
132
 
124
133
  space.db.add(
125
134
  Trigger.make({
126
135
  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)),
136
+ spec: Trigger.specTimer('* * * * *'), // Every minute.
137
+ function: Ref.make(Operation.serialize(InboxOperation.GoogleMailSync)),
133
138
  input: {
134
- source: '{{event.item}}',
139
+ mailbox: Ref.make(mailbox),
135
140
  },
136
141
  }),
137
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,20 +157,15 @@ 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
164
  space.db.add(
160
165
  Trigger.make({
161
166
  enabled: true,
162
- spec: {
163
- kind: 'subscription',
164
- query: {
165
- ast: organizationsQuery.ast,
166
- },
167
- },
168
- function: Ref.make(serializeFunction(Agent.prompt)),
167
+ spec: Trigger.specSubscription(organizationsQuery),
168
+ function: Ref.make(Operation.serialize(AgentPrompt)),
169
169
  input: {
170
170
  prompt: Ref.make(researchPrompt),
171
171
  input: '{{event.subject}}',
@@ -173,39 +173,54 @@ export const generator = () => ({
173
173
  }),
174
174
  );
175
175
 
176
- const mailboxView = View.make({
177
- name: 'Mailbox',
176
+ const mailboxView = ViewModel.make({
178
177
  query: Query.select(
179
- Filter.type(Message.Message, { properties: { labels: Filter.contains('investor') } }),
180
- ).options({
181
- queues: [mailbox.queue.dxn.toString()],
178
+ Filter.type(Message.Message, {
179
+ properties: { labels: Filter.contains('investor') },
180
+ }),
181
+ ).from({
182
+ feeds: [feedDXN],
182
183
  }),
183
- jsonSchema: Type.toJsonSchema(Message.Message),
184
- presentation: Obj.make(Collection.Collection, { objects: [] }),
184
+ jsonSchema: JsonSchema.toJsonSchema(Message.Message),
185
185
  });
186
- const contactsView = View.make({
187
- name: 'Contacts',
186
+ const contactsView = ViewModel.make({
188
187
  query: contactsQuery,
189
- jsonSchema: Type.toJsonSchema(Person.Person),
190
- presentation: Obj.make(Collection.Collection, { objects: [] }),
188
+ jsonSchema: JsonSchema.toJsonSchema(Person.Person),
191
189
  });
192
- const organizationsView = View.make({
193
- name: 'Organizations',
190
+ const organizationsView = ViewModel.make({
194
191
  query: organizationsQuery,
195
- jsonSchema: Type.toJsonSchema(Organization.Organization),
196
- presentation: Obj.make(Collection.Collection, { objects: [] }),
192
+ jsonSchema: JsonSchema.toJsonSchema(Organization.Organization),
197
193
  });
198
- const notesView = View.make({
199
- name: 'Notes',
194
+ const notesView = ViewModel.make({
200
195
  query: notesQuery,
201
- jsonSchema: Type.toJsonSchema(Markdown.Document),
202
- presentation: Obj.make(Collection.Collection, { objects: [] }),
196
+ jsonSchema: JsonSchema.toJsonSchema(Markdown.Document),
203
197
  });
204
198
 
205
199
  return space.db.add(
206
- Project.make({
200
+ Pipeline.make({
207
201
  name: 'Investor Research',
208
- 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
+ ],
209
224
  }),
210
225
  );
211
226
  });
@@ -234,10 +249,24 @@ export const generator = () => ({
234
249
  const append = canvasModel.createNode(createAppend(position({ x: 10, y: 6 })));
235
250
 
236
251
  builder
237
- .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
+ })
238
258
  .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' });
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
+ });
241
270
 
242
271
  functionTrigger = triggerShape.functionTrigger!.target!;
243
272
  });
@@ -262,7 +291,7 @@ export const generator = () => ({
262
291
  'subscription',
263
292
  (triggerSpec) =>
264
293
  (triggerSpec.query = {
265
- 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>,
266
295
  }),
267
296
  'type',
268
297
  );
@@ -347,7 +376,7 @@ export const generator = () => ({
347
376
  // const templateComputeNode = computeModel.nodes.find((n) => n.id === template.node);
348
377
  // invariant(templateComputeNode, 'Template compute node was not created.');
349
378
  // templateComputeNode.value = templateContent.join('\n');
350
- // templateComputeNode.inputSchema = Type.toJsonSchema(EmailTriggerOutput);
379
+ // templateComputeNode.inputSchema = JsonSchema.toJsonSchema(EmailTriggerOutput);
351
380
 
352
381
  // attachTrigger(functionTrigger, computeModel);
353
382
 
@@ -375,8 +404,17 @@ export const generator = () => ({
375
404
  builder
376
405
  .createEdge({ source: chat.id, target: gpt.id, input: 'prompt' })
377
406
  .createEdge({ source: gpt.id, target: text.id, output: 'text' })
378
- .createEdge({ source: queueId.id, target: append.id, input: 'id' })
379
- .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
+ });
380
418
  });
381
419
 
382
420
  const computeModel = createComputeGraph(canvasModel);
@@ -472,7 +510,7 @@ export const generator = () => ({
472
510
  // invariant(templateComputeNode, 'Template compute node was not created.');
473
511
  // templateComputeNode.value = templateContent.join('\n');
474
512
  // const extendedSchema = Schema.extend(EmailTriggerOutput, Schema.Struct({ text: Schema.String }));
475
- // templateComputeNode.inputSchema = Type.toJsonSchema(extendedSchema);
513
+ // templateComputeNode.inputSchema = JsonSchema.toJsonSchema(extendedSchema);
476
514
 
477
515
  // attachTrigger(functionTrigger, computeModel);
478
516
 
@@ -500,9 +538,21 @@ export const generator = () => ({
500
538
  const view = canvasModel.createNode(createSurface(position({ x: 12, y: 0 })));
501
539
 
502
540
  builder
503
- .createEdge({ source: sourceCurrency.id, target: converter.id, input: 'from' })
504
- .createEdge({ source: targetCurrency.id, target: converter.id, input: 'to' })
505
- .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
+ });
506
556
  });
507
557
 
508
558
  const computeModel = createComputeGraph(canvasModel);
@@ -530,7 +580,10 @@ export const generator = () => ({
530
580
  const trigger = canvasModel.createNode(triggerShape);
531
581
  // DXOS dev-null channel.
532
582
  const channelId = canvasModel.createNode(
533
- createConstant({ value: '1088569858767212554', ...position({ x: -10, y: 0 }) }),
583
+ createConstant({
584
+ value: '1088569858767212554',
585
+ ...position({ x: -10, y: 0 }),
586
+ }),
534
587
  );
535
588
  const queueId = canvasModel.createNode(
536
589
  createConstant({
@@ -540,14 +593,34 @@ export const generator = () => ({
540
593
  );
541
594
  const converter = canvasModel.createNode(createFunction(position({ x: 0, y: 0 })));
542
595
  const view = canvasModel.createNode(createText(position({ x: 12, y: 0 })));
543
- const queue = canvasModel.createNode(createQueue(position({ x: 0, y: 12 })));
596
+ const queue = canvasModel.createNode(createFeed(position({ x: 0, y: 12 })));
544
597
 
545
598
  builder
546
- .createEdge({ source: trigger.id, target: converter.id, input: 'tick' })
547
- .createEdge({ source: channelId.id, target: converter.id, input: 'channelId' })
548
- .createEdge({ source: queueId.id, target: converter.id, input: 'queueId' })
549
- .createEdge({ source: converter.id, target: view.id, output: 'newMessages' })
550
- .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
+ });
551
624
 
552
625
  functionTrigger = triggerShape.functionTrigger!.target!;
553
626
  });
@@ -617,7 +690,7 @@ export const generator = () => ({
617
690
  const createQueueSinkPreset = <SpecType extends Trigger.Kind>(
618
691
  space: Space,
619
692
  triggerKind: SpecType,
620
- initSpec: (spec: Extract<Trigger.Spec, { kind: SpecType }>) => void,
693
+ initSpec: (spec: Obj.Mutable<Extract<Trigger.Spec, { kind: SpecType }>>) => void,
621
694
  triggerOutputName: string,
622
695
  ) => {
623
696
  const canvasModel = CanvasGraphModel.create<ComputeShape>();
@@ -650,7 +723,12 @@ const createQueueSinkPreset = <SpecType extends Trigger.Kind>(
650
723
  builder
651
724
  .createEdge({ source: queueId.id, target: append.id, input: 'id' })
652
725
  .createEdge({ source: template.id, target: append.id, input: 'items' })
653
- .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
+ })
654
732
  .createEdge({
655
733
  source: random.id,
656
734
  target: template.id,
@@ -660,15 +738,20 @@ const createQueueSinkPreset = <SpecType extends Trigger.Kind>(
660
738
  functionTrigger = triggerShape.functionTrigger!.target!;
661
739
  const triggerSpec = functionTrigger.spec;
662
740
  invariant(triggerSpec && triggerSpec.kind === triggerKind, 'No trigger spec.');
663
- initSpec(triggerSpec as any);
741
+ Obj.update(functionTrigger, (functionTrigger) => {
742
+ initSpec(functionTrigger.spec as any);
743
+ });
664
744
  });
665
745
 
666
746
  const computeModel = createComputeGraph(canvasModel);
667
747
 
668
748
  const templateComputeNode = computeModel.nodes.find((n) => n.id === template.node);
669
749
  invariant(templateComputeNode, 'Template compute node was not created.');
750
+ // NOTE: These are plain object mutations during model construction, not ECHO object mutations.
670
751
  templateComputeNode.value = ['{', ' "@type": "{{type}}",', ' "id": "@{{changeId}}"', '}'].join('\n');
671
- 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
+ );
672
755
  attachTrigger(functionTrigger, computeModel);
673
756
 
674
757
  return { canvasModel, computeModel };
@@ -676,7 +759,7 @@ const createQueueSinkPreset = <SpecType extends Trigger.Kind>(
676
759
 
677
760
  const addToSpace = (name: string, space: Space, canvas: CanvasGraphModel, compute: ComputeGraphModel) => {
678
761
  return space.db.add(
679
- Obj.make(CanvasBoardType, {
762
+ Obj.make(CanvasBoard.CanvasBoard, {
680
763
  name,
681
764
  computeGraph: Ref.make(compute.root),
682
765
  layout: canvas.graph,
@@ -696,7 +779,7 @@ const setupQueue = (
696
779
  }),
697
780
  );
698
781
  const queue = canvasModel.createNode(
699
- createQueue(
782
+ createFeed(
700
783
  args?.queuePosition ? rawPosition(args.queuePosition) : position({ x: -3, y: 3, width: 14, height: 10 }),
701
784
  ),
702
785
  );
@@ -706,15 +789,25 @@ const setupQueue = (
706
789
 
707
790
  const attachTrigger = (functionTrigger: Trigger.Trigger | undefined, computeModel: ComputeGraphModel) => {
708
791
  invariant(functionTrigger);
709
- functionTrigger.function = Ref.make(computeModel.root);
710
792
  const inputNode = computeModel.nodes.find((node) => node.type === NODE_INPUT)!;
711
- functionTrigger.inputNodeId = inputNode.id;
793
+ Obj.update(functionTrigger, (functionTrigger) => {
794
+ functionTrigger.function = Ref.make(computeModel.root);
795
+ functionTrigger.inputNodeId = inputNode.id;
796
+ });
712
797
  };
713
798
 
714
- 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
+ };
715
805
 
716
806
  const rawPosition = (args: RawPositionInput) => {
717
- 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
+ };
718
811
  };
719
812
 
720
813
  const position = (rect: { x: number; y: number; width?: number; height?: number }) => {
@@ -722,7 +815,10 @@ const position = (rect: { x: number; y: number; width?: number; height?: number
722
815
  const [center, size] = rectToPoints({ width: 0, height: 0, ...rect });
723
816
  const { x, y, width, height } = pointsToRect([pointMultiply(center, snap), pointMultiply(size, snap)]);
724
817
  if (width && height) {
725
- return { center: { x, y }, size: width && height ? { width, height } : undefined };
818
+ return {
819
+ center: { x, y },
820
+ size: width && height ? { width, height } : undefined,
821
+ };
726
822
  } else {
727
823
  return { center: { x, y } };
728
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
+ };
@@ -0,0 +1,5 @@
1
+ //
2
+ // Copyright 2024 DXOS.org
3
+ //
4
+
5
+ export { DebugObjectPanel as default } from './DebugObjectPanel';