@dxos/plugin-debug 0.8.4-main.ead640a → 0.8.4-main.effb148878

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 (234) hide show
  1. package/LICENSE +102 -5
  2. package/README.md +1 -1
  3. package/dist/lib/neutral/DebugGraph-G4FWS57E.mjs +15 -0
  4. package/dist/lib/neutral/DebugGraph-G4FWS57E.mjs.map +7 -0
  5. package/dist/lib/neutral/DebugObjectPanel-UJ63CV25.mjs +59 -0
  6. package/dist/lib/neutral/DebugObjectPanel-UJ63CV25.mjs.map +7 -0
  7. package/dist/lib/neutral/DebugPlugin.mjs +47 -0
  8. package/dist/lib/neutral/DebugPlugin.mjs.map +7 -0
  9. package/dist/lib/neutral/DebugPlugin.node.mjs +18 -0
  10. package/dist/lib/neutral/DebugPlugin.node.mjs.map +7 -0
  11. package/dist/lib/neutral/DebugPlugin.workerd.mjs +12 -0
  12. package/dist/lib/neutral/DebugPlugin.workerd.mjs.map +7 -0
  13. package/dist/lib/neutral/DebugSettings-Z3XADRNK.mjs +224 -0
  14. package/dist/lib/neutral/DebugSettings-Z3XADRNK.mjs.map +7 -0
  15. package/dist/lib/neutral/DebugSpaceObjectsPanel-NISULU6U.mjs +34 -0
  16. package/dist/lib/neutral/DebugSpaceObjectsPanel-NISULU6U.mjs.map +7 -0
  17. package/dist/lib/neutral/DebugStatus-YB3KFP7G.mjs +121 -0
  18. package/dist/lib/neutral/DebugStatus-YB3KFP7G.mjs.map +7 -0
  19. package/dist/lib/neutral/DevtoolsOverviewContainer-YX7Z3D2H.mjs +23 -0
  20. package/dist/lib/neutral/DevtoolsOverviewContainer-YX7Z3D2H.mjs.map +7 -0
  21. package/dist/lib/neutral/GithubPanel-QJKDJRVQ.mjs +177 -0
  22. package/dist/lib/neutral/GithubPanel-QJKDJRVQ.mjs.map +7 -0
  23. package/dist/lib/neutral/SpaceGenerator-IQLBDY6R.mjs +143 -0
  24. package/dist/lib/neutral/SpaceGenerator-IQLBDY6R.mjs.map +7 -0
  25. package/dist/lib/neutral/Wireframe-WD7S2AUU.mjs +52 -0
  26. package/dist/lib/neutral/Wireframe-WD7S2AUU.mjs.map +7 -0
  27. package/dist/lib/neutral/app-graph-builder-ZNMWIDDF.mjs +598 -0
  28. package/dist/lib/neutral/app-graph-builder-ZNMWIDDF.mjs.map +7 -0
  29. package/dist/lib/neutral/capabilities/index.mjs +15 -0
  30. package/dist/lib/neutral/capabilities/index.mjs.map +7 -0
  31. package/dist/lib/neutral/chunk-J5LGTIGS.mjs +10 -0
  32. package/dist/lib/neutral/chunk-J5LGTIGS.mjs.map +7 -0
  33. package/dist/lib/{browser/chunk-SRV2AIGJ.mjs → neutral/chunk-NFIOTQRZ.mjs} +30 -9
  34. package/dist/lib/neutral/chunk-NFIOTQRZ.mjs.map +7 -0
  35. package/dist/lib/neutral/chunk-SAJFZGX5.mjs +41 -0
  36. package/dist/lib/neutral/chunk-SAJFZGX5.mjs.map +7 -0
  37. package/dist/lib/{browser/SpaceGenerator-VMWHGAJZ.mjs → neutral/components/index.mjs} +347 -527
  38. package/dist/lib/neutral/components/index.mjs.map +7 -0
  39. package/dist/lib/neutral/containers/index.mjs +23 -0
  40. package/dist/lib/neutral/containers/index.mjs.map +7 -0
  41. package/dist/lib/neutral/index.mjs +18 -0
  42. package/dist/lib/neutral/index.mjs.map +7 -0
  43. package/dist/lib/neutral/meta.json +1 -0
  44. package/dist/lib/neutral/meta.mjs +8 -0
  45. package/dist/lib/neutral/meta.mjs.map +7 -0
  46. package/dist/lib/neutral/plugin.mjs +12 -0
  47. package/dist/lib/neutral/plugin.mjs.map +7 -0
  48. package/dist/lib/neutral/react-context-MUZ3KVLU.mjs +17 -0
  49. package/dist/lib/neutral/react-context-MUZ3KVLU.mjs.map +7 -0
  50. package/dist/lib/neutral/react-surface-T4NYONZ7.mjs +419 -0
  51. package/dist/lib/neutral/react-surface-T4NYONZ7.mjs.map +7 -0
  52. package/dist/lib/neutral/settings-MPM6YUP4.mjs +28 -0
  53. package/dist/lib/neutral/settings-MPM6YUP4.mjs.map +7 -0
  54. package/dist/lib/neutral/translations.mjs +90 -0
  55. package/dist/lib/neutral/translations.mjs.map +7 -0
  56. package/dist/lib/neutral/types/index.mjs +14 -0
  57. package/dist/lib/neutral/types/index.mjs.map +7 -0
  58. package/dist/types/src/DebugPlugin.d.ts +4 -1
  59. package/dist/types/src/DebugPlugin.d.ts.map +1 -1
  60. package/dist/types/src/DebugPlugin.node.d.ts +5 -0
  61. package/dist/types/src/DebugPlugin.node.d.ts.map +1 -0
  62. package/dist/types/src/DebugPlugin.test.d.ts +2 -0
  63. package/dist/types/src/DebugPlugin.test.d.ts.map +1 -0
  64. package/dist/types/src/DebugPlugin.workerd.d.ts +5 -0
  65. package/dist/types/src/DebugPlugin.workerd.d.ts.map +1 -0
  66. package/dist/types/src/capabilities/app-graph-builder.d.ts +4 -2
  67. package/dist/types/src/capabilities/app-graph-builder.d.ts.map +1 -1
  68. package/dist/types/src/capabilities/index.d.ts +8 -5
  69. package/dist/types/src/capabilities/index.d.ts.map +1 -1
  70. package/dist/types/src/capabilities/react-context.d.ts +4 -2
  71. package/dist/types/src/capabilities/react-context.d.ts.map +1 -1
  72. package/dist/types/src/capabilities/react-surface.d.ts +7 -2
  73. package/dist/types/src/capabilities/react-surface.d.ts.map +1 -1
  74. package/dist/types/src/capabilities/settings.d.ts +5 -2
  75. package/dist/types/src/capabilities/settings.d.ts.map +1 -1
  76. package/dist/types/src/components/DebugSettings/DebugSettings.d.ts +11 -0
  77. package/dist/types/src/components/DebugSettings/DebugSettings.d.ts.map +1 -0
  78. package/dist/types/src/components/DebugSettings/DebugSettings.stories.d.ts +105 -0
  79. package/dist/types/src/components/DebugSettings/DebugSettings.stories.d.ts.map +1 -0
  80. package/dist/types/src/components/DebugSettings/index.d.ts +2 -0
  81. package/dist/types/src/components/DebugSettings/index.d.ts.map +1 -0
  82. package/dist/types/src/components/SchemaTable/SchemaTable.d.ts.map +1 -0
  83. package/dist/types/src/components/SchemaTable/index.d.ts +2 -0
  84. package/dist/types/src/components/SchemaTable/index.d.ts.map +1 -0
  85. package/dist/types/src/components/SpaceGenerator/ObjectGenerator.d.ts +4 -5
  86. package/dist/types/src/components/SpaceGenerator/ObjectGenerator.d.ts.map +1 -1
  87. package/dist/types/src/components/SpaceGenerator/draw-util.d.ts.map +1 -1
  88. package/dist/types/src/components/SpaceGenerator/index.d.ts +2 -2
  89. package/dist/types/src/components/SpaceGenerator/index.d.ts.map +1 -1
  90. package/dist/types/src/components/SpaceGenerator/presets.d.ts +2 -5
  91. package/dist/types/src/components/SpaceGenerator/presets.d.ts.map +1 -1
  92. package/dist/types/src/components/index.d.ts +4 -10
  93. package/dist/types/src/components/index.d.ts.map +1 -1
  94. package/dist/types/src/containers/DebugGraph/DebugGraph.d.ts +8 -0
  95. package/dist/types/src/containers/DebugGraph/DebugGraph.d.ts.map +1 -0
  96. package/dist/types/src/containers/DebugGraph/index.d.ts +2 -0
  97. package/dist/types/src/containers/DebugGraph/index.d.ts.map +1 -0
  98. package/dist/types/src/containers/DebugObjectPanel/DebugObjectPanel.d.ts +6 -0
  99. package/dist/types/src/containers/DebugObjectPanel/DebugObjectPanel.d.ts.map +1 -0
  100. package/dist/types/src/containers/DebugObjectPanel/index.d.ts +2 -0
  101. package/dist/types/src/containers/DebugObjectPanel/index.d.ts.map +1 -0
  102. package/dist/types/src/containers/DebugSpaceObjectsPanel/DebugSpaceObjectsPanel.d.ts +5 -0
  103. package/dist/types/src/containers/DebugSpaceObjectsPanel/DebugSpaceObjectsPanel.d.ts.map +1 -0
  104. package/dist/types/src/containers/DebugSpaceObjectsPanel/index.d.ts +2 -0
  105. package/dist/types/src/containers/DebugSpaceObjectsPanel/index.d.ts.map +1 -0
  106. package/dist/types/src/containers/DebugStatus/DebugStatus.d.ts.map +1 -0
  107. package/dist/types/src/containers/DebugStatus/index.d.ts +2 -0
  108. package/dist/types/src/containers/DebugStatus/index.d.ts.map +1 -0
  109. package/dist/types/src/{components → containers/DevtoolsOverviewContainer}/DevtoolsOverviewContainer.d.ts +0 -1
  110. package/dist/types/src/containers/DevtoolsOverviewContainer/DevtoolsOverviewContainer.d.ts.map +1 -0
  111. package/dist/types/src/containers/DevtoolsOverviewContainer/index.d.ts +2 -0
  112. package/dist/types/src/containers/DevtoolsOverviewContainer/index.d.ts.map +1 -0
  113. package/dist/types/src/containers/GithubPanel/GithubComponent.d.ts +15 -0
  114. package/dist/types/src/containers/GithubPanel/GithubComponent.d.ts.map +1 -0
  115. package/dist/types/src/containers/GithubPanel/GithubComponent.stories.d.ts +105 -0
  116. package/dist/types/src/containers/GithubPanel/GithubComponent.stories.d.ts.map +1 -0
  117. package/dist/types/src/containers/GithubPanel/GithubPanel.d.ts +3 -0
  118. package/dist/types/src/containers/GithubPanel/GithubPanel.d.ts.map +1 -0
  119. package/dist/types/src/containers/GithubPanel/index.d.ts +2 -0
  120. package/dist/types/src/containers/GithubPanel/index.d.ts.map +1 -0
  121. package/dist/types/src/containers/SpaceGenerator/SpaceGenerator.d.ts +11 -0
  122. package/dist/types/src/containers/SpaceGenerator/SpaceGenerator.d.ts.map +1 -0
  123. package/dist/types/src/containers/SpaceGenerator/index.d.ts +2 -0
  124. package/dist/types/src/containers/SpaceGenerator/index.d.ts.map +1 -0
  125. package/dist/types/src/{components → containers/Wireframe}/Wireframe.d.ts +2 -2
  126. package/dist/types/src/containers/Wireframe/Wireframe.d.ts.map +1 -0
  127. package/dist/types/src/containers/Wireframe/index.d.ts +2 -0
  128. package/dist/types/src/containers/Wireframe/index.d.ts.map +1 -0
  129. package/dist/types/src/containers/index.d.ts +10 -0
  130. package/dist/types/src/containers/index.d.ts.map +1 -0
  131. package/dist/types/src/index.d.ts +1 -1
  132. package/dist/types/src/index.d.ts.map +1 -1
  133. package/dist/types/src/meta.d.ts +2 -2
  134. package/dist/types/src/meta.d.ts.map +1 -1
  135. package/dist/types/src/plugin.d.ts +4 -0
  136. package/dist/types/src/plugin.d.ts.map +1 -0
  137. package/dist/types/src/translations.d.ts +86 -59
  138. package/dist/types/src/translations.d.ts.map +1 -1
  139. package/dist/types/src/types/Settings.d.ts +8 -0
  140. package/dist/types/src/types/Settings.d.ts.map +1 -0
  141. package/dist/types/src/types/index.d.ts +69 -0
  142. package/dist/types/src/types/index.d.ts.map +1 -0
  143. package/dist/types/tsconfig.tsbuildinfo +1 -1
  144. package/package.json +134 -75
  145. package/src/DebugPlugin.node.ts +18 -0
  146. package/src/DebugPlugin.test.ts +29 -0
  147. package/src/DebugPlugin.tsx +28 -34
  148. package/src/DebugPlugin.workerd.ts +12 -0
  149. package/src/capabilities/app-graph-builder.ts +381 -388
  150. package/src/capabilities/index.ts +5 -5
  151. package/src/capabilities/react-context.tsx +16 -7
  152. package/src/capabilities/react-surface.tsx +378 -339
  153. package/src/capabilities/settings.ts +24 -12
  154. package/src/components/DebugSettings/DebugSettings.stories.tsx +36 -0
  155. package/src/components/DebugSettings/DebugSettings.tsx +262 -0
  156. package/src/components/DebugSettings/index.ts +5 -0
  157. package/src/components/SchemaTable/index.ts +5 -0
  158. package/src/components/SpaceGenerator/ObjectGenerator.tsx +34 -44
  159. package/src/components/SpaceGenerator/draw-util.ts +8 -8
  160. package/src/components/SpaceGenerator/index.ts +2 -3
  161. package/src/components/SpaceGenerator/presets.ts +241 -139
  162. package/src/components/index.ts +4 -8
  163. package/src/containers/DebugGraph/DebugGraph.tsx +14 -0
  164. package/src/containers/DebugGraph/index.ts +5 -0
  165. package/src/containers/DebugObjectPanel/DebugObjectPanel.tsx +76 -0
  166. package/src/containers/DebugObjectPanel/index.ts +5 -0
  167. package/src/containers/DebugSpaceObjectsPanel/DebugSpaceObjectsPanel.tsx +47 -0
  168. package/src/containers/DebugSpaceObjectsPanel/index.ts +5 -0
  169. package/src/{components → containers/DebugStatus}/DebugStatus.tsx +41 -19
  170. package/src/containers/DebugStatus/index.ts +5 -0
  171. package/src/containers/DevtoolsOverviewContainer/DevtoolsOverviewContainer.tsx +25 -0
  172. package/src/containers/DevtoolsOverviewContainer/index.ts +5 -0
  173. package/src/containers/GithubPanel/GithubComponent.stories.tsx +38 -0
  174. package/src/containers/GithubPanel/GithubComponent.tsx +192 -0
  175. package/src/containers/GithubPanel/GithubPanel.tsx +17 -0
  176. package/src/containers/GithubPanel/index.ts +5 -0
  177. package/src/containers/SpaceGenerator/SpaceGenerator.tsx +126 -0
  178. package/src/containers/SpaceGenerator/index.ts +5 -0
  179. package/src/{components → containers/Wireframe}/Wireframe.tsx +7 -12
  180. package/src/containers/Wireframe/index.ts +5 -0
  181. package/src/containers/index.ts +14 -0
  182. package/src/index.ts +1 -1
  183. package/src/meta.ts +27 -5
  184. package/src/plugin.ts +10 -0
  185. package/src/translations.ts +82 -58
  186. package/src/types/Settings.ts +16 -0
  187. package/src/{types.ts → types/index.ts} +20 -11
  188. package/dist/lib/browser/DebugGraph-EDOH6R2G.mjs +0 -20
  189. package/dist/lib/browser/DebugGraph-EDOH6R2G.mjs.map +0 -7
  190. package/dist/lib/browser/DevtoolsOverviewContainer-EPD6EWT5.mjs +0 -25
  191. package/dist/lib/browser/DevtoolsOverviewContainer-EPD6EWT5.mjs.map +0 -7
  192. package/dist/lib/browser/SpaceGenerator-VMWHGAJZ.mjs.map +0 -7
  193. package/dist/lib/browser/app-graph-builder-I4IHBKKN.mjs +0 -588
  194. package/dist/lib/browser/app-graph-builder-I4IHBKKN.mjs.map +0 -7
  195. package/dist/lib/browser/chunk-SRV2AIGJ.mjs.map +0 -7
  196. package/dist/lib/browser/chunk-SVCKCXCL.mjs +0 -16
  197. package/dist/lib/browser/chunk-SVCKCXCL.mjs.map +0 -7
  198. package/dist/lib/browser/index.mjs +0 -131
  199. package/dist/lib/browser/index.mjs.map +0 -7
  200. package/dist/lib/browser/meta.json +0 -1
  201. package/dist/lib/browser/react-context-QLZE7VSQ.mjs +0 -16
  202. package/dist/lib/browser/react-context-QLZE7VSQ.mjs.map +0 -7
  203. package/dist/lib/browser/react-surface-GFORPA3A.mjs +0 -772
  204. package/dist/lib/browser/react-surface-GFORPA3A.mjs.map +0 -7
  205. package/dist/lib/browser/settings-EBVICEEW.mjs +0 -22
  206. package/dist/lib/browser/settings-EBVICEEW.mjs.map +0 -7
  207. package/dist/types/src/components/Container.d.ts +0 -5
  208. package/dist/types/src/components/Container.d.ts.map +0 -1
  209. package/dist/types/src/components/DebugGraph.d.ts +0 -8
  210. package/dist/types/src/components/DebugGraph.d.ts.map +0 -1
  211. package/dist/types/src/components/DebugObjectPanel.d.ts +0 -7
  212. package/dist/types/src/components/DebugObjectPanel.d.ts.map +0 -1
  213. package/dist/types/src/components/DebugSettings.d.ts +0 -6
  214. package/dist/types/src/components/DebugSettings.d.ts.map +0 -1
  215. package/dist/types/src/components/DebugStatus.d.ts.map +0 -1
  216. package/dist/types/src/components/DevtoolsOverviewContainer.d.ts.map +0 -1
  217. package/dist/types/src/components/SpaceGenerator/SchemaTable.d.ts.map +0 -1
  218. package/dist/types/src/components/SpaceGenerator/SpaceGenerator.d.ts +0 -9
  219. package/dist/types/src/components/SpaceGenerator/SpaceGenerator.d.ts.map +0 -1
  220. package/dist/types/src/components/SpaceGenerator/SpaceGenerator.stories.d.ts +0 -15
  221. package/dist/types/src/components/SpaceGenerator/SpaceGenerator.stories.d.ts.map +0 -1
  222. package/dist/types/src/components/Wireframe.d.ts.map +0 -1
  223. package/dist/types/src/types.d.ts +0 -63
  224. package/dist/types/src/types.d.ts.map +0 -1
  225. package/src/components/Container.tsx +0 -15
  226. package/src/components/DebugGraph.tsx +0 -14
  227. package/src/components/DebugObjectPanel.tsx +0 -33
  228. package/src/components/DebugSettings.tsx +0 -159
  229. package/src/components/DevtoolsOverviewContainer.tsx +0 -20
  230. package/src/components/SpaceGenerator/SpaceGenerator.stories.tsx +0 -52
  231. package/src/components/SpaceGenerator/SpaceGenerator.tsx +0 -122
  232. /package/dist/types/src/components/{SpaceGenerator → SchemaTable}/SchemaTable.d.ts +0 -0
  233. /package/dist/types/src/{components → containers/DebugStatus}/DebugStatus.d.ts +0 -0
  234. /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, 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 { EchoURI } 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 tagUri = Obj.getURI(tag);
