@dxos/plugin-debug 0.8.4-main.406dc2a → 0.8.4-main.4668b7de9b

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (244) hide show
  1. package/LICENSE +102 -5
  2. package/PLUGIN.mdl +373 -0
  3. package/README.md +1 -1
  4. package/dist/lib/neutral/DebugGraph-G4FWS57E.mjs +15 -0
  5. package/dist/lib/neutral/DebugGraph-G4FWS57E.mjs.map +7 -0
  6. package/dist/lib/neutral/DebugObjectPanel-OS65NC4M.mjs +59 -0
  7. package/dist/lib/neutral/DebugObjectPanel-OS65NC4M.mjs.map +7 -0
  8. package/dist/lib/neutral/DebugPlugin.mjs +59 -0
  9. package/dist/lib/neutral/DebugPlugin.mjs.map +7 -0
  10. package/dist/lib/neutral/DebugPlugin.node.mjs +18 -0
  11. package/dist/lib/neutral/DebugPlugin.node.mjs.map +7 -0
  12. package/dist/lib/neutral/DebugPlugin.workerd.mjs +12 -0
  13. package/dist/lib/neutral/DebugPlugin.workerd.mjs.map +7 -0
  14. package/dist/lib/neutral/DebugSettings-RKYNQIKH.mjs +223 -0
  15. package/dist/lib/neutral/DebugSettings-RKYNQIKH.mjs.map +7 -0
  16. package/dist/lib/neutral/DebugSpaceObjectsPanel-BHOCFWDJ.mjs +34 -0
  17. package/dist/lib/neutral/DebugSpaceObjectsPanel-BHOCFWDJ.mjs.map +7 -0
  18. package/dist/lib/neutral/DebugStatus-H2BAHN26.mjs +122 -0
  19. package/dist/lib/neutral/DebugStatus-H2BAHN26.mjs.map +7 -0
  20. package/dist/lib/neutral/DevtoolsOverviewContainer-YX7Z3D2H.mjs +23 -0
  21. package/dist/lib/neutral/DevtoolsOverviewContainer-YX7Z3D2H.mjs.map +7 -0
  22. package/dist/lib/neutral/GithubPanel-QJKDJRVQ.mjs +177 -0
  23. package/dist/lib/neutral/GithubPanel-QJKDJRVQ.mjs.map +7 -0
  24. package/dist/lib/neutral/RegistryPanel-64GIYJHN.mjs +161 -0
  25. package/dist/lib/neutral/RegistryPanel-64GIYJHN.mjs.map +7 -0
  26. package/dist/lib/neutral/SpaceGenerator-Y35G6DRV.mjs +146 -0
  27. package/dist/lib/neutral/SpaceGenerator-Y35G6DRV.mjs.map +7 -0
  28. package/dist/lib/neutral/Wireframe-WD7S2AUU.mjs +52 -0
  29. package/dist/lib/neutral/Wireframe-WD7S2AUU.mjs.map +7 -0
  30. package/dist/lib/neutral/app-graph-builder-XYLTBYKN.mjs +612 -0
  31. package/dist/lib/neutral/app-graph-builder-XYLTBYKN.mjs.map +7 -0
  32. package/dist/lib/neutral/capabilities/index.mjs +15 -0
  33. package/dist/lib/neutral/capabilities/index.mjs.map +7 -0
  34. package/dist/lib/neutral/chunk-HOV6MV5B.mjs +43 -0
  35. package/dist/lib/neutral/chunk-HOV6MV5B.mjs.map +7 -0
  36. package/dist/lib/neutral/chunk-J5LGTIGS.mjs +10 -0
  37. package/dist/lib/neutral/chunk-J5LGTIGS.mjs.map +7 -0
  38. package/dist/lib/{browser/chunk-SRV2AIGJ.mjs → neutral/chunk-UAAGABXZ.mjs} +31 -9
  39. package/dist/lib/neutral/chunk-UAAGABXZ.mjs.map +7 -0
  40. package/dist/lib/{browser/SpaceGenerator-VMWHGAJZ.mjs → neutral/components/index.mjs} +342 -529
  41. package/dist/lib/neutral/components/index.mjs.map +7 -0
  42. package/dist/lib/neutral/containers/index.mjs +25 -0
  43. package/dist/lib/neutral/containers/index.mjs.map +7 -0
  44. package/dist/lib/neutral/index.mjs +18 -0
  45. package/dist/lib/neutral/index.mjs.map +7 -0
  46. package/dist/lib/neutral/meta.json +1 -0
  47. package/dist/lib/neutral/meta.mjs +8 -0
  48. package/dist/lib/neutral/meta.mjs.map +7 -0
  49. package/dist/lib/neutral/plugin.mjs +12 -0
  50. package/dist/lib/neutral/plugin.mjs.map +7 -0
  51. package/dist/lib/neutral/react-context-MUZ3KVLU.mjs +17 -0
  52. package/dist/lib/neutral/react-context-MUZ3KVLU.mjs.map +7 -0
  53. package/dist/lib/neutral/react-surface-3MDMZGCA.mjs +425 -0
  54. package/dist/lib/neutral/react-surface-3MDMZGCA.mjs.map +7 -0
  55. package/dist/lib/neutral/settings-MPM6YUP4.mjs +28 -0
  56. package/dist/lib/neutral/settings-MPM6YUP4.mjs.map +7 -0
  57. package/dist/lib/neutral/translations.mjs +91 -0
  58. package/dist/lib/neutral/translations.mjs.map +7 -0
  59. package/dist/lib/neutral/types/index.mjs +14 -0
  60. package/dist/lib/neutral/types/index.mjs.map +7 -0
  61. package/dist/types/src/DebugPlugin.d.ts +4 -1
  62. package/dist/types/src/DebugPlugin.d.ts.map +1 -1
  63. package/dist/types/src/DebugPlugin.node.d.ts +5 -0
  64. package/dist/types/src/DebugPlugin.node.d.ts.map +1 -0
  65. package/dist/types/src/DebugPlugin.test.d.ts +2 -0
  66. package/dist/types/src/DebugPlugin.test.d.ts.map +1 -0
  67. package/dist/types/src/DebugPlugin.workerd.d.ts +5 -0
  68. package/dist/types/src/DebugPlugin.workerd.d.ts.map +1 -0
  69. package/dist/types/src/capabilities/app-graph-builder.d.ts +4 -2
  70. package/dist/types/src/capabilities/app-graph-builder.d.ts.map +1 -1
  71. package/dist/types/src/capabilities/index.d.ts +8 -5
  72. package/dist/types/src/capabilities/index.d.ts.map +1 -1
  73. package/dist/types/src/capabilities/react-context.d.ts +4 -2
  74. package/dist/types/src/capabilities/react-context.d.ts.map +1 -1
  75. package/dist/types/src/capabilities/react-surface.d.ts +7 -2
  76. package/dist/types/src/capabilities/react-surface.d.ts.map +1 -1
  77. package/dist/types/src/capabilities/settings.d.ts +5 -2
  78. package/dist/types/src/capabilities/settings.d.ts.map +1 -1
  79. package/dist/types/src/components/DebugSettings/DebugSettings.d.ts +11 -0
  80. package/dist/types/src/components/DebugSettings/DebugSettings.d.ts.map +1 -0
  81. package/dist/types/src/components/DebugSettings/DebugSettings.stories.d.ts +106 -0
  82. package/dist/types/src/components/DebugSettings/DebugSettings.stories.d.ts.map +1 -0
  83. package/dist/types/src/components/DebugSettings/index.d.ts +2 -0
  84. package/dist/types/src/components/DebugSettings/index.d.ts.map +1 -0
  85. package/dist/types/src/components/SchemaTable/SchemaTable.d.ts.map +1 -0
  86. package/dist/types/src/components/SchemaTable/index.d.ts +2 -0
  87. package/dist/types/src/components/SchemaTable/index.d.ts.map +1 -0
  88. package/dist/types/src/components/SpaceGenerator/ObjectGenerator.d.ts +4 -5
  89. package/dist/types/src/components/SpaceGenerator/ObjectGenerator.d.ts.map +1 -1
  90. package/dist/types/src/components/SpaceGenerator/draw-util.d.ts.map +1 -1
  91. package/dist/types/src/components/SpaceGenerator/index.d.ts +2 -2
  92. package/dist/types/src/components/SpaceGenerator/index.d.ts.map +1 -1
  93. package/dist/types/src/components/SpaceGenerator/presets.d.ts +2 -5
  94. package/dist/types/src/components/SpaceGenerator/presets.d.ts.map +1 -1
  95. package/dist/types/src/components/index.d.ts +4 -10
  96. package/dist/types/src/components/index.d.ts.map +1 -1
  97. package/dist/types/src/containers/DebugGraph/DebugGraph.d.ts +8 -0
  98. package/dist/types/src/containers/DebugGraph/DebugGraph.d.ts.map +1 -0
  99. package/dist/types/src/containers/DebugGraph/index.d.ts +2 -0
  100. package/dist/types/src/containers/DebugGraph/index.d.ts.map +1 -0
  101. package/dist/types/src/containers/DebugObjectPanel/DebugObjectPanel.d.ts +6 -0
  102. package/dist/types/src/containers/DebugObjectPanel/DebugObjectPanel.d.ts.map +1 -0
  103. package/dist/types/src/containers/DebugObjectPanel/index.d.ts +2 -0
  104. package/dist/types/src/containers/DebugObjectPanel/index.d.ts.map +1 -0
  105. package/dist/types/src/containers/DebugSpaceObjectsPanel/DebugSpaceObjectsPanel.d.ts +5 -0
  106. package/dist/types/src/containers/DebugSpaceObjectsPanel/DebugSpaceObjectsPanel.d.ts.map +1 -0
  107. package/dist/types/src/containers/DebugSpaceObjectsPanel/index.d.ts +2 -0
  108. package/dist/types/src/containers/DebugSpaceObjectsPanel/index.d.ts.map +1 -0
  109. package/dist/types/src/containers/DebugStatus/DebugStatus.d.ts.map +1 -0
  110. package/dist/types/src/containers/DebugStatus/index.d.ts +2 -0
  111. package/dist/types/src/containers/DebugStatus/index.d.ts.map +1 -0
  112. package/dist/types/src/{components → containers/DevtoolsOverviewContainer}/DevtoolsOverviewContainer.d.ts +0 -1
  113. package/dist/types/src/containers/DevtoolsOverviewContainer/DevtoolsOverviewContainer.d.ts.map +1 -0
  114. package/dist/types/src/containers/DevtoolsOverviewContainer/index.d.ts +2 -0
  115. package/dist/types/src/containers/DevtoolsOverviewContainer/index.d.ts.map +1 -0
  116. package/dist/types/src/containers/GithubPanel/GithubComponent.d.ts +15 -0
  117. package/dist/types/src/containers/GithubPanel/GithubComponent.d.ts.map +1 -0
  118. package/dist/types/src/containers/GithubPanel/GithubComponent.stories.d.ts +106 -0
  119. package/dist/types/src/containers/GithubPanel/GithubComponent.stories.d.ts.map +1 -0
  120. package/dist/types/src/containers/GithubPanel/GithubPanel.d.ts +3 -0
  121. package/dist/types/src/containers/GithubPanel/GithubPanel.d.ts.map +1 -0
  122. package/dist/types/src/containers/GithubPanel/index.d.ts +2 -0
  123. package/dist/types/src/containers/GithubPanel/index.d.ts.map +1 -0
  124. package/dist/types/src/containers/RegistryPanel/RegistryPanel.d.ts +3 -0
  125. package/dist/types/src/containers/RegistryPanel/RegistryPanel.d.ts.map +1 -0
  126. package/dist/types/src/containers/RegistryPanel/index.d.ts +2 -0
  127. package/dist/types/src/containers/RegistryPanel/index.d.ts.map +1 -0
  128. package/dist/types/src/containers/SpaceGenerator/SpaceGenerator.d.ts +11 -0
  129. package/dist/types/src/containers/SpaceGenerator/SpaceGenerator.d.ts.map +1 -0
  130. package/dist/types/src/containers/SpaceGenerator/index.d.ts +2 -0
  131. package/dist/types/src/containers/SpaceGenerator/index.d.ts.map +1 -0
  132. package/dist/types/src/{components → containers/Wireframe}/Wireframe.d.ts +2 -2
  133. package/dist/types/src/containers/Wireframe/Wireframe.d.ts.map +1 -0
  134. package/dist/types/src/containers/Wireframe/index.d.ts +2 -0
  135. package/dist/types/src/containers/Wireframe/index.d.ts.map +1 -0
  136. package/dist/types/src/containers/index.d.ts +11 -0
  137. package/dist/types/src/containers/index.d.ts.map +1 -0
  138. package/dist/types/src/index.d.ts +1 -1
  139. package/dist/types/src/index.d.ts.map +1 -1
  140. package/dist/types/src/meta.d.ts +2 -2
  141. package/dist/types/src/meta.d.ts.map +1 -1
  142. package/dist/types/src/plugin.d.ts +4 -0
  143. package/dist/types/src/plugin.d.ts.map +1 -0
  144. package/dist/types/src/translations.d.ts +87 -59
  145. package/dist/types/src/translations.d.ts.map +1 -1
  146. package/dist/types/src/types/Settings.d.ts +8 -0
  147. package/dist/types/src/types/Settings.d.ts.map +1 -0
  148. package/dist/types/src/types/index.d.ts +70 -0
  149. package/dist/types/src/types/index.d.ts.map +1 -0
  150. package/dist/types/tsconfig.tsbuildinfo +1 -1
  151. package/package.json +125 -78
  152. package/src/DebugPlugin.node.ts +18 -0
  153. package/src/DebugPlugin.test.ts +29 -0
  154. package/src/DebugPlugin.tsx +34 -34
  155. package/src/DebugPlugin.workerd.ts +12 -0
  156. package/src/capabilities/app-graph-builder.ts +390 -388
  157. package/src/capabilities/index.ts +5 -5
  158. package/src/capabilities/react-context.tsx +16 -7
  159. package/src/capabilities/react-surface.tsx +386 -339
  160. package/src/capabilities/settings.ts +24 -12
  161. package/src/components/DebugSettings/DebugSettings.stories.tsx +36 -0
  162. package/src/components/DebugSettings/DebugSettings.tsx +259 -0
  163. package/src/components/DebugSettings/index.ts +5 -0
  164. package/src/components/SchemaTable/index.ts +5 -0
  165. package/src/components/SpaceGenerator/ObjectGenerator.tsx +38 -44
  166. package/src/components/SpaceGenerator/draw-util.ts +8 -8
  167. package/src/components/SpaceGenerator/index.ts +2 -3
  168. package/src/components/SpaceGenerator/presets.ts +240 -140
  169. package/src/components/index.ts +4 -8
  170. package/src/containers/DebugGraph/DebugGraph.tsx +14 -0
  171. package/src/containers/DebugGraph/index.ts +5 -0
  172. package/src/containers/DebugObjectPanel/DebugObjectPanel.tsx +76 -0
  173. package/src/containers/DebugObjectPanel/index.ts +5 -0
  174. package/src/containers/DebugSpaceObjectsPanel/DebugSpaceObjectsPanel.tsx +47 -0
  175. package/src/containers/DebugSpaceObjectsPanel/index.ts +5 -0
  176. package/src/{components → containers/DebugStatus}/DebugStatus.tsx +42 -19
  177. package/src/containers/DebugStatus/index.ts +5 -0
  178. package/src/containers/DevtoolsOverviewContainer/DevtoolsOverviewContainer.tsx +25 -0
  179. package/src/containers/DevtoolsOverviewContainer/index.ts +5 -0
  180. package/src/containers/GithubPanel/GithubComponent.stories.tsx +38 -0
  181. package/src/containers/GithubPanel/GithubComponent.tsx +192 -0
  182. package/src/containers/GithubPanel/GithubPanel.tsx +17 -0
  183. package/src/containers/GithubPanel/index.ts +5 -0
  184. package/src/containers/RegistryPanel/RegistryPanel.tsx +150 -0
  185. package/src/containers/RegistryPanel/index.ts +5 -0
  186. package/src/containers/SpaceGenerator/SpaceGenerator.tsx +127 -0
  187. package/src/containers/SpaceGenerator/index.ts +5 -0
  188. package/src/{components → containers/Wireframe}/Wireframe.tsx +7 -12
  189. package/src/containers/Wireframe/index.ts +5 -0
  190. package/src/containers/index.ts +15 -0
  191. package/src/index.ts +1 -1
  192. package/src/meta.ts +29 -6
  193. package/src/plugin.ts +10 -0
  194. package/src/translations.ts +83 -58
  195. package/src/types/Settings.ts +16 -0
  196. package/src/{types.ts → types/index.ts} +21 -11
  197. package/src/vite-env.d.ts +10 -0
  198. package/dist/lib/browser/DebugGraph-EDOH6R2G.mjs +0 -20
  199. package/dist/lib/browser/DebugGraph-EDOH6R2G.mjs.map +0 -7
  200. package/dist/lib/browser/DevtoolsOverviewContainer-EPD6EWT5.mjs +0 -25
  201. package/dist/lib/browser/DevtoolsOverviewContainer-EPD6EWT5.mjs.map +0 -7
  202. package/dist/lib/browser/SpaceGenerator-VMWHGAJZ.mjs.map +0 -7
  203. package/dist/lib/browser/app-graph-builder-I4IHBKKN.mjs +0 -588
  204. package/dist/lib/browser/app-graph-builder-I4IHBKKN.mjs.map +0 -7
  205. package/dist/lib/browser/chunk-SRV2AIGJ.mjs.map +0 -7
  206. package/dist/lib/browser/chunk-SVCKCXCL.mjs +0 -16
  207. package/dist/lib/browser/chunk-SVCKCXCL.mjs.map +0 -7
  208. package/dist/lib/browser/index.mjs +0 -131
  209. package/dist/lib/browser/index.mjs.map +0 -7
  210. package/dist/lib/browser/meta.json +0 -1
  211. package/dist/lib/browser/react-context-QLZE7VSQ.mjs +0 -16
  212. package/dist/lib/browser/react-context-QLZE7VSQ.mjs.map +0 -7
  213. package/dist/lib/browser/react-surface-GFORPA3A.mjs +0 -772
  214. package/dist/lib/browser/react-surface-GFORPA3A.mjs.map +0 -7
  215. package/dist/lib/browser/settings-EBVICEEW.mjs +0 -22
  216. package/dist/lib/browser/settings-EBVICEEW.mjs.map +0 -7
  217. package/dist/types/src/components/Container.d.ts +0 -5
  218. package/dist/types/src/components/Container.d.ts.map +0 -1
  219. package/dist/types/src/components/DebugGraph.d.ts +0 -8
  220. package/dist/types/src/components/DebugGraph.d.ts.map +0 -1
  221. package/dist/types/src/components/DebugObjectPanel.d.ts +0 -7
  222. package/dist/types/src/components/DebugObjectPanel.d.ts.map +0 -1
  223. package/dist/types/src/components/DebugSettings.d.ts +0 -6
  224. package/dist/types/src/components/DebugSettings.d.ts.map +0 -1
  225. package/dist/types/src/components/DebugStatus.d.ts.map +0 -1
  226. package/dist/types/src/components/DevtoolsOverviewContainer.d.ts.map +0 -1
  227. package/dist/types/src/components/SpaceGenerator/SchemaTable.d.ts.map +0 -1
  228. package/dist/types/src/components/SpaceGenerator/SpaceGenerator.d.ts +0 -9
  229. package/dist/types/src/components/SpaceGenerator/SpaceGenerator.d.ts.map +0 -1
  230. package/dist/types/src/components/SpaceGenerator/SpaceGenerator.stories.d.ts +0 -15
  231. package/dist/types/src/components/SpaceGenerator/SpaceGenerator.stories.d.ts.map +0 -1
  232. package/dist/types/src/components/Wireframe.d.ts.map +0 -1
  233. package/dist/types/src/types.d.ts +0 -63
  234. package/dist/types/src/types.d.ts.map +0 -1
  235. package/src/components/Container.tsx +0 -15
  236. package/src/components/DebugGraph.tsx +0 -14
  237. package/src/components/DebugObjectPanel.tsx +0 -33
  238. package/src/components/DebugSettings.tsx +0 -159
  239. package/src/components/DevtoolsOverviewContainer.tsx +0 -20
  240. package/src/components/SpaceGenerator/SpaceGenerator.stories.tsx +0 -52
  241. package/src/components/SpaceGenerator/SpaceGenerator.tsx +0 -122
  242. /package/dist/types/src/components/{SpaceGenerator → SchemaTable}/SchemaTable.d.ts +0 -0
  243. /package/dist/types/src/{components → containers/DebugStatus}/DebugStatus.d.ts +0 -0
  244. /package/src/components/{SpaceGenerator → SchemaTable}/SchemaTable.tsx +0 -0
