@dxos/plugin-debug 0.8.2 → 0.8.3-main.7f5a14c

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 (39) hide show
  1. package/dist/lib/browser/{SpaceGenerator-RHQLPN44.mjs → SpaceGenerator-VB6IB2LL.mjs} +73 -85
  2. package/dist/lib/browser/SpaceGenerator-VB6IB2LL.mjs.map +7 -0
  3. package/dist/lib/browser/{app-graph-builder-PIPBIN6P.mjs → app-graph-builder-6HHJMKVU.mjs} +3 -3
  4. package/dist/lib/browser/app-graph-builder-6HHJMKVU.mjs.map +7 -0
  5. package/dist/lib/browser/index.mjs +3 -3
  6. package/dist/lib/browser/meta.json +1 -1
  7. package/dist/lib/browser/{react-surface-PHUWS5WD.mjs → react-surface-NMQGGZRB.mjs} +23 -24
  8. package/dist/lib/browser/react-surface-NMQGGZRB.mjs.map +7 -0
  9. package/dist/lib/browser/{settings-N4Q6YB7L.mjs → settings-SXQWSIM4.mjs} +4 -4
  10. package/dist/lib/browser/settings-SXQWSIM4.mjs.map +7 -0
  11. package/dist/types/src/capabilities/react-surface.d.ts.map +1 -1
  12. package/dist/types/src/capabilities/settings.d.ts.map +1 -1
  13. package/dist/types/src/components/DebugObjectPanel.d.ts +2 -2
  14. package/dist/types/src/components/DebugObjectPanel.d.ts.map +1 -1
  15. package/dist/types/src/components/SpaceGenerator/ObjectGenerator.d.ts +4 -4
  16. package/dist/types/src/components/SpaceGenerator/ObjectGenerator.d.ts.map +1 -1
  17. package/dist/types/src/components/SpaceGenerator/SchemaTable.d.ts.map +1 -1
  18. package/dist/types/src/components/SpaceGenerator/SpaceGenerator.d.ts +2 -2
  19. package/dist/types/src/components/SpaceGenerator/SpaceGenerator.d.ts.map +1 -1
  20. package/dist/types/src/components/SpaceGenerator/SpaceGenerator.stories.d.ts.map +1 -1
  21. package/dist/types/src/components/SpaceGenerator/presets.d.ts +1 -1
  22. package/dist/types/src/components/SpaceGenerator/presets.d.ts.map +1 -1
  23. package/dist/types/src/components/Wireframe.d.ts +2 -2
  24. package/dist/types/src/components/Wireframe.d.ts.map +1 -1
  25. package/package.json +51 -51
  26. package/src/capabilities/app-graph-builder.ts +2 -2
  27. package/src/capabilities/react-surface.tsx +15 -17
  28. package/src/capabilities/settings.ts +7 -3
  29. package/src/components/DebugObjectPanel.tsx +13 -13
  30. package/src/components/SpaceGenerator/ObjectGenerator.tsx +32 -46
  31. package/src/components/SpaceGenerator/SchemaTable.tsx +2 -5
  32. package/src/components/SpaceGenerator/SpaceGenerator.stories.tsx +17 -2
  33. package/src/components/SpaceGenerator/SpaceGenerator.tsx +31 -28
  34. package/src/components/SpaceGenerator/presets.ts +10 -14
  35. package/src/components/Wireframe.tsx +6 -5
  36. package/dist/lib/browser/SpaceGenerator-RHQLPN44.mjs.map +0 -7
  37. package/dist/lib/browser/app-graph-builder-PIPBIN6P.mjs.map +0 -7
  38. package/dist/lib/browser/react-surface-PHUWS5WD.mjs.map +0 -7
  39. package/dist/lib/browser/settings-N4Q6YB7L.mjs.map +0 -7
@@ -3,8 +3,7 @@ import { useSignals as _useSignals2 } from "@preact-signals/safe-react/tracking"
3
3
  import React2, { useCallback, useMemo, useState } from "react";
4
4
  import { createIntent, useIntentDispatcher } from "@dxos/app-framework";
5
5
  import { ComputeGraph as ComputeGraph2 } from "@dxos/conductor";
6
- import { Filter as Filter3, toEffectSchema } from "@dxos/echo-schema";
7
- import { live as live3 } from "@dxos/live-object";
6
+ import { Filter as Filter3, Obj as Obj3, Type as Type2 } from "@dxos/echo";
8
7
  import { log } from "@dxos/log";
9
8
  import { DocumentType as DocumentType2 } from "@dxos/plugin-markdown/types";
10
9
  import { SheetType as SheetType2 } from "@dxos/plugin-sheet/types";
@@ -21,28 +20,53 @@ import { jsonKeyReplacer, sortKeys } from "@dxos/util";
21
20
  // packages/plugins/plugin-debug/src/components/SpaceGenerator/ObjectGenerator.tsx
22
21
  import { addressToA1Notation } from "@dxos/compute";
23
22
  import { ComputeGraph, ComputeGraphModel, DEFAULT_OUTPUT, NODE_INPUT, NODE_OUTPUT } from "@dxos/conductor";
24
- import { ObjectId } from "@dxos/echo-schema";
25
- import { DXN } from "@dxos/keys";
26
- import { live, makeRef } from "@dxos/live-object";
23
+ import { DXN, Filter, Key, Obj, Ref } from "@dxos/echo";
27
24
  import { DocumentType } from "@dxos/plugin-markdown/types";
28
25
  import { createSheet } from "@dxos/plugin-sheet/types";
29
26
  import { SheetType } from "@dxos/plugin-sheet/types";
30
27
  import { CanvasType, DiagramType } from "@dxos/plugin-sketch/types";
31
28
  import { faker } from "@dxos/random";
32
- import { Filter } from "@dxos/react-client/echo";
33
29
  import { TableType } from "@dxos/react-ui-table";
34
30
  import { createView, DataType } from "@dxos/schema";
35
31
  import { createAsyncGenerator } from "@dxos/schema/testing";
36
32
  import { range } from "@dxos/util";
37
33
  var generator = faker;
