@dxos/plugin-debug 0.8.4-main.2e9d522 → 0.8.4-main.3eb6e50203

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 (131) hide show
  1. package/dist/lib/browser/DebugGraph-6VMEOKEV.mjs +15 -0
  2. package/dist/lib/browser/DebugGraph-6VMEOKEV.mjs.map +7 -0
  3. package/dist/lib/browser/DevtoolsOverviewContainer-2C6XMJ3L.mjs +19 -0
  4. package/dist/lib/browser/DevtoolsOverviewContainer-2C6XMJ3L.mjs.map +7 -0
  5. package/dist/lib/browser/{SpaceGenerator-AG3XGNMV.mjs → SpaceGenerator-W3LJORYT.mjs} +388 -219
  6. package/dist/lib/browser/SpaceGenerator-W3LJORYT.mjs.map +7 -0
  7. package/dist/lib/browser/app-graph-builder-DEBTVBQG.mjs +599 -0
  8. package/dist/lib/browser/app-graph-builder-DEBTVBQG.mjs.map +7 -0
  9. package/dist/lib/browser/{chunk-AJA6RYN3.mjs → chunk-4UFQXPP7.mjs} +12 -2
  10. package/dist/lib/browser/chunk-4UFQXPP7.mjs.map +7 -0
  11. package/dist/lib/browser/chunk-A5H5GRV6.mjs +20 -0
  12. package/dist/lib/browser/chunk-A5H5GRV6.mjs.map +7 -0
  13. package/dist/lib/browser/index.mjs +37 -41
  14. package/dist/lib/browser/index.mjs.map +4 -4
  15. package/dist/lib/browser/meta.json +1 -1
  16. package/dist/lib/browser/react-context-I3USIAF6.mjs +17 -0
  17. package/dist/lib/browser/react-context-I3USIAF6.mjs.map +7 -0
  18. package/dist/lib/browser/react-surface-FMVC5GPV.mjs +758 -0
  19. package/dist/lib/browser/react-surface-FMVC5GPV.mjs.map +7 -0
  20. package/dist/lib/browser/settings-SLTQJJNF.mjs +32 -0
  21. package/dist/lib/browser/settings-SLTQJJNF.mjs.map +7 -0
  22. package/dist/types/src/DebugPlugin.d.ts +2 -1
  23. package/dist/types/src/DebugPlugin.d.ts.map +1 -1
  24. package/dist/types/src/capabilities/app-graph-builder/app-graph-builder.d.ts +6 -0
  25. package/dist/types/src/capabilities/app-graph-builder/app-graph-builder.d.ts.map +1 -0
  26. package/dist/types/src/capabilities/app-graph-builder/index.d.ts +3 -0
  27. package/dist/types/src/capabilities/app-graph-builder/index.d.ts.map +1 -0
  28. package/dist/types/src/capabilities/index.d.ts +4 -8
  29. package/dist/types/src/capabilities/index.d.ts.map +1 -1
  30. package/dist/types/src/capabilities/react-context/index.d.ts +7 -0
  31. package/dist/types/src/capabilities/react-context/index.d.ts.map +1 -0
  32. package/dist/types/src/capabilities/react-context/react-context.d.ts +10 -0
  33. package/dist/types/src/capabilities/react-context/react-context.d.ts.map +1 -0
  34. package/dist/types/src/capabilities/react-surface/index.d.ts +3 -0
  35. package/dist/types/src/capabilities/react-surface/index.d.ts.map +1 -0
  36. package/dist/types/src/capabilities/react-surface/react-surface.d.ts +5 -0
  37. package/dist/types/src/capabilities/react-surface/react-surface.d.ts.map +1 -0
  38. package/dist/types/src/capabilities/settings/index.d.ts +3 -0
  39. package/dist/types/src/capabilities/settings/index.d.ts.map +1 -0
  40. package/dist/types/src/capabilities/settings/settings.d.ts +6 -0
  41. package/dist/types/src/capabilities/settings/settings.d.ts.map +1 -0
  42. package/dist/types/src/components/DebugGraph.d.ts +9 -0
  43. package/dist/types/src/components/DebugGraph.d.ts.map +1 -0
  44. package/dist/types/src/components/DebugObjectPanel.d.ts +1 -1
  45. package/dist/types/src/components/DebugObjectPanel.d.ts.map +1 -1
  46. package/dist/types/src/components/DebugSettings.d.ts +4 -2
  47. package/dist/types/src/components/DebugSettings.d.ts.map +1 -1
  48. package/dist/types/src/components/SpaceGenerator/ObjectGenerator.d.ts +5 -5
  49. package/dist/types/src/components/SpaceGenerator/ObjectGenerator.d.ts.map +1 -1
  50. package/dist/types/src/components/SpaceGenerator/SpaceGenerator.d.ts +2 -2
  51. package/dist/types/src/components/SpaceGenerator/SpaceGenerator.d.ts.map +1 -1
  52. package/dist/types/src/components/SpaceGenerator/SpaceGenerator.stories.d.ts +13 -4
  53. package/dist/types/src/components/SpaceGenerator/SpaceGenerator.stories.d.ts.map +1 -1
  54. package/dist/types/src/components/SpaceGenerator/draw-util.d.ts.map +1 -1
  55. package/dist/types/src/components/SpaceGenerator/presets.d.ts +4 -4
  56. package/dist/types/src/components/SpaceGenerator/presets.d.ts.map +1 -1
  57. package/dist/types/src/components/Wireframe.d.ts +2 -2
  58. package/dist/types/src/components/Wireframe.d.ts.map +1 -1
  59. package/dist/types/src/components/index.d.ts +4 -3
  60. package/dist/types/src/components/index.d.ts.map +1 -1
  61. package/dist/types/src/meta.d.ts +2 -3
  62. package/dist/types/src/meta.d.ts.map +1 -1
  63. package/dist/types/src/translations.d.ts +3 -1
  64. package/dist/types/src/translations.d.ts.map +1 -1
  65. package/dist/types/src/types.d.ts +6 -1
  66. package/dist/types/src/types.d.ts.map +1 -1
  67. package/dist/types/tsconfig.tsbuildinfo +1 -1
  68. package/package.json +79 -69
  69. package/src/DebugPlugin.tsx +18 -33
  70. package/src/capabilities/app-graph-builder/app-graph-builder.ts +421 -0
  71. package/src/capabilities/app-graph-builder/index.ts +7 -0
  72. package/src/capabilities/index.ts +4 -6
  73. package/src/capabilities/react-context/index.ts +7 -0
  74. package/src/capabilities/react-context/react-context.tsx +20 -0
  75. package/src/capabilities/react-surface/index.ts +7 -0
  76. package/src/capabilities/react-surface/react-surface.tsx +411 -0
  77. package/src/capabilities/settings/index.ts +7 -0
  78. package/src/capabilities/settings/settings.ts +31 -0
  79. package/src/components/DebugGraph.tsx +15 -0
  80. package/src/components/DebugObjectPanel.tsx +6 -9
  81. package/src/components/DebugSettings.tsx +109 -75
  82. package/src/components/DebugStatus.tsx +2 -2
  83. package/src/components/DevtoolsOverviewContainer.tsx +2 -2
  84. package/src/components/SpaceGenerator/ObjectGenerator.tsx +31 -38
  85. package/src/components/SpaceGenerator/SchemaTable.tsx +2 -2
  86. package/src/components/SpaceGenerator/SpaceGenerator.stories.tsx +17 -15
  87. package/src/components/SpaceGenerator/SpaceGenerator.tsx +39 -35
  88. package/src/components/SpaceGenerator/draw-util.ts +5 -5
  89. package/src/components/SpaceGenerator/presets.ts +326 -50
  90. package/src/components/Wireframe.tsx +6 -6
  91. package/src/components/index.ts +4 -1
  92. package/src/meta.ts +8 -7
  93. package/src/translations.ts +3 -1
  94. package/src/types.ts +9 -1
  95. package/dist/lib/browser/DebugApp-ZDL4CPY5.mjs +0 -228
  96. package/dist/lib/browser/DebugApp-ZDL4CPY5.mjs.map +0 -7
  97. package/dist/lib/browser/DevtoolsOverviewContainer-EPD6EWT5.mjs +0 -25
  98. package/dist/lib/browser/DevtoolsOverviewContainer-EPD6EWT5.mjs.map +0 -7
  99. package/dist/lib/browser/SpaceGenerator-AG3XGNMV.mjs.map +0 -7
  100. package/dist/lib/browser/app-graph-builder-SQXFD2BL.mjs +0 -597
  101. package/dist/lib/browser/app-graph-builder-SQXFD2BL.mjs.map +0 -7
  102. package/dist/lib/browser/chunk-5XPIRNQS.mjs +0 -18
  103. package/dist/lib/browser/chunk-5XPIRNQS.mjs.map +0 -7
  104. package/dist/lib/browser/chunk-AJA6RYN3.mjs.map +0 -7
  105. package/dist/lib/browser/react-context-NVAGLAJD.mjs +0 -16
  106. package/dist/lib/browser/react-context-NVAGLAJD.mjs.map +0 -7
  107. package/dist/lib/browser/react-surface-3GD2OWCA.mjs +0 -768
  108. package/dist/lib/browser/react-surface-3GD2OWCA.mjs.map +0 -7
  109. package/dist/lib/browser/settings-LSSWLM5I.mjs +0 -22
  110. package/dist/lib/browser/settings-LSSWLM5I.mjs.map +0 -7
  111. package/dist/types/src/capabilities/app-graph-builder.d.ts +0 -4
  112. package/dist/types/src/capabilities/app-graph-builder.d.ts.map +0 -1
  113. package/dist/types/src/capabilities/react-context.d.ts +0 -8
  114. package/dist/types/src/capabilities/react-context.d.ts.map +0 -1
  115. package/dist/types/src/capabilities/react-surface.d.ts +0 -4
  116. package/dist/types/src/capabilities/react-surface.d.ts.map +0 -1
  117. package/dist/types/src/capabilities/settings.d.ts +0 -4
  118. package/dist/types/src/capabilities/settings.d.ts.map +0 -1
  119. package/dist/types/src/components/DebugApp/DebugApp.d.ts +0 -6
  120. package/dist/types/src/components/DebugApp/DebugApp.d.ts.map +0 -1
  121. package/dist/types/src/components/DebugApp/Tree.d.ts +0 -18
  122. package/dist/types/src/components/DebugApp/Tree.d.ts.map +0 -1
  123. package/dist/types/src/components/DebugApp/index.d.ts +0 -3
  124. package/dist/types/src/components/DebugApp/index.d.ts.map +0 -1
  125. package/src/capabilities/app-graph-builder.ts +0 -457
  126. package/src/capabilities/react-context.tsx +0 -16
  127. package/src/capabilities/react-surface.tsx +0 -397
  128. package/src/capabilities/settings.ts +0 -19
  129. package/src/components/DebugApp/DebugApp.tsx +0 -84
  130. package/src/components/DebugApp/Tree.tsx +0 -103
  131. package/src/components/DebugApp/index.ts +0 -7