@@ -1,218 +1,48 @@
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";
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 { SheetType as SheetType2 } from "@dxos/plugin-sheet/types";
9
- import { DiagramType as DiagramType2 } 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 { DataType as DataType3 } from "@dxos/schema";
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, Obj, Ref, Type } from "@dxos/echo";
22
- import { Markdown } from "@dxos/plugin-markdown/types";
23
- import { createSheet } from "@dxos/plugin-sheet/types";
24
- import { SheetType } from "@dxos/plugin-sheet/types";
25
- import { CanvasType, DiagramType } from "@dxos/plugin-sketch/types";
26
- import { SpaceAction } from "@dxos/plugin-space/types";
27
- import { faker } from "@dxos/random";
28
- import { DataType, getTypenameFromQuery } from "@dxos/schema";
29
- import { createAsyncGenerator } from "@dxos/schema/testing";
30
- import { range } from "@dxos/util";
31
- var generator = faker;
32
- var findViewByTypename = async (views, typename) => {
33
- return views.find((view) => getTypenameFromQuery(view.query.ast) === typename);
34
- };
35
- var createGenerator = (client, dispatch, schema) => {
36
- return async (space, n) => {
37
- const typename = schema.typename;
38
- const { objects: views } = await space.db.query(Filter.type(DataType.View)).run();
39
- const view = await findViewByTypename(views, typename);
40
- const staticSchema = client?.graph.schemaRegistry.schemas.find((schema2) => Type.getTypename(schema2) === typename);
41
- if (!view && !staticSchema) {
42
- await dispatch(createIntent(SpaceAction.AddSchema, {
43
- space,
44
- schema,
45
- show: false
46
- }));
47
- } else if (!view && staticSchema) {
48
- await dispatch(createIntent(SpaceAction.UseStaticSchema, {
49
- space,
50
- typename,
51
- show: false
52
- }));
53
- }
54
- const generate = createAsyncGenerator(generator, schema, {
55
- db: space.db
56
- });
57
- return generate.createObjects(n);
58
- };
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
+ }))));
59
28
  };