83
+ Obj.update(doc, (doc2) => {
84
+ Obj.getMeta(doc2).tags = [
85
+ tagUri
86
+ ];
87
+ });
88
+ space.db.add(Obj.make(Person.Person, {
89
+ [Obj.Meta]: {
90
+ tags: [
91
+ tagUri
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,72 @@ 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()
173
+ })).from({
174
+ feeds: [
175
+ queueDxn
361
176
  ]
362
177
  }),
363
- jsonSchema: Type2.toJsonSchema(DataType2.Message),
364
- presentation: Obj2.make(DataType2.Collection, {
365
- objects: []
366
- })
178
+ jsonSchema: JsonSchema.toJsonSchema(Message.Message)
367
179
  });
368
- const contactsView = createView({
369
- name: "Contacts",
180
+ const contactsView = ViewModel.make({
370
181
  query: contactsQuery,
371
- jsonSchema: Type2.toJsonSchema(DataType2.Person),
372
- presentation: Obj2.make(DataType2.Collection, {
373
- objects: []
374
- })
182
+ jsonSchema: JsonSchema.toJsonSchema(Person.Person)
375
183
  });
376
- const organizationsView = createView({
377
- name: "Organizations",
184
+ const organizationsView = ViewModel.make({
378
185
  query: organizationsQuery,
379
- jsonSchema: Type2.toJsonSchema(DataType2.Organization),
380
- presentation: Obj2.make(DataType2.Collection, {
381
- objects: []
382
- })
186
+ jsonSchema: JsonSchema.toJsonSchema(Organization.Organization)
383
187
  });
384
- const notesView = createView({
385
- name: "Notes",
188
+ const notesView = ViewModel.make({
386
189
  query: notesQuery,
387
- jsonSchema: Type2.toJsonSchema(Markdown2.Document),
388
- presentation: Obj2.make(DataType2.Collection, {
389
- objects: []
390
- })
190
+ jsonSchema: JsonSchema.toJsonSchema(Markdown.Document)
391
191
  });
392
- return space.db.add(DataType2.makeProject({
192
+ return space.db.add(Pipeline.make({
393
193
  name: "Investor Research",
394
- collections: [
395
- mailboxView,
396
- contactsView,
397
- organizationsView,
398
- notesView
399
- ].map((view) => Ref2.make(view))
194
+ columns: [
195
+ {
196
+ name: "Mailbox",
197
+ view: Ref.make(mailboxView),
198
+ order: []
199
+ },
200
+ {
201
+ name: "Contacts",
202
+ view: Ref.make(contactsView),
203
+ order: []
204
+ },
205
+ {
206
+ name: "Organizations",
207
+ view: Ref.make(organizationsView),
208
+ order: []
209
+ },
210
+ {
211
+ name: "Notes",
212
+ view: Ref.make(notesView),
213
+ order: []
214
+ }
215
+ ]
400
216
  }));
401
217
  });
402
218
  cb?.(objects.flat());
@@ -406,7 +222,7 @@ var generator2 = () => ({
406
222
  [
407
223
  "webhook-gpt-queue",
408
224
  async (space, n, cb) => {
409
- const objects = range2(n, () => {
225
+ const objects = range(n, () => {
410
226
  const canvasModel = CanvasGraphModel.create();
411
227
  let functionTrigger;
412
228
  canvasModel.builder.call((builder) => {
@@ -466,9 +282,9 @@ var generator2 = () => ({
466
282
  [
467
283
  "objectChange-queue",
468
284
  async (space, n, cb) => {
469
- const objects = range2(n, () => {
285
+ const objects = range(n, () => {
470
286
  const { canvasModel, computeModel } = createQueueSinkPreset(space, "subscription", (triggerSpec) => triggerSpec.query = {
471
- ast: Query.select(Filter2.typename("dxos.org/type/Chess")).ast
287
+ ast: Query.select(Filter.typename("org.dxos.type.chess")).ast
472
288
  }, "type");
473
289
  return addToSpace("objectChange-queue", space, canvasModel, computeModel);
474
290
  });
@@ -479,7 +295,7 @@ var generator2 = () => ({
479
295
  [
480
296
  "timerTick-queue",
481
297
  async (space, n, cb) => {
482
- const objects = range2(n, () => {
298
+ const objects = range(n, () => {
483
299
  const { canvasModel, computeModel } = createQueueSinkPreset(space, "timer", (triggerSpec) => triggerSpec.cron = "*/5 * * * * *", "result");
484
300
  return addToSpace("timerTick-queue", space, canvasModel, computeModel);
485
301
  });
@@ -534,7 +350,7 @@ var generator2 = () => ({
534
350
  // const templateComputeNode = computeModel.nodes.find((n) => n.id === template.node);
535
351
  // invariant(templateComputeNode, 'Template compute node was not created.');
536
352
  // templateComputeNode.value = templateContent.join('\n');
537
- // templateComputeNode.inputSchema = Type.toJsonSchema(EmailTriggerOutput);
353
+ // templateComputeNode.inputSchema = JsonSchema.toJsonSchema(EmailTriggerOutput);
538
354
  // attachTrigger(functionTrigger, computeModel);
539
355
  // return addToSpace(PresetName.EMAIL_TABLE, space, canvasModel, computeModel);
540
356
  // });
@@ -545,7 +361,7 @@ var generator2 = () => ({
545
361
  [
546
362
  "chat-gpt-text",
547
363
  async (space, n, cb) => {
548
- const objects = range2(n, () => {
364
+ const objects = range(n, () => {
549
365
  const canvasModel = CanvasGraphModel.create();
550
366
  canvasModel.builder.call((builder) => {
551
367
  const gpt = canvasModel.createNode(createGpt(position({
@@ -665,7 +481,7 @@ var generator2 = () => ({
665
481
  // invariant(templateComputeNode, 'Template compute node was not created.');
666
482
  // templateComputeNode.value = templateContent.join('\n');
667
483
  // const extendedSchema = Schema.extend(EmailTriggerOutput, Schema.Struct({ text: Schema.String }));
668
- // templateComputeNode.inputSchema = Type.toJsonSchema(extendedSchema);
484
+ // templateComputeNode.inputSchema = JsonSchema.toJsonSchema(extendedSchema);
669
485
  // attachTrigger(functionTrigger, computeModel);
670
486
  // return addToSpace(PresetName.EMAIL_WITH_SUMMARY, space, canvasModel, computeModel);
671
487
  // });
@@ -676,7 +492,7 @@ var generator2 = () => ({
676
492
  [
677
493
  "forex-function-call",
678
494
  async (space, n, cb) => {
679
- const objects = range2(n, () => {
495
+ const objects = range(n, () => {
680
496
  const canvasModel = CanvasGraphModel.create();
681
497
  canvasModel.builder.call((builder) => {
682
498
  const sourceCurrency = canvasModel.createNode(createConstant({
@@ -725,7 +541,7 @@ var generator2 = () => ({
725
541
  [
726
542
  "discord-messages",
727
543
  async (space, n, cb) => {
728
- const objects = range2(n, () => {
544
+ const objects = range(n, () => {
729
545
  const canvasModel = CanvasGraphModel.create();
730
546
  let functionTrigger;
731
547
  canvasModel.builder.call((builder) => {
@@ -746,11 +562,10 @@ var generator2 = () => ({
746
562
  })
747
563
  }));
748
564
  const queueId = canvasModel.createNode(createConstant({
749
- value: new DXN2(DXN2.kind.QUEUE, [
750
- "data",
751
- space.id,
752
- Key2.ObjectId.random()
753
- ]).toString(),
565
+ value: EchoURI.make({
566
+ spaceId: space.id,
567
+ objectId: Key.ObjectId.random()
568
+ }),
754
569
  ...position({
755
570
  x: -10,
756
571
  y: 5
@@ -764,7 +579,7 @@ var generator2 = () => ({
764
579
  x: 12,
765
580
  y: 0
766
581
  })));
767
- const queue = canvasModel.createNode(createQueue(position({
582
+ const queue = canvasModel.createNode(createFeed(position({
768
583
  x: 0,
769
584
  y: 12
770
585
  })));
@@ -839,7 +654,7 @@ var createQueueSinkPreset = (space, triggerKind, initSpec, triggerOutputName) =>
839
654
  width: 128,
840
655
  height: 122
841
656
  })));
842
- const random = canvasModel.createNode(createRandom(rawPosition({
657
+ const random2 = canvasModel.createNode(createRandom(rawPosition({
843
658
  centerX: -509,
844
659
  centerY: -30,
845
660
  width: 64,
@@ -859,41 +674,27 @@ var createQueueSinkPreset = (space, triggerKind, initSpec, triggerOutputName) =>
859
674
  output: triggerOutputName,
860
675
  input: "type"
861
676
  }).createEdge({
862
- source: random.id,
677
+ source: random2.id,
863
678
  target: template.id,
864
679
  input: "changeId"
865
680
  });
866
681
  functionTrigger = triggerShape.functionTrigger.target;
867
682
  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
- ]
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);
876
686
  });
877
- initSpec(triggerSpec);
878
687
  });
879
688
  const computeModel = createComputeGraph(canvasModel);
880
689
  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
- });
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.'"] });
890
691
  templateComputeNode.value = [
891
692
  "{",
892
693
  ' "@type": "{{type}}",',
893
694
  ' "id": "@{{changeId}}"',
894
695
  "}"
895
696
  ].join("\n");
896
- templateComputeNode.inputSchema = Type2.toJsonSchema(Schema.Struct({
697
+ templateComputeNode.inputSchema = JsonSchema.toJsonSchema(Schema.Struct({
897
698
  type: Schema.String,
898
699
  changeId: Schema.String
899
700
  }));
@@ -904,19 +705,18 @@ var createQueueSinkPreset = (space, triggerKind, initSpec, triggerOutputName) =>
904
705
  };
905
706
  };
906
707
  var addToSpace = (name, space, canvas, compute) => {
907
- return space.db.add(Obj2.make(CanvasBoardType, {
708
+ return space.db.add(Obj.make(CanvasBoard.CanvasBoard, {
908
709
  name,
909
- computeGraph: Ref2.make(compute.root),
710
+ computeGraph: Ref.make(compute.root),
910
711
  layout: canvas.graph
911
712
  }));
912
713
  };
913
714
  var setupQueue = (space, canvasModel, args) => {
914
715
  const queueId = canvasModel.createNode(createConstant({
915
- value: new DXN2(DXN2.kind.QUEUE, [
916
- "data",
917
- space.id,
918
- Key2.ObjectId.random()
919
- ]).toString(),
716
+ value: EchoURI.make({
717
+ spaceId: space.id,
718
+ objectId: Key.ObjectId.random()
719
+ }),
920
720
  ...args?.idPosition ? rawPosition(args.idPosition) : position({
921
721
  x: -18,
922
722
  y: 5,
@@ -924,7 +724,7 @@ var setupQueue = (space, canvasModel, args) => {
924
724
  height: 6
925
725
  })
926
726
  }));
927
- const queue = canvasModel.createNode(createQueue(args?.queuePosition ? rawPosition(args.queuePosition) : position({
727
+ const queue = canvasModel.createNode(createFeed(args?.queuePosition ? rawPosition(args.queuePosition) : position({
928
728
  x: -3,
929
729
  y: 3,
930
730
  width: 14,
@@ -940,18 +740,12 @@ var setupQueue = (space, canvasModel, args) => {
940
740
  };
941
741
  };
942
742
  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
- ]
743
+ invariant(functionTrigger, void 0, { "~LogMeta": "~LogMeta", F: __dxlog_file, L: 726, S: void 0, A: ["functionTrigger", ""] });
744
+ const inputNode = computeModel.nodes.find((node) => node.type === NODE_INPUT);
745
+ Obj.update(functionTrigger, (functionTrigger2) => {
746
+ functionTrigger2.function = Ref.make(computeModel.root);
747
+ functionTrigger2.inputNodeId = inputNode.id;
951
748
  });
952
- functionTrigger.function = Ref2.make(computeModel.root);
953
- const inputNode = computeModel.nodes.find((node) => node.type === NODE_INPUT2);
954
- functionTrigger.inputNodeId = inputNode.id;
955
749
  };
956
750
  var rawPosition = (args) => {
957
751
  return {
@@ -997,163 +791,189 @@ var position = (rect) => {
997
791
  }
998
792
  };
999
793
 
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
- }
794
+ // src/components/SpaceGenerator/ObjectGenerator.tsx
795
+ import { addressToA1Notation } from "@dxos/compute-hyperformula";
796
+ import { ComputeGraph, ComputeGraphModel, DEFAULT_OUTPUT, NODE_INPUT as NODE_INPUT2, NODE_OUTPUT } from "@dxos/conductor";
797
+ import { Filter as Filter2, Key as Key2, Type, View } from "@dxos/echo";
798
+ import { EchoURI as EchoURI2 } from "@dxos/keys";
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);
1028
810
  };
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
811
+ var createGenerator = (client, invokePromise, schema) => {
812
+ return async (space, n) => {
813
+ const typename = Type.getTypename(schema);
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.AddType, {
821
+ db: space.db,
822
+ type: schema,
823
+ show: false
1087
824
  });
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
- }
825
+ }
826
+ const generate = createAsyncGenerator(generator2, schema, {
827
+ db: space.db
828
+ });
829
+ return generate.createObjects(n);
830
+ };
1152
831
  };
832
+ var staticGenerators = /* @__PURE__ */ new Map([
833
+ [
834
+ Type.getTypename(Markdown2.Document),
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
+ Type.getTypename(Sketch.Sketch),
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
+ Type.getTypename(Sheet.Sheet),
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
+ Type.getTypename(ComputeGraph),
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: EchoURI2.make({
921
+ spaceId: space.id,
922
+ objectId: Key2.ObjectId.random()
923
+ })
924
+ }).createNode({
925
+ id: "gpt-APPEND",
926
+ type: "append"
927
+ }).createNode({
928
+ id: "gpt-OUTPUT",
929
+ type: NODE_OUTPUT
930
+ }).createEdge({
931
+ node: "gpt-INPUT",
932
+ property: "prompt"
933
+ }, {
934
+ node: "gpt-GPT",
935
+ property: "prompt"
936
+ }).createEdge({
937
+ node: "gpt-GPT",
938
+ property: "text"
939
+ }, {
940
+ node: "gpt-OUTPUT",
941
+ property: "text"
942
+ }).createEdge({
943
+ node: "gpt-QUEUE_ID",
944
+ property: DEFAULT_OUTPUT
945
+ }, {
946
+ node: "gpt-APPEND",
947
+ property: "id"
948
+ }).createEdge({
949
+ node: "gpt-GPT",
950
+ property: "messages"
951
+ }, {
952
+ node: "gpt-APPEND",
953
+ property: "items"
954
+ }).createEdge({
955
+ node: "gpt-QUEUE_ID",
956
+ property: DEFAULT_OUTPUT
957
+ }, {
958
+ node: "gpt-OUTPUT",
959
+ property: "queue"
960
+ });
961
+ return space.db.add(model.root);
962
+ });
963
+ cb?.(objects);
964
+ return objects;
965
+ }
966
+ ]
967
+ ]);
1153
968
 
1154
- // src/components/SpaceGenerator/index.ts
1155
- var SpaceGenerator_default = SpaceGenerator;
969
+ // src/components/index.ts
970
+ var DebugSettings = lazy(() => import("../DebugSettings-Z3XADRNK.mjs"));
1156
971
  export {
1157
- SpaceGenerator_default as default
972
+ DebugSettings,
973
+ PresetName,
974
+ SchemaTable,
975
+ createGenerator,
976
+ generator,
977
+ staticGenerators
1158
978
  };
1159
- //# sourceMappingURL=SpaceGenerator-VMWHGAJZ.mjs.map
979
+ //# sourceMappingURL=index.mjs.map