@@ -1,53 +1,53 @@
1
1
  // src/components/SpaceGenerator/SpaceGenerator.tsx
2
- import { useSignals as _useSignals2 } from "@preact-signals/safe-react/tracking";
3
2
  import React2, { useCallback, useMemo, useState } from "react";
4
- import { useIntentDispatcher } from "@dxos/app-framework";
3
+ import { useOperationInvoker } from "@dxos/app-framework/ui";
5
4
  import { ComputeGraph as ComputeGraph2 } from "@dxos/conductor";
6
- import { Filter as Filter2 } from "@dxos/echo";
7
- import { DocumentType as DocumentType2 } from "@dxos/plugin-markdown/types";
8
- import { SheetType as SheetType2 } from "@dxos/plugin-sheet/types";
9
- import { DiagramType as DiagramType2 } from "@dxos/plugin-sketch/types";
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 { getTypename } from "@dxos/react-client/echo";
12
- import { IconButton as IconButton2, Input, Toolbar, useAsyncEffect } from "@dxos/react-ui";
10
+ import { IconButton as IconButton2, Input, Layout, ScrollArea, Toolbar, useAsyncEffect } from "@dxos/react-ui";
13
11
  import { SyntaxHighlighter } from "@dxos/react-ui-syntax-highlighter";