34
+ var createGenerator = (type) => {
35
+ return async (space, n, cb) => {
36
+ const schema = await space.db.schemaRegistry.query({
37
+ typename: type.typename
38
+ }).firstOrUndefined() ?? (await space.db.schemaRegistry.register([
39
+ type
40
+ ]))[0];
41
+ const generate = createAsyncGenerator(generator, schema.snapshot, {
42
+ db: space.db
43
+ });
44
+ const objects = await generate.createObjects(n);
45
+ const { objects: tables } = await space.db.query(Filter.type(TableType)).run();
46
+ const table = tables.find((table2) => table2.view?.target?.query?.typename === type.typename);
47
+ if (!table) {
48
+ const name = type.typename.split("/").pop() ?? type.typename;
49
+ const view = createView({
50
+ name,
51
+ typename: type.typename,
52
+ jsonSchema: schema.jsonSchema
53
+ });
54
+ space.db.add(Obj.make(TableType, {
55
+ name,
56
+ view: Ref.make(view)
57
+ }));
58
+ }
59
+ return objects;
60
+ };
61
+ };
38
62
  var staticGenerators = /* @__PURE__ */ new Map([
39
63
  [
40
64
  DocumentType.typename,
41
65
  async (space, n, cb) => {
42
66
  const objects = range(n).map(() => {
43
- return space.db.add(live(DocumentType, {
67
+ return space.db.add(Obj.make(DocumentType, {
44
68
  name: faker.commerce.productName(),
45
- content: makeRef(live(DataType.Text, {
69
+ content: Ref.make(Obj.make(DataType.Text, {
46
70
  content: faker.lorem.sentences(5)
47
71
  }))
48
72
  }));
@@ -55,9 +79,9 @@ var staticGenerators = /* @__PURE__ */ new Map([
55
79
  DiagramType.typename,
56
80
  async (space, n, cb) => {
57
81
  const objects = range(n).map(() => {
58
- const obj = space.db.add(live(DiagramType, {
82
+ const obj = space.db.add(Obj.make(DiagramType, {
59
83
  name: faker.commerce.productName(),
60
- canvas: makeRef(live(CanvasType, {
84
+ canvas: Ref.make(Obj.make(CanvasType, {
61
85
  content: {}
62
86
  }))
63
87
  }));
@@ -131,7 +155,7 @@ var staticGenerators = /* @__PURE__ */ new Map([
131
155
  value: new DXN(DXN.kind.QUEUE, [
132
156
  "data",
133
157
  space.id,
134
- ObjectId.random()
158
+ Key.ObjectId.random()
135
159
  ]).toString()
136
160
  }).createNode({
137
161
  id: "gpt-APPEND",
@@ -177,37 +201,6 @@ var staticGenerators = /* @__PURE__ */ new Map([
177
201
  }
178
202
  ]
179
203
  ]);
180
- var createGenerator = (type) => {
181
- return async (space, n, cb) => {
182
- const schema = await space.db.schemaRegistry.query({
183
- typename: type.typename
184
- }).firstOrUndefined() ?? (await space.db.schemaRegistry.register([
185
- type
186
- ]))[0];
187
- const generate = createAsyncGenerator(generator, schema.snapshot, {
188
- db: space.db
189
- });
190
- const objects = await generate.createObjects(n);
191
- const { objects: tables } = await space.db.query(Filter.type(TableType)).run();
192
- const table = tables.find((table2) => table2.view?.target?.query?.typename === type.typename);
193
- if (!table) {
194
- const name = type.typename.split("/").pop() ?? type.typename;
195
- const view = createView({
196
- name,
197
- typename: type.typename,
198
- jsonSchema: schema.jsonSchema
199
- });
200
- const table2 = space.db.add(live(TableType, {
201
- name,
202
- view: makeRef(view)
203
- }));
204
- cb?.([
205
- table2
206
- ]);
207
- }
208
- return objects;
209
- };
210
- };
211
204
 
212
205
  // packages/plugins/plugin-debug/src/components/SpaceGenerator/SchemaTable.tsx
213
206
  import { useSignals as _useSignals } from "@preact-signals/safe-react/tracking";
@@ -218,17 +211,13 @@ var SchemaTable = ({ types, objects = {}, label, onClick }) => {
218
211
  try {
219
212
  return /* @__PURE__ */ React.createElement("div", {
220
213
  className: "grid grid-cols-[1fr_80px_40px] gap-1 overflow-none"
221
- }, /* @__PURE__ */ React.createElement("div", {
222
- className: "grid grid-cols-subgrid col-span-3"
223
- }, /* @__PURE__ */ React.createElement("div", {
224
- className: "px-2 text-sm text-primary-500"
225
- }, label), /* @__PURE__ */ React.createElement("div", {
226
- className: "px-2 text-xs text-subdued text-right"
227
- }, "count")), types.map((type) => /* @__PURE__ */ React.createElement("div", {
214
+ }, /* @__PURE__ */ React.createElement("h2", {
215
+ className: "p-2"
216
+ }, label), types.map((type) => /* @__PURE__ */ React.createElement("div", {
228
217
  key: type.typename,
229
218
  className: "grid grid-cols-subgrid col-span-3 items-center"
230
219
  }, /* @__PURE__ */ React.createElement("div", {
231
- className: "px-2 text-sm font-mono text-green-500"
220
+ className: "px-2 text-sm font-mono text-subdued"
232
221
  }, type.typename), /* @__PURE__ */ React.createElement("div", {
233
222
  className: "px-2 text-right font-mono"
234
223
  }, objects[type.typename] ?? 0), /* @__PURE__ */ React.createElement(IconButton, {
@@ -246,12 +235,9 @@ var SchemaTable = ({ types, objects = {}, label, onClick }) => {
246
235
  // packages/plugins/plugin-debug/src/components/SpaceGenerator/presets.ts
247
236
  import { Schema, SchemaAST } from "effect";
248
237
  import { NODE_INPUT as NODE_INPUT2 } from "@dxos/conductor";
249
- import { Ref } from "@dxos/echo";
250
- import { ObjectId as ObjectId2, toJsonSchema } from "@dxos/echo-schema";
238
+ import { DXN as DXN2, Key as Key2, Obj as Obj2, Ref as Ref2, Type } from "@dxos/echo";
251
239
  import { FunctionTrigger, TriggerKind, EmailTriggerOutput } from "@dxos/functions";
252
240
  import { invariant } from "@dxos/invariant";
253
- import { DXN as DXN2 } from "@dxos/keys";
254
- import { live as live2, makeRef as makeRef2 } from "@dxos/live-object";
255
241
  import { Filter as Filter2 } from "@dxos/react-client/echo";
256
242
  import { createAppend, createChat, createComputeGraph, createConstant, createFunction, createGpt, createQueue, createSurface, createRandom, createTemplate, createText, createTrigger } from "@dxos/react-ui-canvas-compute";
257
243
  import { CanvasBoardType, CanvasGraphModel, pointMultiply, pointsToRect, rectToPoints } from "@dxos/react-ui-canvas-editor";
@@ -270,7 +256,7 @@ var PresetName = /* @__PURE__ */ function(PresetName2) {
270
256
  PresetName2["KANBAN_QUEUE"] = "kanban-queue";
271
257
  return PresetName2;
272
258
  }({});
273
- var presets = {
259
+ var generator2 = () => ({
274
260
  schemas: [
275
261
  CanvasBoardType,
276
262
  FunctionTrigger
@@ -372,7 +358,7 @@ var presets = {
372
358
  const emailTable = results.find((r) => r.object?.view?.target?.query?.typename?.endsWith("Email"));
373
359
  invariant(emailTable, "Email table not found.", {
374
360
  F: __dxlog_file,
375
- L: 139,
361
+ L: 136,
376
362
  S: void 0,
377
363
  A: [
378
364
  "emailTable",
@@ -442,7 +428,7 @@ var presets = {
442
428
  const templateComputeNode = computeModel.nodes.find((n2) => n2.id === template.node);
443
429
  invariant(templateComputeNode, "Template compute node was not created.", {
444
430
  F: __dxlog_file,
445
- L: 185,
431
+ L: 182,
446
432
  S: void 0,
447
433
  A: [
448
434
  "templateComputeNode",
@@ -450,7 +436,7 @@ var presets = {
450
436
  ]
451
437
  });
452
438
  templateComputeNode.value = templateContent.join("\n");
453
- templateComputeNode.inputSchema = toJsonSchema(EmailTriggerOutput);
439
+ templateComputeNode.inputSchema = Type.toJsonSchema(EmailTriggerOutput);
454
440
  attachTrigger(functionTrigger, computeModel);
455
441
  return addToSpace("email-table", space, canvasModel, computeModel);
456
442
  });
@@ -518,7 +504,7 @@ var presets = {
518
504
  const emailTable = results.find((r) => r.object?.view?.target?.query?.typename?.endsWith("Email"));
519
505
  invariant(emailTable, "Email table not found.", {
520
506
  F: __dxlog_file,
521
- L: 236,
507
+ L: 233,
522
508
  S: void 0,
523
509
  A: [
524
510
  "emailTable",
@@ -652,7 +638,7 @@ var presets = {
652
638
  const templateComputeNode = computeModel.nodes.find((n2) => n2.id === template.node);
653
639
  invariant(templateComputeNode, "Template compute node was not created.", {
654
640
  F: __dxlog_file,
655
- L: 308,
641
+ L: 305,
656
642
  S: void 0,
657
643
  A: [
658
644
  "templateComputeNode",
@@ -663,7 +649,7 @@ var presets = {
663
649
  const extendedSchema = Schema.extend(EmailTriggerOutput, Schema.Struct({
664
650
  text: Schema.String
665
651
  }));
666
- templateComputeNode.inputSchema = toJsonSchema(extendedSchema);
652
+ templateComputeNode.inputSchema = Type.toJsonSchema(extendedSchema);
667
653
  attachTrigger(functionTrigger, computeModel);
668
654
  return addToSpace("email-gptSummary-table", space, canvasModel, computeModel);
669
655
  });
@@ -747,7 +733,7 @@ var presets = {
747
733
  value: new DXN2(DXN2.kind.QUEUE, [
748
734
  "data",
749
735
  space.id,
750
- ObjectId2.random()
736
+ Key2.ObjectId.random()
751
737
  ]).toString(),
752
738
  ...position({
753
739
  x: -10,
@@ -806,7 +792,7 @@ var presets = {
806
792
  const messages = results.find((r) => r.object?.view?.target?.query?.typename?.endsWith("Message"));
807
793
  invariant(messages, "Table not found.", {
808
794
  F: __dxlog_file,
809
- L: 414,
795
+ L: 411,
810
796
  S: void 0,
811
797
  A: [
812
798
  "messages",
@@ -856,7 +842,7 @@ var presets = {
856
842
  }
857
843
  ]
858
844
  ]
859
- };
845
+ });
860
846
  var createQueueSinkPreset = (space, triggerKind, initSpec, triggerOutputName) => {
861
847
  const canvasModel = CanvasGraphModel.create();
862
848
  const template = canvasModel.createNode(createTemplate({
@@ -923,7 +909,7 @@ var createQueueSinkPreset = (space, triggerKind, initSpec, triggerOutputName) =>
923
909
  const triggerSpec = functionTrigger.spec;
924
910
  invariant(triggerSpec && triggerSpec.kind === triggerKind, "No trigger spec.", {
925
911
  F: __dxlog_file,
926
- L: 497,
912
+ L: 494,
927
913
  S: void 0,
928
914
  A: [
929
915
  "triggerSpec && triggerSpec.kind === triggerKind",
@@ -936,7 +922,7 @@ var createQueueSinkPreset = (space, triggerKind, initSpec, triggerOutputName) =>
936
922
  const templateComputeNode = computeModel.nodes.find((n) => n.id === template.node);
937
923
  invariant(templateComputeNode, "Template compute node was not created.", {
938
924
  F: __dxlog_file,
939
- L: 504,
925
+ L: 501,
940
926
  S: void 0,
941
927
  A: [
942
928
  "templateComputeNode",
@@ -949,7 +935,7 @@ var createQueueSinkPreset = (space, triggerKind, initSpec, triggerOutputName) =>
949
935
  ' "id": "@{{changeId}}"',
950
936
  "}"
951
937
  ].join("\n");
952
- templateComputeNode.inputSchema = toJsonSchema(Schema.Struct({
938
+ templateComputeNode.inputSchema = Type.toJsonSchema(Schema.Struct({
953
939
  type: Schema.String,
954
940
  changeId: Schema.String
955
941
  }));
@@ -960,9 +946,9 @@ var createQueueSinkPreset = (space, triggerKind, initSpec, triggerOutputName) =>
960
946
  };
961
947
  };
962
948
  var addToSpace = (name, space, canvas, compute) => {
963
- return space.db.add(live2(CanvasBoardType, {
949
+ return space.db.add(Obj2.make(CanvasBoardType, {
964
950
  name,
965
- computeGraph: makeRef2(compute.root),
951
+ computeGraph: Ref2.make(compute.root),
966
952
  layout: canvas.graph
967
953
  }));
968
954
  };
@@ -971,7 +957,7 @@ var setupQueue = (space, canvasModel, args) => {
971
957
  value: new DXN2(DXN2.kind.QUEUE, [
972
958
  "data",
973
959
  space.id,
974
- ObjectId2.random()
960
+ Key2.ObjectId.random()
975
961
  ]).toString(),
976
962
  ...args?.idPosition ? rawPosition(args.idPosition) : position({
977
963
  x: -18,
@@ -998,14 +984,14 @@ var setupQueue = (space, canvasModel, args) => {
998
984
  var attachTrigger = (functionTrigger, computeModel) => {
999
985
  invariant(functionTrigger, void 0, {
1000
986
  F: __dxlog_file,
1001
- L: 544,
987
+ L: 540,
1002
988
  S: void 0,
1003
989
  A: [
1004
990
  "functionTrigger",
1005
991
  ""
1006
992
  ]
1007
993
  });
1008
- functionTrigger.function = Ref.make(computeModel.root);
994
+ functionTrigger.function = Ref2.make(computeModel.root);
1009
995
  const inputNode = computeModel.nodes.find((node) => node.type === NODE_INPUT2);
1010
996
  functionTrigger.inputNodeId = inputNode.id;
1011
997
  };
@@ -1074,6 +1060,7 @@ var SpaceGenerator = ({ space, onCreateObjects }) => {
1074
1060
  ];
1075
1061
  const [count, setCount] = useState(1);
1076
1062
  const [info, setInfo] = useState({});
1063
+ const presets = useMemo(() => generator2(), []);
1077
1064
  const typeMap = useMemo(() => {
1078
1065
  client.addTypes([
1079
1066
  ...staticTypes,
@@ -1137,11 +1124,11 @@ var SpaceGenerator = ({ space, onCreateObjects }) => {
1137
1124
  try {
1138
1125
  const content = await file.text();
1139
1126
  const data = JSON.parse(content);
1140
- const schemas = await space.db.schemaRegistry.register(data.schemas.map(toEffectSchema));
1127
+ const schemas = await space.db.schemaRegistry.register(data.schemas.map(Type2.toEffectSchema));
1141
1128
  await Promise.all(schemas.map(async (schema) => {
1142
1129
  const parts = schema.typename.split("/");
1143
1130
  const name = parts[parts.length - 1];
1144
- const table = live3(TableType3, {
1131
+ const table = Obj3.make(TableType3, {
1145
1132
  name,
1146
1133
  threads: []
1147
1134
  });
@@ -1171,7 +1158,7 @@ var SpaceGenerator = ({ space, onCreateObjects }) => {
1171
1158
  });
1172
1159
  return;
1173
1160
  }
1174
- const object = live3(schema, fields);
1161
+ const object = Obj3.make(schema, fields);
1175
1162
  space.db.add(object);
1176
1163
  return object;
1177
1164
  }));
@@ -1188,9 +1175,9 @@ var SpaceGenerator = ({ space, onCreateObjects }) => {
1188
1175
  }, []);
1189
1176
  return /* @__PURE__ */ React2.createElement("div", {
1190
1177
  role: "none",
1191
- className: "flex flex-col divide-y divide-separator overflow-y-auto"
1178
+ className: "flex flex-col grow overflow-hidden"
1192
1179
  }, /* @__PURE__ */ React2.createElement(Toolbar.Root, {
1193
- classNames: "p-1"
1180
+ classNames: "border-be border-subduedSeparator"
1194
1181
  }, /* @__PURE__ */ React2.createElement(IconButton2, {
1195
1182
  icon: "ph--arrow-clockwise--regular",
1196
1183
  iconOnly: true,
@@ -1203,17 +1190,18 @@ var SpaceGenerator = ({ space, onCreateObjects }) => {
1203
1190
  onClick: handleLoadTables
1204
1191
  }), /* @__PURE__ */ React2.createElement(Toolbar.Separator, {
1205
1192
  variant: "gap"
1206
- }), /* @__PURE__ */ React2.createElement("div", {
1207
- className: "flex"
1208
- }, /* @__PURE__ */ React2.createElement(Input.Root, null, /* @__PURE__ */ React2.createElement(Input.TextInput, {
1193
+ }), /* @__PURE__ */ React2.createElement(Input.Root, null, /* @__PURE__ */ React2.createElement(Input.TextInput, {
1209
1194
  type: "number",
1210
1195
  min: 1,
1211
1196
  max: 100,
1212
1197
  placeholder: "Count",
1213
- classNames: "w-[80px]",
1198
+ classNames: "!w-[4rem] !text-right",
1199
+ size: 8,
1214
1200
  value: count,
1215
1201
  onChange: (ev) => setCount(parseInt(ev.target.value))
1216
- })))), /* @__PURE__ */ React2.createElement(SchemaTable, {
1202
+ }))), /* @__PURE__ */ React2.createElement("div", {
1203
+ className: "flex flex-col overflow-y-auto divide-y divide-separator"
1204
+ }, /* @__PURE__ */ React2.createElement(SchemaTable, {
1217
1205
  types: staticTypes,
1218
1206
  objects: info.objects,
1219
1207
  label: "Static Types",
@@ -1228,7 +1216,7 @@ var SpaceGenerator = ({ space, onCreateObjects }) => {
1228
1216
  objects: info.objects,
1229
1217
  label: "Presets",
1230
1218
  onClick: handleCreateData
1231
- }), /* @__PURE__ */ React2.createElement(SyntaxHighlighter, {
1219
+ }), /* @__PURE__ */ React2.createElement("div", null, /* @__PURE__ */ React2.createElement(SyntaxHighlighter, {
1232
1220
  classNames: "flex text-xs",
1233
1221
  language: "json"
1234
1222
  }, JSON.stringify({
@@ -1236,7 +1224,7 @@ var SpaceGenerator = ({ space, onCreateObjects }) => {
1236
1224
  ...info
1237
1225
  }, jsonKeyReplacer({
1238
1226
  truncate: true
1239
- }), 2)));
1227
+ }), 2)))));
1240
1228
  } finally {
1241
1229
  _effect.f();
1242
1230
  }
@@ -1247,4 +1235,4 @@ var SpaceGenerator_default = SpaceGenerator;
1247
1235
  export {
1248
1236
  SpaceGenerator_default as default
1249
1237
  };
1250
- //# sourceMappingURL=SpaceGenerator-RHQLPN44.mjs.map
1238
+ //# sourceMappingURL=SpaceGenerator-VB6IB2LL.mjs.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../src/components/SpaceGenerator/SpaceGenerator.tsx", "../../../src/components/SpaceGenerator/ObjectGenerator.tsx", "../../../src/components/SpaceGenerator/SchemaTable.tsx", "../../../src/components/SpaceGenerator/presets.ts", "../../../src/components/SpaceGenerator/index.ts"],
4
+ "sourcesContent": ["//\n// Copyright 2024 DXOS.org\n//\n\nimport React, { useCallback, useMemo, useState } from 'react';\n\nimport { createIntent, useIntentDispatcher } from '@dxos/app-framework';\nimport { ComputeGraph } from '@dxos/conductor';\nimport { Filter, Obj, Type } from '@dxos/echo';\nimport { log } from '@dxos/log';\nimport { DocumentType } from '@dxos/plugin-markdown/types';\nimport { SheetType } from '@dxos/plugin-sheet/types';\nimport { DiagramType } from '@dxos/plugin-sketch/types';\nimport { SpaceAction } from '@dxos/plugin-space/types';\nimport { useClient } from '@dxos/react-client';\nimport { getTypename, type Space } from '@dxos/react-client/echo';\nimport { IconButton, Input, Toolbar, useAsyncEffect } from '@dxos/react-ui';\nimport { SyntaxHighlighter } from '@dxos/react-ui-syntax-highlighter';\nimport { initializeTable, TableType } from '@dxos/react-ui-table';\nimport { DataType } from '@dxos/schema';\nimport { jsonKeyReplacer, sortKeys } from '@dxos/util';\n\nimport { createGenerator, staticGenerators, type ObjectGenerator } from './ObjectGenerator';\nimport { SchemaTable } from './SchemaTable';\nimport { generator } from './presets';\n\nexport type SpaceGeneratorProps = {\n space: Space;\n onCreateObjects?: (objects: Obj.Any[]) => void;\n};\n\nexport const SpaceGenerator = ({ space, onCreateObjects }: SpaceGeneratorProps) => {\n const { dispatchPromise: dispatch } = useIntentDispatcher();\n const client = useClient();\n const staticTypes = [DocumentType, DiagramType, SheetType, ComputeGraph]; // TODO(burdon): Make extensible.\n const mutableTypes = [DataType.Organization, DataType.Project, DataType.Person, DataType.Message];\n const [count, setCount] = useState(1);\n const [info, setInfo] = useState<any>({});\n const presets = useMemo(() => generator(), []);\n\n // Create type generators.\n const typeMap = useMemo(() => {\n client.addTypes([...staticTypes, ...presets.schemas]);\n const mutableGenerators = new Map<string, ObjectGenerator<any>>(\n mutableTypes.map((type) => [type.typename, createGenerator(type as any)]),\n );\n\n return new Map([...staticGenerators, ...presets.items, ...mutableGenerators]);\n }, [client, mutableTypes]);\n\n // Query space to get info.\n const updateInfo = async () => {\n // Create schema map.\n const echoSchema = await space.db.schemaRegistry.query().run();\n const staticSchema = space.db.graph.schemaRegistry.schemas;\n\n // Create object map.\n const { objects } = await space.db.query(Filter.everything()).run();\n const objectMap = sortKeys(\n objects.reduce<Record<string, number>>((map, obj) => {\n const type = getTypename(obj);\n if (type) {\n const count = map[type] ?? 0;\n map[type] = count + 1;\n }\n return map;\n }, {}),\n );\n\n setInfo({\n schema: {\n static: staticSchema.length,\n mutable: echoSchema.length,\n },\n objects: objectMap,\n });\n };\n\n useAsyncEffect(updateInfo, [space]);\n\n const handleCreateData = useCallback(\n async (typename: string) => {\n const constructor = typeMap.get(typename);\n if (constructor) {\n // TODO(burdon): Input to specify number of objects.\n await constructor(space, count, onCreateObjects);\n await updateInfo();\n }\n },\n [typeMap, count],\n );\n\n // TODO(wittjosiah): Remove. Replace with proper echo import.\n const handleLoadTables = useCallback(async () => {\n const input = document.createElement('input');\n input.type = 'file';\n input.accept = '.json';\n\n input.onchange = async (e) => {\n const file = (e.target as HTMLInputElement).files?.[0];\n if (!file) {\n return;\n }\n\n try {\n const content = await file.text();\n const data = JSON.parse(content);\n const schemas = await space.db.schemaRegistry.register(data.schemas.map(Type.toEffectSchema));\n // TODO(wittjosiah): If the schema is already registered this should skip.\n await Promise.all(\n schemas.map(async (schema) => {\n const parts = schema.typename.split('/');\n const name = parts[parts.length - 1];\n const table = Obj.make(TableType, { name, threads: [] });\n await initializeTable({ client, space, table, typename: schema.typename });\n await dispatch(createIntent(SpaceAction.AddObject, { target: space, object: table }));\n return table;\n }),\n );\n // TODO(wittjosiah): This should query the space for schemas.\n await Promise.all(\n data.objects.map(async ({ id, '@type': typename, ...fields }: any) => {\n const schema = schemas.find((s) => `dxn:type:${s.typename}:${s.version}` === typename);\n if (!schema) {\n log.warn('Missing schema for object', { id, typename });\n return;\n }\n const object = Obj.make(schema, fields);\n space.db.add(object);\n return object;\n }),\n );\n } catch (err) {\n log.catch(err);\n }\n };\n\n input.click();\n }, []);\n\n return (\n <div role='none' className='flex flex-col grow overflow-hidden'>\n <Toolbar.Root classNames='border-be border-subduedSeparator'>\n <IconButton icon='ph--arrow-clockwise--regular' iconOnly label='Refresh' onClick={updateInfo} />\n <IconButton\n icon='ph--file-arrow-up--regular'\n iconOnly\n label='Load tables from JSON'\n onClick={handleLoadTables}\n />\n <Toolbar.Separator variant='gap' />\n <Input.Root>\n <Input.TextInput\n type='number'\n min={1}\n max={100}\n placeholder={'Count'}\n classNames='!w-[4rem] !text-right'\n size={8}\n value={count}\n onChange={(ev) => setCount(parseInt(ev.target.value))}\n />\n </Input.Root>\n </Toolbar.Root>\n\n <div className='flex flex-col overflow-y-auto divide-y divide-separator'>\n <SchemaTable types={staticTypes} objects={info.objects} label='Static Types' onClick={handleCreateData} />\n <SchemaTable types={mutableTypes} objects={info.objects} label='Mutable Types' onClick={handleCreateData} />\n <SchemaTable types={presets.types} objects={info.objects} label='Presets' onClick={handleCreateData} />\n\n <div>\n <SyntaxHighlighter classNames='flex text-xs' language='json'>\n {JSON.stringify({ space, ...info }, jsonKeyReplacer({ truncate: true }), 2)}\n </SyntaxHighlighter>\n </div>\n </div>\n </div>\n );\n};\n", "//\n// Copyright 2024 DXOS.org\n//\n\nimport { addressToA1Notation } from '@dxos/compute';\nimport { ComputeGraph, ComputeGraphModel, DEFAULT_OUTPUT, NODE_INPUT, NODE_OUTPUT } from '@dxos/conductor';\nimport { DXN, Filter, Key, Obj, Ref } from '@dxos/echo';\nimport { type TypedObject } from '@dxos/echo-schema';\nimport { DocumentType } from '@dxos/plugin-markdown/types';\nimport { createSheet } from '@dxos/plugin-sheet/types';\nimport { SheetType, type CellValue } from '@dxos/plugin-sheet/types';\nimport { CanvasType, DiagramType } from '@dxos/plugin-sketch/types';\nimport { faker } from '@dxos/random';\nimport { type Space } from '@dxos/react-client/echo';\nimport { TableType } from '@dxos/react-ui-table';\nimport { createView, DataType } from '@dxos/schema';\nimport { createAsyncGenerator, type ValueGenerator } from '@dxos/schema/testing';\nimport { range } from '@dxos/util';\n\nconst generator: ValueGenerator = faker as any;\n\nexport type ObjectGenerator<T extends Obj.Any> = (space: Space, n: number, cb?: (objects: T[]) => void) => Promise<T[]>;\n\nexport const createGenerator = <T extends Obj.Any>(type: TypedObject<T>): ObjectGenerator<T> => {\n return async (space: Space, n: number, cb?: (objects: T[]) => void): Promise<T[]> => {\n // Find or create mutable schema.\n const schema =\n (await space.db.schemaRegistry.query({ typename: type.typename }).firstOrUndefined()) ??\n (await space.db.schemaRegistry.register([type]))[0];\n\n // Create objects.\n const generate = createAsyncGenerator(generator, schema.snapshot, { db: space.db });\n const objects = await generate.createObjects(n);\n\n // Find or create table and view.\n const { objects: tables } = await space.db.query(Filter.type(TableType)).run();\n const table = tables.find((table) => table.view?.target?.query?.typename === type.typename);\n if (!table) {\n const name = type.typename.split('/').pop() ?? type.typename;\n const view = createView({ name, typename: type.typename, jsonSchema: schema.jsonSchema });\n space.db.add(Obj.make(TableType, { name, view: Ref.make(view) }));\n }\n\n return objects;\n };\n};\n\nexport const staticGenerators = new Map<string, ObjectGenerator<any>>([\n [\n DocumentType.typename,\n async (space, n, cb) => {\n const objects = range(n).map(() => {\n return space.db.add(\n Obj.make(DocumentType, {\n name: faker.commerce.productName(),\n content: Ref.make(Obj.make(DataType.Text, { content: faker.lorem.sentences(5) })),\n }),\n );\n });\n\n cb?.(objects);\n return objects;\n },\n ],\n [\n DiagramType.typename,\n async (space, n, cb) => {\n const objects = range(n).map(() => {\n // TODO(burdon): Generate diagram.\n const obj = space.db.add(\n Obj.make(DiagramType, {\n name: faker.commerce.productName(),\n canvas: Ref.make(Obj.make(CanvasType, { content: {} })),\n }),\n );\n\n return obj;\n });\n\n cb?.(objects);\n return objects;\n },\n ],\n // TODO(burdon): Create unit tests.\n [\n SheetType.typename,\n async (space, n, cb) => {\n const objects = range(n).map(() => {\n const cells: Record<string, CellValue> = {};\n const year = new Date().getFullYear();\n const cols = 4;\n const rows = 16;\n for (let col = 1; col <= cols; col++) {\n for (let row = 1; row <= rows; row++) {\n const cell = addressToA1Notation({ col, row });\n if (row === 1) {\n cells[cell] = { value: `${year} Q${col}` };\n } else if (row === rows) {\n const from = addressToA1Notation({ col, row: 2 });\n const to = addressToA1Notation({ col, row: rows - 1 });\n cells[cell] = { value: `=SUM(${from}:${to})` };\n } else if (row > 2 && row < rows - 1) {\n cells[cell] = { value: Math.floor(Math.random() * 10_000) };\n }\n }\n }\n\n // TODO(burdon): Set width.\n // TODO(burdon): Set formatting for columns.\n return space.db.add(\n createSheet({\n name: faker.commerce.productName(),\n cells,\n }),\n );\n });\n\n cb?.(objects);\n return objects;\n },\n ],\n [\n ComputeGraph.typename,\n async (space, n, cb) => {\n const objects = range(n, () => {\n const model = ComputeGraphModel.create();\n model.builder\n .createNode({ id: 'gpt-INPUT', type: NODE_INPUT })\n .createNode({ id: 'gpt-GPT', type: 'gpt' })\n .createNode({\n id: 'gpt-QUEUE_ID',\n type: 'constant',\n value: new DXN(DXN.kind.QUEUE, ['data', space.id, Key.ObjectId.random()]).toString(),\n })\n .createNode({ id: 'gpt-APPEND', type: 'append' })\n .createNode({ id: 'gpt-OUTPUT', type: NODE_OUTPUT })\n .createEdge({ node: 'gpt-INPUT', property: 'prompt' }, { node: 'gpt-GPT', property: 'prompt' })\n .createEdge({ node: 'gpt-GPT', property: 'text' }, { node: 'gpt-OUTPUT', property: 'text' })\n .createEdge({ node: 'gpt-QUEUE_ID', property: DEFAULT_OUTPUT }, { node: 'gpt-APPEND', property: 'id' })\n .createEdge({ node: 'gpt-GPT', property: 'messages' }, { node: 'gpt-APPEND', property: 'items' })\n .createEdge({ node: 'gpt-QUEUE_ID', property: DEFAULT_OUTPUT }, { node: 'gpt-OUTPUT', property: 'queue' });\n\n return space.db.add(model.root);\n });\n cb?.(objects);\n return objects;\n },\n ],\n]);\n", "//\n// Copyright 2024 DXOS.org\n//\n\nimport React from 'react';\n\nimport { IconButton } from '@dxos/react-ui';\n\nexport type SchemaTableProps = {\n types: any[];\n objects?: Record<string, number | undefined>;\n label: string;\n onClick: (typename: string) => void;\n};\n\nexport const SchemaTable = ({ types, objects = {}, label, onClick }: SchemaTableProps) => {\n return (\n <div className='grid grid-cols-[1fr_80px_40px] gap-1 overflow-none'>\n <h2 className='p-2'>{label}</h2>\n {types.map((type) => (\n <div key={type.typename} className='grid grid-cols-subgrid col-span-3 items-center'>\n <div className='px-2 text-sm font-mono text-subdued'>{type.typename}</div>\n <div className='px-2 text-right font-mono'>{objects[type.typename] ?? 0}</div>\n <IconButton\n variant='ghost'\n icon='ph--plus--regular'\n iconOnly\n label='Create data'\n onClick={() => onClick(type.typename)}\n />\n </div>\n ))}\n </div>\n );\n};\n", "//\n// Copyright 2025 DXOS.org\n//\n\nimport { Schema, SchemaAST } from 'effect';\n\nimport { type ComputeGraphModel, NODE_INPUT } from '@dxos/conductor';\nimport { DXN, Key, Obj, Ref, Type } from '@dxos/echo';\nimport { FunctionTrigger, TriggerKind, EmailTriggerOutput, type TriggerType } from '@dxos/functions';\nimport { invariant } from '@dxos/invariant';\nimport { Filter, type Space } from '@dxos/react-client/echo';\nimport {\n type ComputeShape,\n createAppend,\n createChat,\n createComputeGraph,\n createConstant,\n createFunction,\n createGpt,\n createQueue,\n createSurface,\n createRandom,\n createTemplate,\n createText,\n createTrigger,\n} from '@dxos/react-ui-canvas-compute';\nimport {\n CanvasBoardType,\n CanvasGraphModel,\n pointMultiply,\n pointsToRect,\n rectToPoints,\n} from '@dxos/react-ui-canvas-editor';\nimport { TableType } from '@dxos/react-ui-table';\nimport { range } from '@dxos/util';\n\nimport { type ObjectGenerator } from './ObjectGenerator';\n\nexport enum PresetName {\n EMAIL_TABLE = 'email-table',\n GPT_QUEUE = 'webhook-gpt-queue',\n CHAT_GPT = 'chat-gpt-text',\n EMAIL_WITH_SUMMARY = 'email-gptSummary-table',\n OBJECT_CHANGE_QUEUE = 'objectChange-queue',\n FOREX_FUNCTION_CALL = 'forex-function-call',\n TIMER_TICK_QUEUE = 'timerTick-queue',\n DISCORD_MESSAGES = 'discord-messages',\n KANBAN_QUEUE = 'kanban-queue',\n}\n\nexport const generator = () => ({\n schemas: [CanvasBoardType, FunctionTrigger],\n types: Object.values(PresetName).map((name) => ({ typename: name })),\n items: [\n [\n PresetName.GPT_QUEUE,\n async (space, n, cb) => {\n const objects = range(n, () => {\n const canvasModel = CanvasGraphModel.create<ComputeShape>();\n\n let functionTrigger: FunctionTrigger | undefined;\n canvasModel.builder.call((builder) => {\n const gpt = canvasModel.createNode(createGpt(position({ x: 0, y: -14 })));\n const triggerShape = createTrigger({\n spaceId: space.id,\n triggerKind: TriggerKind.Webhook,\n ...position({ x: -18, y: -2 }),\n });\n const trigger = canvasModel.createNode(triggerShape);\n const text = canvasModel.createNode(createText(position({ x: 19, y: 3, width: 10, height: 10 })));\n const { queueId } = setupQueue(space, canvasModel);\n const append = canvasModel.createNode(createAppend(position({ x: 10, y: 6 })));\n\n builder\n .createEdge({ source: trigger.id, target: gpt.id, input: 'prompt', output: 'bodyText' })\n .createEdge({ source: gpt.id, target: text.id, output: 'text' })\n .createEdge({ source: queueId.id, target: append.id, input: 'id' })\n .createEdge({ source: gpt.id, target: append.id, output: 'messages', input: 'items' });\n\n functionTrigger = triggerShape.functionTrigger!.target!;\n });\n\n const computeModel = createComputeGraph(canvasModel);\n\n attachTrigger(functionTrigger, computeModel);\n\n return addToSpace(PresetName.GPT_QUEUE, space, canvasModel, computeModel);\n });\n cb?.(objects);\n return objects;\n },\n ],\n\n [\n PresetName.OBJECT_CHANGE_QUEUE,\n async (space, n, cb) => {\n const objects = range(n, () => {\n const { canvasModel, computeModel } = createQueueSinkPreset(\n space,\n TriggerKind.Subscription,\n (triggerSpec) => (triggerSpec.filter = { type: 'dxn:type:dxos.org/type/Chess' }),\n 'type',\n );\n return addToSpace(PresetName.OBJECT_CHANGE_QUEUE, space, canvasModel, computeModel);\n });\n cb?.(objects);\n return objects;\n },\n ],\n\n [\n PresetName.TIMER_TICK_QUEUE,\n async (space, n, cb) => {\n const objects = range(n, () => {\n const { canvasModel, computeModel } = createQueueSinkPreset(\n space,\n TriggerKind.Timer,\n (triggerSpec) => (triggerSpec.cron = '*/5 * * * * *'),\n 'result',\n );\n return addToSpace(PresetName.TIMER_TICK_QUEUE, space, canvasModel, computeModel);\n });\n cb?.(objects);\n return objects;\n },\n ],\n\n [\n PresetName.EMAIL_TABLE,\n async (space, n, cb) => {\n const objects = range(n, () => {\n const canvasModel = CanvasGraphModel.create<ComputeShape>();\n\n const results = space.db.query(Filter.type(TableType)).runSync();\n const emailTable = results.find((r) => r.object?.view?.target?.query?.typename?.endsWith('Email'));\n invariant(emailTable, 'Email table not found.');\n\n const template = canvasModel.createNode(\n createTemplate({\n valueType: 'object',\n ...rawPosition({ centerX: -80, centerY: -64, width: 320, height: 320 }),\n }),\n );\n const templateContent = ['{'];\n\n let functionTrigger: FunctionTrigger | undefined;\n canvasModel.builder.call((builder) => {\n const triggerShape = createTrigger({\n spaceId: space.id,\n triggerKind: TriggerKind.Email,\n ...position({ x: -18, y: -2 }),\n });\n const trigger = canvasModel.createNode(triggerShape);\n\n const tableId = canvasModel.createNode(\n createConstant({\n value: DXN.fromLocalObjectId(emailTable.id).toString(),\n ...position({ x: -18, y: 5, width: 8, height: 6 }),\n }),\n );\n\n const appendToTable = canvasModel.createNode(createAppend(position({ x: 10, y: 6 })));\n\n const properties = SchemaAST.getPropertySignatures(EmailTriggerOutput.ast);\n for (let i = 0; i < properties.length; i++) {\n const propName = properties[i].name.toString();\n builder.createEdge({ source: trigger.id, target: template.id, input: propName, output: propName });\n templateContent.push(` \"${propName}\": \"{{${propName}}}\"` + (i === properties.length - 1 ? '' : ','));\n }\n templateContent.push('}');\n\n builder\n .createEdge({ source: tableId.id, target: appendToTable.id, input: 'id' })\n .createEdge({ source: template.id, target: appendToTable.id, input: 'items' });\n\n functionTrigger = triggerShape.functionTrigger!.target!;\n });\n\n const computeModel = createComputeGraph(canvasModel);\n\n const templateComputeNode = computeModel.nodes.find((n) => n.id === template.node);\n invariant(templateComputeNode, 'Template compute node was not created.');\n templateComputeNode.value = templateContent.join('\\n');\n templateComputeNode.inputSchema = Type.toJsonSchema(EmailTriggerOutput);\n\n attachTrigger(functionTrigger, computeModel);\n\n return addToSpace(PresetName.EMAIL_TABLE, space, canvasModel, computeModel);\n });\n cb?.(objects);\n return objects;\n },\n ],\n\n [\n PresetName.CHAT_GPT,\n async (space, n, cb) => {\n const objects = range(n, () => {\n const canvasModel = CanvasGraphModel.create<ComputeShape>();\n\n canvasModel.builder.call((builder) => {\n const gpt = canvasModel.createNode(createGpt(position({ x: 0, y: -14 })));\n const chat = canvasModel.createNode(createChat(position({ x: -18, y: -2 })));\n const text = canvasModel.createNode(createText(position({ x: 19, y: 3, width: 10, height: 10 })));\n const { queueId } = setupQueue(space, canvasModel);\n\n const append = canvasModel.createNode(createAppend(position({ x: 10, y: 6 })));\n\n builder\n .createEdge({ source: chat.id, target: gpt.id, input: 'prompt' })\n .createEdge({ source: gpt.id, target: text.id, output: 'text' })\n .createEdge({ source: queueId.id, target: append.id, input: 'id' })\n .createEdge({ source: gpt.id, target: append.id, output: 'messages', input: 'items' });\n });\n\n const computeModel = createComputeGraph(canvasModel);\n\n return addToSpace(PresetName.CHAT_GPT, space, canvasModel, computeModel);\n });\n cb?.(objects);\n return objects;\n },\n ],\n\n [\n PresetName.EMAIL_WITH_SUMMARY,\n async (space, n, cb) => {\n const objects = range(n, () => {\n const canvasModel = CanvasGraphModel.create<ComputeShape>();\n\n const results = space.db.query(Filter.type(TableType)).runSync();\n const emailTable = results.find((r) => r.object?.view?.target?.query?.typename?.endsWith('Email'));\n invariant(emailTable, 'Email table not found.');\n\n const template = canvasModel.createNode(\n createTemplate({\n valueType: 'object',\n ...rawPosition({ centerX: 192, centerY: -176, width: 320, height: 320 }),\n }),\n );\n const templateContent = ['{'];\n\n let functionTrigger: FunctionTrigger | undefined;\n canvasModel.builder.call((builder) => {\n const gpt = canvasModel.createNode(\n createGpt(rawPosition({ centerX: -400, centerY: -112, width: 256, height: 202 })),\n );\n const systemPrompt = canvasModel.createNode(\n createConstant({\n value: \"use one word to describe content category. don't write anything else\",\n ...rawPosition({ centerX: -800, centerY: -160, width: 192, height: 128 }),\n }),\n );\n const triggerShape = createTrigger({\n spaceId: space.id,\n triggerKind: TriggerKind.Email,\n ...rawPosition({ centerX: -736, centerY: -384, width: 182, height: 192 }),\n });\n const trigger = canvasModel.createNode(triggerShape);\n\n const { queueId } = setupQueue(space, canvasModel, {\n idPosition: { centerX: -720, centerY: 224, width: 192, height: 256 },\n queuePosition: { centerX: -144, centerY: 416, width: 320, height: 448 },\n });\n const appendToQueue = canvasModel.createNode(\n createAppend(rawPosition({ centerX: -80, centerY: 96, width: 122, height: 128 })),\n );\n\n const tableId = canvasModel.createNode(\n createConstant({\n value: DXN.fromLocalObjectId(emailTable.id).toString(),\n ...rawPosition({ centerX: -112, centerY: -544, width: 192, height: 256 }),\n }),\n );\n\n const appendToTable = canvasModel.createNode(\n createAppend(rawPosition({ centerX: 560, centerY: -416, width: 128, height: 122 })),\n );\n\n templateContent.push(' \"category\": \"{{text}}\",');\n builder.createEdge({ source: gpt.id, target: template.id, input: 'text', output: 'text' });\n\n const properties = SchemaAST.getPropertySignatures(EmailTriggerOutput.ast);\n for (let i = 0; i < properties.length; i++) {\n const propName = properties[i].name.toString();\n builder.createEdge({ source: trigger.id, target: template.id, input: propName, output: propName });\n templateContent.push(` \"${propName}\": \"{{${propName}}}\"` + (i === properties.length - 1 ? '' : ','));\n }\n templateContent.push('}');\n\n builder\n .createEdge({ source: tableId.id, target: appendToTable.id, input: 'id' })\n .createEdge({ source: queueId.id, target: appendToQueue.id, input: 'id' })\n .createEdge({ source: gpt.id, target: appendToQueue.id, output: 'messages', input: 'items' })\n .createEdge({ source: systemPrompt.id, target: gpt.id, input: 'systemPrompt' })\n .createEdge({ source: trigger.id, target: gpt.id, input: 'prompt', output: 'body' })\n .createEdge({ source: template.id, target: appendToTable.id, input: 'items' });\n\n functionTrigger = triggerShape.functionTrigger!.target!;\n });\n\n const computeModel = createComputeGraph(canvasModel);\n\n const templateComputeNode = computeModel.nodes.find((n) => n.id === template.node);\n invariant(templateComputeNode, 'Template compute node was not created.');\n templateComputeNode.value = templateContent.join('\\n');\n const extendedSchema = Schema.extend(EmailTriggerOutput, Schema.Struct({ text: Schema.String }));\n templateComputeNode.inputSchema = Type.toJsonSchema(extendedSchema);\n\n attachTrigger(functionTrigger, computeModel);\n\n return addToSpace(PresetName.EMAIL_WITH_SUMMARY, space, canvasModel, computeModel);\n });\n cb?.(objects);\n return objects;\n },\n ],\n\n [\n PresetName.FOREX_FUNCTION_CALL,\n async (space, n, cb) => {\n const objects = range(n, () => {\n const canvasModel = CanvasGraphModel.create<ComputeShape>();\n\n canvasModel.builder.call((builder) => {\n const sourceCurrency = canvasModel.createNode(\n createConstant({ value: 'USD', ...position({ x: -10, y: -5 }) }),\n );\n const targetCurrency = canvasModel.createNode(\n createConstant({ value: 'EUR', ...position({ x: -10, y: 5 }) }),\n );\n const converter = canvasModel.createNode(createFunction(position({ x: 0, y: 0 })));\n const view = canvasModel.createNode(createSurface(position({ x: 12, y: 0 })));\n\n builder\n .createEdge({ source: sourceCurrency.id, target: converter.id, input: 'from' })\n .createEdge({ source: targetCurrency.id, target: converter.id, input: 'to' })\n .createEdge({ source: converter.id, target: view.id, output: 'rate' });\n });\n\n const computeModel = createComputeGraph(canvasModel);\n\n return addToSpace(PresetName.FOREX_FUNCTION_CALL, space, canvasModel, computeModel);\n });\n cb?.(objects);\n return objects;\n },\n ],\n\n [\n PresetName.DISCORD_MESSAGES,\n async (space, n, cb) => {\n const objects = range(n, () => {\n const canvasModel = CanvasGraphModel.create<ComputeShape>();\n\n let functionTrigger: FunctionTrigger | undefined;\n canvasModel.builder.call((builder) => {\n const triggerShape = createTrigger({\n spaceId: space.id,\n triggerKind: TriggerKind.Timer,\n ...position({ x: -10, y: -5 }),\n });\n const trigger = canvasModel.createNode(triggerShape);\n // DXOS dev-null channel.\n const channelId = canvasModel.createNode(\n createConstant({ value: '1088569858767212554', ...position({ x: -10, y: 0 }) }),\n );\n const queueId = canvasModel.createNode(\n createConstant({\n value: new DXN(DXN.kind.QUEUE, ['data', space.id, Key.ObjectId.random()]).toString(),\n ...position({ x: -10, y: 5 }),\n }),\n );\n const converter = canvasModel.createNode(createFunction(position({ x: 0, y: 0 })));\n const view = canvasModel.createNode(createText(position({ x: 12, y: 0 })));\n const queue = canvasModel.createNode(createQueue(position({ x: 0, y: 12 })));\n\n builder\n .createEdge({ source: trigger.id, target: converter.id, input: 'tick' })\n .createEdge({ source: channelId.id, target: converter.id, input: 'channelId' })\n .createEdge({ source: queueId.id, target: converter.id, input: 'queueId' })\n .createEdge({ source: converter.id, target: view.id, output: 'newMessages' })\n .createEdge({ source: queueId.id, target: queue.id, input: 'input' });\n\n functionTrigger = triggerShape.functionTrigger!.target!;\n });\n\n const computeModel = createComputeGraph(canvasModel);\n attachTrigger(functionTrigger, computeModel);\n\n return addToSpace(PresetName.DISCORD_MESSAGES, space, canvasModel, computeModel);\n });\n cb?.(objects);\n return objects;\n },\n ],\n\n [\n PresetName.KANBAN_QUEUE,\n async (space, n, cb) => {\n const objects = range(n, () => {\n const canvasModel = CanvasGraphModel.create<ComputeShape>();\n\n // TODO(wittjosiah): Integrate directly w/ Kanban.\n // const results = space.db.query(Filter.type(KanbanType)).runSync();\n // const kanban = results.find((r) => r.object?.cardView?.target?.query?.type?.endsWith('Message'));\n // invariant(kanban, 'Kanban not found.');\n\n const results = space.db.query(Filter.type(TableType)).runSync();\n const messages = results.find((r) => r.object?.view?.target?.query?.typename?.endsWith('Message'));\n invariant(messages, 'Table not found.');\n\n let functionTrigger: FunctionTrigger | undefined;\n canvasModel.builder.call((builder) => {\n const triggerShape = createTrigger({\n spaceId: space.id,\n triggerKind: TriggerKind.Queue,\n ...position({ x: -10, y: -5 }),\n });\n const trigger = canvasModel.createNode(triggerShape);\n\n const tableId = canvasModel.createNode(\n createConstant({\n value: DXN.fromLocalObjectId(messages.id).toString(),\n ...position({ x: -10, y: 5 }),\n }),\n );\n const appendToTable = canvasModel.createNode(createAppend(position({ x: 10, y: 0 })));\n\n builder\n .createEdge({ source: tableId.id, target: appendToTable.id, input: 'id' })\n .createEdge({ source: trigger.id, target: appendToTable.id, input: 'items', output: 'item' });\n\n functionTrigger = triggerShape.functionTrigger!.target!;\n });\n\n const computeModel = createComputeGraph(canvasModel);\n attachTrigger(functionTrigger, computeModel);\n\n return addToSpace(PresetName.KANBAN_QUEUE, space, canvasModel, computeModel);\n });\n cb?.(objects);\n return objects;\n },\n ],\n ] as [PresetName, ObjectGenerator<any>][],\n});\n\nconst createQueueSinkPreset = <SpecType extends TriggerKind>(\n space: Space,\n triggerKind: SpecType,\n initSpec: (spec: Extract<TriggerType, { kind: SpecType }>) => void,\n triggerOutputName: string,\n) => {\n const canvasModel = CanvasGraphModel.create<ComputeShape>();\n\n const template = canvasModel.createNode(\n createTemplate({\n valueType: 'object',\n ...rawPosition({ centerX: -64, centerY: -79, width: 320, height: 320 }),\n }),\n );\n\n let functionTrigger: FunctionTrigger | undefined;\n canvasModel.builder.call((builder) => {\n const triggerShape = createTrigger({\n spaceId: space.id,\n triggerKind,\n ...rawPosition({ centerX: -578, centerY: -187, height: 320, width: 320 }),\n });\n const trigger = canvasModel.createNode(triggerShape);\n const { queueId } = setupQueue(space, canvasModel, {\n queuePosition: { centerX: -80, centerY: 378, width: 320, height: 448 },\n });\n const append = canvasModel.createNode(\n createAppend(rawPosition({ centerX: 320, centerY: 192, width: 128, height: 122 })),\n );\n const random = canvasModel.createNode(\n createRandom(rawPosition({ centerX: -509, centerY: -30, width: 64, height: 64 })),\n );\n\n builder\n .createEdge({ source: queueId.id, target: append.id, input: 'id' })\n .createEdge({ source: template.id, target: append.id, input: 'items' })\n .createEdge({ source: trigger.id, target: template.id, output: triggerOutputName, input: 'type' })\n .createEdge({\n source: random.id,\n target: template.id,\n input: 'changeId',\n });\n\n functionTrigger = triggerShape.functionTrigger!.target!;\n const triggerSpec = functionTrigger.spec;\n invariant(triggerSpec && triggerSpec.kind === triggerKind, 'No trigger spec.');\n initSpec(triggerSpec as any);\n });\n\n const computeModel = createComputeGraph(canvasModel);\n\n const templateComputeNode = computeModel.nodes.find((n) => n.id === template.node);\n invariant(templateComputeNode, 'Template compute node was not created.');\n templateComputeNode.value = ['{', ' \"@type\": \"{{type}}\",', ' \"id\": \"@{{changeId}}\"', '}'].join('\\n');\n templateComputeNode.inputSchema = Type.toJsonSchema(Schema.Struct({ type: Schema.String, changeId: Schema.String }));\n attachTrigger(functionTrigger, computeModel);\n\n return { canvasModel, computeModel };\n};\n\nconst addToSpace = (name: string, space: Space, canvas: CanvasGraphModel, compute: ComputeGraphModel) => {\n return space.db.add(\n Obj.make(CanvasBoardType, {\n name,\n computeGraph: Ref.make(compute.root),\n layout: canvas.graph,\n }),\n );\n};\n\nconst setupQueue = (\n space: Space,\n canvasModel: CanvasGraphModel,\n args?: { idPosition?: RawPositionInput; queuePosition?: RawPositionInput },\n) => {\n const queueId = canvasModel.createNode(\n createConstant({\n value: new DXN(DXN.kind.QUEUE, ['data', space.id, Key.ObjectId.random()]).toString(),\n ...(args?.idPosition ? rawPosition(args.idPosition) : position({ x: -18, y: 5, width: 8, height: 6 })),\n }),\n );\n const queue = canvasModel.createNode(\n createQueue(\n args?.queuePosition ? rawPosition(args.queuePosition) : position({ x: -3, y: 3, width: 14, height: 10 }),\n ),\n );\n canvasModel.createEdge({ source: queueId.id, target: queue.id });\n return { queue, queueId };\n};\n\nconst attachTrigger = (functionTrigger: FunctionTrigger | undefined, computeModel: ComputeGraphModel) => {\n invariant(functionTrigger);\n functionTrigger.function = Ref.make(computeModel.root);\n const inputNode = computeModel.nodes.find((node) => node.type === NODE_INPUT)!;\n functionTrigger.inputNodeId = inputNode.id;\n};\n\ntype RawPositionInput = { centerX: number; centerY: number; width: number; height: number };\n\nconst rawPosition = (args: RawPositionInput) => {\n return { center: { x: args.centerX, y: args.centerY }, size: { width: args.width, height: args.height } };\n};\n\nconst position = (rect: { x: number; y: number; width?: number; height?: number }) => {\n const snap = 32;\n const [center, size] = rectToPoints({ width: 0, height: 0, ...rect });\n const { x, y, width, height } = pointsToRect([pointMultiply(center, snap), pointMultiply(size, snap)]);\n if (width && height) {\n return { center: { x, y }, size: width && height ? { width, height } : undefined };\n } else {\n return { center: { x, y } };\n }\n};\n", "//\n// Copyright 2023 DXOS.org\n//\n\nimport { SpaceGenerator } from './SpaceGenerator';\n\nexport default SpaceGenerator;\n"],
5
+ "mappings": "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",
6
+ "names": ["React", "useCallback", "useMemo", "useState", "createIntent", "useIntentDispatcher", "ComputeGraph", "Filter", "Obj", "Type", "log", "DocumentType", "SheetType", "DiagramType", "SpaceAction", "useClient", "getTypename", "IconButton", "Input", "Toolbar", "useAsyncEffect", "SyntaxHighlighter", "initializeTable", "TableType", "DataType", "jsonKeyReplacer", "sortKeys", "addressToA1Notation", "ComputeGraph", "ComputeGraphModel", "DEFAULT_OUTPUT", "NODE_INPUT", "NODE_OUTPUT", "DXN", "Filter", "Key", "Obj", "Ref", "DocumentType", "createSheet", "SheetType", "CanvasType", "DiagramType", "faker", "TableType", "createView", "DataType", "createAsyncGenerator", "range", "generator", "faker", "createGenerator", "type", "space", "n", "cb", "schema", "db", "schemaRegistry", "query", "typename", "firstOrUndefined", "register", "generate", "createAsyncGenerator", "snapshot", "objects", "createObjects", "tables", "Filter", "TableType", "run", "table", "find", "view", "target", "name", "split", "pop", "createView", "jsonSchema", "add", "Obj", "make", "Ref", "staticGenerators", "Map", "DocumentType", "range", "map", "commerce", "productName", "content", "DataType", "Text", "lorem", "sentences", "DiagramType", "obj", "canvas", "CanvasType", "SheetType", "cells", "year", "Date", "getFullYear", "cols", "rows", "col", "row", "cell", "addressToA1Notation", "value", "from", "to", "Math", "floor", "random", "createSheet", "ComputeGraph", "model", "ComputeGraphModel", "create", "builder", "createNode", "id", "NODE_INPUT", "DXN", "kind", "QUEUE", "Key", "ObjectId", "toString", "NODE_OUTPUT", "createEdge", "node", "property", "DEFAULT_OUTPUT", "root", "React", "IconButton", "SchemaTable", "types", "objects", "label", "onClick", "div", "className", "h2", "map", "type", "key", "typename", "IconButton", "variant", "icon", "iconOnly", "Schema", "SchemaAST", "NODE_INPUT", "DXN", "Key", "Obj", "Ref", "Type", "FunctionTrigger", "TriggerKind", "EmailTriggerOutput", "invariant", "Filter", "createAppend", "createChat", "createComputeGraph", "createConstant", "createFunction", "createGpt", "createQueue", "createSurface", "createRandom", "createTemplate", "createText", "createTrigger", "CanvasBoardType", "CanvasGraphModel", "pointMultiply", "pointsToRect", "rectToPoints", "TableType", "range", "PresetName", "generator", "schemas", "types", "Object", "values", "map", "name", "typename", "items", "space", "n", "cb", "objects", "canvasModel", "create", "functionTrigger", "builder", "call", "gpt", "createNode", "position", "x", "y", "triggerShape", "spaceId", "id", "triggerKind", "Webhook", "trigger", "text", "width", "height", "queueId", "setupQueue", "append", "createEdge", "source", "target", "input", "output", "computeModel", "attachTrigger", "addToSpace", "createQueueSinkPreset", "Subscription", "triggerSpec", "filter", "type", "Timer", "cron", "results", "db", "query", "runSync", "emailTable", "find", "r", "object", "view", "endsWith", "template", "valueType", "rawPosition", "centerX", "centerY", "templateContent", "Email", "tableId", "value", "fromLocalObjectId", "toString", "appendToTable", "properties", "getPropertySignatures", "ast", "i", "length", "propName", "push", "templateComputeNode", "nodes", "node", "join", "inputSchema", "toJsonSchema", "chat", "systemPrompt", "idPosition", "queuePosition", "appendToQueue", "extendedSchema", "extend", "Struct", "String", "sourceCurrency", "targetCurrency", "converter", "channelId", "kind", "QUEUE", "ObjectId", "random", "queue", "messages", "Queue", "initSpec", "triggerOutputName", "spec", "changeId", "canvas", "compute", "add", "make", "computeGraph", "root", "layout", "graph", "args", "function", "inputNode", "inputNodeId", "center", "size", "rect", "snap", "undefined", "SpaceGenerator", "space", "onCreateObjects", "dispatchPromise", "dispatch", "useIntentDispatcher", "client", "useClient", "staticTypes", "DocumentType", "DiagramType", "SheetType", "ComputeGraph", "mutableTypes", "DataType", "Organization", "Project", "Person", "Message", "count", "setCount", "useState", "info", "setInfo", "presets", "useMemo", "generator", "typeMap", "addTypes", "schemas", "mutableGenerators", "Map", "map", "type", "typename", "createGenerator", "staticGenerators", "items", "updateInfo", "echoSchema", "db", "schemaRegistry", "query", "run", "staticSchema", "graph", "objects", "Filter", "everything", "objectMap", "sortKeys", "reduce", "obj", "getTypename", "schema", "static", "length", "mutable", "useAsyncEffect", "handleCreateData", "useCallback", "constructor", "get", "handleLoadTables", "input", "document", "createElement", "accept", "onchange", "e", "file", "target", "files", "content", "text", "data", "JSON", "parse", "register", "Type", "toEffectSchema", "Promise", "all", "parts", "split", "name", "table", "Obj", "make", "TableType", "threads", "initializeTable", "createIntent", "SpaceAction", "AddObject", "object", "id", "fields", "find", "s", "version", "log", "warn", "add", "err", "catch", "click", "React", "div", "role", "className", "Toolbar", "Root", "classNames", "IconButton", "icon", "iconOnly", "label", "onClick", "Separator", "variant", "Input", "TextInput", "min", "max", "placeholder", "size", "value", "onChange", "ev", "parseInt", "SchemaTable", "types", "SyntaxHighlighter", "language", "stringify", "jsonKeyReplacer", "truncate", "SpaceGenerator"]
7
+ }
@@ -9,10 +9,10 @@ import {
9
9
  import { Rx } from "@effect-rx/rx-react";
10
10
  import { Option, pipe } from "effect";
11
11
  import { contributes, Capabilities } from "@dxos/app-framework";
12
+ import { Obj } from "@dxos/echo";
12
13
  import { ATTENDABLE_PATH_SEPARATOR, DECK_COMPANION_TYPE, PLANK_COMPANION_TYPE } from "@dxos/plugin-deck/types";
13
14
  import { createExtension, ROOT_ID, rxFromSignal } from "@dxos/plugin-graph";
14
15
  import { getActiveSpace, SPACE_PLUGIN } from "@dxos/plugin-space";
15
- import { isEchoObject } from "@dxos/react-client/echo";
16
16
  var DEVTOOLS_TYPE = "dxos.org/plugin/debug/devtools";
17
17
  var app_graph_builder_default = (context) => contributes(Capabilities.AppGraphBuilder, [
18
18
  // Devtools node.
@@ -543,7 +543,7 @@ var app_graph_builder_default = (context) => contributes(Capabilities.AppGraphBu
543
543
  // Debug object companion.
544
544
  createExtension({
545
545
  id: `${DEBUG_PLUGIN}/debug-object`,
546
- connector: (node) => Rx.make((get) => pipe(get(node), Option.flatMap((node2) => isEchoObject(node2.data) ? Option.some(node2) : Option.none()), Option.map((node2) => [
546
+ connector: (node) => Rx.make((get) => pipe(get(node), Option.flatMap((node2) => Obj.isObject(node2.data) ? Option.some(node2) : Option.none()), Option.map((node2) => [
547
547
  {
548
548
  id: [
549
549
  node2.id,
@@ -594,4 +594,4 @@ var app_graph_builder_default = (context) => contributes(Capabilities.AppGraphBu
594
594
  export {
595
595
  app_graph_builder_default as default
596
596
  };
597
- //# sourceMappingURL=app-graph-builder-PIPBIN6P.mjs.map
597
+ //# sourceMappingURL=app-graph-builder-6HHJMKVU.mjs.map