@dxos/plugin-debug 0.8.4-main.c1de068 → 0.8.4-main.c85a9c8dae
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.
- package/dist/lib/browser/DebugGraph-7HXJ2PS2.mjs +16 -0
- package/dist/lib/browser/DebugGraph-7HXJ2PS2.mjs.map +7 -0
- package/dist/lib/browser/DebugObjectPanel-3TCDNUNW.mjs +33 -0
- package/dist/lib/browser/DebugObjectPanel-3TCDNUNW.mjs.map +7 -0
- package/dist/lib/browser/DebugSettings-JZMIUDYB.mjs +174 -0
- package/dist/lib/browser/DebugSettings-JZMIUDYB.mjs.map +7 -0
- package/dist/lib/browser/DebugSpaceObjectsPanel-7NRPLWZ4.mjs +50 -0
- package/dist/lib/browser/DebugSpaceObjectsPanel-7NRPLWZ4.mjs.map +7 -0
- package/dist/lib/browser/DebugStatus-COQGH37G.mjs +125 -0
- package/dist/lib/browser/DebugStatus-COQGH37G.mjs.map +7 -0
- package/dist/lib/browser/DevtoolsOverviewContainer-C75NFVER.mjs +20 -0
- package/dist/lib/browser/DevtoolsOverviewContainer-C75NFVER.mjs.map +7 -0
- package/dist/lib/browser/{SpaceGenerator-AG3XGNMV.mjs → SpaceGenerator-SWSGJEEL.mjs} +573 -382
- package/dist/lib/browser/SpaceGenerator-SWSGJEEL.mjs.map +7 -0
- package/dist/lib/browser/Wireframe-KAGOKEFW.mjs +53 -0
- package/dist/lib/browser/Wireframe-KAGOKEFW.mjs.map +7 -0
- package/dist/lib/browser/app-graph-builder-LGUQNXHD.mjs +625 -0
- package/dist/lib/browser/app-graph-builder-LGUQNXHD.mjs.map +7 -0
- package/dist/lib/browser/{chunk-AJA6RYN3.mjs → chunk-4UFQXPP7.mjs} +12 -2
- package/dist/lib/browser/chunk-4UFQXPP7.mjs.map +7 -0
- package/dist/lib/browser/chunk-A5H5GRV6.mjs +20 -0
- package/dist/lib/browser/chunk-A5H5GRV6.mjs.map +7 -0
- package/dist/lib/browser/index.mjs +43 -41
- package/dist/lib/browser/index.mjs.map +4 -4
- package/dist/lib/browser/meta.json +1 -1
- package/dist/lib/browser/react-context-I3USIAF6.mjs +17 -0
- package/dist/lib/browser/react-context-I3USIAF6.mjs.map +7 -0
- package/dist/lib/browser/react-surface-BTVNKKVQ.mjs +443 -0
- package/dist/lib/browser/react-surface-BTVNKKVQ.mjs.map +7 -0
- package/dist/lib/browser/settings-SLTQJJNF.mjs +32 -0
- package/dist/lib/browser/settings-SLTQJJNF.mjs.map +7 -0
- package/dist/types/src/DebugPlugin.d.ts +7 -1
- package/dist/types/src/DebugPlugin.d.ts.map +1 -1
- package/dist/types/src/capabilities/app-graph-builder/app-graph-builder.d.ts +6 -0
- package/dist/types/src/capabilities/app-graph-builder/app-graph-builder.d.ts.map +1 -0
- package/dist/types/src/capabilities/app-graph-builder/index.d.ts +3 -0
- package/dist/types/src/capabilities/app-graph-builder/index.d.ts.map +1 -0
- package/dist/types/src/capabilities/index.d.ts +4 -8
- package/dist/types/src/capabilities/index.d.ts.map +1 -1
- package/dist/types/src/capabilities/react-context/index.d.ts +7 -0
- package/dist/types/src/capabilities/react-context/index.d.ts.map +1 -0
- package/dist/types/src/capabilities/react-context/react-context.d.ts +10 -0
- package/dist/types/src/capabilities/react-context/react-context.d.ts.map +1 -0
- package/dist/types/src/capabilities/react-surface/index.d.ts +5 -0
- package/dist/types/src/capabilities/react-surface/index.d.ts.map +1 -0
- package/dist/types/src/capabilities/react-surface/react-surface.d.ts +9 -0
- package/dist/types/src/capabilities/react-surface/react-surface.d.ts.map +1 -0
- package/dist/types/src/capabilities/settings/index.d.ts +3 -0
- package/dist/types/src/capabilities/settings/index.d.ts.map +1 -0
- package/dist/types/src/capabilities/settings/settings.d.ts +6 -0
- package/dist/types/src/capabilities/settings/settings.d.ts.map +1 -0
- package/dist/types/src/components/SchemaTable/SchemaTable.d.ts.map +1 -0
- package/dist/types/src/components/SchemaTable/index.d.ts +2 -0
- package/dist/types/src/components/SchemaTable/index.d.ts.map +1 -0
- package/dist/types/src/components/SpaceGenerator/ObjectGenerator.d.ts +5 -5
- package/dist/types/src/components/SpaceGenerator/ObjectGenerator.d.ts.map +1 -1
- package/dist/types/src/components/SpaceGenerator/draw-util.d.ts.map +1 -1
- package/dist/types/src/components/SpaceGenerator/index.d.ts +2 -2
- package/dist/types/src/components/SpaceGenerator/index.d.ts.map +1 -1
- package/dist/types/src/components/SpaceGenerator/presets.d.ts +4 -4
- package/dist/types/src/components/SpaceGenerator/presets.d.ts.map +1 -1
- package/dist/types/src/components/index.d.ts +2 -9
- package/dist/types/src/components/index.d.ts.map +1 -1
- package/dist/types/src/containers/DebugGraph/DebugGraph.d.ts +8 -0
- package/dist/types/src/containers/DebugGraph/DebugGraph.d.ts.map +1 -0
- package/dist/types/src/containers/DebugGraph/index.d.ts +3 -0
- package/dist/types/src/containers/DebugGraph/index.d.ts.map +1 -0
- package/dist/types/src/{components → containers/DebugObjectPanel}/DebugObjectPanel.d.ts +2 -2
- package/dist/types/src/containers/DebugObjectPanel/DebugObjectPanel.d.ts.map +1 -0
- package/dist/types/src/containers/DebugObjectPanel/index.d.ts +3 -0
- package/dist/types/src/containers/DebugObjectPanel/index.d.ts.map +1 -0
- package/dist/types/src/containers/DebugSettings/DebugSettings.d.ts +10 -0
- package/dist/types/src/containers/DebugSettings/DebugSettings.d.ts.map +1 -0
- package/dist/types/src/containers/DebugSettings/index.d.ts +3 -0
- package/dist/types/src/containers/DebugSettings/index.d.ts.map +1 -0
- package/dist/types/src/containers/DebugSpaceObjectsPanel/DebugSpaceObjectsPanel.d.ts +3 -0
- package/dist/types/src/containers/DebugSpaceObjectsPanel/DebugSpaceObjectsPanel.d.ts.map +1 -0
- package/dist/types/src/containers/DebugSpaceObjectsPanel/index.d.ts +3 -0
- package/dist/types/src/containers/DebugSpaceObjectsPanel/index.d.ts.map +1 -0
- package/dist/types/src/containers/DebugStatus/DebugStatus.d.ts.map +1 -0
- package/dist/types/src/containers/DebugStatus/index.d.ts +3 -0
- package/dist/types/src/containers/DebugStatus/index.d.ts.map +1 -0
- package/dist/types/src/{components → containers/DevtoolsOverviewContainer}/DevtoolsOverviewContainer.d.ts +0 -1
- package/dist/types/src/containers/DevtoolsOverviewContainer/DevtoolsOverviewContainer.d.ts.map +1 -0
- package/dist/types/src/containers/DevtoolsOverviewContainer/index.d.ts +3 -0
- package/dist/types/src/containers/DevtoolsOverviewContainer/index.d.ts.map +1 -0
- package/dist/types/src/{components → containers}/SpaceGenerator/SpaceGenerator.d.ts +2 -2
- package/dist/types/src/containers/SpaceGenerator/SpaceGenerator.d.ts.map +1 -0
- package/dist/types/src/containers/SpaceGenerator/index.d.ts +3 -0
- package/dist/types/src/containers/SpaceGenerator/index.d.ts.map +1 -0
- package/dist/types/src/{components → containers/Wireframe}/Wireframe.d.ts +2 -2
- package/dist/types/src/containers/Wireframe/Wireframe.d.ts.map +1 -0
- package/dist/types/src/containers/Wireframe/index.d.ts +3 -0
- package/dist/types/src/containers/Wireframe/index.d.ts.map +1 -0
- package/dist/types/src/containers/index.d.ts +10 -0
- package/dist/types/src/containers/index.d.ts.map +1 -0
- package/dist/types/src/meta.d.ts +2 -3
- package/dist/types/src/meta.d.ts.map +1 -1
- package/dist/types/src/translations.d.ts +5 -1
- package/dist/types/src/translations.d.ts.map +1 -1
- package/dist/types/src/types.d.ts +6 -1
- package/dist/types/src/types.d.ts.map +1 -1
- package/dist/types/tsconfig.tsbuildinfo +1 -1
- package/package.json +76 -67
- package/src/DebugPlugin.tsx +27 -32
- package/src/capabilities/app-graph-builder/app-graph-builder.ts +441 -0
- package/src/capabilities/app-graph-builder/index.ts +7 -0
- package/src/capabilities/index.ts +4 -6
- package/src/capabilities/react-context/index.ts +7 -0
- package/src/capabilities/react-context/react-context.tsx +20 -0
- package/src/capabilities/react-surface/index.ts +7 -0
- package/src/capabilities/react-surface/react-surface.tsx +428 -0
- package/src/capabilities/settings/index.ts +7 -0
- package/src/capabilities/settings/settings.ts +31 -0
- package/src/components/SchemaTable/index.ts +5 -0
- package/src/components/SpaceGenerator/ObjectGenerator.tsx +32 -38
- package/src/components/SpaceGenerator/draw-util.ts +5 -5
- package/src/components/SpaceGenerator/index.ts +2 -3
- package/src/components/SpaceGenerator/presets.ts +337 -53
- package/src/components/index.ts +2 -10
- package/src/containers/DebugGraph/DebugGraph.tsx +13 -0
- package/src/containers/DebugGraph/index.ts +7 -0
- package/src/containers/DebugObjectPanel/DebugObjectPanel.tsx +45 -0
- package/src/containers/DebugObjectPanel/index.ts +7 -0
- package/src/containers/DebugSettings/DebugSettings.tsx +201 -0
- package/src/containers/DebugSettings/index.ts +7 -0
- package/src/containers/DebugSpaceObjectsPanel/DebugSpaceObjectsPanel.tsx +60 -0
- package/src/containers/DebugSpaceObjectsPanel/index.ts +7 -0
- package/src/{components → containers/DebugStatus}/DebugStatus.tsx +2 -2
- package/src/containers/DebugStatus/index.ts +7 -0
- package/src/{components → containers/DevtoolsOverviewContainer}/DevtoolsOverviewContainer.tsx +2 -4
- package/src/containers/DevtoolsOverviewContainer/index.ts +7 -0
- package/src/containers/SpaceGenerator/SpaceGenerator.tsx +127 -0
- package/src/containers/SpaceGenerator/index.ts +7 -0
- package/src/{components → containers/Wireframe}/Wireframe.tsx +7 -7
- package/src/containers/Wireframe/index.ts +7 -0
- package/src/containers/index.ts +14 -0
- package/src/meta.ts +8 -7
- package/src/translations.ts +5 -1
- package/src/types.ts +9 -1
- package/dist/lib/browser/DebugApp-ZDL4CPY5.mjs +0 -228
- package/dist/lib/browser/DebugApp-ZDL4CPY5.mjs.map +0 -7
- package/dist/lib/browser/DevtoolsOverviewContainer-EPD6EWT5.mjs +0 -25
- package/dist/lib/browser/DevtoolsOverviewContainer-EPD6EWT5.mjs.map +0 -7
- package/dist/lib/browser/SpaceGenerator-AG3XGNMV.mjs.map +0 -7
- package/dist/lib/browser/app-graph-builder-SQXFD2BL.mjs +0 -597
- package/dist/lib/browser/app-graph-builder-SQXFD2BL.mjs.map +0 -7
- package/dist/lib/browser/chunk-5XPIRNQS.mjs +0 -18
- package/dist/lib/browser/chunk-5XPIRNQS.mjs.map +0 -7
- package/dist/lib/browser/chunk-AJA6RYN3.mjs.map +0 -7
- package/dist/lib/browser/react-context-NVAGLAJD.mjs +0 -16
- package/dist/lib/browser/react-context-NVAGLAJD.mjs.map +0 -7
- package/dist/lib/browser/react-surface-3GD2OWCA.mjs +0 -768
- package/dist/lib/browser/react-surface-3GD2OWCA.mjs.map +0 -7
- package/dist/lib/browser/settings-LSSWLM5I.mjs +0 -22
- package/dist/lib/browser/settings-LSSWLM5I.mjs.map +0 -7
- package/dist/types/src/capabilities/app-graph-builder.d.ts +0 -4
- package/dist/types/src/capabilities/app-graph-builder.d.ts.map +0 -1
- package/dist/types/src/capabilities/react-context.d.ts +0 -8
- package/dist/types/src/capabilities/react-context.d.ts.map +0 -1
- package/dist/types/src/capabilities/react-surface.d.ts +0 -4
- package/dist/types/src/capabilities/react-surface.d.ts.map +0 -1
- package/dist/types/src/capabilities/settings.d.ts +0 -4
- package/dist/types/src/capabilities/settings.d.ts.map +0 -1
- package/dist/types/src/components/Container.d.ts +0 -5
- package/dist/types/src/components/Container.d.ts.map +0 -1
- package/dist/types/src/components/DebugApp/DebugApp.d.ts +0 -6
- package/dist/types/src/components/DebugApp/DebugApp.d.ts.map +0 -1
- package/dist/types/src/components/DebugApp/Tree.d.ts +0 -18
- package/dist/types/src/components/DebugApp/Tree.d.ts.map +0 -1
- package/dist/types/src/components/DebugApp/index.d.ts +0 -3
- package/dist/types/src/components/DebugApp/index.d.ts.map +0 -1
- package/dist/types/src/components/DebugObjectPanel.d.ts.map +0 -1
- package/dist/types/src/components/DebugSettings.d.ts +0 -6
- package/dist/types/src/components/DebugSettings.d.ts.map +0 -1
- package/dist/types/src/components/DebugStatus.d.ts.map +0 -1
- package/dist/types/src/components/DevtoolsOverviewContainer.d.ts.map +0 -1
- package/dist/types/src/components/SpaceGenerator/SchemaTable.d.ts.map +0 -1
- package/dist/types/src/components/SpaceGenerator/SpaceGenerator.d.ts.map +0 -1
- package/dist/types/src/components/SpaceGenerator/SpaceGenerator.stories.d.ts +0 -6
- package/dist/types/src/components/SpaceGenerator/SpaceGenerator.stories.d.ts.map +0 -1
- package/dist/types/src/components/Wireframe.d.ts.map +0 -1
- package/src/capabilities/app-graph-builder.ts +0 -457
- package/src/capabilities/react-context.tsx +0 -16
- package/src/capabilities/react-surface.tsx +0 -397
- package/src/capabilities/settings.ts +0 -19
- package/src/components/Container.tsx +0 -15
- package/src/components/DebugApp/DebugApp.tsx +0 -84
- package/src/components/DebugApp/Tree.tsx +0 -103
- package/src/components/DebugApp/index.ts +0 -7
- package/src/components/DebugObjectPanel.tsx +0 -35
- package/src/components/DebugSettings.tsx +0 -151
- package/src/components/SpaceGenerator/SpaceGenerator.stories.tsx +0 -52
- package/src/components/SpaceGenerator/SpaceGenerator.tsx +0 -122
- /package/dist/types/src/components/{SpaceGenerator → SchemaTable}/SchemaTable.d.ts +0 -0
- /package/dist/types/src/{components → containers/DebugStatus}/DebugStatus.d.ts +0 -0
- /package/src/components/{SpaceGenerator → SchemaTable}/SchemaTable.tsx +0 -0
|
@@ -1,265 +1,271 @@
|
|
|
1
|
-
// src/
|
|
2
|
-
import { useSignals as _useSignals2 } from "@preact-signals/safe-react/tracking";
|
|
1
|
+
// src/containers/SpaceGenerator/SpaceGenerator.tsx
|
|
3
2
|
import React2, { useCallback, useMemo, useState } from "react";
|
|
4
|
-
import {
|
|
3
|
+
import { useOperationInvoker } from "@dxos/app-framework/ui";
|
|
5
4
|
import { ComputeGraph as ComputeGraph2 } from "@dxos/conductor";
|
|
6
|
-
import { Filter as
|
|
7
|
-
import {
|
|
8
|
-
import {
|
|
9
|
-
import {
|
|
5
|
+
import { Filter as Filter3, Obj as Obj2 } from "@dxos/echo";
|
|
6
|
+
import { Markdown as Markdown3 } from "@dxos/plugin-markdown/types";
|
|
7
|
+
import { Sheet as Sheet2 } from "@dxos/plugin-sheet/types";
|
|
8
|
+
import { Diagram as Diagram2 } from "@dxos/plugin-sketch/types";
|
|
10
9
|
import { useClient } from "@dxos/react-client";
|
|
11
|
-
import {
|
|
12
|
-
import { IconButton as IconButton2, Input, Toolbar, useAsyncEffect } from "@dxos/react-ui";
|
|
10
|
+
import { IconButton as IconButton2, Input, Panel, ScrollArea, Toolbar, useAsyncEffect } from "@dxos/react-ui";
|
|
13
11
|
import { SyntaxHighlighter } from "@dxos/react-ui-syntax-highlighter";
|
|
14
|
-
import {
|
|
12
|
+
import { Organization as Organization2, Person as Person2, Task } from "@dxos/types";
|
|
15
13
|
import { jsonKeyReplacer, sortKeys } from "@dxos/util";
|
|
16
14
|
|
|
17
|
-
// src/components/
|
|
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 { DocumentType } 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 } 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) => view.query.typename === typename);
|
|
34
|
-
};
|
|
35
|
-
var createGenerator = (client, dispatch, schema) => {
|
|
36
|
-
return async (space, n, cb) => {
|
|
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
|
-
}));
|
|
46
|
-
} else if (!view && staticSchema) {
|
|
47
|
-
await dispatch(createIntent(SpaceAction.UseStaticSchema, {
|
|
48
|
-
space,
|
|
49
|
-
typename
|
|
50
|
-
}));
|
|
51
|
-
}
|
|
52
|
-
const generate = createAsyncGenerator(generator, schema, {
|
|
53
|
-
db: space.db
|
|
54
|
-
});
|
|
55
|
-
return generate.createObjects(n);
|
|
56
|
-
};
|
|
57
|
-
};
|
|
58
|
-
var staticGenerators = /* @__PURE__ */ new Map([
|
|
59
|
-
[
|
|
60
|
-
DocumentType.typename,
|
|
61
|
-
async (space, n, cb) => {
|
|
62
|
-
const objects = range(n).map(() => {
|
|
63
|
-
return space.db.add(Obj.make(DocumentType, {
|
|
64
|
-
name: faker.commerce.productName(),
|
|
65
|
-
content: Ref.make(Obj.make(DataType.Text, {
|
|
66
|
-
content: faker.lorem.sentences(5)
|
|
67
|
-
}))
|
|
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
|
-
|
|
201
|
-
// src/components/SpaceGenerator/SchemaTable.tsx
|
|
202
|
-
import { useSignals as _useSignals } from "@preact-signals/safe-react/tracking";
|
|
15
|
+
// src/components/SchemaTable/SchemaTable.tsx
|
|
203
16
|
import React from "react";
|
|
204
17
|
import { IconButton } from "@dxos/react-ui";
|
|
205
18
|
var SchemaTable = ({ types, objects = {}, label, onClick }) => {
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
onClick: () => onClick(type.typename)
|
|
225
|
-
}))));
|
|
226
|
-
} finally {
|
|
227
|
-
_effect.f();
|
|
228
|
-
}
|
|
19
|
+
return /* @__PURE__ */ React.createElement("div", {
|
|
20
|
+
className: "grid grid-cols-[1fr_80px_40px] gap-1 overflow-none"
|
|
21
|
+
}, /* @__PURE__ */ React.createElement("h2", {
|
|
22
|
+
className: "p-2"
|
|
23
|
+
}, label), types.map((type) => /* @__PURE__ */ React.createElement("div", {
|
|
24
|
+
key: type.typename,
|
|
25
|
+
className: "grid grid-cols-subgrid col-span-3 items-center"
|
|
26
|
+
}, /* @__PURE__ */ React.createElement("div", {
|
|
27
|
+
className: "px-2 text-sm font-mono text-subdued"
|
|
28
|
+
}, type.typename), /* @__PURE__ */ React.createElement("div", {
|
|
29
|
+
className: "px-2 text-right font-mono"
|
|
30
|
+
}, objects[type.typename] ?? 0), /* @__PURE__ */ React.createElement(IconButton, {
|
|
31
|
+
variant: "ghost",
|
|
32
|
+
icon: "ph--plus--regular",
|
|
33
|
+
iconOnly: true,
|
|
34
|
+
label: "Create data",
|
|
35
|
+
onClick: () => onClick(type.typename)
|
|
36
|
+
}))));
|
|
229
37
|
};
|
|
230
38
|
|
|
231
39
|
// src/components/SpaceGenerator/presets.ts
|
|
232
|
-
import
|
|
233
|
-
import {
|
|
234
|
-
import {
|
|
235
|
-
import {
|
|
40
|
+
import * as Schema from "effect/Schema";
|
|
41
|
+
import { AgentFunctions, EntityExtractionFunctions, ResearchBlueprint } from "@dxos/assistant-toolkit";
|
|
42
|
+
import { Prompt } from "@dxos/blueprints";
|
|
43
|
+
import { NODE_INPUT } from "@dxos/conductor";
|
|
44
|
+
import { DXN, Feed, Filter, JsonSchema, Key, Obj, Query, Ref, Tag } from "@dxos/echo";
|
|
45
|
+
import { Trigger, serializeFunction } from "@dxos/functions";
|
|
236
46
|
import { invariant } from "@dxos/invariant";
|
|
237
|
-
import {
|
|
238
|
-
import {
|
|
239
|
-
import {
|
|
47
|
+
import { GmailFunctions } from "@dxos/plugin-inbox";
|
|
48
|
+
import { Mailbox } from "@dxos/plugin-inbox/types";
|
|
49
|
+
import { Markdown } from "@dxos/plugin-markdown/types";
|
|
50
|
+
import { createAppend, createChat, createComputeGraph, createConstant, createFunction, createGpt, createQueue, createRandom, createSurface, createTemplate, createText, createTrigger } from "@dxos/react-ui-canvas-compute";
|
|
51
|
+
import { CanvasBoard, CanvasGraphModel, pointMultiply, pointsToRect, rectToPoints } from "@dxos/react-ui-canvas-editor";
|
|
52
|
+
import { ViewModel } from "@dxos/schema";
|
|
53
|
+
import { Message, Organization, Person, Pipeline } from "@dxos/types";
|
|
54
|
+
import { range, trim } from "@dxos/util";
|
|
240
55
|
var __dxlog_file = "/__w/dxos/dxos/packages/plugins/plugin-debug/src/components/SpaceGenerator/presets.ts";
|
|
241
|
-
var PresetName = /* @__PURE__ */ function(PresetName2) {
|
|
56
|
+
var PresetName = /* @__PURE__ */ (function(PresetName2) {
|
|
57
|
+
PresetName2["DXOS_TEAM"] = "dxos-team";
|
|
58
|
+
PresetName2["ORG_RESEARCH_PROJECT"] = "org-research-project";
|
|
242
59
|
PresetName2["GPT_QUEUE"] = "webhook-gpt-queue";
|
|
243
60
|
PresetName2["CHAT_GPT"] = "chat-gpt-text";
|
|
244
61
|
PresetName2["OBJECT_CHANGE_QUEUE"] = "objectChange-queue";
|
|
245
|
-
PresetName2["FOREX_FUNCTION_CALL"] = "forex-function-call";
|
|
246
62
|
PresetName2["TIMER_TICK_QUEUE"] = "timerTick-queue";
|
|
63
|
+
PresetName2["FOREX_FUNCTION_CALL"] = "forex-function-call";
|
|
247
64
|
PresetName2["DISCORD_MESSAGES"] = "discord-messages";
|
|
248
65
|
return PresetName2;
|
|
249
|
-
}({});
|
|
250
|
-
var
|
|
66
|
+
})({});
|
|
67
|
+
var generator = () => ({
|
|
251
68
|
schemas: [
|
|
252
|
-
|
|
253
|
-
|
|
69
|
+
CanvasBoard.CanvasBoard,
|
|
70
|
+
Trigger.Trigger
|
|
254
71
|
],
|
|
255
72
|
types: Object.values(PresetName).map((name) => ({
|
|
256
73
|
typename: name
|
|
257
74
|
})),
|
|
258
75
|
items: [
|
|
76
|
+
[
|
|
77
|
+
"dxos-team",
|
|
78
|
+
async (space, n, cb) => {
|
|
79
|
+
const objects = range(n, () => {
|
|
80
|
+
const org = space.db.add(Obj.make(Organization.Organization, {
|
|
81
|
+
name: "DXOS",
|
|
82
|
+
website: "https://dxos.org"
|
|
83
|
+
}));
|
|
84
|
+
const doc = space.db.add(Markdown.make({
|
|
85
|
+
name: "DXOS Research",
|
|
86
|
+
content: "DXOS builds Composer, an open-source AI-powered malleable application."
|
|
87
|
+
}));
|
|
88
|
+
const tag = space.db.add(Tag.make({
|
|
89
|
+
label: "Investor"
|
|
90
|
+
}));
|
|
91
|
+
const tagDxn = Obj.getDXN(tag).toString();
|
|
92
|
+
Obj.change(doc, (d) => {
|
|
93
|
+
Obj.getMeta(d).tags = [
|
|
94
|
+
tagDxn
|
|
95
|
+
];
|
|
96
|
+
});
|
|
97
|
+
space.db.add(Obj.make(Person.Person, {
|
|
98
|
+
[Obj.Meta]: {
|
|
99
|
+
tags: [
|
|
100
|
+
tagDxn
|
|
101
|
+
]
|
|
102
|
+
},
|
|
103
|
+
fullName: "Rich",
|
|
104
|
+
organization: Ref.make(org)
|
|
105
|
+
}));
|
|
106
|
+
space.db.add(Obj.make(Person.Person, {
|
|
107
|
+
fullName: "Josiah",
|
|
108
|
+
organization: Ref.make(org)
|
|
109
|
+
}));
|
|
110
|
+
space.db.add(Obj.make(Person.Person, {
|
|
111
|
+
fullName: "Dima",
|
|
112
|
+
organization: Ref.make(org)
|
|
113
|
+
}));
|
|
114
|
+
space.db.add(Obj.make(Person.Person, {
|
|
115
|
+
fullName: "Mykola",
|
|
116
|
+
organization: Ref.make(org)
|
|
117
|
+
}));
|
|
118
|
+
return doc;
|
|
119
|
+
});
|
|
120
|
+
cb?.(objects);
|
|
121
|
+
return objects;
|
|
122
|
+
}
|
|
123
|
+
],
|
|
124
|
+
[
|
|
125
|
+
"org-research-project",
|
|
126
|
+
async (space, n, cb) => {
|
|
127
|
+
const feeds = await space.db.query(Filter.type(Feed.Feed)).run();
|
|
128
|
+
const mailbox = feeds.find((feed) => feed.kind === Mailbox.kind);
|
|
129
|
+
invariant(mailbox, "Mailbox feed not found", {
|
|
130
|
+
F: __dxlog_file,
|
|
131
|
+
L: 121,
|
|
132
|
+
S: void 0,
|
|
133
|
+
A: [
|
|
134
|
+
"mailbox",
|
|
135
|
+
"'Mailbox feed not found'"
|
|
136
|
+
]
|
|
137
|
+
});
|
|
138
|
+
const queueDxn = Feed.getQueueDxn(mailbox)?.toString();
|
|
139
|
+
invariant(queueDxn, "Mailbox feed missing queue DXN key", {
|
|
140
|
+
F: __dxlog_file,
|
|
141
|
+
L: 123,
|
|
142
|
+
S: void 0,
|
|
143
|
+
A: [
|
|
144
|
+
"queueDxn",
|
|
145
|
+
"'Mailbox feed missing queue DXN key'"
|
|
146
|
+
]
|
|
147
|
+
});
|
|
148
|
+
const tag = await space.db.query(Filter.type(Tag.Tag, {
|
|
149
|
+
label: "Investor"
|
|
150
|
+
})).first();
|
|
151
|
+
const tagDxn = Obj.getDXN(tag).toString();
|
|
152
|
+
const objects = range(n, () => {
|
|
153
|
+
const contactsQuery = Query.select(Filter.type(Person.Person)).select(Filter.tag(tagDxn));
|
|
154
|
+
const organizationsQuery = Query.select(Filter.type(Organization.Organization)).select(Filter.tag(tagDxn));
|
|
155
|
+
const notesQuery = Query.select(Filter.type(Markdown.Document)).select(Filter.tag(tagDxn));
|
|
156
|
+
space.db.add(Trigger.make({
|
|
157
|
+
enabled: true,
|
|
158
|
+
spec: {
|
|
159
|
+
kind: "timer",
|
|
160
|
+
cron: "* * * * *"
|
|
161
|
+
},
|
|
162
|
+
function: Ref.make(serializeFunction(GmailFunctions.Sync)),
|
|
163
|
+
input: {
|
|
164
|
+
mailbox: Ref.make(mailbox)
|
|
165
|
+
}
|
|
166
|
+
}));
|
|
167
|
+
space.db.add(Trigger.make({
|
|
168
|
+
enabled: true,
|
|
169
|
+
// TODO(wittjosiah): Queue trigger doesn't support matching query of the column.
|
|
170
|
+
spec: {
|
|
171
|
+
kind: "queue",
|
|
172
|
+
queue: queueDxn
|
|
173
|
+
},
|
|
174
|
+
function: Ref.make(serializeFunction(EntityExtractionFunctions.Extract)),
|
|
175
|
+
input: {
|
|
176
|
+
source: "{{event.item}}"
|
|
177
|
+
}
|
|
178
|
+
}));
|
|
179
|
+
const researchPrompt = space.db.add(Prompt.make({
|
|
180
|
+
name: "Research",
|
|
181
|
+
description: "Research organization",
|
|
182
|
+
input: Schema.Struct({
|
|
183
|
+
org: Schema.Any
|
|
184
|
+
}),
|
|
185
|
+
output: Schema.Any,
|
|
186
|
+
// TODO(dmaretskyi): This mocks research (returns pre-baked result), the actual research might take compute minutes.
|
|
187
|
+
// Remove the mock prompt to do the actual research.
|
|
188
|
+
instructions: trim`
|
|
189
|
+
Research the organization provided as input.
|
|
190
|
+
Create a research note for it at the end.
|
|
191
|
+
NOTE: Do mocked reseach (set mockSearch to true).
|
|
192
|
+
`,
|
|
193
|
+
blueprints: [
|
|
194
|
+
Ref.make(ResearchBlueprint.make())
|
|
195
|
+
]
|
|
196
|
+
}));
|
|
197
|
+
space.db.add(Trigger.make({
|
|
198
|
+
enabled: true,
|
|
199
|
+
spec: {
|
|
200
|
+
kind: "subscription",
|
|
201
|
+
query: {
|
|
202
|
+
ast: organizationsQuery.ast
|
|
203
|
+
}
|
|
204
|
+
},
|
|
205
|
+
function: Ref.make(serializeFunction(AgentFunctions.Prompt)),
|
|
206
|
+
input: {
|
|
207
|
+
prompt: Ref.make(researchPrompt),
|
|
208
|
+
input: "{{event.subject}}"
|
|
209
|
+
}
|
|
210
|
+
}));
|
|
211
|
+
const mailboxView = ViewModel.make({
|
|
212
|
+
query: Query.select(Filter.type(Message.Message, {
|
|
213
|
+
properties: {
|
|
214
|
+
labels: Filter.contains("investor")
|
|
215
|
+
}
|
|
216
|
+
})).from({
|
|
217
|
+
queues: [
|
|
218
|
+
queueDxn
|
|
219
|
+
]
|
|
220
|
+
}),
|
|
221
|
+
jsonSchema: JsonSchema.toJsonSchema(Message.Message)
|
|
222
|
+
});
|
|
223
|
+
const contactsView = ViewModel.make({
|
|
224
|
+
query: contactsQuery,
|
|
225
|
+
jsonSchema: JsonSchema.toJsonSchema(Person.Person)
|
|
226
|
+
});
|
|
227
|
+
const organizationsView = ViewModel.make({
|
|
228
|
+
query: organizationsQuery,
|
|
229
|
+
jsonSchema: JsonSchema.toJsonSchema(Organization.Organization)
|
|
230
|
+
});
|
|
231
|
+
const notesView = ViewModel.make({
|
|
232
|
+
query: notesQuery,
|
|
233
|
+
jsonSchema: JsonSchema.toJsonSchema(Markdown.Document)
|
|
234
|
+
});
|
|
235
|
+
return space.db.add(Pipeline.make({
|
|
236
|
+
name: "Investor Research",
|
|
237
|
+
columns: [
|
|
238
|
+
{
|
|
239
|
+
name: "Mailbox",
|
|
240
|
+
view: Ref.make(mailboxView),
|
|
241
|
+
order: []
|
|
242
|
+
},
|
|
243
|
+
{
|
|
244
|
+
name: "Contacts",
|
|
245
|
+
view: Ref.make(contactsView),
|
|
246
|
+
order: []
|
|
247
|
+
},
|
|
248
|
+
{
|
|
249
|
+
name: "Organizations",
|
|
250
|
+
view: Ref.make(organizationsView),
|
|
251
|
+
order: []
|
|
252
|
+
},
|
|
253
|
+
{
|
|
254
|
+
name: "Notes",
|
|
255
|
+
view: Ref.make(notesView),
|
|
256
|
+
order: []
|
|
257
|
+
}
|
|
258
|
+
]
|
|
259
|
+
}));
|
|
260
|
+
});
|
|
261
|
+
cb?.(objects.flat());
|
|
262
|
+
return objects.flat();
|
|
263
|
+
}
|
|
264
|
+
],
|
|
259
265
|
[
|
|
260
266
|
"webhook-gpt-queue",
|
|
261
267
|
async (space, n, cb) => {
|
|
262
|
-
const objects =
|
|
268
|
+
const objects = range(n, () => {
|
|
263
269
|
const canvasModel = CanvasGraphModel.create();
|
|
264
270
|
let functionTrigger;
|
|
265
271
|
canvasModel.builder.call((builder) => {
|
|
@@ -269,7 +275,7 @@ var generator2 = () => ({
|
|
|
269
275
|
})));
|
|
270
276
|
const triggerShape = createTrigger({
|
|
271
277
|
spaceId: space.id,
|
|
272
|
-
triggerKind:
|
|
278
|
+
triggerKind: "webhook",
|
|
273
279
|
...position({
|
|
274
280
|
x: -18,
|
|
275
281
|
y: -2
|
|
@@ -319,9 +325,9 @@ var generator2 = () => ({
|
|
|
319
325
|
[
|
|
320
326
|
"objectChange-queue",
|
|
321
327
|
async (space, n, cb) => {
|
|
322
|
-
const objects =
|
|
323
|
-
const { canvasModel, computeModel } = createQueueSinkPreset(space,
|
|
324
|
-
|
|
328
|
+
const objects = range(n, () => {
|
|
329
|
+
const { canvasModel, computeModel } = createQueueSinkPreset(space, "subscription", (triggerSpec) => triggerSpec.query = {
|
|
330
|
+
ast: Query.select(Filter.typename("dxos.org/type/Chess")).ast
|
|
325
331
|
}, "type");
|
|
326
332
|
return addToSpace("objectChange-queue", space, canvasModel, computeModel);
|
|
327
333
|
});
|
|
@@ -332,8 +338,8 @@ var generator2 = () => ({
|
|
|
332
338
|
[
|
|
333
339
|
"timerTick-queue",
|
|
334
340
|
async (space, n, cb) => {
|
|
335
|
-
const objects =
|
|
336
|
-
const { canvasModel, computeModel } = createQueueSinkPreset(space,
|
|
341
|
+
const objects = range(n, () => {
|
|
342
|
+
const { canvasModel, computeModel } = createQueueSinkPreset(space, "timer", (triggerSpec) => triggerSpec.cron = "*/5 * * * * *", "result");
|
|
337
343
|
return addToSpace("timerTick-queue", space, canvasModel, computeModel);
|
|
338
344
|
});
|
|
339
345
|
cb?.(objects);
|
|
@@ -360,7 +366,7 @@ var generator2 = () => ({
|
|
|
360
366
|
// canvasModel.builder.call((builder) => {
|
|
361
367
|
// const triggerShape = createTrigger({
|
|
362
368
|
// spaceId: space.id,
|
|
363
|
-
// triggerKind:
|
|
369
|
+
// triggerKind: 'email',
|
|
364
370
|
// ...position({ x: -18, y: -2 }),
|
|
365
371
|
// });
|
|
366
372
|
// const trigger = canvasModel.createNode(triggerShape);
|
|
@@ -387,7 +393,7 @@ var generator2 = () => ({
|
|
|
387
393
|
// const templateComputeNode = computeModel.nodes.find((n) => n.id === template.node);
|
|
388
394
|
// invariant(templateComputeNode, 'Template compute node was not created.');
|
|
389
395
|
// templateComputeNode.value = templateContent.join('\n');
|
|
390
|
-
// templateComputeNode.inputSchema =
|
|
396
|
+
// templateComputeNode.inputSchema = JsonSchema.toJsonSchema(EmailTriggerOutput);
|
|
391
397
|
// attachTrigger(functionTrigger, computeModel);
|
|
392
398
|
// return addToSpace(PresetName.EMAIL_TABLE, space, canvasModel, computeModel);
|
|
393
399
|
// });
|
|
@@ -398,7 +404,7 @@ var generator2 = () => ({
|
|
|
398
404
|
[
|
|
399
405
|
"chat-gpt-text",
|
|
400
406
|
async (space, n, cb) => {
|
|
401
|
-
const objects =
|
|
407
|
+
const objects = range(n, () => {
|
|
402
408
|
const canvasModel = CanvasGraphModel.create();
|
|
403
409
|
canvasModel.builder.call((builder) => {
|
|
404
410
|
const gpt = canvasModel.createNode(createGpt(position({
|
|
@@ -475,7 +481,7 @@ var generator2 = () => ({
|
|
|
475
481
|
// );
|
|
476
482
|
// const triggerShape = createTrigger({
|
|
477
483
|
// spaceId: space.id,
|
|
478
|
-
// triggerKind:
|
|
484
|
+
// triggerKind: 'email',
|
|
479
485
|
// ...rawPosition({ centerX: -736, centerY: -384, width: 182, height: 192 }),
|
|
480
486
|
// });
|
|
481
487
|
// const trigger = canvasModel.createNode(triggerShape);
|
|
@@ -518,7 +524,7 @@ var generator2 = () => ({
|
|
|
518
524
|
// invariant(templateComputeNode, 'Template compute node was not created.');
|
|
519
525
|
// templateComputeNode.value = templateContent.join('\n');
|
|
520
526
|
// const extendedSchema = Schema.extend(EmailTriggerOutput, Schema.Struct({ text: Schema.String }));
|
|
521
|
-
// templateComputeNode.inputSchema =
|
|
527
|
+
// templateComputeNode.inputSchema = JsonSchema.toJsonSchema(extendedSchema);
|
|
522
528
|
// attachTrigger(functionTrigger, computeModel);
|
|
523
529
|
// return addToSpace(PresetName.EMAIL_WITH_SUMMARY, space, canvasModel, computeModel);
|
|
524
530
|
// });
|
|
@@ -529,7 +535,7 @@ var generator2 = () => ({
|
|
|
529
535
|
[
|
|
530
536
|
"forex-function-call",
|
|
531
537
|
async (space, n, cb) => {
|
|
532
|
-
const objects =
|
|
538
|
+
const objects = range(n, () => {
|
|
533
539
|
const canvasModel = CanvasGraphModel.create();
|
|
534
540
|
canvasModel.builder.call((builder) => {
|
|
535
541
|
const sourceCurrency = canvasModel.createNode(createConstant({
|
|
@@ -578,13 +584,13 @@ var generator2 = () => ({
|
|
|
578
584
|
[
|
|
579
585
|
"discord-messages",
|
|
580
586
|
async (space, n, cb) => {
|
|
581
|
-
const objects =
|
|
587
|
+
const objects = range(n, () => {
|
|
582
588
|
const canvasModel = CanvasGraphModel.create();
|
|
583
589
|
let functionTrigger;
|
|
584
590
|
canvasModel.builder.call((builder) => {
|
|
585
591
|
const triggerShape = createTrigger({
|
|
586
592
|
spaceId: space.id,
|
|
587
|
-
triggerKind:
|
|
593
|
+
triggerKind: "timer",
|
|
588
594
|
...position({
|
|
589
595
|
x: -10,
|
|
590
596
|
y: -5
|
|
@@ -599,10 +605,10 @@ var generator2 = () => ({
|
|
|
599
605
|
})
|
|
600
606
|
}));
|
|
601
607
|
const queueId = canvasModel.createNode(createConstant({
|
|
602
|
-
value: new
|
|
608
|
+
value: new DXN(DXN.kind.QUEUE, [
|
|
603
609
|
"data",
|
|
604
610
|
space.id,
|
|
605
|
-
|
|
611
|
+
Key.ObjectId.random()
|
|
606
612
|
]).toString(),
|
|
607
613
|
...position({
|
|
608
614
|
x: -10,
|
|
@@ -720,20 +726,22 @@ var createQueueSinkPreset = (space, triggerKind, initSpec, triggerOutputName) =>
|
|
|
720
726
|
const triggerSpec = functionTrigger.spec;
|
|
721
727
|
invariant(triggerSpec && triggerSpec.kind === triggerKind, "No trigger spec.", {
|
|
722
728
|
F: __dxlog_file,
|
|
723
|
-
L:
|
|
729
|
+
L: 762,
|
|
724
730
|
S: void 0,
|
|
725
731
|
A: [
|
|
726
732
|
"triggerSpec && triggerSpec.kind === triggerKind",
|
|
727
733
|
"'No trigger spec.'"
|
|
728
734
|
]
|
|
729
735
|
});
|
|
730
|
-
|
|
736
|
+
Obj.change(functionTrigger, (ft) => {
|
|
737
|
+
initSpec(ft.spec);
|
|
738
|
+
});
|
|
731
739
|
});
|
|
732
740
|
const computeModel = createComputeGraph(canvasModel);
|
|
733
741
|
const templateComputeNode = computeModel.nodes.find((n) => n.id === template.node);
|
|
734
742
|
invariant(templateComputeNode, "Template compute node was not created.", {
|
|
735
743
|
F: __dxlog_file,
|
|
736
|
-
L:
|
|
744
|
+
L: 771,
|
|
737
745
|
S: void 0,
|
|
738
746
|
A: [
|
|
739
747
|
"templateComputeNode",
|
|
@@ -746,7 +754,7 @@ var createQueueSinkPreset = (space, triggerKind, initSpec, triggerOutputName) =>
|
|
|
746
754
|
' "id": "@{{changeId}}"',
|
|
747
755
|
"}"
|
|
748
756
|
].join("\n");
|
|
749
|
-
templateComputeNode.inputSchema =
|
|
757
|
+
templateComputeNode.inputSchema = JsonSchema.toJsonSchema(Schema.Struct({
|
|
750
758
|
type: Schema.String,
|
|
751
759
|
changeId: Schema.String
|
|
752
760
|
}));
|
|
@@ -757,18 +765,18 @@ var createQueueSinkPreset = (space, triggerKind, initSpec, triggerOutputName) =>
|
|
|
757
765
|
};
|
|
758
766
|
};
|
|
759
767
|
var addToSpace = (name, space, canvas, compute) => {
|
|
760
|
-
return space.db.add(
|
|
768
|
+
return space.db.add(Obj.make(CanvasBoard.CanvasBoard, {
|
|
761
769
|
name,
|
|
762
|
-
computeGraph:
|
|
770
|
+
computeGraph: Ref.make(compute.root),
|
|
763
771
|
layout: canvas.graph
|
|
764
772
|
}));
|
|
765
773
|
};
|
|
766
774
|
var setupQueue = (space, canvasModel, args) => {
|
|
767
775
|
const queueId = canvasModel.createNode(createConstant({
|
|
768
|
-
value: new
|
|
776
|
+
value: new DXN(DXN.kind.QUEUE, [
|
|
769
777
|
"data",
|
|
770
778
|
space.id,
|
|
771
|
-
|
|
779
|
+
Key.ObjectId.random()
|
|
772
780
|
]).toString(),
|
|
773
781
|
...args?.idPosition ? rawPosition(args.idPosition) : position({
|
|
774
782
|
x: -18,
|
|
@@ -795,16 +803,18 @@ var setupQueue = (space, canvasModel, args) => {
|
|
|
795
803
|
var attachTrigger = (functionTrigger, computeModel) => {
|
|
796
804
|
invariant(functionTrigger, void 0, {
|
|
797
805
|
F: __dxlog_file,
|
|
798
|
-
L:
|
|
806
|
+
L: 813,
|
|
799
807
|
S: void 0,
|
|
800
808
|
A: [
|
|
801
809
|
"functionTrigger",
|
|
802
810
|
""
|
|
803
811
|
]
|
|
804
812
|
});
|
|
805
|
-
|
|
806
|
-
|
|
807
|
-
|
|
813
|
+
const inputNode = computeModel.nodes.find((node) => node.type === NODE_INPUT);
|
|
814
|
+
Obj.change(functionTrigger, (t) => {
|
|
815
|
+
t.function = Ref.make(computeModel.root);
|
|
816
|
+
t.inputNodeId = inputNode.id;
|
|
817
|
+
});
|
|
808
818
|
};
|
|
809
819
|
var rawPosition = (args) => {
|
|
810
820
|
return {
|
|
@@ -850,134 +860,315 @@ var position = (rect) => {
|
|
|
850
860
|
}
|
|
851
861
|
};
|
|
852
862
|
|
|
853
|
-
// src/components/SpaceGenerator/
|
|
854
|
-
|
|
855
|
-
|
|
856
|
-
|
|
857
|
-
|
|
858
|
-
|
|
859
|
-
|
|
860
|
-
|
|
861
|
-
|
|
862
|
-
|
|
863
|
-
|
|
864
|
-
|
|
865
|
-
|
|
866
|
-
|
|
867
|
-
|
|
868
|
-
|
|
869
|
-
|
|
870
|
-
|
|
871
|
-
|
|
872
|
-
const
|
|
873
|
-
const
|
|
874
|
-
const
|
|
875
|
-
|
|
876
|
-
|
|
877
|
-
|
|
878
|
-
|
|
879
|
-
|
|
880
|
-
|
|
881
|
-
|
|
882
|
-
|
|
883
|
-
|
|
884
|
-
|
|
885
|
-
|
|
886
|
-
|
|
887
|
-
|
|
888
|
-
|
|
889
|
-
|
|
890
|
-
|
|
891
|
-
|
|
892
|
-
|
|
893
|
-
|
|
894
|
-
|
|
895
|
-
|
|
896
|
-
|
|
897
|
-
|
|
898
|
-
|
|
899
|
-
|
|
900
|
-
|
|
901
|
-
|
|
863
|
+
// src/components/SpaceGenerator/ObjectGenerator.tsx
|
|
864
|
+
import { addressToA1Notation } from "@dxos/compute";
|
|
865
|
+
import { ComputeGraph, ComputeGraphModel, DEFAULT_OUTPUT, NODE_INPUT as NODE_INPUT2, NODE_OUTPUT } from "@dxos/conductor";
|
|
866
|
+
import { DXN as DXN2, Filter as Filter2, Key as Key2 } from "@dxos/echo";
|
|
867
|
+
import { View } from "@dxos/echo";
|
|
868
|
+
import { Markdown as Markdown2 } from "@dxos/plugin-markdown/types";
|
|
869
|
+
import { Sheet } from "@dxos/plugin-sheet/types";
|
|
870
|
+
import { Diagram } from "@dxos/plugin-sketch/types";
|
|
871
|
+
import { SpaceOperation } from "@dxos/plugin-space/types";
|
|
872
|
+
import { faker } from "@dxos/random";
|
|
873
|
+
import { getTypenameFromQuery } from "@dxos/schema";
|
|
874
|
+
import { createAsyncGenerator } from "@dxos/schema/testing";
|
|
875
|
+
import { range as range2 } from "@dxos/util";
|
|
876
|
+
var generator2 = faker;
|
|
877
|
+
var findViewByTypename = async (views, typename) => {
|
|
878
|
+
return views.find((view) => getTypenameFromQuery(view.query.ast) === typename);
|
|
879
|
+
};
|
|
880
|
+
var createGenerator = (client, invokePromise, schema) => {
|
|
881
|
+
return async (space, n) => {
|
|
882
|
+
const typename = schema.typename;
|
|
883
|
+
const views = await space.db.query(Filter2.type(View.View)).run();
|
|
884
|
+
const view = await findViewByTypename(views, typename);
|
|
885
|
+
const staticSchema = client?.graph.schemaRegistry.query({
|
|
886
|
+
typename
|
|
887
|
+
}).runSync()[0];
|
|
888
|
+
if (!view && !staticSchema) {
|
|
889
|
+
await invokePromise(SpaceOperation.AddSchema, {
|
|
890
|
+
db: space.db,
|
|
891
|
+
schema,
|
|
892
|
+
show: false
|
|
893
|
+
});
|
|
894
|
+
} else if (!view && staticSchema) {
|
|
895
|
+
await invokePromise(SpaceOperation.UseStaticSchema, {
|
|
896
|
+
db: space.db,
|
|
897
|
+
typename,
|
|
898
|
+
show: false
|
|
899
|
+
});
|
|
900
|
+
}
|
|
901
|
+
const generate = createAsyncGenerator(generator2, schema, {
|
|
902
|
+
db: space.db
|
|
903
|
+
});
|
|
904
|
+
return generate.createObjects(n);
|
|
905
|
+
};
|
|
906
|
+
};
|
|
907
|
+
var staticGenerators = /* @__PURE__ */ new Map([
|
|
908
|
+
[
|
|
909
|
+
Markdown2.Document.typename,
|
|
910
|
+
async (space, n, cb) => {
|
|
911
|
+
const objects = range2(n).map(() => {
|
|
912
|
+
return space.db.add(Markdown2.make({
|
|
913
|
+
name: faker.commerce.productName(),
|
|
914
|
+
content: faker.lorem.sentences(5)
|
|
915
|
+
}));
|
|
916
|
+
});
|
|
917
|
+
cb?.(objects);
|
|
918
|
+
return objects;
|
|
919
|
+
}
|
|
920
|
+
],
|
|
921
|
+
[
|
|
922
|
+
Diagram.Diagram.typename,
|
|
923
|
+
async (space, n, cb) => {
|
|
924
|
+
const objects = range2(n).map(() => {
|
|
925
|
+
const obj = space.db.add(Diagram.make({
|
|
926
|
+
name: faker.commerce.productName()
|
|
927
|
+
}));
|
|
928
|
+
return obj;
|
|
929
|
+
});
|
|
930
|
+
cb?.(objects);
|
|
931
|
+
return objects;
|
|
932
|
+
}
|
|
933
|
+
],
|
|
934
|
+
// TODO(burdon): Create unit tests.
|
|
935
|
+
[
|
|
936
|
+
Sheet.Sheet.typename,
|
|
937
|
+
async (space, n, cb) => {
|
|
938
|
+
const objects = range2(n).map(() => {
|
|
939
|
+
const cells = {};
|
|
940
|
+
const year = (/* @__PURE__ */ new Date()).getFullYear();
|
|
941
|
+
const cols = 4;
|
|
942
|
+
const rows = 16;
|
|
943
|
+
for (let col = 1; col <= cols; col++) {
|
|
944
|
+
for (let row = 1; row <= rows; row++) {
|
|
945
|
+
const cell = addressToA1Notation({
|
|
946
|
+
col,
|
|
947
|
+
row
|
|
948
|
+
});
|
|
949
|
+
if (row === 1) {
|
|
950
|
+
cells[cell] = {
|
|
951
|
+
value: `${year} Q${col}`
|
|
952
|
+
};
|
|
953
|
+
} else if (row === rows) {
|
|
954
|
+
const from = addressToA1Notation({
|
|
955
|
+
col,
|
|
956
|
+
row: 2
|
|
957
|
+
});
|
|
958
|
+
const to = addressToA1Notation({
|
|
959
|
+
col,
|
|
960
|
+
row: rows - 1
|
|
961
|
+
});
|
|
962
|
+
cells[cell] = {
|
|
963
|
+
value: `=SUM(${from}:${to})`
|
|
964
|
+
};
|
|
965
|
+
} else if (row > 2 && row < rows - 1) {
|
|
966
|
+
cells[cell] = {
|
|
967
|
+
value: Math.floor(Math.random() * 1e4)
|
|
968
|
+
};
|
|
969
|
+
}
|
|
970
|
+
}
|
|
902
971
|
}
|
|
903
|
-
return
|
|
904
|
-
|
|
905
|
-
|
|
906
|
-
|
|
907
|
-
static: staticSchema.length,
|
|
908
|
-
mutable: echoSchema.length
|
|
909
|
-
},
|
|
910
|
-
objects: objectMap
|
|
972
|
+
return space.db.add(Sheet.make({
|
|
973
|
+
name: faker.commerce.productName(),
|
|
974
|
+
cells
|
|
975
|
+
}));
|
|
911
976
|
});
|
|
912
|
-
|
|
913
|
-
|
|
914
|
-
|
|
977
|
+
cb?.(objects);
|
|
978
|
+
return objects;
|
|
979
|
+
}
|
|
980
|
+
],
|
|
981
|
+
[
|
|
982
|
+
ComputeGraph.typename,
|
|
983
|
+
async (space, n, cb) => {
|
|
984
|
+
const objects = range2(n, () => {
|
|
985
|
+
const model = ComputeGraphModel.create();
|
|
986
|
+
model.builder.createNode({
|
|
987
|
+
id: "gpt-INPUT",
|
|
988
|
+
type: NODE_INPUT2
|
|
989
|
+
}).createNode({
|
|
990
|
+
id: "gpt-GPT",
|
|
991
|
+
type: "gpt"
|
|
992
|
+
}).createNode({
|
|
993
|
+
id: "gpt-QUEUE_ID",
|
|
994
|
+
type: "constant",
|
|
995
|
+
value: new DXN2(DXN2.kind.QUEUE, [
|
|
996
|
+
"data",
|
|
997
|
+
space.id,
|
|
998
|
+
Key2.ObjectId.random()
|
|
999
|
+
]).toString()
|
|
1000
|
+
}).createNode({
|
|
1001
|
+
id: "gpt-APPEND",
|
|
1002
|
+
type: "append"
|
|
1003
|
+
}).createNode({
|
|
1004
|
+
id: "gpt-OUTPUT",
|
|
1005
|
+
type: NODE_OUTPUT
|
|
1006
|
+
}).createEdge({
|
|
1007
|
+
node: "gpt-INPUT",
|
|
1008
|
+
property: "prompt"
|
|
1009
|
+
}, {
|
|
1010
|
+
node: "gpt-GPT",
|
|
1011
|
+
property: "prompt"
|
|
1012
|
+
}).createEdge({
|
|
1013
|
+
node: "gpt-GPT",
|
|
1014
|
+
property: "text"
|
|
1015
|
+
}, {
|
|
1016
|
+
node: "gpt-OUTPUT",
|
|
1017
|
+
property: "text"
|
|
1018
|
+
}).createEdge({
|
|
1019
|
+
node: "gpt-QUEUE_ID",
|
|
1020
|
+
property: DEFAULT_OUTPUT
|
|
1021
|
+
}, {
|
|
1022
|
+
node: "gpt-APPEND",
|
|
1023
|
+
property: "id"
|
|
1024
|
+
}).createEdge({
|
|
1025
|
+
node: "gpt-GPT",
|
|
1026
|
+
property: "messages"
|
|
1027
|
+
}, {
|
|
1028
|
+
node: "gpt-APPEND",
|
|
1029
|
+
property: "items"
|
|
1030
|
+
}).createEdge({
|
|
1031
|
+
node: "gpt-QUEUE_ID",
|
|
1032
|
+
property: DEFAULT_OUTPUT
|
|
1033
|
+
}, {
|
|
1034
|
+
node: "gpt-OUTPUT",
|
|
1035
|
+
property: "queue"
|
|
1036
|
+
});
|
|
1037
|
+
return space.db.add(model.root);
|
|
1038
|
+
});
|
|
1039
|
+
cb?.(objects);
|
|
1040
|
+
return objects;
|
|
1041
|
+
}
|
|
1042
|
+
]
|
|
1043
|
+
]);
|
|
1044
|
+
|
|
1045
|
+
// src/containers/SpaceGenerator/SpaceGenerator.tsx
|
|
1046
|
+
var SpaceGenerator = ({ space, onCreateObjects }) => {
|
|
1047
|
+
const { invokePromise } = useOperationInvoker();
|
|
1048
|
+
const client = useClient();
|
|
1049
|
+
const staticTypes = [
|
|
1050
|
+
Markdown3.Document,
|
|
1051
|
+
Diagram2.Diagram,
|
|
1052
|
+
Sheet2.Sheet,
|
|
1053
|
+
ComputeGraph2
|
|
1054
|
+
];
|
|
1055
|
+
const recordTypes = [
|
|
1056
|
+
Organization2.Organization,
|
|
1057
|
+
Person2.Person,
|
|
1058
|
+
Task.Task
|
|
1059
|
+
];
|
|
1060
|
+
const [count, setCount] = useState(1);
|
|
1061
|
+
const [info, setInfo] = useState({});
|
|
1062
|
+
const presets = useMemo(() => generator(), []);
|
|
1063
|
+
useAsyncEffect(async () => {
|
|
1064
|
+
await client.addTypes([
|
|
1065
|
+
...staticTypes,
|
|
1066
|
+
...recordTypes,
|
|
1067
|
+
...presets.schemas
|
|
915
1068
|
]);
|
|
916
|
-
|
|
917
|
-
|
|
918
|
-
|
|
919
|
-
|
|
920
|
-
|
|
921
|
-
|
|
922
|
-
|
|
923
|
-
|
|
924
|
-
|
|
1069
|
+
}, [
|
|
1070
|
+
client
|
|
1071
|
+
]);
|
|
1072
|
+
const typeMap = useMemo(() => {
|
|
1073
|
+
const recordGenerators = new Map(recordTypes.map((type) => [
|
|
1074
|
+
type.typename,
|
|
1075
|
+
createGenerator(client, invokePromise, type)
|
|
1076
|
+
]));
|
|
1077
|
+
return new Map([
|
|
1078
|
+
...staticGenerators,
|
|
1079
|
+
...presets.items,
|
|
1080
|
+
...recordGenerators
|
|
925
1081
|
]);
|
|
926
|
-
|
|
927
|
-
|
|
928
|
-
|
|
929
|
-
|
|
930
|
-
|
|
931
|
-
|
|
932
|
-
|
|
933
|
-
|
|
934
|
-
|
|
935
|
-
|
|
936
|
-
|
|
937
|
-
|
|
938
|
-
|
|
939
|
-
|
|
940
|
-
|
|
941
|
-
|
|
942
|
-
|
|
943
|
-
|
|
944
|
-
|
|
945
|
-
|
|
946
|
-
|
|
947
|
-
|
|
948
|
-
|
|
949
|
-
}
|
|
950
|
-
|
|
951
|
-
|
|
952
|
-
|
|
953
|
-
|
|
954
|
-
|
|
955
|
-
|
|
956
|
-
|
|
957
|
-
|
|
958
|
-
|
|
959
|
-
}
|
|
960
|
-
|
|
961
|
-
|
|
962
|
-
|
|
963
|
-
|
|
964
|
-
|
|
965
|
-
|
|
966
|
-
|
|
967
|
-
|
|
968
|
-
|
|
969
|
-
|
|
970
|
-
|
|
971
|
-
|
|
972
|
-
|
|
973
|
-
|
|
974
|
-
|
|
975
|
-
|
|
1082
|
+
}, [
|
|
1083
|
+
client,
|
|
1084
|
+
recordTypes,
|
|
1085
|
+
invokePromise
|
|
1086
|
+
]);
|
|
1087
|
+
const updateInfo = async () => {
|
|
1088
|
+
const echoSchema = await space.db.schemaRegistry.query().run();
|
|
1089
|
+
const staticSchema = await space.db.graph.schemaRegistry.query().run();
|
|
1090
|
+
const objects = await space.db.query(Filter3.everything()).run();
|
|
1091
|
+
const objectMap = sortKeys(objects.reduce((map, obj) => {
|
|
1092
|
+
const type = Obj2.getTypename(obj);
|
|
1093
|
+
if (type) {
|
|
1094
|
+
const count2 = map[type] ?? 0;
|
|
1095
|
+
map[type] = count2 + 1;
|
|
1096
|
+
}
|
|
1097
|
+
return map;
|
|
1098
|
+
}, {}));
|
|
1099
|
+
setInfo({
|
|
1100
|
+
schema: {
|
|
1101
|
+
static: staticSchema.length,
|
|
1102
|
+
mutable: echoSchema.length
|
|
1103
|
+
},
|
|
1104
|
+
objects: objectMap
|
|
1105
|
+
});
|
|
1106
|
+
};
|
|
1107
|
+
useAsyncEffect(updateInfo, [
|
|
1108
|
+
space
|
|
1109
|
+
]);
|
|
1110
|
+
const handleCreateData = useCallback(async (typename) => {
|
|
1111
|
+
const constructor = typeMap.get(typename);
|
|
1112
|
+
if (constructor) {
|
|
1113
|
+
await constructor(space, count, onCreateObjects);
|
|
1114
|
+
await updateInfo();
|
|
1115
|
+
}
|
|
1116
|
+
}, [
|
|
1117
|
+
typeMap,
|
|
1118
|
+
count
|
|
1119
|
+
]);
|
|
1120
|
+
return /* @__PURE__ */ React2.createElement(Panel.Root, null, /* @__PURE__ */ React2.createElement(Panel.Toolbar, {
|
|
1121
|
+
asChild: true
|
|
1122
|
+
}, /* @__PURE__ */ React2.createElement(Toolbar.Root, null, /* @__PURE__ */ React2.createElement(IconButton2, {
|
|
1123
|
+
icon: "ph--arrow-clockwise--regular",
|
|
1124
|
+
iconOnly: true,
|
|
1125
|
+
label: "Refresh",
|
|
1126
|
+
onClick: updateInfo
|
|
1127
|
+
}), /* @__PURE__ */ React2.createElement(Toolbar.Separator, null), /* @__PURE__ */ React2.createElement(Input.Root, null, /* @__PURE__ */ React2.createElement(Input.TextInput, {
|
|
1128
|
+
type: "number",
|
|
1129
|
+
placeholder: "Count",
|
|
1130
|
+
classNames: "w-[4rem] text-right",
|
|
1131
|
+
min: 1,
|
|
1132
|
+
max: 100,
|
|
1133
|
+
size: 8,
|
|
1134
|
+
value: count,
|
|
1135
|
+
onChange: (event) => setCount(parseInt(event.target.value))
|
|
1136
|
+
})))), /* @__PURE__ */ React2.createElement(Panel.Content, {
|
|
1137
|
+
asChild: true
|
|
1138
|
+
}, /* @__PURE__ */ React2.createElement(ScrollArea.Root, {
|
|
1139
|
+
thin: true,
|
|
1140
|
+
orientation: "vertical"
|
|
1141
|
+
}, /* @__PURE__ */ React2.createElement(ScrollArea.Viewport, {
|
|
1142
|
+
classNames: "gap-4 divide-y divide-subdued-separator"
|
|
1143
|
+
}, /* @__PURE__ */ React2.createElement(SchemaTable, {
|
|
1144
|
+
types: staticTypes,
|
|
1145
|
+
objects: info.objects,
|
|
1146
|
+
label: "Static Types",
|
|
1147
|
+
onClick: handleCreateData
|
|
1148
|
+
}), /* @__PURE__ */ React2.createElement(SchemaTable, {
|
|
1149
|
+
types: recordTypes,
|
|
1150
|
+
objects: info.objects,
|
|
1151
|
+
label: "Record Types",
|
|
1152
|
+
onClick: handleCreateData
|
|
1153
|
+
}), /* @__PURE__ */ React2.createElement(SchemaTable, {
|
|
1154
|
+
types: presets.types,
|
|
1155
|
+
objects: info.objects,
|
|
1156
|
+
label: "Presets",
|
|
1157
|
+
onClick: handleCreateData
|
|
1158
|
+
}), /* @__PURE__ */ React2.createElement(SyntaxHighlighter, {
|
|
1159
|
+
language: "json",
|
|
1160
|
+
classNames: "text-xs"
|
|
1161
|
+
}, JSON.stringify({
|
|
1162
|
+
space,
|
|
1163
|
+
...info
|
|
1164
|
+
}, jsonKeyReplacer({
|
|
1165
|
+
truncate: true
|
|
1166
|
+
}), 2))))));
|
|
976
1167
|
};
|
|
977
1168
|
|
|
978
|
-
// src/
|
|
1169
|
+
// src/containers/SpaceGenerator/index.ts
|
|
979
1170
|
var SpaceGenerator_default = SpaceGenerator;
|
|
980
1171
|
export {
|
|
981
1172
|
SpaceGenerator_default as default
|
|
982
1173
|
};
|
|
983
|
-
//# sourceMappingURL=SpaceGenerator-
|
|
1174
|
+
//# sourceMappingURL=SpaceGenerator-SWSGJEEL.mjs.map
|