14
- import { DataType as DataType2 } from "@dxos/schema";
12
+ import { Organization as Organization2, Person as Person2, Task } from "@dxos/types";
15
13
  import { jsonKeyReplacer, sortKeys } from "@dxos/util";
16
14
 
17
15
  // src/components/SpaceGenerator/ObjectGenerator.tsx
18
- import { createIntent } from "@dxos/app-framework";
19
16
  import { addressToA1Notation } from "@dxos/compute";
20
17
  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";
18
+ import { DXN, Filter, Key } from "@dxos/echo";
19
+ import { Markdown } from "@dxos/plugin-markdown/types";
20
+ import { Sheet } from "@dxos/plugin-sheet/types";
21
+ import { Diagram } from "@dxos/plugin-sketch/types";
22
+ import { SpaceOperation } from "@dxos/plugin-space/types";
27
23
  import { faker } from "@dxos/random";
28
- import { DataType } from "@dxos/schema";
24
+ import { View, getTypenameFromQuery } from "@dxos/schema";
29
25
  import { createAsyncGenerator } from "@dxos/schema/testing";
30
26
  import { range } from "@dxos/util";
31
27
  var generator = faker;
32
28
  var findViewByTypename = async (views, typename) => {
33
- return views.find((view) => view.query.typename === typename);
29
+ return views.find((view) => getTypenameFromQuery(view.query.ast) === typename);
34
30
  };
