@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
@@ -1,215 +1,47 @@
1
- // src/components/SpaceGenerator/SpaceGenerator.tsx
2
- import { useSignals as _useSignals2 } from "@preact-signals/safe-react/tracking";
3
- import React2, { useCallback, useMemo, useState } from "react";
4
- import { useIntentDispatcher } from "@dxos/app-framework/react";
5
- import { ComputeGraph as ComputeGraph2 } from "@dxos/conductor";
6
- import { Filter as Filter3 } from "@dxos/echo";
7
- import { Markdown as Markdown3 } from "@dxos/plugin-markdown/types";
8
- import { Sheet as Sheet2 } from "@dxos/plugin-sheet/types";
9
- import { Diagram as Diagram2 } from "@dxos/plugin-sketch/types";
10
- import { useClient } from "@dxos/react-client";
11
- import { getTypename } from "@dxos/react-client/echo";
12
- import { IconButton as IconButton2, Input, Toolbar, useAsyncEffect } from "@dxos/react-ui";
13
- import { SyntaxHighlighter } from "@dxos/react-ui-syntax-highlighter";
14
- import { Organization as Organization2, Person as Person2, Task } from "@dxos/types";
15
- import { jsonKeyReplacer, sortKeys } from "@dxos/util";
1
+ import "../chunk-J5LGTIGS.mjs";
16
2
 
