@dxos/plugin-debug 0.8.4-main.f9ba587 → 0.8.4-staging.60fe92afc8

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