35
- var createGenerator = (client, dispatch, schema) => {
36
- return async (space, n, cb) => {
31
+ var createGenerator = (client, invokePromise, schema) => {
32
+ return async (space, n) => {
37
33
  const typename = schema.typename;
38
- const { objects: views } = await space.db.query(Filter.type(DataType.View)).run();
34
+ const views = await space.db.query(Filter.type(View.View)).run();
39
35
  const view = await findViewByTypename(views, typename);
40
- const staticSchema = client?.graph.schemaRegistry.schemas.find((schema2) => Type.getTypename(schema2) === typename);
36
+ const staticSchema = client?.graph.schemaRegistry.query({
37
+ typename
38
+ }).runSync()[0];
41
39
  if (!view && !staticSchema) {
42
- await dispatch(createIntent(SpaceAction.AddSchema, {
43
- space,
44
- schema
45
- }));
40
+ await invokePromise(SpaceOperation.AddSchema, {
41
+ db: space.db,
42
+ schema,
43
+ show: false
44
+ });
46
45
  } else if (!view && staticSchema) {
47
- await dispatch(createIntent(SpaceAction.UseStaticSchema, {
48
- space,
49
- typename
50
- }));
46
+ await invokePromise(SpaceOperation.UseStaticSchema, {
47
+ db: space.db,
48
+ typename,
49
+ show: false
50
+ });
51
51
  }
52
52
  const generate = createAsyncGenerator(generator, schema, {
53
53
  db: space.db
@@ -57,14 +57,12 @@ var createGenerator = (client, dispatch, schema) => {
57
57
  };
58
58
  var staticGenerators = /* @__PURE__ */ new Map([
59
59
  [
60
- DocumentType.typename,
60
+ Markdown.Document.typename,
61
61
  async (space, n, cb) => {
62
62
  const objects = range(n).map(() => {
63
- return space.db.add(Obj.make(DocumentType, {
63
+ return space.db.add(Markdown.make({
64
64
  name: faker.commerce.productName(),
65
- content: Ref.make(Obj.make(DataType.Text, {
66
- content: faker.lorem.sentences(5)
67
- }))
65
+ content: faker.lorem.sentences(5)
68
66
  }));
69
67
  });
70
68
  cb?.(objects);
@@ -72,14 +70,11 @@ var staticGenerators = /* @__PURE__ */ new Map([
72
70
  }
73
71
  ],
74
72
  [
75
- DiagramType.typename,
73
+ Diagram.Diagram.typename,
76
74
  async (space, n, cb) => {
77
75
  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
- }))
76
+ const obj = space.db.add(Diagram.make({
77
+ name: faker.commerce.productName()
83
78
  }));
84
79
  return obj;
85
80
  });
@@ -89,7 +84,7 @@ var staticGenerators = /* @__PURE__ */ new Map([
89
84
  ],
90
85
  // TODO(burdon): Create unit tests.
91
86
  [
92
- SheetType.typename,
87
+ Sheet.Sheet.typename,
93
88
  async (space, n, cb) => {
94
89
  const objects = range(n).map(() => {
95
90
  const cells = {};
@@ -125,7 +120,7 @@ var staticGenerators = /* @__PURE__ */ new Map([
125
120
  }
126
121
  }
127
122
  }
128
- return space.db.add(createSheet({
123
+ return space.db.add(Sheet.make({
129
124
  name: faker.commerce.productName(),
130
125
  cells
131
126
  }));
@@ -198,64 +193,211 @@ var staticGenerators = /* @__PURE__ */ new Map([
198
193
  ]
199
194
  ]);
200
195
 
201
- // src/components/SpaceGenerator/SchemaTable.tsx
202
- import { useSignals as _useSignals } from "@preact-signals/safe-react/tracking";
203
- import React from "react";
204
- import { IconButton } from "@dxos/react-ui";
205
- var SchemaTable = ({ types, objects = {}, label, onClick }) => {
206
- var _effect = _useSignals();
207
- try {
208
- return /* @__PURE__ */ React.createElement("div", {
209
- className: "grid grid-cols-[1fr_80px_40px] gap-1 overflow-none"
210
- }, /* @__PURE__ */ React.createElement("h2", {
211
- className: "p-2"
212
- }, label), types.map((type) => /* @__PURE__ */ React.createElement("div", {
213
- key: type.typename,
214
- className: "grid grid-cols-subgrid col-span-3 items-center"
215
- }, /* @__PURE__ */ React.createElement("div", {
216
- className: "px-2 text-sm font-mono text-subdued"
217
- }, type.typename), /* @__PURE__ */ React.createElement("div", {
218
- className: "px-2 text-right font-mono"
219
- }, objects[type.typename] ?? 0), /* @__PURE__ */ React.createElement(IconButton, {
220
- variant: "ghost",
221
- icon: "ph--plus--regular",
222
- iconOnly: true,
223
- label: "Create data",
224
- onClick: () => onClick(type.typename)
225
- }))));
226
- } finally {
227
- _effect.f();
228
- }
229
- };
230
-
231
196
  // src/components/SpaceGenerator/presets.ts
232
- import { Schema } from "effect";
197
+ import * as Schema from "effect/Schema";
198
+ import { Agent, EntityExtraction, ResearchBlueprint } from "@dxos/assistant-toolkit";
199
+ import { Prompt } from "@dxos/blueprints";
233
200
  import { NODE_INPUT as NODE_INPUT2 } from "@dxos/conductor";
234
- import { DXN as DXN2, Key as Key2, Obj as Obj2, Ref as Ref2, Type as Type2 } from "@dxos/echo";
235
- import { FunctionTrigger, TriggerKind } from "@dxos/functions";
201
+ import { DXN as DXN2, Filter as Filter2, Key as Key2, Obj, Query, Ref, Tag, Type } from "@dxos/echo";
202
+ import { Trigger, serializeFunction } from "@dxos/functions";
236
203
  import { invariant } from "@dxos/invariant";
237
- import { createAppend, createChat, createComputeGraph, createConstant, createFunction, createGpt, createQueue, createSurface, createRandom, createTemplate, createText, createTrigger } from "@dxos/react-ui-canvas-compute";
238
- import { CanvasBoardType, CanvasGraphModel, pointMultiply, pointsToRect, rectToPoints } from "@dxos/react-ui-canvas-editor";
239
- import { range as range2 } from "@dxos/util";
204
+ import { gmail } from "@dxos/plugin-inbox";
205
+ import { Mailbox } from "@dxos/plugin-inbox/types";
206
+ import { Markdown as Markdown2 } from "@dxos/plugin-markdown/types";
207
+ import { createAppend, createChat, createComputeGraph, createConstant, createFunction, createGpt, createQueue, createRandom, createSurface, createTemplate, createText, createTrigger } from "@dxos/react-ui-canvas-compute";
208
+ import { CanvasBoard, CanvasGraphModel, pointMultiply, pointsToRect, rectToPoints } from "@dxos/react-ui-canvas-editor";
209
+ import { View as View2 } from "@dxos/schema";
210
+ import { Message, Organization, Person, Pipeline } from "@dxos/types";
211
+ import { range as range2, trim } from "@dxos/util";
240
212
  var __dxlog_file = "/__w/dxos/dxos/packages/plugins/plugin-debug/src/components/SpaceGenerator/presets.ts";
241
- var PresetName = /* @__PURE__ */ function(PresetName2) {
213
+ var PresetName = /* @__PURE__ */ (function(PresetName2) {
214
+ PresetName2["DXOS_TEAM"] = "dxos-team";
215
+ PresetName2["ORG_RESEARCH_PROJECT"] = "org-research-project";
242
216
  PresetName2["GPT_QUEUE"] = "webhook-gpt-queue";
243
217
  PresetName2["CHAT_GPT"] = "chat-gpt-text";
244
218
  PresetName2["OBJECT_CHANGE_QUEUE"] = "objectChange-queue";
245
- PresetName2["FOREX_FUNCTION_CALL"] = "forex-function-call";
246
219
  PresetName2["TIMER_TICK_QUEUE"] = "timerTick-queue";
220
+ PresetName2["FOREX_FUNCTION_CALL"] = "forex-function-call";
247
221
  PresetName2["DISCORD_MESSAGES"] = "discord-messages";
248
222
  return PresetName2;
249
- }({});
223
+ })({});
250
224
  var generator2 = () => ({
251
225
  schemas: [
252
- CanvasBoardType,
253
- FunctionTrigger
226
+ CanvasBoard.CanvasBoard,
227
+ Trigger.Trigger
254
228
  ],
255
229
  types: Object.values(PresetName).map((name) => ({
256
230
  typename: name
257
231
  })),
258
232
  items: [
233
+ [
234
+ "dxos-team",
235
+ async (space, n, cb) => {
236
+ const objects = range2(n, () => {
237
+ const org = space.db.add(Obj.make(Organization.Organization, {
238
+ name: "DXOS",
239
+ website: "https://dxos.org"
240
+ }));
241
+ const doc = space.db.add(Markdown2.make({
242
+ name: "DXOS Research",
243
+ content: "DXOS builds Composer, an open-source AI-powered malleable application."
244
+ }));
245
+ const tag = space.db.add(Tag.make({
246
+ label: "Investor"
247
+ }));
248
+ const tagDxn = Obj.getDXN(tag).toString();
249
+ Obj.change(doc, (d) => {
250
+ Obj.getMeta(d).tags = [
251
+ tagDxn
252
+ ];
253
+ });
254
+ space.db.add(Obj.make(Person.Person, {
255
+ fullName: "Rich",
256
+ organization: Ref.make(org)
257
+ }, {
258
+ tags: [
259
+ tagDxn
260
+ ]
261
+ }));
262
+ space.db.add(Obj.make(Person.Person, {
263
+ fullName: "Josiah",
264
+ organization: Ref.make(org)
265
+ }));
266
+ space.db.add(Obj.make(Person.Person, {
267
+ fullName: "Dima",
268
+ organization: Ref.make(org)
269
+ }));
270
+ space.db.add(Obj.make(Person.Person, {
271
+ fullName: "Mykola",
272
+ organization: Ref.make(org)
273
+ }));
274
+ return doc;
275
+ });
276
+ cb?.(objects);
277
+ return objects;
278
+ }
279
+ ],
280
+ [
281
+ "org-research-project",
282
+ async (space, n, cb) => {
283
+ const mailbox = await space.db.query(Filter2.type(Mailbox.Mailbox)).first();
284
+ const tag = await space.db.query(Filter2.type(Tag.Tag, {
285
+ label: "Investor"
286
+ })).first();
287
+ const tagDxn = Obj.getDXN(tag).toString();
288
+ const objects = range2(n, () => {
289
+ const contactsQuery = Query.select(Filter2.type(Person.Person)).select(Filter2.tag(tagDxn));
290
+ const organizationsQuery = Query.select(Filter2.type(Organization.Organization)).select(Filter2.tag(tagDxn));
291
+ const notesQuery = Query.select(Filter2.type(Markdown2.Document)).select(Filter2.tag(tagDxn));
292
+ space.db.add(Trigger.make({
293
+ enabled: true,
294
+ spec: {
295
+ kind: "timer",
296
+ cron: "* * * * *"
297
+ },
298
+ function: Ref.make(serializeFunction(gmail.sync)),
299
+ input: {
300
+ mailbox: Ref.make(mailbox)
301
+ }
302
+ }));
303
+ space.db.add(Trigger.make({
304
+ enabled: true,
305
+ // TODO(wittjosiah): Queue trigger doesn't support matching query of the column.
306
+ spec: {
307
+ kind: "queue",
308
+ queue: mailbox.queue.dxn.toString()
309
+ },
310
+ function: Ref.make(serializeFunction(EntityExtraction.extract)),
311
+ input: {
312
+ source: "{{event.item}}"
313
+ }
314
+ }));
315
+ const researchPrompt = space.db.add(Prompt.make({
316
+ name: "Research",
317
+ description: "Research organization",
318
+ input: Schema.Struct({
319
+ org: Schema.Any
320
+ }),
321
+ output: Schema.Any,
322
+ // TODO(dmaretskyi): This mocks research (returns pre-baked result), the actual research might take compute minutes.
323
+ // Remove the mock prompt to do the actual research.
324
+ instructions: trim`
325
+ Research the organization provided as input.
326
+ Create a research note for it at the end.
327
+ NOTE: Do mocked reseach (set mockSearch to true).
328
+ `,
329
+ blueprints: [
330
+ Ref.make(ResearchBlueprint)
331
+ ]
332
+ }));
333
+ space.db.add(Trigger.make({
334
+ enabled: true,
335
+ spec: {
336
+ kind: "subscription",
337
+ query: {
338
+ ast: organizationsQuery.ast
339
+ }
340
+ },
341
+ function: Ref.make(serializeFunction(Agent.prompt)),
342
+ input: {
343
+ prompt: Ref.make(researchPrompt),
344
+ input: "{{event.subject}}"
345
+ }
346
+ }));
347
+ const mailboxView = View2.make({
348
+ query: Query.select(Filter2.type(Message.Message, {
349
+ properties: {
350
+ labels: Filter2.contains("investor")
351
+ }
352
+ })).options({
353
+ queues: [
354
+ mailbox.queue.dxn.toString()
355
+ ]
356
+ }),
357
+ jsonSchema: Type.toJsonSchema(Message.Message)
358
+ });
359
+ const contactsView = View2.make({
360
+ query: contactsQuery,
361
+ jsonSchema: Type.toJsonSchema(Person.Person)
362
+ });
363
+ const organizationsView = View2.make({
364
+ query: organizationsQuery,
365
+ jsonSchema: Type.toJsonSchema(Organization.Organization)
366
+ });
367
+ const notesView = View2.make({
368
+ query: notesQuery,
369
+ jsonSchema: Type.toJsonSchema(Markdown2.Document)
370
+ });
371
+ return space.db.add(Pipeline.make({
372
+ name: "Investor Research",
373
+ columns: [
374
+ {
375
+ name: "Mailbox",
376
+ view: Ref.make(mailboxView),
377
+ order: []
378
+ },
379
+ {
380
+ name: "Contacts",
381
+ view: Ref.make(contactsView),
382
+ order: []
383
+ },
384
+ {
385
+ name: "Organizations",
386
+ view: Ref.make(organizationsView),
387
+ order: []
388
+ },
389
+ {
390
+ name: "Notes",
391
+ view: Ref.make(notesView),
392
+ order: []
393
+ }
394
+ ]
395
+ }));
396
+ });
397
+ cb?.(objects.flat());
398
+ return objects.flat();
399
+ }
400
+ ],
259
401
  [
260
402
  "webhook-gpt-queue",
261
403
  async (space, n, cb) => {
@@ -269,7 +411,7 @@ var generator2 = () => ({
269
411
  })));
270
412
  const triggerShape = createTrigger({
271
413
  spaceId: space.id,
272
- triggerKind: TriggerKind.Webhook,
414
+ triggerKind: "webhook",
273
415
  ...position({
274
416
  x: -18,
275
417
  y: -2
@@ -320,8 +462,8 @@ var generator2 = () => ({
320
462
  "objectChange-queue",
321
463
  async (space, n, cb) => {
322
464
  const objects = range2(n, () => {
323
- const { canvasModel, computeModel } = createQueueSinkPreset(space, TriggerKind.Subscription, (triggerSpec) => triggerSpec.filter = {
324
- type: "dxn:type:dxos.org/type/Chess"
465
+ const { canvasModel, computeModel } = createQueueSinkPreset(space, "subscription", (triggerSpec) => triggerSpec.query = {
466
+ ast: Query.select(Filter2.typename("dxos.org/type/Chess")).ast
325
467
  }, "type");
326
468
  return addToSpace("objectChange-queue", space, canvasModel, computeModel);
327
469
  });
@@ -333,7 +475,7 @@ var generator2 = () => ({
333
475
  "timerTick-queue",
334
476
  async (space, n, cb) => {
335
477
  const objects = range2(n, () => {
336
- const { canvasModel, computeModel } = createQueueSinkPreset(space, TriggerKind.Timer, (triggerSpec) => triggerSpec.cron = "*/5 * * * * *", "result");
478
+ const { canvasModel, computeModel } = createQueueSinkPreset(space, "timer", (triggerSpec) => triggerSpec.cron = "*/5 * * * * *", "result");
337
479
  return addToSpace("timerTick-queue", space, canvasModel, computeModel);
338
480
  });
339
481
  cb?.(objects);
@@ -360,7 +502,7 @@ var generator2 = () => ({
360
502
  // canvasModel.builder.call((builder) => {
361
503
  // const triggerShape = createTrigger({
362
504
  // spaceId: space.id,
363
- // triggerKind: TriggerKind.Email,
505
+ // triggerKind: 'email',
364
506
  // ...position({ x: -18, y: -2 }),
365
507
  // });
366
508
  // const trigger = canvasModel.createNode(triggerShape);
@@ -475,7 +617,7 @@ var generator2 = () => ({
475
617
  // );
476
618
  // const triggerShape = createTrigger({
477
619
  // spaceId: space.id,
478
- // triggerKind: TriggerKind.Email,
620
+ // triggerKind: 'email',
479
621
  // ...rawPosition({ centerX: -736, centerY: -384, width: 182, height: 192 }),
480
622
  // });
481
623
  // const trigger = canvasModel.createNode(triggerShape);
@@ -584,7 +726,7 @@ var generator2 = () => ({
584
726
  canvasModel.builder.call((builder) => {
585
727
  const triggerShape = createTrigger({
586
728
  spaceId: space.id,
587
- triggerKind: TriggerKind.Timer,
729
+ triggerKind: "timer",
588
730
  ...position({
589
731
  x: -10,
590
732
  y: -5
@@ -720,20 +862,22 @@ var createQueueSinkPreset = (space, triggerKind, initSpec, triggerOutputName) =>
720
862
  const triggerSpec = functionTrigger.spec;
721
863
  invariant(triggerSpec && triggerSpec.kind === triggerKind, "No trigger spec.", {
722
864
  F: __dxlog_file,
723
- L: 496,
865
+ L: 756,
724
866
  S: void 0,
725
867
  A: [
726
868
  "triggerSpec && triggerSpec.kind === triggerKind",
727
869
  "'No trigger spec.'"
728
870
  ]
729
871
  });
730
- initSpec(triggerSpec);
872
+ Obj.change(functionTrigger, (ft) => {
873
+ initSpec(ft.spec);
874
+ });
731
875
  });
732
876
  const computeModel = createComputeGraph(canvasModel);
733
877
  const templateComputeNode = computeModel.nodes.find((n) => n.id === template.node);
734
878
  invariant(templateComputeNode, "Template compute node was not created.", {
735
879
  F: __dxlog_file,
736
- L: 503,
880
+ L: 765,
737
881
  S: void 0,
738
882
  A: [
739
883
  "templateComputeNode",
@@ -746,7 +890,7 @@ var createQueueSinkPreset = (space, triggerKind, initSpec, triggerOutputName) =>
746
890
  ' "id": "@{{changeId}}"',
747
891
  "}"
748
892
  ].join("\n");
749
- templateComputeNode.inputSchema = Type2.toJsonSchema(Schema.Struct({
893
+ templateComputeNode.inputSchema = Type.toJsonSchema(Schema.Struct({
750
894
  type: Schema.String,
751
895
  changeId: Schema.String
752
896
  }));
@@ -757,9 +901,9 @@ var createQueueSinkPreset = (space, triggerKind, initSpec, triggerOutputName) =>
757
901
  };
758
902
  };
759
903
  var addToSpace = (name, space, canvas, compute) => {
760
- return space.db.add(Obj2.make(CanvasBoardType, {
904
+ return space.db.add(Obj.make(CanvasBoard.CanvasBoard, {
761
905
  name,
762
- computeGraph: Ref2.make(compute.root),
906
+ computeGraph: Ref.make(compute.root),
763
907
  layout: canvas.graph
764
908
  }));
765
909
  };
@@ -795,16 +939,18 @@ var setupQueue = (space, canvasModel, args) => {
795
939
  var attachTrigger = (functionTrigger, computeModel) => {
796
940
  invariant(functionTrigger, void 0, {
797
941
  F: __dxlog_file,
798
- L: 542,
942
+ L: 805,
799
943
  S: void 0,
800
944
  A: [
801
945
  "functionTrigger",
802
946
  ""
803
947
  ]
804
948
  });
805
- functionTrigger.function = Ref2.make(computeModel.root);
806
949
  const inputNode = computeModel.nodes.find((node) => node.type === NODE_INPUT2);
807
- functionTrigger.inputNodeId = inputNode.id;
950
+ Obj.change(functionTrigger, (t) => {
951
+ t.function = Ref.make(computeModel.root);
952
+ t.inputNodeId = inputNode.id;
953
+ });
808
954
  };
809
955
  var rawPosition = (args) => {
810
956
  return {
@@ -850,129 +996,152 @@ var position = (rect) => {
850
996
  }
851
997
  };
852
998
 
999
+ // src/components/SpaceGenerator/SchemaTable.tsx
1000
+ import React from "react";
1001
+ import { IconButton } from "@dxos/react-ui";
1002
+ var SchemaTable = ({ types, objects = {}, label, onClick }) => {
1003
+ return /* @__PURE__ */ React.createElement("div", {
1004
+ className: "grid grid-cols-[1fr_80px_40px] gap-1 overflow-none"
1005
+ }, /* @__PURE__ */ React.createElement("h2", {
1006
+ className: "p-2"
1007
+ }, label), types.map((type) => /* @__PURE__ */ React.createElement("div", {
1008
+ key: type.typename,
1009
+ className: "grid grid-cols-subgrid col-span-3 items-center"
1010
+ }, /* @__PURE__ */ React.createElement("div", {
1011
+ className: "pli-2 text-sm font-mono text-subdued"
1012
+ }, type.typename), /* @__PURE__ */ React.createElement("div", {
1013
+ className: "pli-2 text-right font-mono"
1014
+ }, objects[type.typename] ?? 0), /* @__PURE__ */ React.createElement(IconButton, {
1015
+ variant: "ghost",
1016
+ icon: "ph--plus--regular",
1017
+ iconOnly: true,
1018
+ label: "Create data",
1019
+ onClick: () => onClick(type.typename)
1020
+ }))));
1021
+ };
1022
+
853
1023
  // src/components/SpaceGenerator/SpaceGenerator.tsx
854
1024
  var SpaceGenerator = ({ space, onCreateObjects }) => {
855
- var _effect = _useSignals2();
856
- try {
857
- const { dispatchPromise: dispatch } = useIntentDispatcher();
858
- const client = useClient();
859
- const staticTypes = [
860
- DocumentType2,
861
- DiagramType2,
862
- SheetType2,
863
- ComputeGraph2
864
- ];
865
- const recordTypes = [
866
- DataType2.Organization,
867
- DataType2.Project,
868
- DataType2.Person,
869
- DataType2.Message
870
- ];
871
- const [count, setCount] = useState(1);
872
- const [info, setInfo] = useState({});
873
- const presets = useMemo(() => generator2(), []);
874
- const typeMap = useMemo(() => {
875
- client.addTypes([
876
- ...staticTypes,
877
- ...recordTypes,
878
- ...presets.schemas
879
- ]);
880
- const recordGenerators = new Map(recordTypes.map((type) => [
881
- type.typename,
882
- createGenerator(client, dispatch, type)
883
- ]));
884
- return new Map([
885
- ...staticGenerators,
886
- ...presets.items,
887
- ...recordGenerators
888
- ]);
889
- }, [
890
- client,
891
- recordTypes
1025
+ const { invokePromise } = useOperationInvoker();
1026
+ const client = useClient();
1027
+ const staticTypes = [
1028
+ Markdown3.Document,
1029
+ Diagram2.Diagram,
1030
+ Sheet2.Sheet,
1031
+ ComputeGraph2
1032
+ ];
1033
+ const recordTypes = [
1034
+ Organization2.Organization,
1035
+ Person2.Person,
1036
+ Task.Task
1037
+ ];
1038
+ const [count, setCount] = useState(1);
1039
+ const [info, setInfo] = useState({});
1040
+ const presets = useMemo(() => generator2(), []);
1041
+ useAsyncEffect(async () => {
1042
+ await client.addTypes([
1043
+ ...staticTypes,
1044
+ ...recordTypes,
1045
+ ...presets.schemas
892
1046
  ]);
893
- const updateInfo = async () => {
894
- const echoSchema = await space.db.schemaRegistry.query().run();
895
- const staticSchema = space.db.graph.schemaRegistry.schemas;
896
- const { objects } = await space.db.query(Filter2.everything()).run();
897
- const objectMap = sortKeys(objects.reduce((map, obj) => {
898
- const type = getTypename(obj);
899
- if (type) {
900
- const count2 = map[type] ?? 0;
901
- map[type] = count2 + 1;
902
- }
903
- return map;
904
- }, {}));
905
- setInfo({
906
- schema: {
907
- static: staticSchema.length,
908
- mutable: echoSchema.length
909
- },
910
- objects: objectMap
911
- });
912
- };
913
- useAsyncEffect(updateInfo, [
914
- space
1047
+ }, [
1048
+ client
1049
+ ]);
1050
+ const typeMap = useMemo(() => {
1051
+ const recordGenerators = new Map(recordTypes.map((type) => [
1052
+ type.typename,
1053
+ createGenerator(client, invokePromise, type)
1054
+ ]));
1055
+ return new Map([
1056
+ ...staticGenerators,
1057
+ ...presets.items,
1058
+ ...recordGenerators
915
1059
  ]);
916
- const handleCreateData = useCallback(async (typename) => {
917
- const constructor = typeMap.get(typename);
918
- if (constructor) {
919
- await constructor(space, count, onCreateObjects);
920
- await updateInfo();
1060
+ }, [
1061
+ client,
1062
+ recordTypes,
1063
+ invokePromise
1064
+ ]);
1065
+ const updateInfo = async () => {
1066
+ const echoSchema = await space.db.schemaRegistry.query().run();
1067
+ const staticSchema = await space.db.graph.schemaRegistry.query().run();
1068
+ const objects = await space.db.query(Filter3.everything()).run();
1069
+ const objectMap = sortKeys(objects.reduce((map, obj) => {
1070
+ const type = Obj2.getTypename(obj);
1071
+ if (type) {
1072
+ const count2 = map[type] ?? 0;
1073
+ map[type] = count2 + 1;
921
1074
  }
922
- }, [
923
- typeMap,
924
- count
925
- ]);
926
- return /* @__PURE__ */ React2.createElement("div", {
927
- role: "none",
928
- className: "flex flex-col grow overflow-hidden"
929
- }, /* @__PURE__ */ React2.createElement(Toolbar.Root, {
930
- classNames: "border-be border-subduedSeparator"
931
- }, /* @__PURE__ */ React2.createElement(IconButton2, {
932
- icon: "ph--arrow-clockwise--regular",
933
- iconOnly: true,
934
- label: "Refresh",
935
- onClick: updateInfo
936
- }), /* @__PURE__ */ React2.createElement(Toolbar.Separator, {
937
- variant: "gap"
938
- }), /* @__PURE__ */ React2.createElement(Input.Root, null, /* @__PURE__ */ React2.createElement(Input.TextInput, {
939
- type: "number",
940
- min: 1,
941
- max: 100,
942
- placeholder: "Count",
943
- classNames: "!w-[4rem] !text-right",
944
- size: 8,
945
- value: count,
946
- onChange: (ev) => setCount(parseInt(ev.target.value))
947
- }))), /* @__PURE__ */ React2.createElement("div", {
948
- className: "flex flex-col overflow-y-auto divide-y divide-separator"
949
- }, /* @__PURE__ */ React2.createElement(SchemaTable, {
950
- types: staticTypes,
951
- objects: info.objects,
952
- label: "Static Types",
953
- onClick: handleCreateData
954
- }), /* @__PURE__ */ React2.createElement(SchemaTable, {
955
- types: recordTypes,
956
- objects: info.objects,
957
- label: "Record Types",
958
- onClick: handleCreateData
959
- }), /* @__PURE__ */ React2.createElement(SchemaTable, {
960
- types: presets.types,
961
- objects: info.objects,
962
- label: "Presets",
963
- onClick: handleCreateData
964
- }), /* @__PURE__ */ React2.createElement("div", null, /* @__PURE__ */ React2.createElement(SyntaxHighlighter, {
965
- classNames: "flex text-xs",
966
- language: "json"
967
- }, JSON.stringify({
968
- space,
969
- ...info
970
- }, jsonKeyReplacer({
971
- truncate: true
972
- }), 2)))));
973
- } finally {
974
- _effect.f();
975
- }
1075
+ return map;
1076
+ }, {}));
1077
+ setInfo({
1078
+ schema: {
1079
+ static: staticSchema.length,
1080
+ mutable: echoSchema.length
1081
+ },
1082
+ objects: objectMap
1083
+ });
1084
+ };
1085
+ useAsyncEffect(updateInfo, [
1086
+ space
1087
+ ]);
1088
+ const handleCreateData = useCallback(async (typename) => {
1089
+ const constructor = typeMap.get(typename);
1090
+ if (constructor) {
1091
+ await constructor(space, count, onCreateObjects);
1092
+ await updateInfo();
1093
+ }
1094
+ }, [
1095
+ typeMap,
1096
+ count
1097
+ ]);
1098
+ return /* @__PURE__ */ React2.createElement(Layout.Main, {
1099
+ toolbar: true
1100
+ }, /* @__PURE__ */ React2.createElement(Toolbar.Root, null, /* @__PURE__ */ React2.createElement(IconButton2, {
1101
+ icon: "ph--arrow-clockwise--regular",
1102
+ iconOnly: true,
1103
+ label: "Refresh",
1104
+ onClick: updateInfo
1105
+ }), /* @__PURE__ */ React2.createElement(Toolbar.Separator, {
1106
+ variant: "gap"
1107
+ }), /* @__PURE__ */ React2.createElement(Input.Root, null, /* @__PURE__ */ React2.createElement(Input.TextInput, {
1108
+ type: "number",
1109
+ placeholder: "Count",
1110
+ classNames: "is-[4rem] text-right",
1111
+ min: 1,
1112
+ max: 100,
1113
+ size: 8,
1114
+ value: count,
1115
+ onChange: (event) => setCount(parseInt(event.target.value))
1116
+ }))), /* @__PURE__ */ React2.createElement(ScrollArea.Root, {
1117
+ thin: true,
1118
+ orientation: "vertical"
1119
+ }, /* @__PURE__ */ React2.createElement(ScrollArea.Viewport, {
1120
+ classNames: "gap-4 divide-y divide-subduedSeparator"
1121
+ }, /* @__PURE__ */ React2.createElement(SchemaTable, {
1122
+ types: staticTypes,
1123
+ objects: info.objects,
1124
+ label: "Static Types",
1125
+ onClick: handleCreateData
1126
+ }), /* @__PURE__ */ React2.createElement(SchemaTable, {
1127
+ types: recordTypes,
1128
+ objects: info.objects,
1129
+ label: "Record Types",
1130
+ onClick: handleCreateData
1131
+ }), /* @__PURE__ */ React2.createElement(SchemaTable, {
1132
+ types: presets.types,
1133
+ objects: info.objects,
1134
+ label: "Presets",
1135
+ onClick: handleCreateData
1136
+ }), /* @__PURE__ */ React2.createElement(SyntaxHighlighter, {
1137
+ language: "json",
1138
+ classNames: "text-xs"
1139
+ }, JSON.stringify({
1140
+ space,
1141
+ ...info
1142
+ }, jsonKeyReplacer({
1143
+ truncate: true
1144
+ }), 2)))));
976
1145
  };
977
1146
 
978
1147
  // src/components/SpaceGenerator/index.ts
@@ -980,4 +1149,4 @@ var SpaceGenerator_default = SpaceGenerator;
980
1149
  export {
981
1150
  SpaceGenerator_default as default
982
1151
  };
983
- //# sourceMappingURL=SpaceGenerator-AG3XGNMV.mjs.map
1152
+ //# sourceMappingURL=SpaceGenerator-W3LJORYT.mjs.map