17
- // src/components/SpaceGenerator/ObjectGenerator.tsx
18
- import { createIntent } from "@dxos/app-framework";
19
- import { addressToA1Notation } from "@dxos/compute";
20
- import { ComputeGraph, ComputeGraphModel, DEFAULT_OUTPUT, NODE_INPUT, NODE_OUTPUT } from "@dxos/conductor";
21
- import { DXN, Filter, Key, Type } from "@dxos/echo";
22
- import { Markdown } from "@dxos/plugin-markdown/types";
23
- import { Sheet } from "@dxos/plugin-sheet/types";
24
- import { Diagram } from "@dxos/plugin-sketch/types";
25
- import { SpaceAction } from "@dxos/plugin-space/types";
26
- import { faker } from "@dxos/random";
27
- import { View, getTypenameFromQuery } from "@dxos/schema";
28
- import { createAsyncGenerator } from "@dxos/schema/testing";
29
- import { range } from "@dxos/util";
30
- var generator = faker;
31
- var findViewByTypename = async (views, typename) => {
32
- return views.find((view) => getTypenameFromQuery(view.query.ast) === typename);
33
- };
34
- var createGenerator = (client, dispatch, schema) => {
35
- return async (space, n) => {
36
- const typename = schema.typename;
37
- const { objects: views } = await space.db.query(Filter.type(View.View)).run();
38
- const view = await findViewByTypename(views, typename);
39
- const staticSchema = client?.graph.schemaRegistry.schemas.find((schema2) => Type.getTypename(schema2) === typename);
40
- if (!view && !staticSchema) {
41
- await dispatch(createIntent(SpaceAction.AddSchema, {
42
- space,
43
- schema,
44
- show: false
45
- }));
46
- } else if (!view && staticSchema) {
47
- await dispatch(createIntent(SpaceAction.UseStaticSchema, {
48
- space,
49
- typename,
50
- show: false
51
- }));
52
- }
53
- const generate = createAsyncGenerator(generator, schema, {
54
- db: space.db
55
- });
56
- return generate.createObjects(n);
57
- };
3
+ // src/components/index.ts
4
+ import { lazy } from "react";
5
+
6
+ // src/components/SchemaTable/SchemaTable.tsx
7
+ import React from "react";
8
+ import { IconButton } from "@dxos/react-ui";
9
+ var SchemaTable = ({ types, objects = {}, label, onClick }) => {
10
+ return /* @__PURE__ */ React.createElement("div", {
11
+ className: "grid grid-cols-[1fr_80px_40px] gap-1 overflow-none"
12
+ }, /* @__PURE__ */ React.createElement("h2", {
13
+ className: "p-2"
14
+ }, label), types.map((type) => /* @__PURE__ */ React.createElement("div", {
15
+ key: type.typename,
16
+ className: "grid grid-cols-subgrid col-span-3 items-center"
17
+ }, /* @__PURE__ */ React.createElement("div", {
18
+ className: "px-2 text-sm font-mono text-subdued"
19
+ }, type.typename), /* @__PURE__ */ React.createElement("div", {
20
+ className: "px-2 text-right font-mono"
21
+ }, objects[type.typename] ?? 0), /* @__PURE__ */ React.createElement(IconButton, {
22
+ variant: "ghost",
23
+ icon: "ph--plus--regular",
24
+ iconOnly: true,
25
+ label: "Create data",
26
+ onClick: () => onClick(type.typename)
27
+ }))));
58
28
  };
59
- var staticGenerators = /* @__PURE__ */ new Map([
60
- [
61
- Markdown.Document.typename,
62
- async (space, n, cb) => {
63
- const objects = range(n).map(() => {
64
- return space.db.add(Markdown.make({
65
- name: faker.commerce.productName(),
66
- content: faker.lorem.sentences(5)
67
- }));
68
- });
69
- cb?.(objects);
70
- return objects;
71
- }
72
- ],
73
- [
74
- Diagram.Diagram.typename,
75
- async (space, n, cb) => {
76
- const objects = range(n).map(() => {
77
- const obj = space.db.add(Diagram.make({
78
- name: faker.commerce.productName()
79
- }));
80
- return obj;
81
- });
82
- cb?.(objects);
83
- return objects;
84
- }
85
- ],
86
- // TODO(burdon): Create unit tests.
87
- [
88
- Sheet.Sheet.typename,
89
- async (space, n, cb) => {
90
- const objects = range(n).map(() => {
91
- const cells = {};
92
- const year = (/* @__PURE__ */ new Date()).getFullYear();
93
- const cols = 4;
94
- const rows = 16;
95
- for (let col = 1; col <= cols; col++) {
96
- for (let row = 1; row <= rows; row++) {
97
- const cell = addressToA1Notation({
98
- col,
99
- row
100
- });
101
- if (row === 1) {
102
- cells[cell] = {
103
- value: `${year} Q${col}`
104
- };
105
- } else if (row === rows) {
106
- const from = addressToA1Notation({
107
- col,
108
- row: 2
109
- });
110
- const to = addressToA1Notation({
111
- col,
112
- row: rows - 1
113
- });
114
- cells[cell] = {
115
- value: `=SUM(${from}:${to})`
116
- };
117
- } else if (row > 2 && row < rows - 1) {
118
- cells[cell] = {
119
- value: Math.floor(Math.random() * 1e4)
120
- };
121
- }
122
- }
123
- }
124
- return space.db.add(Sheet.make({
125
- name: faker.commerce.productName(),
126
- cells
127
- }));
128
- });
129
- cb?.(objects);
130
- return objects;
131
- }
132
- ],
133
- [
134
- ComputeGraph.typename,
135
- async (space, n, cb) => {
136
- const objects = range(n, () => {
137
- const model = ComputeGraphModel.create();
138
- model.builder.createNode({
139
- id: "gpt-INPUT",
140
- type: NODE_INPUT
141
- }).createNode({
142
- id: "gpt-GPT",
143
- type: "gpt"
144
- }).createNode({
145
- id: "gpt-QUEUE_ID",
146
- type: "constant",
147
- value: new DXN(DXN.kind.QUEUE, [
148
- "data",
149
- space.id,
150
- Key.ObjectId.random()
151
- ]).toString()
152
- }).createNode({
153
- id: "gpt-APPEND",
154
- type: "append"
155
- }).createNode({
156
- id: "gpt-OUTPUT",
157
- type: NODE_OUTPUT
158
- }).createEdge({
159
- node: "gpt-INPUT",
160
- property: "prompt"
161
- }, {
162
- node: "gpt-GPT",
163
- property: "prompt"
164
- }).createEdge({
165
- node: "gpt-GPT",
166
- property: "text"
167
- }, {
168
- node: "gpt-OUTPUT",
169
- property: "text"
170
- }).createEdge({
171
- node: "gpt-QUEUE_ID",
172
- property: DEFAULT_OUTPUT
173
- }, {
174
- node: "gpt-APPEND",
175
- property: "id"
176
- }).createEdge({
177
- node: "gpt-GPT",
178
- property: "messages"
179
- }, {
180
- node: "gpt-APPEND",
181
- property: "items"
182
- }).createEdge({
183
- node: "gpt-QUEUE_ID",
184
- property: DEFAULT_OUTPUT
185
- }, {
186
- node: "gpt-OUTPUT",
187
- property: "queue"
188
- });
189
- return space.db.add(model.root);
190
- });
191
- cb?.(objects);
192
- return objects;
193
- }
194
- ]
195
- ]);
196
29
 
197
30
  // src/components/SpaceGenerator/presets.ts
198
31
  import * as Schema from "effect/Schema";
199
- import { Agent, EntityExtraction, ResearchBlueprint } from "@dxos/assistant-toolkit";
200
- import { Prompt } from "@dxos/blueprints";
201
- import { NODE_INPUT as NODE_INPUT2 } from "@dxos/conductor";
202
- import { DXN as DXN2, Filter as Filter2, Key as Key2, Obj, Query, Ref, Tag, Type as Type2 } from "@dxos/echo";
203
- import { Trigger, serializeFunction } from "@dxos/functions";
32
+ import { AgentPrompt, WebSearchBlueprint } from "@dxos/assistant-toolkit";
33
+ import { Routine, Trigger, Operation } from "@dxos/compute";
34
+ import { NODE_INPUT } from "@dxos/conductor";
35
+ import { DXN, Feed, Filter, JsonSchema, Key, Obj, Query, Ref, Tag } from "@dxos/echo";
204
36
  import { invariant } from "@dxos/invariant";
205
- import { gmail } from "@dxos/plugin-inbox";
206
- import { Mailbox } from "@dxos/plugin-inbox/types";
207
- import { Markdown as Markdown2 } from "@dxos/plugin-markdown/types";
208
- import { createAppend, createChat, createComputeGraph, createConstant, createFunction, createGpt, createQueue, createRandom, createSurface, createTemplate, createText, createTrigger } from "@dxos/react-ui-canvas-compute";
209
- import { CanvasBoardType, CanvasGraphModel, pointMultiply, pointsToRect, rectToPoints } from "@dxos/react-ui-canvas-editor";
210
- import { Collection, View as View2 } from "@dxos/schema";
211
- import { Message, Organization, Person, Project } from "@dxos/types";
212
- import { range as range2, trim } from "@dxos/util";
37
+ import { InboxOperation } from "@dxos/plugin-inbox";
38
+ import { Mailbox } from "@dxos/plugin-inbox";
39
+ import { Markdown } from "@dxos/plugin-markdown";
40
+ import { createAppend, createChat, createComputeGraph, createConstant, createFeed, createFunction, createGpt, createRandom, createSurface, createTemplate, createText, createTrigger } from "@dxos/react-ui-canvas-compute";
41
+ import { CanvasBoard, CanvasGraphModel, pointMultiply, pointsToRect, rectToPoints } from "@dxos/react-ui-canvas-editor";
42
+ import { ViewModel } from "@dxos/schema";
43
+ import { Message, Organization, Person, Pipeline } from "@dxos/types";
44
+ import { range, trim } from "@dxos/util";
213
45
  var __dxlog_file = "/__w/dxos/dxos/packages/plugins/plugin-debug/src/components/SpaceGenerator/presets.ts";
214
46
  var PresetName = /* @__PURE__ */ (function(PresetName2) {
215
47
  PresetName2["DXOS_TEAM"] = "dxos-team";
@@ -222,9 +54,9 @@ var PresetName = /* @__PURE__ */ (function(PresetName2) {
222
54
  PresetName2["DISCORD_MESSAGES"] = "discord-messages";
223
55
  return PresetName2;
224
56
  })({});
225
- var generator2 = () => ({
57
+ var generator = () => ({
226
58
  schemas: [
227
- CanvasBoardType,
59
+ CanvasBoard.CanvasBoard,
228
60
  Trigger.Trigger
229
61
  ],
230
62
  types: Object.values(PresetName).map((name) => ({
@@ -234,29 +66,32 @@ var generator2 = () => ({
234
66
  [
235
67
  "dxos-team",
236
68
  async (space, n, cb) => {
237
- const objects = range2(n, () => {
69
+ const objects = range(n, () => {
238
70
  const org = space.db.add(Obj.make(Organization.Organization, {
239
71
  name: "DXOS",
240
72
  website: "https://dxos.org"
241
73
  }));
242
- const doc = space.db.add(Markdown2.make({
74
+ const doc = space.db.add(Markdown.make({
243
75
  name: "DXOS Research",
244
76
  content: "DXOS builds Composer, an open-source AI-powered malleable application."
245
77
  }));
246
78
  const tag = space.db.add(Tag.make({
247
79
  label: "Investor"
248
80
  }));
249
- const tagDxn = Obj.getDXN(tag).toString();
250
- Obj.getMeta(doc).tags = [
251
- tagDxn
252
- ];
81
+ const tagDXN = Obj.getDXN(tag).toString();
82
+ Obj.update(doc, (doc2) => {
83
+ Obj.getMeta(doc2).tags = [
84
+ tagDXN
85
+ ];
86
+ });
253
87
  space.db.add(Obj.make(Person.Person, {
88
+ [Obj.Meta]: {
89
+ tags: [
90
+ tagDXN
91
+ ]
92
+ },
254
93
  fullName: "Rich",
255
94
  organization: Ref.make(org)
256
- }, {
257
- tags: [
258
- tagDxn
259
- ]
260
95
  }));
261
96
  space.db.add(Obj.make(Person.Person, {
262
97
  fullName: "Josiah",
@@ -279,39 +114,30 @@ var generator2 = () => ({
279
114
  [
280
115
  "org-research-project",
281
116
  async (space, n, cb) => {
282
- const mailbox = await space.db.query(Filter2.type(Mailbox.Mailbox)).first();
283
- const tag = await space.db.query(Filter2.type(Tag.Tag, {
117
+ const mailboxes = await space.db.query(Filter.type(Mailbox.Mailbox)).run();
118
+ const mailbox = mailboxes[0];
119
+ invariant(mailbox, "Mailbox not found", { "~LogMeta": "~LogMeta", F: __dxlog_file, L: 100, S: void 0, A: ["mailbox", "'Mailbox not found'"] });
120
+ const mailboxFeed = await mailbox.feed?.tryLoad();
121
+ invariant(mailboxFeed, "Mailbox missing feed reference", { "~LogMeta": "~LogMeta", F: __dxlog_file, L: 102, S: void 0, A: ["mailboxFeed", "'Mailbox missing feed reference'"] });
122
+ const feedDXN = Feed.getQueueDxn(mailboxFeed)?.toString();
123
+ invariant(feedDXN, "Mailbox feed missing DXN", { "~LogMeta": "~LogMeta", F: __dxlog_file, L: 104, S: void 0, A: ["feedDXN", "'Mailbox feed missing DXN'"] });
124
+ const tag = await space.db.query(Filter.type(Tag.Tag, {
284
125
  label: "Investor"
285
126
  })).first();
286
- const tagDxn = Obj.getDXN(tag).toString();
287
- const objects = range2(n, () => {
288
- const contactsQuery = Query.select(Filter2.type(Person.Person)).select(Filter2.tag(tagDxn));
289
- const organizationsQuery = Query.select(Filter2.type(Organization.Organization)).select(Filter2.tag(tagDxn));
290
- const notesQuery = Query.select(Filter2.type(Markdown2.Document)).select(Filter2.tag(tagDxn));
127
+ const tagDXN = Obj.getDXN(tag).toString();
128
+ const objects = range(n, () => {
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));
291
132
  space.db.add(Trigger.make({
292
133
  enabled: true,
293
- spec: {
294
- kind: "timer",
295
- cron: "* * * * *"
296
- },
297
- function: Ref.make(serializeFunction(gmail.sync)),
298
- input: {
299
- mailboxId: Obj.getDXN(mailbox).toString()
300
- }
301
- }));
302
- space.db.add(Trigger.make({
303
- enabled: true,
304
- // TODO(wittjosiah): Queue trigger doesn't support matching query of the column.
305
- spec: {
306
- kind: "queue",
307
- queue: mailbox.queue.dxn.toString()
308
- },
309
- function: Ref.make(serializeFunction(EntityExtraction.extract)),
134
+ spec: Trigger.specTimer("* * * * *"),
135
+ function: Ref.make(Operation.serialize(InboxOperation.GoogleMailSync)),
310
136
  input: {
311
- source: "{{event.item}}"
137
+ mailbox: Ref.make(mailbox)
312
138
  }
313
139
  }));
314
- const researchPrompt = space.db.add(Prompt.make({
140
+ const researchPrompt = space.db.add(Routine.make({
315
141
  name: "Research",
316
142
  description: "Research organization",
317
143
  input: Schema.Struct({
@@ -326,71 +152,66 @@ var generator2 = () => ({
326
152
  NOTE: Do mocked reseach (set mockSearch to true).
327
153
  `,
328
154
  blueprints: [
329
- Ref.make(ResearchBlueprint)
155
+ Ref.make(WebSearchBlueprint.make())
330
156
  ]
331
157
  }));
332
158
  space.db.add(Trigger.make({
333
159
  enabled: true,
334
- spec: {
335
- kind: "subscription",
336
- query: {
337
- ast: organizationsQuery.ast
338
- }
339
- },
340
- function: Ref.make(serializeFunction(Agent.prompt)),
160
+ spec: Trigger.specSubscription(organizationsQuery),
161
+ function: Ref.make(Operation.serialize(AgentPrompt)),
341
162
  input: {
342
163
  prompt: Ref.make(researchPrompt),
343
164
  input: "{{event.subject}}"
344
165
  }
345
166
  }));
346
- const mailboxView = View2.make({
347
- name: "Mailbox",
348
- query: Query.select(Filter2.type(Message.Message, {
167
+ const mailboxView = ViewModel.make({
168
+ query: Query.select(Filter.type(Message.Message, {
349
169
  properties: {
350
- labels: Filter2.contains("investor")
170
+ labels: Filter.contains("investor")
351
171
  }
352
- })).options({
353
- queues: [
354
- mailbox.queue.dxn.toString()
172
+ })).from({
173
+ feeds: [
174
+ feedDXN
355
175
  ]
356
176
  }),
357
- jsonSchema: Type2.toJsonSchema(Message.Message),
358
- presentation: Obj.make(Collection.Collection, {
359
- objects: []
360
- })
177
+ jsonSchema: JsonSchema.toJsonSchema(Message.Message)
361
178
  });
362
- const contactsView = View2.make({
363
- name: "Contacts",
179
+ const contactsView = ViewModel.make({
364
180
  query: contactsQuery,
365
- jsonSchema: Type2.toJsonSchema(Person.Person),
366
- presentation: Obj.make(Collection.Collection, {
367
- objects: []
368
- })
181
+ jsonSchema: JsonSchema.toJsonSchema(Person.Person)
369
182
  });
370
- const organizationsView = View2.make({
371
- name: "Organizations",
183
+ const organizationsView = ViewModel.make({
372
184
  query: organizationsQuery,
373
- jsonSchema: Type2.toJsonSchema(Organization.Organization),
374
- presentation: Obj.make(Collection.Collection, {
375
- objects: []
376
- })
185
+ jsonSchema: JsonSchema.toJsonSchema(Organization.Organization)
377
186
  });
378
- const notesView = View2.make({
379
- name: "Notes",
187
+ const notesView = ViewModel.make({
380
188
  query: notesQuery,
381
- jsonSchema: Type2.toJsonSchema(Markdown2.Document),
382
- presentation: Obj.make(Collection.Collection, {
383
- objects: []
384
- })
189
+ jsonSchema: JsonSchema.toJsonSchema(Markdown.Document)
385
190
  });
386
- return space.db.add(Project.make({
191
+ return space.db.add(Pipeline.make({
387
192
  name: "Investor Research",
388
- collections: [
389
- mailboxView,
390
- contactsView,
391
- organizationsView,
392
- notesView
393
- ].map((view) => Ref.make(view))
193
+ columns: [
194
+ {
195
+ name: "Mailbox",
196
+ view: Ref.make(mailboxView),
197
+ order: []
198
+ },
199
+ {
200
+ name: "Contacts",
201
+ view: Ref.make(contactsView),
202
+ order: []
203
+ },
204
+ {
205
+ name: "Organizations",
206
+ view: Ref.make(organizationsView),
207
+ order: []
208
+ },
209
+ {
210
+ name: "Notes",
211
+ view: Ref.make(notesView),
212
+ order: []
213
+ }
214
+ ]
394
215
  }));
395
216
  });
396
217
  cb?.(objects.flat());
@@ -400,7 +221,7 @@ var generator2 = () => ({
400
221
  [
401
222
  "webhook-gpt-queue",
402
223
  async (space, n, cb) => {
403
- const objects = range2(n, () => {
224
+ const objects = range(n, () => {
404
225
  const canvasModel = CanvasGraphModel.create();
405
226
  let functionTrigger;
406
227
  canvasModel.builder.call((builder) => {
@@ -460,9 +281,9 @@ var generator2 = () => ({
460
281
  [
461
282
  "objectChange-queue",
462
283
  async (space, n, cb) => {
463
- const objects = range2(n, () => {
284
+ const objects = range(n, () => {
464
285
  const { canvasModel, computeModel } = createQueueSinkPreset(space, "subscription", (triggerSpec) => triggerSpec.query = {
465
- ast: Query.select(Filter2.typename("dxos.org/type/Chess")).ast
286
+ ast: Query.select(Filter.typename("org.dxos.type.chess")).ast
466
287
  }, "type");
467
288
  return addToSpace("objectChange-queue", space, canvasModel, computeModel);
468
289
  });
@@ -473,7 +294,7 @@ var generator2 = () => ({
473
294
  [
474
295
  "timerTick-queue",
475
296
  async (space, n, cb) => {
476
- const objects = range2(n, () => {
297
+ const objects = range(n, () => {
477
298
  const { canvasModel, computeModel } = createQueueSinkPreset(space, "timer", (triggerSpec) => triggerSpec.cron = "*/5 * * * * *", "result");
478
299
  return addToSpace("timerTick-queue", space, canvasModel, computeModel);
479
300
  });
@@ -528,7 +349,7 @@ var generator2 = () => ({
528
349
  // const templateComputeNode = computeModel.nodes.find((n) => n.id === template.node);
529
350
  // invariant(templateComputeNode, 'Template compute node was not created.');
530
351
  // templateComputeNode.value = templateContent.join('\n');
531
- // templateComputeNode.inputSchema = Type.toJsonSchema(EmailTriggerOutput);
352
+ // templateComputeNode.inputSchema = JsonSchema.toJsonSchema(EmailTriggerOutput);
532
353
  // attachTrigger(functionTrigger, computeModel);
533
354
  // return addToSpace(PresetName.EMAIL_TABLE, space, canvasModel, computeModel);
534
355
  // });
@@ -539,7 +360,7 @@ var generator2 = () => ({
539
360
  [
540
361
  "chat-gpt-text",
541
362
  async (space, n, cb) => {
542
- const objects = range2(n, () => {
363
+ const objects = range(n, () => {
543
364
  const canvasModel = CanvasGraphModel.create();
544
365
  canvasModel.builder.call((builder) => {
545
366
  const gpt = canvasModel.createNode(createGpt(position({
@@ -659,7 +480,7 @@ var generator2 = () => ({
659
480
  // invariant(templateComputeNode, 'Template compute node was not created.');
660
481
  // templateComputeNode.value = templateContent.join('\n');
661
482
  // const extendedSchema = Schema.extend(EmailTriggerOutput, Schema.Struct({ text: Schema.String }));
662
- // templateComputeNode.inputSchema = Type.toJsonSchema(extendedSchema);
483
+ // templateComputeNode.inputSchema = JsonSchema.toJsonSchema(extendedSchema);
663
484
  // attachTrigger(functionTrigger, computeModel);
664
485
  // return addToSpace(PresetName.EMAIL_WITH_SUMMARY, space, canvasModel, computeModel);
665
486
  // });
@@ -670,7 +491,7 @@ var generator2 = () => ({
670
491
  [
671
492
  "forex-function-call",
672
493
  async (space, n, cb) => {
673
- const objects = range2(n, () => {
494
+ const objects = range(n, () => {
674
495
  const canvasModel = CanvasGraphModel.create();
675
496
  canvasModel.builder.call((builder) => {
676
497
  const sourceCurrency = canvasModel.createNode(createConstant({
@@ -719,7 +540,7 @@ var generator2 = () => ({
719
540
  [
720
541
  "discord-messages",
721
542
  async (space, n, cb) => {
722
- const objects = range2(n, () => {
543
+ const objects = range(n, () => {
723
544
  const canvasModel = CanvasGraphModel.create();
724
545
  let functionTrigger;
725
546
  canvasModel.builder.call((builder) => {
@@ -740,10 +561,10 @@ var generator2 = () => ({
740
561
  })
741
562
  }));
742
563
  const queueId = canvasModel.createNode(createConstant({
743
- value: new DXN2(DXN2.kind.QUEUE, [
564
+ value: new DXN(DXN.kind.QUEUE, [
744
565
  "data",
745
566
  space.id,
746
- Key2.ObjectId.random()
567
+ Key.ObjectId.random()
747
568
  ]).toString(),
748
569
  ...position({
749
570
  x: -10,
@@ -758,7 +579,7 @@ var generator2 = () => ({
758
579
  x: 12,
759
580
  y: 0
760
581
  })));
761
- const queue = canvasModel.createNode(createQueue(position({
582
+ const queue = canvasModel.createNode(createFeed(position({
762
583
  x: 0,
763
584
  y: 12
764
585
  })));
@@ -833,7 +654,7 @@ var createQueueSinkPreset = (space, triggerKind, initSpec, triggerOutputName) =>
833
654
  width: 128,
834
655
  height: 122
835
656
  })));
836
- const random = canvasModel.createNode(createRandom(rawPosition({
657
+ const random2 = canvasModel.createNode(createRandom(rawPosition({
837
658
  centerX: -509,
838
659
  centerY: -30,
839
660
  width: 64,
@@ -853,41 +674,27 @@ var createQueueSinkPreset = (space, triggerKind, initSpec, triggerOutputName) =>
853
674
  output: triggerOutputName,
854
675
  input: "type"
855
676
  }).createEdge({
856
- source: random.id,
677
+ source: random2.id,
857
678
  target: template.id,
858
679
  input: "changeId"
859
680
  });
860
681
  functionTrigger = triggerShape.functionTrigger.target;
861
682
  const triggerSpec = functionTrigger.spec;
862
- invariant(triggerSpec && triggerSpec.kind === triggerKind, "No trigger spec.", {
863
- F: __dxlog_file,
864
- L: 662,
865
- S: void 0,
866
- A: [
867
- "triggerSpec && triggerSpec.kind === triggerKind",
868
- "'No trigger spec.'"
869
- ]
683
+ invariant(triggerSpec && triggerSpec.kind === triggerKind, "No trigger spec.", { "~LogMeta": "~LogMeta", F: __dxlog_file, L: 665, S: void 0, A: ["triggerSpec && triggerSpec.kind === triggerKind", "'No trigger spec.'"] });
684
+ Obj.update(functionTrigger, (functionTrigger2) => {
685
+ initSpec(functionTrigger2.spec);
870
686
  });
871
- initSpec(triggerSpec);
872
687
  });
873
688
  const computeModel = createComputeGraph(canvasModel);
874
689
  const templateComputeNode = computeModel.nodes.find((n) => n.id === template.node);
875
- invariant(templateComputeNode, "Template compute node was not created.", {
876
- F: __dxlog_file,
877
- L: 669,
878
- S: void 0,
879
- A: [
880
- "templateComputeNode",
881
- "'Template compute node was not created.'"
882
- ]
883
- });
690
+ invariant(templateComputeNode, "Template compute node was not created.", { "~LogMeta": "~LogMeta", F: __dxlog_file, L: 672, S: void 0, A: ["templateComputeNode", "'Template compute node was not created.'"] });
884
691
  templateComputeNode.value = [
885
692
  "{",
886
693
  ' "@type": "{{type}}",',
887
694
  ' "id": "@{{changeId}}"',
888
695
  "}"
889
696
  ].join("\n");
890
- templateComputeNode.inputSchema = Type2.toJsonSchema(Schema.Struct({
697
+ templateComputeNode.inputSchema = JsonSchema.toJsonSchema(Schema.Struct({
891
698
  type: Schema.String,
892
699
  changeId: Schema.String
893
700
  }));
@@ -898,7 +705,7 @@ var createQueueSinkPreset = (space, triggerKind, initSpec, triggerOutputName) =>
898
705
  };
899
706
  };
900
707
  var addToSpace = (name, space, canvas, compute) => {
901
- return space.db.add(Obj.make(CanvasBoardType, {
708
+ return space.db.add(Obj.make(CanvasBoard.CanvasBoard, {
902
709
  name,
903
710
  computeGraph: Ref.make(compute.root),
904
711
  layout: canvas.graph
@@ -906,10 +713,10 @@ var addToSpace = (name, space, canvas, compute) => {
906
713
  };
907
714
  var setupQueue = (space, canvasModel, args) => {
908
715
  const queueId = canvasModel.createNode(createConstant({
909
- value: new DXN2(DXN2.kind.QUEUE, [
716
+ value: new DXN(DXN.kind.QUEUE, [
910
717
  "data",
911
718
  space.id,
912
- Key2.ObjectId.random()
719
+ Key.ObjectId.random()
913
720
  ]).toString(),
914
721
  ...args?.idPosition ? rawPosition(args.idPosition) : position({
915
722
  x: -18,
@@ -918,7 +725,7 @@ var setupQueue = (space, canvasModel, args) => {
918
725
  height: 6
919
726
  })
920
727
  }));
921
- const queue = canvasModel.createNode(createQueue(args?.queuePosition ? rawPosition(args.queuePosition) : position({
728
+ const queue = canvasModel.createNode(createFeed(args?.queuePosition ? rawPosition(args.queuePosition) : position({
922
729
  x: -3,
923
730
  y: 3,
924
731
  width: 14,
@@ -934,18 +741,12 @@ var setupQueue = (space, canvasModel, args) => {
934
741
  };
935
742
  };
936
743
  var attachTrigger = (functionTrigger, computeModel) => {
937
- invariant(functionTrigger, void 0, {
938
- F: __dxlog_file,
939
- L: 708,
940
- S: void 0,
941
- A: [
942
- "functionTrigger",
943
- ""
944
- ]
744
+ invariant(functionTrigger, void 0, { "~LogMeta": "~LogMeta", F: __dxlog_file, L: 727, S: void 0, A: ["functionTrigger", ""] });
745
+ const inputNode = computeModel.nodes.find((node) => node.type === NODE_INPUT);
746
+ Obj.update(functionTrigger, (functionTrigger2) => {
747
+ functionTrigger2.function = Ref.make(computeModel.root);
748
+ functionTrigger2.inputNodeId = inputNode.id;
945
749
  });
946
- functionTrigger.function = Ref.make(computeModel.root);
947
- const inputNode = computeModel.nodes.find((node) => node.type === NODE_INPUT2);
948
- functionTrigger.inputNodeId = inputNode.id;
949
750
  };
950
751
  var rawPosition = (args) => {
951
752
  return {
@@ -991,163 +792,189 @@ var position = (rect) => {
991
792
  }
992
793
  };
993
794
 
994
- // src/components/SpaceGenerator/SchemaTable.tsx
995
- import { useSignals as _useSignals } from "@preact-signals/safe-react/tracking";
996
- import React from "react";
997
- import { IconButton } from "@dxos/react-ui";
998
- var SchemaTable = ({ types, objects = {}, label, onClick }) => {
999
- var _effect = _useSignals();
1000
- try {
1001
- return /* @__PURE__ */ React.createElement("div", {
1002
- className: "grid grid-cols-[1fr_80px_40px] gap-1 overflow-none"
1003
- }, /* @__PURE__ */ React.createElement("h2", {
1004
- className: "p-2"
1005
- }, label), types.map((type) => /* @__PURE__ */ React.createElement("div", {
1006
- key: type.typename,
1007
- className: "grid grid-cols-subgrid col-span-3 items-center"
1008
- }, /* @__PURE__ */ React.createElement("div", {
1009
- className: "pli-2 text-sm font-mono text-subdued"
1010
- }, type.typename), /* @__PURE__ */ React.createElement("div", {
1011
- className: "pli-2 text-right font-mono"
1012
- }, objects[type.typename] ?? 0), /* @__PURE__ */ React.createElement(IconButton, {
1013
- variant: "ghost",
1014
- icon: "ph--plus--regular",
1015
- iconOnly: true,
1016
- label: "Create data",
1017
- onClick: () => onClick(type.typename)
1018
- }))));
1019
- } finally {
1020
- _effect.f();
1021
- }
795
+ // src/components/SpaceGenerator/ObjectGenerator.tsx
796
+ import { addressToA1Notation } from "@dxos/compute-hyperformula";
797
+ import { ComputeGraph, ComputeGraphModel, DEFAULT_OUTPUT, NODE_INPUT as NODE_INPUT2, NODE_OUTPUT } from "@dxos/conductor";
798
+ import { DXN as DXN2, Filter as Filter2, Key as Key2, View } from "@dxos/echo";
799
+ import { Markdown as Markdown2 } from "@dxos/plugin-markdown";
800
+ import { Sheet } from "@dxos/plugin-sheet";
801
+ import { Sketch } from "@dxos/plugin-sketch";
802
+ import { SpaceOperation } from "@dxos/plugin-space";
803
+ import { random } from "@dxos/random";
804
+ import { getTypenameFromQuery } from "@dxos/schema";
805
+ import { createAsyncGenerator } from "@dxos/schema/testing";
806
+ import { range as range2 } from "@dxos/util";
807
+ var generator2 = random;
808
+ var findViewByTypename = async (views, typename) => {
809
+ return views.find((view) => getTypenameFromQuery(view.query.ast) === typename);
1022
810
  };
1023
-
1024
- // src/components/SpaceGenerator/SpaceGenerator.tsx
1025
- var SpaceGenerator = ({ space, onCreateObjects }) => {
1026
- var _effect = _useSignals2();
1027
- try {
1028
- const { dispatchPromise: dispatch } = useIntentDispatcher();
1029
- const client = useClient();
1030
- const staticTypes = [
1031
- Markdown3.Document,
1032
- Diagram2.Diagram,
1033
- Sheet2.Sheet,
1034
- ComputeGraph2
1035
- ];
1036
- const recordTypes = [
1037
- Organization2.Organization,
1038
- Person2.Person,
1039
- Task.Task
1040
- ];
1041
- const [count, setCount] = useState(1);
1042
- const [info, setInfo] = useState({});
1043
- const presets = useMemo(() => generator2(), []);
1044
- const typeMap = useMemo(() => {
1045
- client.addTypes([
1046
- ...staticTypes,
1047
- ...recordTypes,
1048
- ...presets.schemas
1049
- ]);
1050
- const recordGenerators = new Map(recordTypes.map((type) => [
1051
- type.typename,
1052
- createGenerator(client, dispatch, type)
1053
- ]));
1054
- return new Map([
1055
- ...staticGenerators,
1056
- ...presets.items,
1057
- ...recordGenerators
1058
- ]);
1059
- }, [
1060
- client,
1061
- recordTypes
1062
- ]);
1063
- const updateInfo = async () => {
1064
- const echoSchema = await space.db.schemaRegistry.query().run();
1065
- const staticSchema = space.db.graph.schemaRegistry.schemas;
1066
- const { objects } = await space.db.query(Filter3.everything()).run();
1067
- const objectMap = sortKeys(objects.reduce((map, obj) => {
1068
- const type = getTypename(obj);
1069
- if (type) {
1070
- const count2 = map[type] ?? 0;
1071
- map[type] = count2 + 1;
1072
- }
1073
- return map;
1074
- }, {}));
1075
- setInfo({
1076
- schema: {
1077
- static: staticSchema.length,
1078
- mutable: echoSchema.length
1079
- },
1080
- objects: objectMap
811
+ var createGenerator = (client, invokePromise, schema) => {
812
+ return async (space, n) => {
813
+ const typename = schema.typename;
814
+ const views = await space.db.query(Filter2.type(View.View)).run();
815
+ const view = await findViewByTypename(views, typename);
816
+ const staticSchema = client?.graph.schemaRegistry.query({
817
+ typename
818
+ }).runSync()[0];
819
+ if (!view && !staticSchema) {
820
+ await invokePromise(SpaceOperation.AddSchema, {
821
+ db: space.db,
822
+ schema,
823
+ show: false
1081
824
  });
1082
- };
1083
- useAsyncEffect(updateInfo, [
1084
- space
1085
- ]);
1086
- const handleCreateData = useCallback(async (typename) => {
1087
- const constructor = typeMap.get(typename);
1088
- if (constructor) {
1089
- await constructor(space, count, onCreateObjects);
1090
- await updateInfo();
1091
- }
1092
- }, [
1093
- typeMap,
1094
- count
1095
- ]);
1096
- return /* @__PURE__ */ React2.createElement("div", {
1097
- role: "none",
1098
- className: "flex flex-col grow overflow-hidden"
1099
- }, /* @__PURE__ */ React2.createElement(Toolbar.Root, {
1100
- classNames: "border-be border-subduedSeparator"
1101
- }, /* @__PURE__ */ React2.createElement(IconButton2, {
1102
- icon: "ph--arrow-clockwise--regular",
1103
- iconOnly: true,
1104
- label: "Refresh",
1105
- onClick: updateInfo
1106
- }), /* @__PURE__ */ React2.createElement(Toolbar.Separator, {
1107
- variant: "gap"
1108
- }), /* @__PURE__ */ React2.createElement(Input.Root, null, /* @__PURE__ */ React2.createElement(Input.TextInput, {
1109
- type: "number",
1110
- min: 1,
1111
- max: 100,
1112
- placeholder: "Count",
1113
- classNames: "!w-[4rem] !text-right",
1114
- size: 8,
1115
- value: count,
1116
- onChange: (ev) => setCount(parseInt(ev.target.value))
1117
- }))), /* @__PURE__ */ React2.createElement("div", {
1118
- className: "flex flex-col overflow-y-auto divide-y divide-separator"
1119
- }, /* @__PURE__ */ React2.createElement(SchemaTable, {
1120
- types: staticTypes,
1121
- objects: info.objects,
1122
- label: "Static Types",
1123
- onClick: handleCreateData
1124
- }), /* @__PURE__ */ React2.createElement(SchemaTable, {
1125
- types: recordTypes,
1126
- objects: info.objects,
1127
- label: "Record Types",
1128
- onClick: handleCreateData
1129
- }), /* @__PURE__ */ React2.createElement(SchemaTable, {
1130
- types: presets.types,
1131
- objects: info.objects,
1132
- label: "Presets",
1133
- onClick: handleCreateData
1134
- }), /* @__PURE__ */ React2.createElement("div", null, /* @__PURE__ */ React2.createElement(SyntaxHighlighter, {
1135
- language: "json",
1136
- classNames: "text-xs"
1137
- }, JSON.stringify({
1138
- space,
1139
- ...info
1140
- }, jsonKeyReplacer({
1141
- truncate: true
1142
- }), 2)))));
1143
- } finally {
1144
- _effect.f();
1145
- }
825
+ }
826
+ const generate = createAsyncGenerator(generator2, schema, {
827
+ db: space.db
828
+ });
829
+ return generate.createObjects(n);
830
+ };
1146
831
  };
832
+ var staticGenerators = /* @__PURE__ */ new Map([
833
+ [
834
+ Markdown2.Document.typename,
835
+ async (space, n, cb) => {
836
+ const objects = range2(n).map(() => {
837
+ return space.db.add(Markdown2.make({
838
+ name: random.commerce.productName(),
839
+ content: random.lorem.sentences(5)
840
+ }));
841
+ });
842
+ cb?.(objects);
843
+ return objects;
844
+ }
845
+ ],
846
+ [
847
+ Sketch.Sketch.typename,
848
+ async (space, n, cb) => {
849
+ const objects = range2(n).map(() => {
850
+ const obj = space.db.add(Sketch.make({
851
+ name: random.commerce.productName()
852
+ }));
853
+ return obj;
854
+ });
855
+ cb?.(objects);
856
+ return objects;
857
+ }
858
+ ],
859
+ // TODO(burdon): Create unit tests.
860
+ [
861
+ Sheet.Sheet.typename,
862
+ async (space, n, cb) => {
863
+ const objects = range2(n).map(() => {
864
+ const cells = {};
865
+ const year = (/* @__PURE__ */ new Date()).getFullYear();
866
+ const cols = 4;
867
+ const rows = 16;
868
+ for (let col = 1; col <= cols; col++) {
869
+ for (let row = 1; row <= rows; row++) {
870
+ const cell = addressToA1Notation({
871
+ col,
872
+ row
873
+ });
874
+ if (row === 1) {
875
+ cells[cell] = {
876
+ value: `${year} Q${col}`
877
+ };
878
+ } else if (row === rows) {
879
+ const from = addressToA1Notation({
880
+ col,
881
+ row: 2
882
+ });
883
+ const to = addressToA1Notation({
884
+ col,
885
+ row: rows - 1
886
+ });
887
+ cells[cell] = {
888
+ value: `=SUM(${from}:${to})`
889
+ };
890
+ } else if (row > 2 && row < rows - 1) {
891
+ cells[cell] = {
892
+ value: Math.floor(Math.random() * 1e4)
893
+ };
894
+ }
895
+ }
896
+ }
897
+ return space.db.add(Sheet.make({
898
+ name: random.commerce.productName(),
899
+ cells
900
+ }));
901
+ });
902
+ cb?.(objects);
903
+ return objects;
904
+ }
905
+ ],
906
+ [
907
+ ComputeGraph.typename,
908
+ async (space, n, cb) => {
909
+ const objects = range2(n, () => {
910
+ const model = ComputeGraphModel.create();
911
+ model.builder.createNode({
912
+ id: "gpt-INPUT",
913
+ type: NODE_INPUT2
914
+ }).createNode({
915
+ id: "gpt-GPT",
916
+ type: "gpt"
917
+ }).createNode({
918
+ id: "gpt-QUEUE_ID",
919
+ type: "constant",
920
+ value: new DXN2(DXN2.kind.QUEUE, [
921
+ "data",
922
+ space.id,
923
+ Key2.ObjectId.random()
924
+ ]).toString()
925
+ }).createNode({
926
+ id: "gpt-APPEND",
927
+ type: "append"
928
+ }).createNode({
929
+ id: "gpt-OUTPUT",
930
+ type: NODE_OUTPUT
931
+ }).createEdge({
932
+ node: "gpt-INPUT",
933
+ property: "prompt"
934
+ }, {
935
+ node: "gpt-GPT",
936
+ property: "prompt"
937
+ }).createEdge({
938
+ node: "gpt-GPT",
939
+ property: "text"
940
+ }, {
941
+ node: "gpt-OUTPUT",
942
+ property: "text"
943
+ }).createEdge({
944
+ node: "gpt-QUEUE_ID",
945
+ property: DEFAULT_OUTPUT
946
+ }, {
947
+ node: "gpt-APPEND",
948
+ property: "id"
949
+ }).createEdge({
950
+ node: "gpt-GPT",
951
+ property: "messages"
952
+ }, {
953
+ node: "gpt-APPEND",
954
+ property: "items"
955
+ }).createEdge({
956
+ node: "gpt-QUEUE_ID",
957
+ property: DEFAULT_OUTPUT
958
+ }, {
959
+ node: "gpt-OUTPUT",
960
+ property: "queue"
961
+ });
962
+ return space.db.add(model.root);
963
+ });
964
+ cb?.(objects);
965
+ return objects;
966
+ }
967
+ ]
968
+ ]);
1147
969
 
1148
- // src/components/SpaceGenerator/index.ts
1149
- var SpaceGenerator_default = SpaceGenerator;
970
+ // src/components/index.ts
971
+ var DebugSettings = lazy(() => import("../DebugSettings-Z3XADRNK.mjs"));
1150
972
  export {
1151
- SpaceGenerator_default as default
973
+ DebugSettings,
974
+ PresetName,
975
+ SchemaTable,
976
+ createGenerator,
977
+ generator,
978
+ staticGenerators
1152
979
  };
1153
- //# sourceMappingURL=SpaceGenerator-46TAISVE.mjs.map
980
+ //# sourceMappingURL=index.mjs.map