60
- var staticGenerators = /* @__PURE__ */ new Map([
61
- [
62
- Markdown.Document.typename,
63
- async (space, n, cb) => {
64
- const objects = range(n).map(() => {
65
- return space.db.add(Markdown.makeDocument({
66
- name: faker.commerce.productName(),
67
- content: faker.lorem.sentences(5)
68
- }));
69
- });
70
- cb?.(objects);
71
- return objects;
72
- }
73
- ],
74
- [
75
- DiagramType.typename,
76
- async (space, n, cb) => {
77
- const objects = range(n).map(() => {
78
- const obj = space.db.add(Obj.make(DiagramType, {
79
- name: faker.commerce.productName(),
80
- canvas: Ref.make(Obj.make(CanvasType, {
81
- content: {}
82
- }))
83
- }));
84
- return obj;
85
- });
86
- cb?.(objects);
87
- return objects;
88
- }
89
- ],
90
- // TODO(burdon): Create unit tests.
91
- [
92
- SheetType.typename,
93
- async (space, n, cb) => {
94
- const objects = range(n).map(() => {
95
- const cells = {};
96
- const year = (/* @__PURE__ */ new Date()).getFullYear();
97
- const cols = 4;
98
- const rows = 16;
99
- for (let col = 1; col <= cols; col++) {
100
- for (let row = 1; row <= rows; row++) {
101
- const cell = addressToA1Notation({
102
- col,
103
- row
104
- });
105
- if (row === 1) {
106
- cells[cell] = {
107
- value: `${year} Q${col}`
108
- };
109
- } else if (row === rows) {
110
- const from = addressToA1Notation({
111
- col,
112
- row: 2
113
- });
114
- const to = addressToA1Notation({
115
- col,
116
- row: rows - 1
117
- });
118
- cells[cell] = {
119
- value: `=SUM(${from}:${to})`
120
- };
121
- } else if (row > 2 && row < rows - 1) {
122
- cells[cell] = {
123
- value: Math.floor(Math.random() * 1e4)
124
- };
125
- }
126
- }
127
- }
128
- return space.db.add(createSheet({
129
- name: faker.commerce.productName(),
130
- cells
131
- }));
132
- });
133
- cb?.(objects);
134
- return objects;
135
- }
136
- ],
137
- [
138
- ComputeGraph.typename,
139
- async (space, n, cb) => {
140
- const objects = range(n, () => {
141
- const model = ComputeGraphModel.create();
142
- model.builder.createNode({
143
- id: "gpt-INPUT",
144
- type: NODE_INPUT
145
- }).createNode({
146
- id: "gpt-GPT",
147
- type: "gpt"
148
- }).createNode({
149
- id: "gpt-QUEUE_ID",
150
- type: "constant",
151
- value: new DXN(DXN.kind.QUEUE, [
152
- "data",
153
- space.id,
154
- Key.ObjectId.random()
155
- ]).toString()
156
- }).createNode({
157
- id: "gpt-APPEND",
158
- type: "append"
159
- }).createNode({
160
- id: "gpt-OUTPUT",
161
- type: NODE_OUTPUT
162
- }).createEdge({
163
- node: "gpt-INPUT",
164
- property: "prompt"
165
- }, {
166
- node: "gpt-GPT",
167
- property: "prompt"
168
- }).createEdge({
169
- node: "gpt-GPT",
170
- property: "text"
171
- }, {
172
- node: "gpt-OUTPUT",
173
- property: "text"
174
- }).createEdge({
175
- node: "gpt-QUEUE_ID",
176
- property: DEFAULT_OUTPUT
177
- }, {
178
- node: "gpt-APPEND",
179
- property: "id"
180
- }).createEdge({
181
- node: "gpt-GPT",
182
- property: "messages"
183
- }, {
184
- node: "gpt-APPEND",
185
- property: "items"
186
- }).createEdge({
187
- node: "gpt-QUEUE_ID",
188
- property: DEFAULT_OUTPUT
189
- }, {
190
- node: "gpt-OUTPUT",
191
- property: "queue"
192
- });
193
- return space.db.add(model.root);
194
- });
195
- cb?.(objects);
196
- return objects;
197
- }
198
- ]
199
- ]);
200
29
 
