@dxos/plugin-debug 0.8.3-staging.0fa589b → 0.8.4-main.03d5cd7b56

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 (220) hide show
  1. package/dist/lib/neutral/DebugGraph-G4FWS57E.mjs +15 -0
  2. package/dist/lib/neutral/DebugGraph-G4FWS57E.mjs.map +7 -0
  3. package/dist/lib/neutral/DebugObjectPanel-UJ63CV25.mjs +59 -0
  4. package/dist/lib/neutral/DebugObjectPanel-UJ63CV25.mjs.map +7 -0
  5. package/dist/lib/neutral/DebugPlugin.mjs +47 -0
  6. package/dist/lib/neutral/DebugPlugin.mjs.map +7 -0
  7. package/dist/lib/neutral/DebugPlugin.node.mjs +18 -0
  8. package/dist/lib/neutral/DebugPlugin.node.mjs.map +7 -0
  9. package/dist/lib/neutral/DebugSettings-Z3XADRNK.mjs +224 -0
  10. package/dist/lib/neutral/DebugSettings-Z3XADRNK.mjs.map +7 -0
  11. package/dist/lib/neutral/DebugSpaceObjectsPanel-NISULU6U.mjs +34 -0
  12. package/dist/lib/neutral/DebugSpaceObjectsPanel-NISULU6U.mjs.map +7 -0
  13. package/dist/lib/neutral/DebugStatus-YB3KFP7G.mjs +121 -0
  14. package/dist/lib/neutral/DebugStatus-YB3KFP7G.mjs.map +7 -0
  15. package/dist/lib/neutral/DevtoolsOverviewContainer-YX7Z3D2H.mjs +23 -0
  16. package/dist/lib/neutral/DevtoolsOverviewContainer-YX7Z3D2H.mjs.map +7 -0
  17. package/dist/lib/neutral/SpaceGenerator-UBYB4NPD.mjs +143 -0
  18. package/dist/lib/neutral/SpaceGenerator-UBYB4NPD.mjs.map +7 -0
  19. package/dist/lib/neutral/Wireframe-7SNRUKET.mjs +52 -0
  20. package/dist/lib/neutral/Wireframe-7SNRUKET.mjs.map +7 -0
  21. package/dist/lib/neutral/app-graph-builder-YPYHL2K5.mjs +577 -0
  22. package/dist/lib/neutral/app-graph-builder-YPYHL2K5.mjs.map +7 -0
  23. package/dist/lib/neutral/capabilities/index.mjs +15 -0
  24. package/dist/lib/neutral/capabilities/index.mjs.map +7 -0
  25. package/dist/lib/neutral/chunk-3OGPOE7H.mjs +20 -0
  26. package/dist/lib/neutral/chunk-3OGPOE7H.mjs.map +7 -0
  27. package/dist/lib/neutral/chunk-J5LGTIGS.mjs +10 -0
  28. package/dist/lib/neutral/chunk-J5LGTIGS.mjs.map +7 -0
  29. package/dist/lib/{browser/chunk-KS3YBEL7.mjs → neutral/chunk-NFIOTQRZ.mjs} +30 -9
  30. package/dist/lib/neutral/chunk-NFIOTQRZ.mjs.map +7 -0
  31. package/dist/lib/neutral/components/index.mjs +981 -0
  32. package/dist/lib/neutral/components/index.mjs.map +7 -0
  33. package/dist/lib/neutral/containers/index.mjs +21 -0
  34. package/dist/lib/neutral/containers/index.mjs.map +7 -0
  35. package/dist/lib/neutral/index.mjs +18 -0
  36. package/dist/lib/neutral/index.mjs.map +7 -0
  37. package/dist/lib/neutral/meta.json +1 -0
  38. package/dist/lib/neutral/meta.mjs +8 -0
  39. package/dist/lib/neutral/meta.mjs.map +7 -0
  40. package/dist/lib/neutral/plugin.mjs +12 -0
  41. package/dist/lib/neutral/plugin.mjs.map +7 -0
  42. package/dist/lib/neutral/react-context-MUZ3KVLU.mjs +17 -0
  43. package/dist/lib/neutral/react-context-MUZ3KVLU.mjs.map +7 -0
  44. package/dist/lib/neutral/react-surface-NH2H63KW.mjs +420 -0
  45. package/dist/lib/neutral/react-surface-NH2H63KW.mjs.map +7 -0
  46. package/dist/lib/neutral/settings-MPM6YUP4.mjs +28 -0
  47. package/dist/lib/neutral/settings-MPM6YUP4.mjs.map +7 -0
  48. package/dist/lib/neutral/translations.mjs +83 -0
  49. package/dist/lib/neutral/translations.mjs.map +7 -0
  50. package/dist/lib/neutral/types/index.mjs +14 -0
  51. package/dist/lib/neutral/types/index.mjs.map +7 -0
  52. package/dist/types/src/DebugPlugin.d.ts +4 -1
  53. package/dist/types/src/DebugPlugin.d.ts.map +1 -1
  54. package/dist/types/src/DebugPlugin.node.d.ts +5 -0
  55. package/dist/types/src/DebugPlugin.node.d.ts.map +1 -0
  56. package/dist/types/src/DebugPlugin.test.d.ts +2 -0
  57. package/dist/types/src/DebugPlugin.test.d.ts.map +1 -0
  58. package/dist/types/src/capabilities/app-graph-builder.d.ts +4 -2
  59. package/dist/types/src/capabilities/app-graph-builder.d.ts.map +1 -1
  60. package/dist/types/src/capabilities/index.d.ts +8 -5
  61. package/dist/types/src/capabilities/index.d.ts.map +1 -1
  62. package/dist/types/src/capabilities/react-context.d.ts +4 -2
  63. package/dist/types/src/capabilities/react-context.d.ts.map +1 -1
  64. package/dist/types/src/capabilities/react-surface.d.ts +7 -2
  65. package/dist/types/src/capabilities/react-surface.d.ts.map +1 -1
  66. package/dist/types/src/capabilities/settings.d.ts +5 -2
  67. package/dist/types/src/capabilities/settings.d.ts.map +1 -1
  68. package/dist/types/src/components/DebugSettings/DebugSettings.d.ts +11 -0
  69. package/dist/types/src/components/DebugSettings/DebugSettings.d.ts.map +1 -0
  70. package/dist/types/src/components/DebugSettings/DebugSettings.stories.d.ts +99 -0
  71. package/dist/types/src/components/DebugSettings/DebugSettings.stories.d.ts.map +1 -0
  72. package/dist/types/src/components/DebugSettings/index.d.ts +2 -0
  73. package/dist/types/src/components/DebugSettings/index.d.ts.map +1 -0
  74. package/dist/types/src/components/SchemaTable/SchemaTable.d.ts.map +1 -0
  75. package/dist/types/src/components/SchemaTable/index.d.ts +2 -0
  76. package/dist/types/src/components/SchemaTable/index.d.ts.map +1 -0
  77. package/dist/types/src/components/SpaceGenerator/ObjectGenerator.d.ts +6 -4
  78. package/dist/types/src/components/SpaceGenerator/ObjectGenerator.d.ts.map +1 -1
  79. package/dist/types/src/components/SpaceGenerator/draw-util.d.ts.map +1 -1
  80. package/dist/types/src/components/SpaceGenerator/index.d.ts +2 -2
  81. package/dist/types/src/components/SpaceGenerator/index.d.ts.map +1 -1
  82. package/dist/types/src/components/SpaceGenerator/presets.d.ts +5 -8
  83. package/dist/types/src/components/SpaceGenerator/presets.d.ts.map +1 -1
  84. package/dist/types/src/components/index.d.ts +4 -9
  85. package/dist/types/src/components/index.d.ts.map +1 -1
  86. package/dist/types/src/containers/DebugGraph/DebugGraph.d.ts +8 -0
  87. package/dist/types/src/containers/DebugGraph/DebugGraph.d.ts.map +1 -0
  88. package/dist/types/src/containers/DebugGraph/index.d.ts +2 -0
  89. package/dist/types/src/containers/DebugGraph/index.d.ts.map +1 -0
  90. package/dist/types/src/containers/DebugObjectPanel/DebugObjectPanel.d.ts +6 -0
  91. package/dist/types/src/containers/DebugObjectPanel/DebugObjectPanel.d.ts.map +1 -0
  92. package/dist/types/src/containers/DebugObjectPanel/index.d.ts +2 -0
  93. package/dist/types/src/containers/DebugObjectPanel/index.d.ts.map +1 -0
  94. package/dist/types/src/containers/DebugSpaceObjectsPanel/DebugSpaceObjectsPanel.d.ts +5 -0
  95. package/dist/types/src/containers/DebugSpaceObjectsPanel/DebugSpaceObjectsPanel.d.ts.map +1 -0
  96. package/dist/types/src/containers/DebugSpaceObjectsPanel/index.d.ts +2 -0
  97. package/dist/types/src/containers/DebugSpaceObjectsPanel/index.d.ts.map +1 -0
  98. package/dist/types/src/containers/DebugStatus/DebugStatus.d.ts.map +1 -0
  99. package/dist/types/src/containers/DebugStatus/index.d.ts +2 -0
  100. package/dist/types/src/containers/DebugStatus/index.d.ts.map +1 -0
  101. package/dist/types/src/{components → containers/DevtoolsOverviewContainer}/DevtoolsOverviewContainer.d.ts +0 -1
  102. package/dist/types/src/containers/DevtoolsOverviewContainer/DevtoolsOverviewContainer.d.ts.map +1 -0
  103. package/dist/types/src/containers/DevtoolsOverviewContainer/index.d.ts +2 -0
  104. package/dist/types/src/containers/DevtoolsOverviewContainer/index.d.ts.map +1 -0
  105. package/dist/types/src/containers/SpaceGenerator/SpaceGenerator.d.ts +11 -0
  106. package/dist/types/src/containers/SpaceGenerator/SpaceGenerator.d.ts.map +1 -0
  107. package/dist/types/src/containers/SpaceGenerator/index.d.ts +2 -0
  108. package/dist/types/src/containers/SpaceGenerator/index.d.ts.map +1 -0
  109. package/dist/types/src/{components → containers/Wireframe}/Wireframe.d.ts +2 -2
  110. package/dist/types/src/containers/Wireframe/Wireframe.d.ts.map +1 -0
  111. package/dist/types/src/containers/Wireframe/index.d.ts +2 -0
  112. package/dist/types/src/containers/Wireframe/index.d.ts.map +1 -0
  113. package/dist/types/src/containers/index.d.ts +9 -0
  114. package/dist/types/src/containers/index.d.ts.map +1 -0
  115. package/dist/types/src/index.d.ts +1 -1
  116. package/dist/types/src/index.d.ts.map +1 -1
  117. package/dist/types/src/meta.d.ts +2 -3
  118. package/dist/types/src/meta.d.ts.map +1 -1
  119. package/dist/types/src/plugin.d.ts +4 -0
  120. package/dist/types/src/plugin.d.ts.map +1 -0
  121. package/dist/types/src/translations.d.ts +83 -60
  122. package/dist/types/src/translations.d.ts.map +1 -1
  123. package/dist/types/src/types/Settings.d.ts +8 -0
  124. package/dist/types/src/types/Settings.d.ts.map +1 -0
  125. package/dist/types/src/types/index.d.ts +69 -0
  126. package/dist/types/src/types/index.d.ts.map +1 -0
  127. package/dist/types/tsconfig.tsbuildinfo +1 -1
  128. package/package.json +132 -74
  129. package/src/DebugPlugin.node.ts +18 -0
  130. package/src/DebugPlugin.test.ts +29 -0
  131. package/src/DebugPlugin.tsx +30 -37
  132. package/src/capabilities/app-graph-builder.ts +361 -413
  133. package/src/capabilities/index.ts +5 -5
  134. package/src/capabilities/react-context.tsx +16 -7
  135. package/src/capabilities/react-surface.tsx +381 -339
  136. package/src/capabilities/settings.ts +24 -12
  137. package/src/components/DebugSettings/DebugSettings.stories.tsx +36 -0
  138. package/src/components/DebugSettings/DebugSettings.tsx +262 -0
  139. package/src/components/DebugSettings/index.ts +5 -0
  140. package/src/components/SchemaTable/index.ts +5 -0
  141. package/src/components/SpaceGenerator/ObjectGenerator.tsx +44 -46
  142. package/src/components/SpaceGenerator/draw-util.ts +13 -13
  143. package/src/components/SpaceGenerator/index.ts +2 -3
  144. package/src/components/SpaceGenerator/presets.ts +527 -263
  145. package/src/components/index.ts +4 -8
  146. package/src/containers/DebugGraph/DebugGraph.tsx +14 -0
  147. package/src/containers/DebugGraph/index.ts +5 -0
  148. package/src/containers/DebugObjectPanel/DebugObjectPanel.tsx +76 -0
  149. package/src/containers/DebugObjectPanel/index.ts +5 -0
  150. package/src/containers/DebugSpaceObjectsPanel/DebugSpaceObjectsPanel.tsx +47 -0
  151. package/src/containers/DebugSpaceObjectsPanel/index.ts +5 -0
  152. package/src/{components → containers/DebugStatus}/DebugStatus.tsx +43 -21
  153. package/src/containers/DebugStatus/index.ts +5 -0
  154. package/src/containers/DevtoolsOverviewContainer/DevtoolsOverviewContainer.tsx +25 -0
  155. package/src/containers/DevtoolsOverviewContainer/index.ts +5 -0
  156. package/src/containers/SpaceGenerator/SpaceGenerator.tsx +126 -0
  157. package/src/containers/SpaceGenerator/index.ts +5 -0
  158. package/src/{components → containers/Wireframe}/Wireframe.tsx +8 -12
  159. package/src/containers/Wireframe/index.ts +5 -0
  160. package/src/containers/index.ts +13 -0
  161. package/src/index.ts +1 -1
  162. package/src/meta.ts +8 -7
  163. package/src/plugin.ts +10 -0
  164. package/src/translations.ts +80 -59
  165. package/src/types/Settings.ts +16 -0
  166. package/src/{types.ts → types/index.ts} +20 -11
  167. package/dist/lib/browser/DebugApp-WSEJPCKY.mjs +0 -225
  168. package/dist/lib/browser/DebugApp-WSEJPCKY.mjs.map +0 -7
  169. package/dist/lib/browser/DevtoolsOverviewContainer-IIIWO77Q.mjs +0 -25
  170. package/dist/lib/browser/DevtoolsOverviewContainer-IIIWO77Q.mjs.map +0 -7
  171. package/dist/lib/browser/SpaceGenerator-VB6IB2LL.mjs +0 -1238
  172. package/dist/lib/browser/SpaceGenerator-VB6IB2LL.mjs.map +0 -7
  173. package/dist/lib/browser/app-graph-builder-6HHJMKVU.mjs +0 -597
  174. package/dist/lib/browser/app-graph-builder-6HHJMKVU.mjs.map +0 -7
  175. package/dist/lib/browser/chunk-47JOZTT2.mjs +0 -18
  176. package/dist/lib/browser/chunk-47JOZTT2.mjs.map +0 -7
  177. package/dist/lib/browser/chunk-KS3YBEL7.mjs.map +0 -7
  178. package/dist/lib/browser/index.mjs +0 -130
  179. package/dist/lib/browser/index.mjs.map +0 -7
  180. package/dist/lib/browser/meta.json +0 -1
  181. package/dist/lib/browser/react-context-ZQRD2WG2.mjs +0 -16
  182. package/dist/lib/browser/react-context-ZQRD2WG2.mjs.map +0 -7
  183. package/dist/lib/browser/react-surface-UI6OK73H.mjs +0 -768
  184. package/dist/lib/browser/react-surface-UI6OK73H.mjs.map +0 -7
  185. package/dist/lib/browser/settings-SXQWSIM4.mjs +0 -22
  186. package/dist/lib/browser/settings-SXQWSIM4.mjs.map +0 -7
  187. package/dist/types/src/components/Container.d.ts +0 -5
  188. package/dist/types/src/components/Container.d.ts.map +0 -1
  189. package/dist/types/src/components/DebugApp/DebugApp.d.ts +0 -6
  190. package/dist/types/src/components/DebugApp/DebugApp.d.ts.map +0 -1
  191. package/dist/types/src/components/DebugApp/Tree.d.ts +0 -18
  192. package/dist/types/src/components/DebugApp/Tree.d.ts.map +0 -1
  193. package/dist/types/src/components/DebugApp/index.d.ts +0 -3
  194. package/dist/types/src/components/DebugApp/index.d.ts.map +0 -1
  195. package/dist/types/src/components/DebugObjectPanel.d.ts +0 -7
  196. package/dist/types/src/components/DebugObjectPanel.d.ts.map +0 -1
  197. package/dist/types/src/components/DebugSettings.d.ts +0 -6
  198. package/dist/types/src/components/DebugSettings.d.ts.map +0 -1
  199. package/dist/types/src/components/DebugStatus.d.ts.map +0 -1
  200. package/dist/types/src/components/DevtoolsOverviewContainer.d.ts.map +0 -1
  201. package/dist/types/src/components/SpaceGenerator/SchemaTable.d.ts.map +0 -1
  202. package/dist/types/src/components/SpaceGenerator/SpaceGenerator.d.ts +0 -9
  203. package/dist/types/src/components/SpaceGenerator/SpaceGenerator.d.ts.map +0 -1
  204. package/dist/types/src/components/SpaceGenerator/SpaceGenerator.stories.d.ts +0 -6
  205. package/dist/types/src/components/SpaceGenerator/SpaceGenerator.stories.d.ts.map +0 -1
  206. package/dist/types/src/components/Wireframe.d.ts.map +0 -1
  207. package/dist/types/src/types.d.ts +0 -63
  208. package/dist/types/src/types.d.ts.map +0 -1
  209. package/src/components/Container.tsx +0 -15
  210. package/src/components/DebugApp/DebugApp.tsx +0 -77
  211. package/src/components/DebugApp/Tree.tsx +0 -103
  212. package/src/components/DebugApp/index.ts +0 -7
  213. package/src/components/DebugObjectPanel.tsx +0 -35
  214. package/src/components/DebugSettings.tsx +0 -151
  215. package/src/components/DevtoolsOverviewContainer.tsx +0 -20
  216. package/src/components/SpaceGenerator/SpaceGenerator.stories.tsx +0 -52
  217. package/src/components/SpaceGenerator/SpaceGenerator.tsx +0 -179
  218. /package/dist/types/src/components/{SpaceGenerator → SchemaTable}/SchemaTable.d.ts +0 -0
  219. /package/dist/types/src/{components → containers/DebugStatus}/DebugStatus.d.ts +0 -0
  220. /package/src/components/{SpaceGenerator → SchemaTable}/SchemaTable.tsx +0 -0