201
30
  // src/components/SpaceGenerator/presets.ts
202
31
  import * as Schema from "effect/Schema";
203
- import { RESEARCH_BLUEPRINT, agent, entityExtraction } from "@dxos/assistant-testing";
204
- import { Prompt } from "@dxos/blueprints";
205
- import { NODE_INPUT as NODE_INPUT2 } from "@dxos/conductor";
206
- import { DXN as DXN2, Filter as Filter2, Key as Key2, Obj as Obj2, Query, Ref as Ref2, Tag, Type as Type2 } from "@dxos/echo";
207
- import { FunctionTrigger, 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 { Feed, Filter, JsonSchema, Key, Obj, Query, Ref, Scope, Tag } from "@dxos/echo";
208
36
  import { invariant } from "@dxos/invariant";
209
- import { sync } from "@dxos/plugin-inbox";
210
- import { Mailbox } from "@dxos/plugin-inbox/types";
211
- import { Markdown as Markdown2 } from "@dxos/plugin-markdown/types";
212
- import { createAppend, createChat, createComputeGraph, createConstant, createFunction, createGpt, createQueue, createRandom, createSurface, createTemplate, createText, createTrigger } from "@dxos/react-ui-canvas-compute";
213
- import { CanvasBoardType, CanvasGraphModel, pointMultiply, pointsToRect, rectToPoints } from "@dxos/react-ui-canvas-editor";
214
- import { DataType as DataType2, createView } from "@dxos/schema";
215
- import { range as range2 } from "@dxos/util";
37
+ import { EID } from "@dxos/keys";
38
+ import { InboxOperation } from "@dxos/plugin-inbox";
39
+ import { Mailbox } from "@dxos/plugin-inbox";
40
+ import { Markdown } from "@dxos/plugin-markdown";
41
+ import { createAppend, createChat, createComputeGraph, createConstant, createFeed, createFunction, createGpt, createRandom, createSurface, createTemplate, createText, createTrigger } from "@dxos/react-ui-canvas-compute";
42
+ import { CanvasBoard, CanvasGraphModel, pointMultiply, pointsToRect, rectToPoints } from "@dxos/react-ui-canvas-editor";
43
+ import { ViewModel } from "@dxos/schema";
44
+ import { Message, Organization, Person, Pipeline } from "@dxos/types";
45
+ import { range, trim } from "@dxos/util";
216
46
  var __dxlog_file = "/__w/dxos/dxos/packages/plugins/plugin-debug/src/components/SpaceGenerator/presets.ts";
217
47
  var PresetName = /* @__PURE__ */ (function(PresetName2) {
218
48
  PresetName2["DXOS_TEAM"] = "dxos-team";
@@ -220,15 +50,15 @@ var PresetName = /* @__PURE__ */ (function(PresetName2) {
220
50
  PresetName2["GPT_QUEUE"] = "webhook-gpt-queue";
221
51
  PresetName2["CHAT_GPT"] = "chat-gpt-text";
222
52
  PresetName2["OBJECT_CHANGE_QUEUE"] = "objectChange-queue";
223
- PresetName2["FOREX_FUNCTION_CALL"] = "forex-function-call";
224
53
  PresetName2["TIMER_TICK_QUEUE"] = "timerTick-queue";
54
+ PresetName2["FOREX_FUNCTION_CALL"] = "forex-function-call";
225
55
  PresetName2["DISCORD_MESSAGES"] = "discord-messages";
226
56
  return PresetName2;
227
57
  })({});
228
- var generator2 = () => ({
58
+ var generator = () => ({
229
59
  schemas: [
230
- CanvasBoardType,
231
- FunctionTrigger
60
+ CanvasBoard.CanvasBoard,
61
+ Trigger.Trigger
232
62
  ],
233
63
  types: Object.values(PresetName).map((name) => ({
234
64
  typename: name
@@ -237,45 +67,44 @@ var generator2 = () => ({
237
67
  [
238
68
  "dxos-team",
239
69
  async (space, n, cb) => {
240
- const objects = range2(n, () => {
241
- const tag = space.db.add(Tag.make({
242
- label: "Investor"
243
- }));
244
- const tagDxn = Obj2.getDXN(tag).toString();
245
- const org = space.db.add(Obj2.make(DataType2.Organization, {
70
+ const objects = range(n, () => {
71
+ const org = space.db.add(Obj.make(Organization.Organization, {
246
72
  name: "DXOS",
247
73
  website: "https://dxos.org"
248
74
  }));
249
- const doc = space.db.add(Markdown2.makeDocument({
75
+ const doc = space.db.add(Markdown.make({
250
76
  name: "DXOS Research",
251
77
  content: "DXOS builds Composer, an open-source AI-powered malleable application."
252
78
  }));
253
- Obj2.getMeta(doc).tags = [
254
- tagDxn
255
- ];
256
- space.db.add(Obj2.make(DataType2.Person, {
79
+ const tag = space.db.add(Tag.make({
80
+ label: "Investor"
81
+ }));
82
+ const tagRef = Ref.make(tag);
83
+ Obj.update(doc, (doc2) => {
84
+ Obj.getMeta(doc2).tags = [
85
+ tagRef
86
+ ];
87
+ });
88
+ space.db.add(Obj.make(Person.Person, {
89
+ [Obj.Meta]: {
90
+ tags: [
91
+ tagRef
92
+ ]
93
+ },
257
94
  fullName: "Rich",
258
- organization: Ref2.make(org)
259
- }, {
260
- tags: [
261
- tagDxn
262
- ]
95
+ organization: Ref.make(org)
263
96
  }));
264
- space.db.add(Obj2.make(DataType2.Person, {
97
+ space.db.add(Obj.make(Person.Person, {
265
98
  fullName: "Josiah",
266
- organization: Ref2.make(org)
99
+ organization: Ref.make(org)
267
100
  }));
268
- space.db.add(Obj2.make(DataType2.Person, {
101
+ space.db.add(Obj.make(Person.Person, {
269
102
  fullName: "Dima",
270
- organization: Ref2.make(org)
103
+ organization: Ref.make(org)
271
104
  }));
272
- space.db.add(Obj2.make(DataType2.Person, {
105
+ space.db.add(Obj.make(Person.Person, {
273
106
  fullName: "Mykola",
274
- organization: Ref2.make(org)
275
- }));
276
- space.db.add(Obj2.make(DataType2.Person, {
277
- fullName: "Will",
278
- organization: Ref2.make(org)
107
+ organization: Ref.make(org)
279
108
  }));
280
109
  return doc;
281
110
  });
@@ -286,41 +115,30 @@ var generator2 = () => ({
286
115
  [
287
116
  "org-research-project",
288
117
  async (space, n, cb) => {
289
- const mailbox = await space.db.query(Filter2.type(Mailbox.Mailbox)).first();
290
- const tag = await space.db.query(Filter2.type(Tag.Tag, {
118
+ const mailboxes = await space.db.query(Filter.type(Mailbox.Mailbox)).run();
119
+ const mailbox = mailboxes[0];
120
+ invariant(mailbox, "Mailbox not found", { "~LogMeta": "~LogMeta", F: __dxlog_file, L: 101, S: void 0, A: ["mailbox", "'Mailbox not found'"] });
121
+ const mailboxFeed = await mailbox.feed?.tryLoad();
122
+ invariant(mailboxFeed, "Mailbox missing feed reference", { "~LogMeta": "~LogMeta", F: __dxlog_file, L: 103, S: void 0, A: ["mailboxFeed", "'Mailbox missing feed reference'"] });
123
+ const queueDxn = Feed.getQueueUri(mailboxFeed);
124
+ invariant(queueDxn, "Mailbox feed missing queue DXN key", { "~LogMeta": "~LogMeta", F: __dxlog_file, L: 105, S: void 0, A: ["queueDxn", "'Mailbox feed missing queue DXN key'"] });
125
+ const tag = await space.db.query(Filter.type(Tag.Tag, {
291
126
  label: "Investor"
292
127
  })).first();
293
- const tagDxn = Obj2.getDXN(tag).toString();
294
- const objects = range2(n, () => {
295
- const contactsQuery = Query.select(Filter2.type(DataType2.Person)).select(Filter2.tag(tagDxn));
296
- const organizationsQuery = Query.select(Filter2.type(DataType2.Organization)).select(Filter2.tag(tagDxn));
297
- const notesQuery = Query.select(Filter2.type(Markdown2.Document)).select(Filter2.tag(tagDxn));
298
- const emailSyncTrigger = Obj2.make(FunctionTrigger, {
299
- enabled: true,
300
- spec: {
301
- kind: "timer",
302
- cron: "* * * * *"
303
- },
304
- function: Ref2.make(serializeFunction(sync)),
305
- input: {
306
- mailboxId: Obj2.getDXN(mailbox).toString()
307
- }
308
- });
309
- space.db.add(emailSyncTrigger);
310
- const contactExtractionTrigger = Obj2.make(FunctionTrigger, {
128
+ const tagUri = Obj.getURI(tag);
129
+ const objects = range(n, () => {
130
+ const contactsQuery = Query.select(Filter.type(Person.Person)).select(Filter.tag(tagUri));
131
+ const organizationsQuery = Query.select(Filter.type(Organization.Organization)).select(Filter.tag(tagUri));
132
+ const notesQuery = Query.select(Filter.type(Markdown.Document)).select(Filter.tag(tagUri));
133
+ space.db.add(Trigger.make({
311
134
  enabled: true,
312
- // TODO(wittjosiah): Queue trigger doesn't support matching query of the column.
313
- spec: {
314
- kind: "queue",
315
- queue: mailbox.queue.dxn.toString()
316
- },
317
- function: Ref2.make(serializeFunction(entityExtraction)),
135
+ spec: Trigger.specTimer("* * * * *"),
136
+ function: Ref.make(Operation.serialize(InboxOperation.GoogleMailSync)),
318
137
  input: {
319
- source: "{{event.item}}"
138
+ mailbox: Ref.make(mailbox)
320
139
  }
321
- });
322
- space.db.add(contactExtractionTrigger);
323
- const researchPrompt = space.db.add(Prompt.make({
140
+ }));
141
+ const researchPrompt = space.db.add(Routine.make({
324
142
  name: "Research",
325
143
  description: "Research organization",
326
144
  input: Schema.Struct({
@@ -329,74 +147,68 @@ var generator2 = () => ({
329
147
  output: Schema.Any,
330
148
  // TODO(dmaretskyi): This mocks research (returns pre-baked result), the actual research might take compute minutes.
331
149
  // Remove the mock prompt to do the actual research.
332
- instructions: "Research the organization provided as input. Create a research note for it at the end. NOTE: Do mocked reseach (set mockSearch to true).",
150
+ instructions: trim`
151
+ Research the organization provided as input.
152
+ Create a research note for it at the end.
153
+ NOTE: Do mocked reseach (set mockSearch to true).
154
+ `,
333
155
  blueprints: [
334
- Ref2.make(RESEARCH_BLUEPRINT)
156
+ Ref.make(WebSearchBlueprint.make())
335
157
  ]
336
158
  }));
337
- const researchTrigger = Obj2.make(FunctionTrigger, {
159
+ space.db.add(Trigger.make({
338
160
  enabled: true,
339
- spec: {
340
- kind: "subscription",
341
- query: {
342
- ast: organizationsQuery.ast
343
- }
344
- },
345
- function: Ref2.make(serializeFunction(agent)),
161
+ spec: Trigger.specSubscription(organizationsQuery),
162
+ function: Ref.make(Operation.serialize(AgentPrompt)),
346
163
  input: {
347
- prompt: Ref2.make(researchPrompt),
164
+ prompt: Ref.make(researchPrompt),
348
165
  input: "{{event.subject}}"
349
166
  }
350
- });
351
- space.db.add(researchTrigger);
352
- const mailboxView = createView({
353
- name: "Mailbox",
354
- query: Query.select(Filter2.type(DataType2.Message, {
167
+ }));
168
+ const mailboxView = ViewModel.make({
169
+ query: Query.select(Filter.type(Message.Message, {
355
170
  properties: {
356
- labels: Filter2.contains("investor")
171
+ labels: Filter.contains("investor")
357
172
  }
358
- })).options({
359
- queues: [
360
- mailbox.queue.dxn.toString()
361
- ]
362
- }),
363
- jsonSchema: Type2.toJsonSchema(DataType2.Message),
364
- presentation: Obj2.make(DataType2.Collection, {
365
- objects: []
366
- })
173
+ })).from(Scope.feed(Obj.getURI(mailboxFeed))),
174
+ jsonSchema: JsonSchema.toJsonSchema(Message.Message)
367
175
  });
368
- const contactsView = createView({
369
- name: "Contacts",
176
+ const contactsView = ViewModel.make({
370
177
  query: contactsQuery,
371
- jsonSchema: Type2.toJsonSchema(DataType2.Person),
372
- presentation: Obj2.make(DataType2.Collection, {
373
- objects: []
374
- })
178
+ jsonSchema: JsonSchema.toJsonSchema(Person.Person)
375
179
  });
376
- const organizationsView = createView({
377
- name: "Organizations",
180
+ const organizationsView = ViewModel.make({
378
181
  query: organizationsQuery,
379
- jsonSchema: Type2.toJsonSchema(DataType2.Organization),
380
- presentation: Obj2.make(DataType2.Collection, {
381
- objects: []
382
- })
182
+ jsonSchema: JsonSchema.toJsonSchema(Organization.Organization)
383
183
  });
384
- const notesView = createView({
385
- name: "Notes",
184
+ const notesView = ViewModel.make({
386
185
  query: notesQuery,
387
- jsonSchema: Type2.toJsonSchema(Markdown2.Document),
388
- presentation: Obj2.make(DataType2.Collection, {
389
- objects: []
390
- })
186
+ jsonSchema: JsonSchema.toJsonSchema(Markdown.Document)
391
187
  });
392
- return space.db.add(DataType2.makeProject({
188
+ return space.db.add(Pipeline.make({
393
189
  name: "Investor Research",
394
- collections: [
395
- mailboxView,
396
- contactsView,
397
- organizationsView,
398
- notesView
399
- ].map((view) => Ref2.make(view))
190
+ columns: [
191
+ {
192
+ name: "Mailbox",
193
+ view: Ref.make(mailboxView),
194
+ order: []
195
+ },
196
+ {
197
+ name: "Contacts",
198
+ view: Ref.make(contactsView),
199
+ order: []
200
+ },
201
+ {
202
+ name: "Organizations",
203
+ view: Ref.make(organizationsView),
204
+ order: []
205
+ },
206
+ {
207
+ name: "Notes",
208
+ view: Ref.make(notesView),
209
+ order: []
210
+ }
211
+ ]
400
212
  }));
401
213
  });
402
214
  cb?.(objects.flat());
@@ -406,7 +218,7 @@ var generator2 = () => ({
406
218
  [
407
219
  "webhook-gpt-queue",
408
220
  async (space, n, cb) => {
409
- const objects = range2(n, () => {
221
+ const objects = range(n, () => {
410
222
  const canvasModel = CanvasGraphModel.create();
411
223
  let functionTrigger;
412
224
  canvasModel.builder.call((builder) => {
@@ -466,9 +278,9 @@ var generator2 = () => ({
466
278
  [
467
279
  "objectChange-queue",
468
280
  async (space, n, cb) => {
469
- const objects = range2(n, () => {
281
+ const objects = range(n, () => {
470
282
  const { canvasModel, computeModel } = createQueueSinkPreset(space, "subscription", (triggerSpec) => triggerSpec.query = {
471
- ast: Query.select(Filter2.typename("dxos.org/type/Chess")).ast
283
+ ast: Query.select(Filter.typename("org.dxos.type.chess")).ast
472
284
  }, "type");
473
285
  return addToSpace("objectChange-queue", space, canvasModel, computeModel);
474
286
  });
@@ -479,7 +291,7 @@ var generator2 = () => ({
479
291
  [
480
292
  "timerTick-queue",
481
293
  async (space, n, cb) => {
482
- const objects = range2(n, () => {
294
+ const objects = range(n, () => {
483
295
  const { canvasModel, computeModel } = createQueueSinkPreset(space, "timer", (triggerSpec) => triggerSpec.cron = "*/5 * * * * *", "result");
484
296
  return addToSpace("timerTick-queue", space, canvasModel, computeModel);
485
297
  });
@@ -534,7 +346,7 @@ var generator2 = () => ({
534
346
  // const templateComputeNode = computeModel.nodes.find((n) => n.id === template.node);
535
347
  // invariant(templateComputeNode, 'Template compute node was not created.');
536
348
  // templateComputeNode.value = templateContent.join('\n');
537
- // templateComputeNode.inputSchema = Type.toJsonSchema(EmailTriggerOutput);
349
+ // templateComputeNode.inputSchema = JsonSchema.toJsonSchema(EmailTriggerOutput);
538
350
  // attachTrigger(functionTrigger, computeModel);
539
351
  // return addToSpace(PresetName.EMAIL_TABLE, space, canvasModel, computeModel);
540
352
  // });
@@ -545,7 +357,7 @@ var generator2 = () => ({
545
357
  [
546
358
  "chat-gpt-text",
547
359
  async (space, n, cb) => {
548
- const objects = range2(n, () => {
360
+ const objects = range(n, () => {
549
361
  const canvasModel = CanvasGraphModel.create();
550
362
  canvasModel.builder.call((builder) => {
551
363
  const gpt = canvasModel.createNode(createGpt(position({
@@ -665,7 +477,7 @@ var generator2 = () => ({
665
477
  // invariant(templateComputeNode, 'Template compute node was not created.');
666
478
  // templateComputeNode.value = templateContent.join('\n');
667
479
  // const extendedSchema = Schema.extend(EmailTriggerOutput, Schema.Struct({ text: Schema.String }));
668
- // templateComputeNode.inputSchema = Type.toJsonSchema(extendedSchema);
480
+ // templateComputeNode.inputSchema = JsonSchema.toJsonSchema(extendedSchema);
669
481
  // attachTrigger(functionTrigger, computeModel);
670
482
  // return addToSpace(PresetName.EMAIL_WITH_SUMMARY, space, canvasModel, computeModel);
671
483
  // });
@@ -676,7 +488,7 @@ var generator2 = () => ({
676
488
  [
677
489
  "forex-function-call",
678
490
  async (space, n, cb) => {
679
- const objects = range2(n, () => {
491
+ const objects = range(n, () => {
680
492
  const canvasModel = CanvasGraphModel.create();
681
493
  canvasModel.builder.call((builder) => {
682
494
  const sourceCurrency = canvasModel.createNode(createConstant({
@@ -725,7 +537,7 @@ var generator2 = () => ({
725
537
  [
726
538
  "discord-messages",
727
539
  async (space, n, cb) => {
728
- const objects = range2(n, () => {
540
+ const objects = range(n, () => {
729
541
  const canvasModel = CanvasGraphModel.create();
730
542
  let functionTrigger;
731
543
  canvasModel.builder.call((builder) => {
@@ -746,11 +558,10 @@ var generator2 = () => ({
746
558
  })
747
559
  }));
748
560
  const queueId = canvasModel.createNode(createConstant({
749
- value: new DXN2(DXN2.kind.QUEUE, [
750
- "data",
751
- space.id,
752
- Key2.ObjectId.random()
753
- ]).toString(),
561
+ value: EID.make({
562
+ spaceId: space.id,
563
+ entityId: Key.EntityId.random()
564
+ }),
754
565
  ...position({
755
566
  x: -10,
756
567
  y: 5
@@ -764,7 +575,7 @@ var generator2 = () => ({
764
575
  x: 12,
765
576
  y: 0
766
577
  })));
767
- const queue = canvasModel.createNode(createQueue(position({
578
+ const queue = canvasModel.createNode(createFeed(position({
768
579
  x: 0,
769
580
  y: 12
770
581
  })));
@@ -839,7 +650,7 @@ var createQueueSinkPreset = (space, triggerKind, initSpec, triggerOutputName) =>
839
650
  width: 128,
840
651
  height: 122
841
652
  })));
842
- const random = canvasModel.createNode(createRandom(rawPosition({
653
+ const random2 = canvasModel.createNode(createRandom(rawPosition({
843
654
  centerX: -509,
844
655
  centerY: -30,
845
656
  width: 64,
@@ -859,41 +670,27 @@ var createQueueSinkPreset = (space, triggerKind, initSpec, triggerOutputName) =>
859
670
  output: triggerOutputName,
860
671
  input: "type"
861
672
  }).createEdge({
862
- source: random.id,
673
+ source: random2.id,
863
674
  target: template.id,
864
675
  input: "changeId"
865
676
  });
866
677
  functionTrigger = triggerShape.functionTrigger.target;
867
678
  const triggerSpec = functionTrigger.spec;
868
- invariant(triggerSpec && triggerSpec.kind === triggerKind, "No trigger spec.", {
869
- F: __dxlog_file,
870
- L: 657,
871
- S: void 0,
872
- A: [
873
- "triggerSpec && triggerSpec.kind === triggerKind",
874
- "'No trigger spec.'"
875
- ]
679
+ invariant(triggerSpec && triggerSpec.kind === triggerKind, "No trigger spec.", { "~LogMeta": "~LogMeta", F: __dxlog_file, L: 661, S: void 0, A: ["triggerSpec && triggerSpec.kind === triggerKind", "'No trigger spec.'"] });
680
+ Obj.update(functionTrigger, (functionTrigger2) => {
681
+ initSpec(functionTrigger2.spec);
876
682
  });
877
- initSpec(triggerSpec);
878
683
  });
879
684
  const computeModel = createComputeGraph(canvasModel);
880
685
  const templateComputeNode = computeModel.nodes.find((n) => n.id === template.node);
881
- invariant(templateComputeNode, "Template compute node was not created.", {
882
- F: __dxlog_file,
883
- L: 664,
884
- S: void 0,
885
- A: [
886
- "templateComputeNode",
887
- "'Template compute node was not created.'"
888
- ]
889
- });
686
+ invariant(templateComputeNode, "Template compute node was not created.", { "~LogMeta": "~LogMeta", F: __dxlog_file, L: 668, S: void 0, A: ["templateComputeNode", "'Template compute node was not created.'"] });
890
687
  templateComputeNode.value = [
891
688
  "{",
892
689
  ' "@type": "{{type}}",',
893
690
  ' "id": "@{{changeId}}"',
894
691
  "}"
895
692
  ].join("\n");
896
- templateComputeNode.inputSchema = Type2.toJsonSchema(Schema.Struct({
693
+ templateComputeNode.inputSchema = JsonSchema.toJsonSchema(Schema.Struct({
897
694
  type: Schema.String,
898
695
  changeId: Schema.String
899
696
  }));
@@ -904,19 +701,18 @@ var createQueueSinkPreset = (space, triggerKind, initSpec, triggerOutputName) =>
904
701
  };
905
702
  };
906
703
  var addToSpace = (name, space, canvas, compute) => {
907
- return space.db.add(Obj2.make(CanvasBoardType, {
704
+ return space.db.add(Obj.make(CanvasBoard.CanvasBoard, {
908
705
  name,
909
- computeGraph: Ref2.make(compute.root),
706
+ computeGraph: Ref.make(compute.root),
910
707
  layout: canvas.graph
911
708
  }));
912
709
  };
913
710
  var setupQueue = (space, canvasModel, args) => {
914
711
  const queueId = canvasModel.createNode(createConstant({
915
- value: new DXN2(DXN2.kind.QUEUE, [
916
- "data",
917
- space.id,
918
- Key2.ObjectId.random()
919
- ]).toString(),
712
+ value: EID.make({
713
+ spaceId: space.id,
714
+ entityId: Key.EntityId.random()
715
+ }),
920
716
  ...args?.idPosition ? rawPosition(args.idPosition) : position({
921
717
  x: -18,
922
718
  y: 5,
@@ -924,7 +720,7 @@ var setupQueue = (space, canvasModel, args) => {
924
720
  height: 6
925
721
  })
926
722
  }));
927
- const queue = canvasModel.createNode(createQueue(args?.queuePosition ? rawPosition(args.queuePosition) : position({
723
+ const queue = canvasModel.createNode(createFeed(args?.queuePosition ? rawPosition(args.queuePosition) : position({
928
724
  x: -3,
929
725
  y: 3,
930
726
  width: 14,
@@ -940,18 +736,12 @@ var setupQueue = (space, canvasModel, args) => {
940
736
  };
941
737
  };
942
738
  var attachTrigger = (functionTrigger, computeModel) => {
943
- invariant(functionTrigger, void 0, {
944
- F: __dxlog_file,
945
- L: 703,
946
- S: void 0,
947
- A: [
948
- "functionTrigger",
949
- ""
950
- ]
739
+ invariant(functionTrigger, void 0, { "~LogMeta": "~LogMeta", F: __dxlog_file, L: 722, S: void 0, A: ["functionTrigger", ""] });
740
+ const inputNode = computeModel.nodes.find((node) => node.type === NODE_INPUT);
741
+ Obj.update(functionTrigger, (functionTrigger2) => {
742
+ functionTrigger2.function = Ref.make(computeModel.root);
743
+ functionTrigger2.inputNodeId = inputNode.id;
951
744
  });
952
- functionTrigger.function = Ref2.make(computeModel.root);
953
- const inputNode = computeModel.nodes.find((node) => node.type === NODE_INPUT2);
954
- functionTrigger.inputNodeId = inputNode.id;
955
745
  };
956
746
  var rawPosition = (args) => {
957
747
  return {
@@ -997,163 +787,186 @@ var position = (rect) => {
997
787
  }
998
788
  };
999
789
 
1000
- // src/components/SpaceGenerator/SchemaTable.tsx
1001
- import { useSignals as _useSignals } from "@preact-signals/safe-react/tracking";
1002
- import React from "react";
1003
- import { IconButton } from "@dxos/react-ui";
1004
- var SchemaTable = ({ types, objects = {}, label, onClick }) => {
1005
- var _effect = _useSignals();
1006
- try {
1007
- return /* @__PURE__ */ React.createElement("div", {
1008
- className: "grid grid-cols-[1fr_80px_40px] gap-1 overflow-none"
1009
- }, /* @__PURE__ */ React.createElement("h2", {
1010
- className: "p-2"
1011
- }, label), types.map((type) => /* @__PURE__ */ React.createElement("div", {
1012
- key: type.typename,
1013
- className: "grid grid-cols-subgrid col-span-3 items-center"
1014
- }, /* @__PURE__ */ React.createElement("div", {
1015
- className: "px-2 text-sm font-mono text-subdued"
1016
- }, type.typename), /* @__PURE__ */ React.createElement("div", {
1017
- className: "px-2 text-right font-mono"
1018
- }, objects[type.typename] ?? 0), /* @__PURE__ */ React.createElement(IconButton, {
1019
- variant: "ghost",
1020
- icon: "ph--plus--regular",
1021
- iconOnly: true,
1022
- label: "Create data",
1023
- onClick: () => onClick(type.typename)
1024
- }))));
1025
- } finally {
1026
- _effect.f();
1027
- }
790
+ // src/components/SpaceGenerator/ObjectGenerator.tsx
791
+ import { addressToA1Notation } from "@dxos/compute-hyperformula";
792
+ import { ComputeGraph, ComputeGraphModel, DEFAULT_OUTPUT, NODE_INPUT as NODE_INPUT2, NODE_OUTPUT } from "@dxos/conductor";
793
+ import { EID as EID2, Filter as Filter2, Key as Key2, Type, View } from "@dxos/echo";
794
+ import { Markdown as Markdown2 } from "@dxos/plugin-markdown";
795
+ import { Sheet } from "@dxos/plugin-sheet";
796
+ import { Sketch } from "@dxos/plugin-sketch";
797
+ import { SpaceOperation } from "@dxos/plugin-space";
798
+ import { random } from "@dxos/random";
799
+ import { getTypenameFromQuery } from "@dxos/schema";
800
+ import { createAsyncGenerator } from "@dxos/schema/testing";
801
+ import { range as range2 } from "@dxos/util";
802
+ var generator2 = random;
803
+ var findViewByTypename = async (views, typename) => {
804
+ return views.find((view) => getTypenameFromQuery(view.query.ast) === typename);
1028
805
  };
1029
-
1030
- // src/components/SpaceGenerator/SpaceGenerator.tsx
1031
- var SpaceGenerator = ({ space, onCreateObjects }) => {
1032
- var _effect = _useSignals2();
1033
- try {
1034
- const { dispatchPromise: dispatch } = useIntentDispatcher();
1035
- const client = useClient();
1036
- const staticTypes = [
1037
- Markdown3.Document,
1038
- DiagramType2,
1039
- SheetType2,
1040
- ComputeGraph2
1041
- ];
1042
- const recordTypes = [
1043
- DataType3.Organization,
1044
- DataType3.Person,
1045
- DataType3.Task
1046
- ];
1047
- const [count, setCount] = useState(1);
1048
- const [info, setInfo] = useState({});
1049
- const presets = useMemo(() => generator2(), []);
1050
- const typeMap = useMemo(() => {
1051
- client.addTypes([
1052
- ...staticTypes,
1053
- ...recordTypes,
1054
- ...presets.schemas
1055
- ]);
1056
- const recordGenerators = new Map(recordTypes.map((type) => [
1057
- type.typename,
1058
- createGenerator(client, dispatch, type)
1059
- ]));
1060
- return new Map([
1061
- ...staticGenerators,
1062
- ...presets.items,
1063
- ...recordGenerators
1064
- ]);
1065
- }, [
1066
- client,
1067
- recordTypes
1068
- ]);
1069
- const updateInfo = async () => {
1070
- const echoSchema = await space.db.schemaRegistry.query().run();
1071
- const staticSchema = space.db.graph.schemaRegistry.schemas;
1072
- const { objects } = await space.db.query(Filter3.everything()).run();
1073
- const objectMap = sortKeys(objects.reduce((map, obj) => {
1074
- const type = getTypename(obj);
1075
- if (type) {
1076
- const count2 = map[type] ?? 0;
1077
- map[type] = count2 + 1;
1078
- }
1079
- return map;
1080
- }, {}));
1081
- setInfo({
1082
- schema: {
1083
- static: staticSchema.length,
1084
- mutable: echoSchema.length
1085
- },
1086
- objects: objectMap
806
+ var createGenerator = (client, invokePromise, schema) => {
807
+ return async (space, n) => {
808
+ const typename = Type.getTypename(schema);
809
+ const views = await space.db.query(Filter2.type(View.View)).run();
810
+ const view = await findViewByTypename(views, typename);
811
+ const staticSchema = client ? client.graph.registry.list().filter(Type.isType).find((s) => Type.getTypename(s) === typename) : void 0;
812
+ if (!view && !staticSchema) {
813
+ await invokePromise(SpaceOperation.AddType, {
814
+ db: space.db,
815
+ type: schema,
816
+ show: false
1087
817
  });
1088
- };
1089
- useAsyncEffect(updateInfo, [
1090
- space
1091
- ]);
1092
- const handleCreateData = useCallback(async (typename) => {
1093
- const constructor = typeMap.get(typename);
1094
- if (constructor) {
1095
- await constructor(space, count, onCreateObjects);
1096
- await updateInfo();
1097
- }
1098
- }, [
1099
- typeMap,
1100
- count
1101
- ]);
1102
- return /* @__PURE__ */ React2.createElement("div", {
1103
- role: "none",
1104
- className: "flex flex-col grow overflow-hidden"
1105
- }, /* @__PURE__ */ React2.createElement(Toolbar.Root, {
1106
- classNames: "border-be border-subduedSeparator"
1107
- }, /* @__PURE__ */ React2.createElement(IconButton2, {
1108
- icon: "ph--arrow-clockwise--regular",
1109
- iconOnly: true,
1110
- label: "Refresh",
1111
- onClick: updateInfo
1112
- }), /* @__PURE__ */ React2.createElement(Toolbar.Separator, {
1113
- variant: "gap"
1114
- }), /* @__PURE__ */ React2.createElement(Input.Root, null, /* @__PURE__ */ React2.createElement(Input.TextInput, {
1115
- type: "number",
1116
- min: 1,
1117
- max: 100,
1118
- placeholder: "Count",
1119
- classNames: "!w-[4rem] !text-right",
1120
- size: 8,
1121
- value: count,
1122
- onChange: (ev) => setCount(parseInt(ev.target.value))
1123
- }))), /* @__PURE__ */ React2.createElement("div", {
1124
- className: "flex flex-col overflow-y-auto divide-y divide-separator"
1125
- }, /* @__PURE__ */ React2.createElement(SchemaTable, {
1126
- types: staticTypes,
1127
- objects: info.objects,
1128
- label: "Static Types",
1129
- onClick: handleCreateData
1130
- }), /* @__PURE__ */ React2.createElement(SchemaTable, {
1131
- types: recordTypes,
1132
- objects: info.objects,
1133
- label: "Record Types",
1134
- onClick: handleCreateData
1135
- }), /* @__PURE__ */ React2.createElement(SchemaTable, {
1136
- types: presets.types,
1137
- objects: info.objects,
1138
- label: "Presets",
1139
- onClick: handleCreateData
1140
- }), /* @__PURE__ */ React2.createElement("div", null, /* @__PURE__ */ React2.createElement(SyntaxHighlighter, {
1141
- language: "json",
1142
- classNames: "text-xs"
1143
- }, JSON.stringify({
1144
- space,
1145
- ...info
1146
- }, jsonKeyReplacer({
1147
- truncate: true
1148
- }), 2)))));
1149
- } finally {
1150
- _effect.f();
1151
- }
818
+ }
819
+ const generate = createAsyncGenerator(generator2, schema, {
820
+ db: space.db
821
+ });
822
+ return generate.createObjects(n);
823
+ };
1152
824
  };
825
+ var staticGenerators = /* @__PURE__ */ new Map([
826
+ [
827
+ Type.getTypename(Markdown2.Document),
828
+ async (space, n, cb) => {
829
+ const objects = range2(n).map(() => {
830
+ return space.db.add(Markdown2.make({
831
+ name: random.commerce.productName(),
832
+ content: random.lorem.sentences(5)
833
+ }));
834
+ });
835
+ cb?.(objects);
836
+ return objects;
837
+ }
838
+ ],
839
+ [
840
+ Type.getTypename(Sketch.Sketch),
841
+ async (space, n, cb) => {
842
+ const objects = range2(n).map(() => {
843
+ const obj = space.db.add(Sketch.make({
844
+ name: random.commerce.productName()
845
+ }));
846
+ return obj;
847
+ });
848
+ cb?.(objects);
849
+ return objects;
850
+ }
851
+ ],
852
+ // TODO(burdon): Create unit tests.
853
+ [
854
+ Type.getTypename(Sheet.Sheet),
855
+ async (space, n, cb) => {
856
+ const objects = range2(n).map(() => {
857
+ const cells = {};
858
+ const year = (/* @__PURE__ */ new Date()).getFullYear();
859
+ const cols = 4;
860
+ const rows = 16;
861
+ for (let col = 1; col <= cols; col++) {
862
+ for (let row = 1; row <= rows; row++) {
863
+ const cell = addressToA1Notation({
864
+ col,
865
+ row
866
+ });
867
+ if (row === 1) {
868
+ cells[cell] = {
869
+ value: `${year} Q${col}`
870
+ };
871
+ } else if (row === rows) {
872
+ const from = addressToA1Notation({
873
+ col,
874
+ row: 2
875
+ });
876
+ const to = addressToA1Notation({
877
+ col,
878
+ row: rows - 1
879
+ });
880
+ cells[cell] = {
881
+ value: `=SUM(${from}:${to})`
882
+ };
883
+ } else if (row > 2 && row < rows - 1) {
884
+ cells[cell] = {
885
+ value: Math.floor(Math.random() * 1e4)
886
+ };
887
+ }
888
+ }
889
+ }
890
+ return space.db.add(Sheet.make({
891
+ name: random.commerce.productName(),
892
+ cells
893
+ }));
894
+ });
895
+ cb?.(objects);
896
+ return objects;
897
+ }
898
+ ],
899
+ [
900
+ Type.getTypename(ComputeGraph),
901
+ async (space, n, cb) => {
902
+ const objects = range2(n, () => {
903
+ const model = ComputeGraphModel.create();
904
+ model.builder.createNode({
905
+ id: "gpt-INPUT",
906
+ type: NODE_INPUT2
907
+ }).createNode({
908
+ id: "gpt-GPT",
909
+ type: "gpt"
910
+ }).createNode({
911
+ id: "gpt-QUEUE_ID",
912
+ type: "constant",
913
+ value: EID2.make({
914
+ spaceId: space.id,
915
+ entityId: Key2.EntityId.random()
916
+ })
917
+ }).createNode({
918
+ id: "gpt-APPEND",
919
+ type: "append"
920
+ }).createNode({
921
+ id: "gpt-OUTPUT",
922
+ type: NODE_OUTPUT
923
+ }).createEdge({
924
+ node: "gpt-INPUT",
925
+ property: "prompt"
926
+ }, {
927
+ node: "gpt-GPT",
928
+ property: "prompt"
929
+ }).createEdge({
930
+ node: "gpt-GPT",
931
+ property: "text"
932
+ }, {
933
+ node: "gpt-OUTPUT",
934
+ property: "text"
935
+ }).createEdge({
936
+ node: "gpt-QUEUE_ID",
937
+ property: DEFAULT_OUTPUT
938
+ }, {
939
+ node: "gpt-APPEND",
940
+ property: "id"
941
+ }).createEdge({
942
+ node: "gpt-GPT",
943
+ property: "messages"
944
+ }, {
945
+ node: "gpt-APPEND",
946
+ property: "items"
947
+ }).createEdge({
948
+ node: "gpt-QUEUE_ID",
949
+ property: DEFAULT_OUTPUT
950
+ }, {
951
+ node: "gpt-OUTPUT",
952
+ property: "queue"
953
+ });
954
+ return space.db.add(model.root);
955
+ });
956
+ cb?.(objects);
957
+ return objects;
958
+ }
959
+ ]
960
+ ]);
1153
961
 
1154
- // src/components/SpaceGenerator/index.ts
1155
- var SpaceGenerator_default = SpaceGenerator;
962
+ // src/components/index.ts
963
+ var DebugSettings = lazy(() => import("../DebugSettings-RKYNQIKH.mjs"));
1156
964
  export {
1157
- SpaceGenerator_default as default
965
+ DebugSettings,
966
+ PresetName,
967
+ SchemaTable,
968
+ createGenerator,
969
+ generator,
970
+ staticGenerators
1158
971
  };
1159
- //# sourceMappingURL=SpaceGenerator-VMWHGAJZ.mjs.map
972
+ //# sourceMappingURL=index.mjs.map