@@ -0,0 +1,981 @@
1
+ import "../chunk-J5LGTIGS.mjs";
2
+
3
+ // src/components/index.ts
4
+ import { lazy } from "react";
5
+
6
+ // src/components/SchemaTable/SchemaTable.tsx
7
+ import React from "react";
8
+ import { IconButton } from "@dxos/react-ui";
9
+ var SchemaTable = ({ types, objects = {}, label, onClick }) => {
10
+ return /* @__PURE__ */ React.createElement("div", {
11
+ className: "grid grid-cols-[1fr_80px_40px] gap-1 overflow-none"
12
+ }, /* @__PURE__ */ React.createElement("h2", {
13
+ className: "p-2"
14
+ }, label), types.map((type) => /* @__PURE__ */ React.createElement("div", {
15
+ key: type.typename,
16
+ className: "grid grid-cols-subgrid col-span-3 items-center"
17
+ }, /* @__PURE__ */ React.createElement("div", {
18
+ className: "px-2 text-sm font-mono text-subdued"
19
+ }, type.typename), /* @__PURE__ */ React.createElement("div", {
20
+ className: "px-2 text-right font-mono"
21
+ }, objects[type.typename] ?? 0), /* @__PURE__ */ React.createElement(IconButton, {
22
+ variant: "ghost",
23
+ icon: "ph--plus--regular",
24
+ iconOnly: true,
25
+ label: "Create data",
26
+ onClick: () => onClick(type.typename)
27
+ }))));
28
+ };
29
+
30
+ // src/components/SpaceGenerator/presets.ts
31
+ import * as Schema from "effect/Schema";
32
+ import { AgentPrompt, WebSearchBlueprint } from "@dxos/assistant-toolkit";
33
+ import { Routine, Trigger, Operation } from "@dxos/compute";
34
+ import { NODE_INPUT } from "@dxos/conductor";
35
+ import { DXN, Feed, Filter, JsonSchema, Key, Obj, Query, Ref, Tag } from "@dxos/echo";
36
+ import { invariant } from "@dxos/invariant";
37
+ import { InboxOperation } from "@dxos/plugin-inbox";
38
+ import { Mailbox } from "@dxos/plugin-inbox";
39
+ import { Markdown } from "@dxos/plugin-markdown";
40
+ import { createAppend, createChat, createComputeGraph, createConstant, createFeed, createFunction, createGpt, createRandom, createSurface, createTemplate, createText, createTrigger } from "@dxos/react-ui-canvas-compute";
41
+ import { CanvasBoard, CanvasGraphModel, pointMultiply, pointsToRect, rectToPoints } from "@dxos/react-ui-canvas-editor";
42
+ import { ViewModel } from "@dxos/schema";
43
+ import { Message, Organization, Person, Pipeline } from "@dxos/types";
44
+ import { range, trim } from "@dxos/util";
45
+ var __dxlog_file = "/__w/dxos/dxos/packages/plugins/plugin-debug/src/components/SpaceGenerator/presets.ts";
46
+ var PresetName = /* @__PURE__ */ (function(PresetName2) {
47
+ PresetName2["DXOS_TEAM"] = "dxos-team";
48
+ PresetName2["ORG_RESEARCH_PROJECT"] = "org-research-project";
49
+ PresetName2["GPT_QUEUE"] = "webhook-gpt-queue";
50
+ PresetName2["CHAT_GPT"] = "chat-gpt-text";
51
+ PresetName2["OBJECT_CHANGE_QUEUE"] = "objectChange-queue";
52
+ PresetName2["TIMER_TICK_QUEUE"] = "timerTick-queue";
53
+ PresetName2["FOREX_FUNCTION_CALL"] = "forex-function-call";
54
+ PresetName2["DISCORD_MESSAGES"] = "discord-messages";
55
+ return PresetName2;
56
+ })({});
57
+ var generator = () => ({
58
+ schemas: [
59
+ CanvasBoard.CanvasBoard,
60
+ Trigger.Trigger
61
+ ],
62
+ types: Object.values(PresetName).map((name) => ({
63
+ typename: name
64
+ })),
65
+ items: [
66
+ [
67
+ "dxos-team",
68
+ async (space, n, cb) => {
69
+ const objects = range(n, () => {
70
+ const org = space.db.add(Obj.make(Organization.Organization, {
71
+ name: "DXOS",
72
+ website: "https://dxos.org"
73
+ }));
74
+ const doc = space.db.add(Markdown.make({
75
+ name: "DXOS Research",
76
+ content: "DXOS builds Composer, an open-source AI-powered malleable application."
77
+ }));
78
+ const tag = space.db.add(Tag.make({
79
+ label: "Investor"
80
+ }));
81
+ const tagDxn = Obj.getDXN(tag).toString();
82
+ Obj.update(doc, (doc2) => {
83
+ Obj.getMeta(doc2).tags = [
84
+ tagDxn
85
+ ];
86
+ });
87
+ space.db.add(Obj.make(Person.Person, {
88
+ [Obj.Meta]: {
89
+ tags: [
90
+ tagDxn
91
+ ]
92
+ },
93
+ fullName: "Rich",
94
+ organization: Ref.make(org)
95
+ }));
96
+ space.db.add(Obj.make(Person.Person, {
97
+ fullName: "Josiah",
98
+ organization: Ref.make(org)
99
+ }));
100
+ space.db.add(Obj.make(Person.Person, {
101
+ fullName: "Dima",
102
+ organization: Ref.make(org)
103
+ }));
104
+ space.db.add(Obj.make(Person.Person, {
105
+ fullName: "Mykola",
106
+ organization: Ref.make(org)
107
+ }));
108
+ return doc;
109
+ });
110
+ cb?.(objects);
111
+ return objects;
112
+ }
113
+ ],
114
+ [
115
+ "org-research-project",
116
+ async (space, n, cb) => {
117
+ const mailboxes = await space.db.query(Filter.type(Mailbox.Mailbox)).run();
118
+ const mailbox = mailboxes[0];
119
+ invariant(mailbox, "Mailbox not found", { "~LogMeta": "~LogMeta", F: __dxlog_file, L: 100, S: void 0, A: ["mailbox", "'Mailbox not found'"] });
120
+ const mailboxFeed = await mailbox.feed?.tryLoad();
121
+ invariant(mailboxFeed, "Mailbox missing feed reference", { "~LogMeta": "~LogMeta", F: __dxlog_file, L: 102, S: void 0, A: ["mailboxFeed", "'Mailbox missing feed reference'"] });
122
+ const queueDxn = Feed.getQueueDxn(mailboxFeed)?.toString();
123
+ invariant(queueDxn, "Mailbox feed missing queue DXN key", { "~LogMeta": "~LogMeta", F: __dxlog_file, L: 104, S: void 0, A: ["queueDxn", "'Mailbox feed missing queue DXN key'"] });
124
+ const tag = await space.db.query(Filter.type(Tag.Tag, {
125
+ label: "Investor"
126
+ })).first();
127
+ const tagDxn = Obj.getDXN(tag).toString();
128
+ const objects = range(n, () => {
129
+ const contactsQuery = Query.select(Filter.type(Person.Person)).select(Filter.tag(tagDxn));
130
+ const organizationsQuery = Query.select(Filter.type(Organization.Organization)).select(Filter.tag(tagDxn));
131
+ const notesQuery = Query.select(Filter.type(Markdown.Document)).select(Filter.tag(tagDxn));
132
+ space.db.add(Trigger.make({
133
+ enabled: true,
134
+ spec: Trigger.specTimer("* * * * *"),
135
+ function: Ref.make(Operation.serialize(InboxOperation.GoogleMailSync)),
136
+ input: {
137
+ mailbox: Ref.make(mailbox)
138
+ }
139
+ }));
140
+ const researchPrompt = space.db.add(Routine.make({
141
+ name: "Research",
142
+ description: "Research organization",
143
+ input: Schema.Struct({
144
+ org: Schema.Any
145
+ }),
146
+ output: Schema.Any,
147
+ // TODO(dmaretskyi): This mocks research (returns pre-baked result), the actual research might take compute minutes.
148
+ // Remove the mock prompt to do the actual research.
149
+ instructions: trim`
150
+ Research the organization provided as input.
151
+ Create a research note for it at the end.
152
+ NOTE: Do mocked reseach (set mockSearch to true).
153
+ `,
154
+ blueprints: [
155
+ Ref.make(WebSearchBlueprint.make())
156
+ ]
157
+ }));
158
+ space.db.add(Trigger.make({
159
+ enabled: true,
160
+ spec: Trigger.specSubscription(organizationsQuery),
161
+ function: Ref.make(Operation.serialize(AgentPrompt)),
162
+ input: {
163
+ prompt: Ref.make(researchPrompt),
164
+ input: "{{event.subject}}"
165
+ }
166
+ }));
167
+ const mailboxView = ViewModel.make({
168
+ query: Query.select(Filter.type(Message.Message, {
169
+ properties: {
170
+ labels: Filter.contains("investor")
171
+ }
172
+ })).from({
173
+ queues: [
174
+ queueDxn
175
+ ]
176
+ }),
177
+ jsonSchema: JsonSchema.toJsonSchema(Message.Message)
178
+ });
179
+ const contactsView = ViewModel.make({
180
+ query: contactsQuery,
181
+ jsonSchema: JsonSchema.toJsonSchema(Person.Person)
182
+ });
183
+ const organizationsView = ViewModel.make({
184
+ query: organizationsQuery,
185
+ jsonSchema: JsonSchema.toJsonSchema(Organization.Organization)
186
+ });
187
+ const notesView = ViewModel.make({
188
+ query: notesQuery,
189
+ jsonSchema: JsonSchema.toJsonSchema(Markdown.Document)
190
+ });
191
+ return space.db.add(Pipeline.make({
192
+ name: "Investor Research",
193
+ columns: [
194
+ {
195
+ name: "Mailbox",
196
+ view: Ref.make(mailboxView),
197
+ order: []
198
+ },
199
+ {
200
+ name: "Contacts",
201
+ view: Ref.make(contactsView),
202
+ order: []
203
+ },
204
+ {
205
+ name: "Organizations",
206
+ view: Ref.make(organizationsView),
207
+ order: []
208
+ },
209
+ {
210
+ name: "Notes",
211
+ view: Ref.make(notesView),
212
+ order: []
213
+ }
214
+ ]
215
+ }));
216
+ });
217
+ cb?.(objects.flat());
218
+ return objects.flat();
219
+ }
220
+ ],
221
+ [
222
+ "webhook-gpt-queue",
223
+ async (space, n, cb) => {
224
+ const objects = range(n, () => {
225
+ const canvasModel = CanvasGraphModel.create();
226
+ let functionTrigger;
227
+ canvasModel.builder.call((builder) => {
228
+ const gpt = canvasModel.createNode(createGpt(position({
229
+ x: 0,
230
+ y: -14
231
+ })));
232
+ const triggerShape = createTrigger({
233
+ spaceId: space.id,
234
+ triggerKind: "webhook",
235
+ ...position({
236
+ x: -18,
237
+ y: -2
238
+ })
239
+ });
240
+ const trigger = canvasModel.createNode(triggerShape);
241
+ const text = canvasModel.createNode(createText(position({
242
+ x: 19,
243
+ y: 3,
244
+ width: 10,
245
+ height: 10
246
+ })));
247
+ const { queueId } = setupQueue(space, canvasModel);
248
+ const append = canvasModel.createNode(createAppend(position({
249
+ x: 10,
250
+ y: 6
251
+ })));
252
+ builder.createEdge({
253
+ source: trigger.id,
254
+ target: gpt.id,
255
+ input: "prompt",
256
+ output: "bodyText"
257
+ }).createEdge({
258
+ source: gpt.id,
259
+ target: text.id,
260
+ output: "text"
261
+ }).createEdge({
262
+ source: queueId.id,
263
+ target: append.id,
264
+ input: "id"
265
+ }).createEdge({
266
+ source: gpt.id,
267
+ target: append.id,
268
+ output: "messages",
269
+ input: "items"
270
+ });
271
+ functionTrigger = triggerShape.functionTrigger.target;
272
+ });
273
+ const computeModel = createComputeGraph(canvasModel);
274
+ attachTrigger(functionTrigger, computeModel);
275
+ return addToSpace("webhook-gpt-queue", space, canvasModel, computeModel);
276
+ });
277
+ cb?.(objects);
278
+ return objects;
279
+ }
280
+ ],
281
+ [
282
+ "objectChange-queue",
283
+ async (space, n, cb) => {
284
+ const objects = range(n, () => {
285
+ const { canvasModel, computeModel } = createQueueSinkPreset(space, "subscription", (triggerSpec) => triggerSpec.query = {
286
+ ast: Query.select(Filter.typename("org.dxos.type.chess")).ast
287
+ }, "type");
288
+ return addToSpace("objectChange-queue", space, canvasModel, computeModel);
289
+ });
290
+ cb?.(objects);
291
+ return objects;
292
+ }
293
+ ],
294
+ [
295
+ "timerTick-queue",
296
+ async (space, n, cb) => {
297
+ const objects = range(n, () => {
298
+ const { canvasModel, computeModel } = createQueueSinkPreset(space, "timer", (triggerSpec) => triggerSpec.cron = "*/5 * * * * *", "result");
299
+ return addToSpace("timerTick-queue", space, canvasModel, computeModel);
300
+ });
301
+ cb?.(objects);
302
+ return objects;
303
+ }
304
+ ],
305
+ // TODO(wittjosiah): Remove?
306
+ // [
307
+ // PresetName.EMAIL_TABLE,
308
+ // async (space, n, cb) => {
309
+ // const objects = range(n, () => {
310
+ // const canvasModel = CanvasGraphModel.create<ComputeShape>();
311
+ // const results = space.db.query(Filter.type(TableType)).runSync();
312
+ // const emailTable = results.find((r) => r.object?.view?.target?.query?.typename?.endsWith('Email'));
313
+ // invariant(emailTable, 'Email table not found.');
314
+ // const template = canvasModel.createNode(
315
+ // createTemplate({
316
+ // valueType: 'object',
317
+ // ...rawPosition({ centerX: -80, centerY: -64, width: 320, height: 320 }),
318
+ // }),
319
+ // );
320
+ // const templateContent = ['{'];
321
+ // let functionTrigger: FunctionTrigger | undefined;
322
+ // canvasModel.builder.call((builder) => {
323
+ // const triggerShape = createTrigger({
324
+ // spaceId: space.id,
325
+ // triggerKind: 'email',
326
+ // ...position({ x: -18, y: -2 }),
327
+ // });
328
+ // const trigger = canvasModel.createNode(triggerShape);
329
+ // const tableId = canvasModel.createNode(
330
+ // createConstant({
331
+ // value: DXN.fromLocalObjectId(emailTable.id).toString(),
332
+ // ...position({ x: -18, y: 5, width: 8, height: 6 }),
333
+ // }),
334
+ // );
335
+ // const appendToTable = canvasModel.createNode(createAppend(position({ x: 10, y: 6 })));
336
+ // const properties = SchemaAST.getPropertySignatures(EmailTriggerOutput.ast);
337
+ // for (let i = 0; i < properties.length; i++) {
338
+ // const propName = properties[i].name.toString();
339
+ // builder.createEdge({ source: trigger.id, target: template.id, input: propName, output: propName });
340
+ // templateContent.push(` "${propName}": "{{${propName}}}"` + (i === properties.length - 1 ? '' : ','));
341
+ // }
342
+ // templateContent.push('}');
343
+ // builder
344
+ // .createEdge({ source: tableId.id, target: appendToTable.id, input: 'id' })
345
+ // .createEdge({ source: template.id, target: appendToTable.id, input: 'items' });
346
+ // functionTrigger = triggerShape.functionTrigger!.target!;
347
+ // });
348
+ // const computeModel = createComputeGraph(canvasModel);
349
+ // const templateComputeNode = computeModel.nodes.find((n) => n.id === template.node);
350
+ // invariant(templateComputeNode, 'Template compute node was not created.');
351
+ // templateComputeNode.value = templateContent.join('\n');
352
+ // templateComputeNode.inputSchema = JsonSchema.toJsonSchema(EmailTriggerOutput);
353
+ // attachTrigger(functionTrigger, computeModel);
354
+ // return addToSpace(PresetName.EMAIL_TABLE, space, canvasModel, computeModel);
355
+ // });
356
+ // cb?.(objects);
357
+ // return objects;
358
+ // },
359
+ // ],
360
+ [
361
+ "chat-gpt-text",
362
+ async (space, n, cb) => {
363
+ const objects = range(n, () => {
364
+ const canvasModel = CanvasGraphModel.create();
365
+ canvasModel.builder.call((builder) => {
366
+ const gpt = canvasModel.createNode(createGpt(position({
367
+ x: 0,
368
+ y: -14
369
+ })));
370
+ const chat = canvasModel.createNode(createChat(position({
371
+ x: -18,
372
+ y: -2
373
+ })));
374
+ const text = canvasModel.createNode(createText(position({
375
+ x: 19,
376
+ y: 3,
377
+ width: 10,
378
+ height: 10
379
+ })));
380
+ const { queueId } = setupQueue(space, canvasModel);
381
+ const append = canvasModel.createNode(createAppend(position({
382
+ x: 10,
383
+ y: 6
384
+ })));
385
+ builder.createEdge({
386
+ source: chat.id,
387
+ target: gpt.id,
388
+ input: "prompt"
389
+ }).createEdge({
390
+ source: gpt.id,
391
+ target: text.id,
392
+ output: "text"
393
+ }).createEdge({
394
+ source: queueId.id,
395
+ target: append.id,
396
+ input: "id"
397
+ }).createEdge({
398
+ source: gpt.id,
399
+ target: append.id,
400
+ output: "messages",
401
+ input: "items"
402
+ });
403
+ });
404
+ const computeModel = createComputeGraph(canvasModel);
405
+ return addToSpace("chat-gpt-text", space, canvasModel, computeModel);
406
+ });
407
+ cb?.(objects);
408
+ return objects;
409
+ }
410
+ ],
411
+ // TODO(wittjosiah): Remove?
412
+ // [
413
+ // PresetName.EMAIL_WITH_SUMMARY,
414
+ // async (space, n, cb) => {
415
+ // const objects = range(n, () => {
416
+ // const canvasModel = CanvasGraphModel.create<ComputeShape>();
417
+ // const results = space.db.query(Filter.type(TableType)).runSync();
418
+ // const emailTable = results.find((r) => r.object?.view?.target?.query?.typename?.endsWith('Email'));
419
+ // invariant(emailTable, 'Email table not found.');
420
+ // const template = canvasModel.createNode(
421
+ // createTemplate({
422
+ // valueType: 'object',
423
+ // ...rawPosition({ centerX: 192, centerY: -176, width: 320, height: 320 }),
424
+ // }),
425
+ // );
426
+ // const templateContent = ['{'];
427
+ // let functionTrigger: FunctionTrigger | undefined;
428
+ // canvasModel.builder.call((builder) => {
429
+ // const gpt = canvasModel.createNode(
430
+ // createGpt(rawPosition({ centerX: -400, centerY: -112, width: 256, height: 202 })),
431
+ // );
432
+ // const systemPrompt = canvasModel.createNode(
433
+ // createConstant({
434
+ // value: "use one word to describe content category. don't write anything else",
435
+ // ...rawPosition({ centerX: -800, centerY: -160, width: 192, height: 128 }),
436
+ // }),
437
+ // );
438
+ // const triggerShape = createTrigger({
439
+ // spaceId: space.id,
440
+ // triggerKind: 'email',
441
+ // ...rawPosition({ centerX: -736, centerY: -384, width: 182, height: 192 }),
442
+ // });
443
+ // const trigger = canvasModel.createNode(triggerShape);
444
+ // const { queueId } = setupQueue(space, canvasModel, {
445
+ // idPosition: { centerX: -720, centerY: 224, width: 192, height: 256 },
446
+ // queuePosition: { centerX: -144, centerY: 416, width: 320, height: 448 },
447
+ // });
448
+ // const appendToQueue = canvasModel.createNode(
449
+ // createAppend(rawPosition({ centerX: -80, centerY: 96, width: 122, height: 128 })),
450
+ // );
451
+ // const tableId = canvasModel.createNode(
452
+ // createConstant({
453
+ // value: DXN.fromLocalObjectId(emailTable.id).toString(),
454
+ // ...rawPosition({ centerX: -112, centerY: -544, width: 192, height: 256 }),
455
+ // }),
456
+ // );
457
+ // const appendToTable = canvasModel.createNode(
458
+ // createAppend(rawPosition({ centerX: 560, centerY: -416, width: 128, height: 122 })),
459
+ // );
460
+ // templateContent.push(' "category": "{{text}}",');
461
+ // builder.createEdge({ source: gpt.id, target: template.id, input: 'text', output: 'text' });
462
+ // const properties = SchemaAST.getPropertySignatures(EmailTriggerOutput.ast);
463
+ // for (let i = 0; i < properties.length; i++) {
464
+ // const propName = properties[i].name.toString();
465
+ // builder.createEdge({ source: trigger.id, target: template.id, input: propName, output: propName });
466
+ // templateContent.push(` "${propName}": "{{${propName}}}"` + (i === properties.length - 1 ? '' : ','));
467
+ // }
468
+ // templateContent.push('}');
469
+ // builder
470
+ // .createEdge({ source: tableId.id, target: appendToTable.id, input: 'id' })
471
+ // .createEdge({ source: queueId.id, target: appendToQueue.id, input: 'id' })
472
+ // .createEdge({ source: gpt.id, target: appendToQueue.id, output: 'messages', input: 'items' })
473
+ // .createEdge({ source: systemPrompt.id, target: gpt.id, input: 'systemPrompt' })
474
+ // .createEdge({ source: trigger.id, target: gpt.id, input: 'prompt', output: 'body' })
475
+ // .createEdge({ source: template.id, target: appendToTable.id, input: 'items' });
476
+ // functionTrigger = triggerShape.functionTrigger!.target!;
477
+ // });
478
+ // const computeModel = createComputeGraph(canvasModel);
479
+ // const templateComputeNode = computeModel.nodes.find((n) => n.id === template.node);
480
+ // invariant(templateComputeNode, 'Template compute node was not created.');
481
+ // templateComputeNode.value = templateContent.join('\n');
482
+ // const extendedSchema = Schema.extend(EmailTriggerOutput, Schema.Struct({ text: Schema.String }));
483
+ // templateComputeNode.inputSchema = JsonSchema.toJsonSchema(extendedSchema);
484
+ // attachTrigger(functionTrigger, computeModel);
485
+ // return addToSpace(PresetName.EMAIL_WITH_SUMMARY, space, canvasModel, computeModel);
486
+ // });
487
+ // cb?.(objects);
488
+ // return objects;
489
+ // },
490
+ // ],
491
+ [
492
+ "forex-function-call",
493
+ async (space, n, cb) => {
494
+ const objects = range(n, () => {
495
+ const canvasModel = CanvasGraphModel.create();
496
+ canvasModel.builder.call((builder) => {
497
+ const sourceCurrency = canvasModel.createNode(createConstant({
498
+ value: "USD",
499
+ ...position({
500
+ x: -10,
501
+ y: -5
502
+ })
503
+ }));
504
+ const targetCurrency = canvasModel.createNode(createConstant({
505
+ value: "EUR",
506
+ ...position({
507
+ x: -10,
508
+ y: 5
509
+ })
510
+ }));
511
+ const converter = canvasModel.createNode(createFunction(position({
512
+ x: 0,
513
+ y: 0
514
+ })));
515
+ const view = canvasModel.createNode(createSurface(position({
516
+ x: 12,
517
+ y: 0
518
+ })));
519
+ builder.createEdge({
520
+ source: sourceCurrency.id,
521
+ target: converter.id,
522
+ input: "from"
523
+ }).createEdge({
524
+ source: targetCurrency.id,
525
+ target: converter.id,
526
+ input: "to"
527
+ }).createEdge({
528
+ source: converter.id,
529
+ target: view.id,
530
+ output: "rate"
531
+ });
532
+ });
533
+ const computeModel = createComputeGraph(canvasModel);
534
+ return addToSpace("forex-function-call", space, canvasModel, computeModel);
535
+ });
536
+ cb?.(objects);
537
+ return objects;
538
+ }
539
+ ],
540
+ [
541
+ "discord-messages",
542
+ async (space, n, cb) => {
543
+ const objects = range(n, () => {
544
+ const canvasModel = CanvasGraphModel.create();
545
+ let functionTrigger;
546
+ canvasModel.builder.call((builder) => {
547
+ const triggerShape = createTrigger({
548
+ spaceId: space.id,
549
+ triggerKind: "timer",
550
+ ...position({
551
+ x: -10,
552
+ y: -5
553
+ })
554
+ });
555
+ const trigger = canvasModel.createNode(triggerShape);
556
+ const channelId = canvasModel.createNode(createConstant({
557
+ value: "1088569858767212554",
558
+ ...position({
559
+ x: -10,
560
+ y: 0
561
+ })
562
+ }));
563
+ const queueId = canvasModel.createNode(createConstant({
564
+ value: new DXN(DXN.kind.QUEUE, [
565
+ "data",
566
+ space.id,
567
+ Key.ObjectId.random()
568
+ ]).toString(),
569
+ ...position({
570
+ x: -10,
571
+ y: 5
572
+ })
573
+ }));
574
+ const converter = canvasModel.createNode(createFunction(position({
575
+ x: 0,
576
+ y: 0
577
+ })));
578
+ const view = canvasModel.createNode(createText(position({
579
+ x: 12,
580
+ y: 0
581
+ })));
582
+ const queue = canvasModel.createNode(createFeed(position({
583
+ x: 0,
584
+ y: 12
585
+ })));
586
+ builder.createEdge({
587
+ source: trigger.id,
588
+ target: converter.id,
589
+ input: "tick"
590
+ }).createEdge({
591
+ source: channelId.id,
592
+ target: converter.id,
593
+ input: "channelId"
594
+ }).createEdge({
595
+ source: queueId.id,
596
+ target: converter.id,
597
+ input: "queueId"
598
+ }).createEdge({
599
+ source: converter.id,
600
+ target: view.id,
601
+ output: "newMessages"
602
+ }).createEdge({
603
+ source: queueId.id,
604
+ target: queue.id,
605
+ input: "input"
606
+ });
607
+ functionTrigger = triggerShape.functionTrigger.target;
608
+ });
609
+ const computeModel = createComputeGraph(canvasModel);
610
+ attachTrigger(functionTrigger, computeModel);
611
+ return addToSpace("discord-messages", space, canvasModel, computeModel);
612
+ });
613
+ cb?.(objects);
614
+ return objects;
615
+ }
616
+ ]
617
+ ]
618
+ });
619
+ var createQueueSinkPreset = (space, triggerKind, initSpec, triggerOutputName) => {
620
+ const canvasModel = CanvasGraphModel.create();
621
+ const template = canvasModel.createNode(createTemplate({
622
+ valueType: "object",
623
+ ...rawPosition({
624
+ centerX: -64,
625
+ centerY: -79,
626
+ width: 320,
627
+ height: 320
628
+ })
629
+ }));
630
+ let functionTrigger;
631
+ canvasModel.builder.call((builder) => {
632
+ const triggerShape = createTrigger({
633
+ spaceId: space.id,
634
+ triggerKind,
635
+ ...rawPosition({
636
+ centerX: -578,
637
+ centerY: -187,
638
+ height: 320,
639
+ width: 320
640
+ })
641
+ });
642
+ const trigger = canvasModel.createNode(triggerShape);
643
+ const { queueId } = setupQueue(space, canvasModel, {
644
+ queuePosition: {
645
+ centerX: -80,
646
+ centerY: 378,
647
+ width: 320,
648
+ height: 448
649
+ }
650
+ });
651
+ const append = canvasModel.createNode(createAppend(rawPosition({
652
+ centerX: 320,
653
+ centerY: 192,
654
+ width: 128,
655
+ height: 122
656
+ })));
657
+ const random2 = canvasModel.createNode(createRandom(rawPosition({
658
+ centerX: -509,
659
+ centerY: -30,
660
+ width: 64,
661
+ height: 64
662
+ })));
663
+ builder.createEdge({
664
+ source: queueId.id,
665
+ target: append.id,
666
+ input: "id"
667
+ }).createEdge({
668
+ source: template.id,
669
+ target: append.id,
670
+ input: "items"
671
+ }).createEdge({
672
+ source: trigger.id,
673
+ target: template.id,
674
+ output: triggerOutputName,
675
+ input: "type"
676
+ }).createEdge({
677
+ source: random2.id,
678
+ target: template.id,
679
+ input: "changeId"
680
+ });
681
+ functionTrigger = triggerShape.functionTrigger.target;
682
+ const triggerSpec = functionTrigger.spec;
683
+ invariant(triggerSpec && triggerSpec.kind === triggerKind, "No trigger spec.", { "~LogMeta": "~LogMeta", F: __dxlog_file, L: 665, S: void 0, A: ["triggerSpec && triggerSpec.kind === triggerKind", "'No trigger spec.'"] });
684
+ Obj.update(functionTrigger, (functionTrigger2) => {
685
+ initSpec(functionTrigger2.spec);
686
+ });
687
+ });
688
+ const computeModel = createComputeGraph(canvasModel);
689
+ const templateComputeNode = computeModel.nodes.find((n) => n.id === template.node);
690
+ invariant(templateComputeNode, "Template compute node was not created.", { "~LogMeta": "~LogMeta", F: __dxlog_file, L: 672, S: void 0, A: ["templateComputeNode", "'Template compute node was not created.'"] });
691
+ templateComputeNode.value = [
692
+ "{",
693
+ ' "@type": "{{type}}",',
694
+ ' "id": "@{{changeId}}"',
695
+ "}"
696
+ ].join("\n");
697
+ templateComputeNode.inputSchema = JsonSchema.toJsonSchema(Schema.Struct({
698
+ type: Schema.String,
699
+ changeId: Schema.String
700
+ }));
701
+ attachTrigger(functionTrigger, computeModel);
702
+ return {
703
+ canvasModel,
704
+ computeModel
705
+ };
706
+ };
707
+ var addToSpace = (name, space, canvas, compute) => {
708
+ return space.db.add(Obj.make(CanvasBoard.CanvasBoard, {
709
+ name,
710
+ computeGraph: Ref.make(compute.root),
711
+ layout: canvas.graph
712
+ }));
713
+ };
714
+ var setupQueue = (space, canvasModel, args) => {
715
+ const queueId = canvasModel.createNode(createConstant({
716
+ value: new DXN(DXN.kind.QUEUE, [
717
+ "data",
718
+ space.id,
719
+ Key.ObjectId.random()
720
+ ]).toString(),
721
+ ...args?.idPosition ? rawPosition(args.idPosition) : position({
722
+ x: -18,
723
+ y: 5,
724
+ width: 8,
725
+ height: 6
726
+ })
727
+ }));
728
+ const queue = canvasModel.createNode(createFeed(args?.queuePosition ? rawPosition(args.queuePosition) : position({
729
+ x: -3,
730
+ y: 3,
731
+ width: 14,
732
+ height: 10
733
+ })));
734
+ canvasModel.createEdge({
735
+ source: queueId.id,
736
+ target: queue.id
737
+ });
738
+ return {
739
+ queue,
740
+ queueId
741
+ };
742
+ };
743
+ var attachTrigger = (functionTrigger, computeModel) => {
744
+ invariant(functionTrigger, void 0, { "~LogMeta": "~LogMeta", F: __dxlog_file, L: 727, S: void 0, A: ["functionTrigger", ""] });
745
+ const inputNode = computeModel.nodes.find((node) => node.type === NODE_INPUT);
746
+ Obj.update(functionTrigger, (functionTrigger2) => {
747
+ functionTrigger2.function = Ref.make(computeModel.root);
748
+ functionTrigger2.inputNodeId = inputNode.id;
749
+ });
750
+ };
751
+ var rawPosition = (args) => {
752
+ return {
753
+ center: {
754
+ x: args.centerX,
755
+ y: args.centerY
756
+ },
757
+ size: {
758
+ width: args.width,
759
+ height: args.height
760
+ }
761
+ };
762
+ };
763
+ var position = (rect) => {
764
+ const snap = 32;
765
+ const [center, size] = rectToPoints({
766
+ width: 0,
767
+ height: 0,
768
+ ...rect
769
+ });
770
+ const { x, y, width, height } = pointsToRect([
771
+ pointMultiply(center, snap),
772
+ pointMultiply(size, snap)
773
+ ]);
774
+ if (width && height) {
775
+ return {
776
+ center: {
777
+ x,
778
+ y
779
+ },
780
+ size: width && height ? {
781
+ width,
782
+ height
783
+ } : void 0
784
+ };
785
+ } else {
786
+ return {
787
+ center: {
788
+ x,
789
+ y
790
+ }
791
+ };
792
+ }
793
+ };
794
+
795
+ // src/components/SpaceGenerator/ObjectGenerator.tsx
796
+ import { addressToA1Notation } from "@dxos/compute-hyperformula";
797
+ import { ComputeGraph, ComputeGraphModel, DEFAULT_OUTPUT, NODE_INPUT as NODE_INPUT2, NODE_OUTPUT } from "@dxos/conductor";
798
+ import { DXN as DXN2, Filter as Filter2, Key as Key2 } from "@dxos/echo";
799
+ import { View } from "@dxos/echo";
800
+ import { Markdown as Markdown2 } from "@dxos/plugin-markdown";
801
+ import { Sheet } from "@dxos/plugin-sheet";
802
+ import { Sketch } from "@dxos/plugin-sketch";
803
+ import { SpaceOperation } from "@dxos/plugin-space";
804
+ import { random } from "@dxos/random";
805
+ import { getTypenameFromQuery } from "@dxos/schema";
806
+ import { createAsyncGenerator } from "@dxos/schema/testing";
807
+ import { range as range2 } from "@dxos/util";
808
+ var generator2 = random;
809
+ var findViewByTypename = async (views, typename) => {
810
+ return views.find((view) => getTypenameFromQuery(view.query.ast) === typename);
811
+ };
812
+ var createGenerator = (client, invokePromise, schema) => {
813
+ return async (space, n) => {
814
+ const typename = schema.typename;
815
+ const views = await space.db.query(Filter2.type(View.View)).run();
816
+ const view = await findViewByTypename(views, typename);
817
+ const staticSchema = client?.graph.schemaRegistry.query({
818
+ typename
819
+ }).runSync()[0];
820
+ if (!view && !staticSchema) {
821
+ await invokePromise(SpaceOperation.AddSchema, {
822
+ db: space.db,
823
+ schema,
824
+ show: false
825
+ });
826
+ }
827
+ const generate = createAsyncGenerator(generator2, schema, {
828
+ db: space.db
829
+ });
830
+ return generate.createObjects(n);
831
+ };
832
+ };
833
+ var staticGenerators = /* @__PURE__ */ new Map([
834
+ [
835
+ Markdown2.Document.typename,
836
+ async (space, n, cb) => {
837
+ const objects = range2(n).map(() => {
838
+ return space.db.add(Markdown2.make({
839
+ name: random.commerce.productName(),
840
+ content: random.lorem.sentences(5)
841
+ }));
842
+ });
843
+ cb?.(objects);
844
+ return objects;
845
+ }
846
+ ],
847
+ [
848
+ Sketch.Sketch.typename,
849
+ async (space, n, cb) => {
850
+ const objects = range2(n).map(() => {
851
+ const obj = space.db.add(Sketch.make({
852
+ name: random.commerce.productName()
853
+ }));
854
+ return obj;
855
+ });
856
+ cb?.(objects);
857
+ return objects;
858
+ }
859
+ ],
860
+ // TODO(burdon): Create unit tests.
861
+ [
862
+ Sheet.Sheet.typename,
863
+ async (space, n, cb) => {
864
+ const objects = range2(n).map(() => {
865
+ const cells = {};
866
+ const year = (/* @__PURE__ */ new Date()).getFullYear();
867
+ const cols = 4;
868
+ const rows = 16;
869
+ for (let col = 1; col <= cols; col++) {
870
+ for (let row = 1; row <= rows; row++) {
871
+ const cell = addressToA1Notation({
872
+ col,
873
+ row
874
+ });
875
+ if (row === 1) {
876
+ cells[cell] = {
877
+ value: `${year} Q${col}`
878
+ };
879
+ } else if (row === rows) {
880
+ const from = addressToA1Notation({
881
+ col,
882
+ row: 2
883
+ });
884
+ const to = addressToA1Notation({
885
+ col,
886
+ row: rows - 1
887
+ });
888
+ cells[cell] = {
889
+ value: `=SUM(${from}:${to})`
890
+ };
891
+ } else if (row > 2 && row < rows - 1) {
892
+ cells[cell] = {
893
+ value: Math.floor(Math.random() * 1e4)
894
+ };
895
+ }
896
+ }
897
+ }
898
+ return space.db.add(Sheet.make({
899
+ name: random.commerce.productName(),
900
+ cells
901
+ }));
902
+ });
903
+ cb?.(objects);
904
+ return objects;
905
+ }
906
+ ],
907
+ [
908
+ ComputeGraph.typename,
909
+ async (space, n, cb) => {
910
+ const objects = range2(n, () => {
911
+ const model = ComputeGraphModel.create();
912
+ model.builder.createNode({
913
+ id: "gpt-INPUT",
914
+ type: NODE_INPUT2
915
+ }).createNode({
916
+ id: "gpt-GPT",
917
+ type: "gpt"
918
+ }).createNode({
919
+ id: "gpt-QUEUE_ID",
920
+ type: "constant",
921
+ value: new DXN2(DXN2.kind.QUEUE, [
922
+ "data",
923
+ space.id,
924
+ Key2.ObjectId.random()
925
+ ]).toString()
926
+ }).createNode({
927
+ id: "gpt-APPEND",
928
+ type: "append"
929
+ }).createNode({
930
+ id: "gpt-OUTPUT",
931
+ type: NODE_OUTPUT
932
+ }).createEdge({
933
+ node: "gpt-INPUT",
934
+ property: "prompt"
935
+ }, {
936
+ node: "gpt-GPT",
937
+ property: "prompt"
938
+ }).createEdge({
939
+ node: "gpt-GPT",
940
+ property: "text"
941
+ }, {
942
+ node: "gpt-OUTPUT",
943
+ property: "text"
944
+ }).createEdge({
945
+ node: "gpt-QUEUE_ID",
946
+ property: DEFAULT_OUTPUT
947
+ }, {
948
+ node: "gpt-APPEND",
949
+ property: "id"
950
+ }).createEdge({
951
+ node: "gpt-GPT",
952
+ property: "messages"
953
+ }, {
954
+ node: "gpt-APPEND",
955
+ property: "items"
956
+ }).createEdge({
957
+ node: "gpt-QUEUE_ID",
958
+ property: DEFAULT_OUTPUT
959
+ }, {
960
+ node: "gpt-OUTPUT",
961
+ property: "queue"
962
+ });
963
+ return space.db.add(model.root);
964
+ });
965
+ cb?.(objects);
966
+ return objects;
967
+ }
968
+ ]
969
+ ]);
970
+
971
+ // src/components/index.ts
972
+ var DebugSettings = lazy(() => import("../DebugSettings-Z3XADRNK.mjs"));
973
+ export {
974
+ DebugSettings,
975
+ PresetName,
976
+ SchemaTable,
977
+ createGenerator,
978
+ generator,
979
+ staticGenerators
980
+ };
981
+ //# sourceMappingURL=index.mjs.map