@dxos/plugin-debug 0.9.1-main.c7dcc2e112 → 0.10.0

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 (84) hide show
  1. package/dist/lib/neutral/{DebugObjectPanel-OS65NC4M.mjs → DebugObjectPanel-QSGQJ3LM.mjs} +5 -3
  2. package/dist/lib/neutral/DebugObjectPanel-QSGQJ3LM.mjs.map +7 -0
  3. package/dist/lib/neutral/{DebugSettings-WLFIBSRV.mjs → DebugSettings-Q3WUL6YQ.mjs} +34 -28
  4. package/dist/lib/neutral/DebugSettings-Q3WUL6YQ.mjs.map +7 -0
  5. package/dist/lib/neutral/{DebugSpaceObjectsPanel-BHOCFWDJ.mjs → DebugSpaceObjectsPanel-AXFZWEIM.mjs} +5 -3
  6. package/dist/lib/neutral/DebugSpaceObjectsPanel-AXFZWEIM.mjs.map +7 -0
  7. package/dist/lib/neutral/{app-graph-builder-XJHFSODX.mjs → app-graph-builder-UKG4WVYK.mjs} +82 -89
  8. package/dist/lib/neutral/app-graph-builder-UKG4WVYK.mjs.map +7 -0
  9. package/dist/lib/neutral/capabilities/index.mjs +2 -2
  10. package/dist/lib/neutral/chunk-72QXLYMI.mjs +118 -0
  11. package/dist/lib/neutral/chunk-72QXLYMI.mjs.map +7 -0
  12. package/dist/lib/neutral/components/index.mjs +13 -24
  13. package/dist/lib/neutral/components/index.mjs.map +4 -4
  14. package/dist/lib/neutral/containers/index.mjs +4 -2
  15. package/dist/lib/neutral/containers/index.mjs.map +3 -3
  16. package/dist/lib/neutral/index.mjs +3 -3
  17. package/dist/lib/neutral/meta.json +1 -1
  18. package/dist/lib/neutral/{react-surface-MUVRCB3H.mjs → react-surface-URESE7J4.mjs} +73 -16
  19. package/dist/lib/neutral/react-surface-URESE7J4.mjs.map +7 -0
  20. package/dist/lib/neutral/translations.mjs +0 -1
  21. package/dist/lib/neutral/translations.mjs.map +2 -2
  22. package/dist/lib/neutral/types/index.mjs +3 -3
  23. package/dist/types/src/capabilities/app-graph-builder.d.ts +1 -2
  24. package/dist/types/src/capabilities/app-graph-builder.d.ts.map +1 -1
  25. package/dist/types/src/capabilities/react-context.d.ts +1 -6
  26. package/dist/types/src/capabilities/react-context.d.ts.map +1 -1
  27. package/dist/types/src/capabilities/react-surface.d.ts +1 -1
  28. package/dist/types/src/capabilities/react-surface.d.ts.map +1 -1
  29. package/dist/types/src/capabilities/settings.d.ts +1 -3
  30. package/dist/types/src/capabilities/settings.d.ts.map +1 -1
  31. package/dist/types/src/components/SpaceGenerator/presets.d.ts.map +1 -1
  32. package/dist/types/src/components/index.d.ts +0 -2
  33. package/dist/types/src/components/index.d.ts.map +1 -1
  34. package/dist/types/src/containers/DebugObjectPanel/DebugObjectPanel.d.ts +6 -3
  35. package/dist/types/src/containers/DebugObjectPanel/DebugObjectPanel.d.ts.map +1 -1
  36. package/dist/types/src/{components → containers}/DebugSettings/DebugSettings.d.ts +2 -2
  37. package/dist/types/src/containers/DebugSettings/DebugSettings.d.ts.map +1 -0
  38. package/dist/types/src/{components → containers}/DebugSettings/DebugSettings.stories.d.ts +0 -1
  39. package/dist/types/src/{components → containers}/DebugSettings/DebugSettings.stories.d.ts.map +1 -1
  40. package/dist/types/src/{components → containers}/DebugSettings/index.d.ts.map +1 -1
  41. package/dist/types/src/containers/DebugSpaceObjectsPanel/DebugSpaceObjectsPanel.d.ts +6 -2
  42. package/dist/types/src/containers/DebugSpaceObjectsPanel/DebugSpaceObjectsPanel.d.ts.map +1 -1
  43. package/dist/types/src/containers/GithubPanel/GithubComponent.stories.d.ts +0 -1
  44. package/dist/types/src/containers/GithubPanel/GithubComponent.stories.d.ts.map +1 -1
  45. package/dist/types/src/containers/RegistryPanel/index.d.ts +1 -1
  46. package/dist/types/src/containers/RegistryPanel/index.d.ts.map +1 -1
  47. package/dist/types/src/containers/index.d.ts +1 -0
  48. package/dist/types/src/containers/index.d.ts.map +1 -1
  49. package/dist/types/src/meta.d.ts +4 -0
  50. package/dist/types/src/meta.d.ts.map +1 -1
  51. package/dist/types/src/translations.d.ts +0 -1
  52. package/dist/types/src/translations.d.ts.map +1 -1
  53. package/dist/types/src/types/Devtools.d.ts +57 -0
  54. package/dist/types/src/types/Devtools.d.ts.map +1 -0
  55. package/dist/types/src/types/debug.d.ts +20 -0
  56. package/dist/types/src/types/debug.d.ts.map +1 -0
  57. package/dist/types/src/types/index.d.ts +2 -69
  58. package/dist/types/src/types/index.d.ts.map +1 -1
  59. package/dist/types/tsconfig.tsbuildinfo +1 -1
  60. package/package.json +58 -58
  61. package/src/capabilities/app-graph-builder.ts +81 -89
  62. package/src/capabilities/react-surface.tsx +62 -12
  63. package/src/components/SpaceGenerator/presets.ts +10 -13
  64. package/src/components/index.ts +0 -4
  65. package/src/containers/DebugObjectPanel/DebugObjectPanel.tsx +13 -4
  66. package/src/{components → containers}/DebugSettings/DebugSettings.stories.tsx +1 -1
  67. package/src/{components → containers}/DebugSettings/DebugSettings.tsx +97 -95
  68. package/src/containers/DebugSpaceObjectsPanel/DebugSpaceObjectsPanel.tsx +12 -4
  69. package/src/containers/RegistryPanel/index.ts +1 -1
  70. package/src/containers/index.ts +1 -0
  71. package/src/translations.ts +0 -1
  72. package/src/types/Devtools.ts +73 -0
  73. package/src/types/debug.ts +35 -0
  74. package/src/types/index.ts +2 -90
  75. package/dist/lib/neutral/DebugObjectPanel-OS65NC4M.mjs.map +0 -7
  76. package/dist/lib/neutral/DebugSettings-WLFIBSRV.mjs.map +0 -7
  77. package/dist/lib/neutral/DebugSpaceObjectsPanel-BHOCFWDJ.mjs.map +0 -7
  78. package/dist/lib/neutral/app-graph-builder-XJHFSODX.mjs.map +0 -7
  79. package/dist/lib/neutral/chunk-MIF2W4LF.mjs +0 -96
  80. package/dist/lib/neutral/chunk-MIF2W4LF.mjs.map +0 -7
  81. package/dist/lib/neutral/react-surface-MUVRCB3H.mjs.map +0 -7
  82. package/dist/types/src/components/DebugSettings/DebugSettings.d.ts.map +0 -1
  83. /package/dist/types/src/{components → containers}/DebugSettings/index.d.ts +0 -0
  84. /package/src/{components → containers}/DebugSettings/index.ts +0 -0
@@ -0,0 +1,118 @@
1
+ import {
2
+ __export
3
+ } from "./chunk-J5LGTIGS.mjs";
4
+
5
+ // src/types/debug.ts
6
+ import { createContext } from "react";
7
+ import { Capability } from "@dxos/app-framework";
8
+ import { meta } from "#meta";
9
+ var DebugContext = createContext({
10
+ running: false,
11
+ start: () => {
12
+ },
13
+ stop: () => {
14
+ }
15
+ });
16
+ (function(DebugCapabilities2) {
17
+ DebugCapabilities2.Settings = Capability.make(`${meta.profile.key}.capability.settings`);
18
+ })(DebugCapabilities || (DebugCapabilities = {}));
19
+ var DebugCapabilities;
20
+
21
+ // src/types/surface.ts
22
+ import { Surface } from "@dxos/app-framework/ui";
23
+ var DevtoolsOverview = Surface.makeType("org.dxos.plugin.debug.role.devtoolsOverview");
24
+
25
+ // src/types/Devtools.ts
26
+ var Devtools_exports = {};
27
+ __export(Devtools_exports, {
28
+ Agent: () => Agent,
29
+ AppGraph: () => AppGraph,
30
+ Client: () => Client,
31
+ Debug: () => Debug,
32
+ Echo: () => Echo,
33
+ Edge: () => Edge,
34
+ Halo: () => Halo,
35
+ Mesh: () => Mesh,
36
+ ToolsExplorer: () => ToolsExplorer,
37
+ id: () => id,
38
+ nodeId: () => nodeId
39
+ });
40
+ import { meta as meta2 } from "#meta";
41
+ var nodeId = (fullId) => fullId.split(".").at(-1) ?? "";
42
+ var devtoolsId = `${meta2.profile.key}.devtools`;
43
+ var id = devtoolsId;
44
+ var AppGraph = `${devtoolsId}.appGraph`;
45
+ var Debug = `${devtoolsId}.debug`;
46
+ var ToolsExplorer = `${devtoolsId}.toolsExplorer`;
47
+ (function(Client2) {
48
+ Client2.id = `${devtoolsId}.client`;
49
+ Client2.Config = `${Client2.id}.config`;
50
+ Client2.Storage = `${Client2.id}.storage`;
51
+ Client2.Sqlite = `${Client2.id}.sqlite`;
52
+ Client2.Logs = `${Client2.id}.logs`;
53
+ Client2.Diagnostics = `${Client2.id}.diagnostics`;
54
+ })(Client || (Client = {}));
55
+ (function(Halo2) {
56
+ Halo2.id = `${devtoolsId}.halo`;
57
+ Halo2.Identity = `${Halo2.id}.identity`;
58
+ Halo2.Devices = `${Halo2.id}.devices`;
59
+ Halo2.Keyring = `${Halo2.id}.keyring`;
60
+ Halo2.Credentials = `${Halo2.id}.credentials`;
61
+ })(Halo || (Halo = {}));
62
+ (function(Echo2) {
63
+ Echo2.id = `${devtoolsId}.echo`;
64
+ Echo2.Spaces = `${Echo2.id}.spaces`;
65
+ Echo2.Space = `${Echo2.id}.space`;
66
+ Echo2.Feeds = `${Echo2.id}.feeds`;
67
+ Echo2.Objects = `${Echo2.id}.objects`;
68
+ Echo2.Schema = `${Echo2.id}.schema`;
69
+ Echo2.Registry = `${Echo2.id}.registry`;
70
+ Echo2.Automerge = `${Echo2.id}.automerge`;
71
+ Echo2.Queues = `${Echo2.id}.queues`;
72
+ Echo2.Members = `${Echo2.id}.members`;
73
+ Echo2.Metadata = `${Echo2.id}.metadata`;
74
+ })(Echo || (Echo = {}));
75
+ (function(Mesh2) {
76
+ Mesh2.id = `${devtoolsId}.mesh`;
77
+ Mesh2.Signal = `${Mesh2.id}.signal`;
78
+ Mesh2.Swarm = `${Mesh2.id}.swarm`;
79
+ Mesh2.Network = `${Mesh2.id}.network`;
80
+ })(Mesh || (Mesh = {}));
81
+ (function(Agent2) {
82
+ Agent2.id = `${devtoolsId}.agent`;
83
+ Agent2.Dashboard = `${Agent2.id}.dashboard`;
84
+ Agent2.Search = `${Agent2.id}.search`;
85
+ })(Agent || (Agent = {}));
86
+ (function(Edge2) {
87
+ Edge2.id = `${devtoolsId}.edge`;
88
+ Edge2.Dashboard = `${Edge2.id}.dashboard`;
89
+ Edge2.Workflows = `${Edge2.id}.workflows`;
90
+ Edge2.Traces = `${Edge2.id}.traces`;
91
+ Edge2.Testing = `${Edge2.id}.testing`;
92
+ })(Edge || (Edge = {}));
93
+ var Client;
94
+ var Halo;
95
+ var Echo;
96
+ var Mesh;
97
+ var Agent;
98
+ var Edge;
99
+
100
+ // src/types/Settings.ts
101
+ var Settings_exports = {};
102
+ __export(Settings_exports, {
103
+ Settings: () => Settings
104
+ });
105
+ import * as Schema from "effect/Schema";
106
+ var Settings = Schema.mutable(Schema.Struct({
107
+ wireframe: Schema.optional(Schema.Boolean),
108
+ traceAll: Schema.optional(Schema.Boolean)
109
+ }));
110
+
111
+ export {
112
+ DebugContext,
113
+ DebugCapabilities,
114
+ DevtoolsOverview,
115
+ Devtools_exports,
116
+ Settings_exports
117
+ };
118
+ //# sourceMappingURL=chunk-72QXLYMI.mjs.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../src/types/debug.ts", "../../../src/types/surface.ts", "../../../src/types/Devtools.ts", "../../../src/types/Settings.ts"],
4
+ "sourcesContent": ["//\n// Copyright 2023 DXOS.org\n//\n\nimport { type Atom } from '@effect-atom/atom-react';\nimport { type Context, createContext } from 'react';\n\nimport { Capability } from '@dxos/app-framework';\nimport type { TimerCallback, TimerOptions } from '@dxos/async';\nimport { type IdbLogStore } from '@dxos/log-store-idb';\n\nimport { meta } from '#meta';\n\nimport * as Settings from './Settings';\n\nexport type DebugPluginOptions = {\n /** Shared persistent log store for capturing and downloading logs. */\n logStore?: IdbLogStore;\n};\n\nexport type DebugContextType = {\n running: boolean;\n start: (cb: TimerCallback, options: TimerOptions) => void;\n stop: () => void;\n};\n\nexport const DebugContext: Context<DebugContextType> = createContext<DebugContextType>({\n running: false,\n start: () => {},\n stop: () => {},\n});\n\nexport namespace DebugCapabilities {\n export const Settings = Capability.make<Atom.Writable<Settings.Settings>>(`${meta.profile.key}.capability.settings`);\n}\n", "//\n// Copyright 2025 DXOS.org\n//\n\nimport { Surface } from '@dxos/app-framework/ui';\n\n/** Slot for the devtools-overview sub-surface inside the debug panel. */\nexport const DevtoolsOverview: Surface.RoleToken<Record<string, unknown>> = Surface.makeType(\n 'org.dxos.plugin.debug.role.devtoolsOverview',\n);\n", "//\n// Copyright 2025 DXOS.org\n//\n\n// @import-as-namespace\n\nimport { meta } from '#meta';\n\n/**\n * Extracts the last dot-separated segment of a Devtools namespaced ID string.\n * Use this as the node segment `id` when building app-graph nodes whose `data`\n * value is one of the other constants in this namespace.\n */\nexport const nodeId = (fullId: string): string => fullId.split('.').at(-1) ?? '';\n\nconst devtoolsId = `${meta.profile.key}.devtools`;\n\nexport const id = devtoolsId;\nexport const AppGraph = `${devtoolsId}.appGraph`;\nexport const Debug = `${devtoolsId}.debug`;\nexport const ToolsExplorer = `${devtoolsId}.toolsExplorer`;\n\nexport namespace Client {\n export const id = `${devtoolsId}.client`;\n export const Config = `${Client.id}.config`;\n export const Storage = `${Client.id}.storage`;\n export const Sqlite = `${Client.id}.sqlite`;\n export const Logs = `${Client.id}.logs`;\n export const Diagnostics = `${Client.id}.diagnostics`;\n}\n\nexport namespace Halo {\n export const id = `${devtoolsId}.halo`;\n export const Identity = `${Halo.id}.identity`;\n export const Devices = `${Halo.id}.devices`;\n export const Keyring = `${Halo.id}.keyring`;\n export const Credentials = `${Halo.id}.credentials`;\n}\n\nexport namespace Echo {\n export const id = `${devtoolsId}.echo`;\n export const Spaces = `${Echo.id}.spaces`;\n export const Space = `${Echo.id}.space`;\n export const Feeds = `${Echo.id}.feeds`;\n export const Objects = `${Echo.id}.objects`;\n export const Schema = `${Echo.id}.schema`;\n export const Registry = `${Echo.id}.registry`;\n export const Automerge = `${Echo.id}.automerge`;\n export const Queues = `${Echo.id}.queues`;\n export const Members = `${Echo.id}.members`;\n export const Metadata = `${Echo.id}.metadata`;\n}\n\nexport namespace Mesh {\n export const id = `${devtoolsId}.mesh`;\n export const Signal = `${Mesh.id}.signal`;\n export const Swarm = `${Mesh.id}.swarm`;\n export const Network = `${Mesh.id}.network`;\n}\n\nexport namespace Agent {\n export const id = `${devtoolsId}.agent`;\n export const Dashboard = `${Agent.id}.dashboard`;\n export const Search = `${Agent.id}.search`;\n}\n\nexport namespace Edge {\n export const id = `${devtoolsId}.edge`;\n export const Dashboard = `${Edge.id}.dashboard`;\n export const Workflows = `${Edge.id}.workflows`;\n export const Traces = `${Edge.id}.traces`;\n export const Testing = `${Edge.id}.testing`;\n}\n", "//\n// Copyright 2023 DXOS.org\n//\n\n// @import-as-namespace\n\nimport * as Schema from 'effect/Schema';\n\nexport const Settings = Schema.mutable(\n Schema.Struct({\n wireframe: Schema.optional(Schema.Boolean),\n traceAll: Schema.optional(Schema.Boolean),\n }),\n);\n\nexport interface Settings extends Schema.Schema.Type<typeof Settings> {}\n"],
5
+ "mappings": ";;;;;AAKA,SAAuBA,qBAAqB;AAE5C,SAASC,kBAAkB;AAI3B,SAASC,YAAY;AAed,IAAMC,eAA0CH,cAAgC;EACrFI,SAAS;EACTC,OAAO,MAAA;EAAO;EACdC,MAAM,MAAA;EAAO;AACf,CAAA;UAEiBC,oBAAAA;qBACFC,WAAWP,WAAWQ,KAAuC,GAAGP,KAAKQ,QAAQC,GAAG,sBAAsB;AACrH,GAFiBJ,sBAAAA,oBAAAA,CAAAA,EAAAA;;;;AC5BjB,SAASK,eAAe;AAGjB,IAAMC,mBAA+DD,QAAQE,SAClF,6CAAA;;;ACRF;;;;;;;;;;;;;;AAMA,SAASC,QAAAA,aAAY;AAOd,IAAMC,SAAS,CAACC,WAA2BA,OAAOC,MAAM,GAAA,EAAKC,GAAG,EAAC,KAAM;AAE9E,IAAMC,aAAa,GAAGL,MAAKM,QAAQC,GAAG;AAE/B,IAAMC,KAAKH;AACX,IAAMI,WAAW,GAAGJ,UAAAA;AACpB,IAAMK,QAAQ,GAAGL,UAAAA;AACjB,IAAMM,gBAAgB,GAAGN,UAAAA;UAEfO,SAAAA;UACFJ,KAAK,GAAGH,UAAAA;UACRQ,SAAS,GAAGD,QAAOJ,EAAE;UACrBM,UAAU,GAAGF,QAAOJ,EAAE;UACtBO,SAAS,GAAGH,QAAOJ,EAAE;UACrBQ,OAAO,GAAGJ,QAAOJ,EAAE;UACnBS,cAAc,GAAGL,QAAOJ,EAAE;AACzC,GAPiBI,WAAAA,SAAAA,CAAAA,EAAAA;UASAM,OAAAA;QACFV,KAAK,GAAGH,UAAAA;QACRc,WAAW,GAAGD,MAAKV,EAAE;QACrBY,UAAU,GAAGF,MAAKV,EAAE;QACpBa,UAAU,GAAGH,MAAKV,EAAE;QACpBc,cAAc,GAAGJ,MAAKV,EAAE;AACvC,GANiBU,SAAAA,OAAAA,CAAAA,EAAAA;UAQAK,OAAAA;QACFf,KAAK,GAAGH,UAAAA;QACRmB,SAAS,GAAGD,MAAKf,EAAE;QACnBiB,QAAQ,GAAGF,MAAKf,EAAE;QAClBkB,QAAQ,GAAGH,MAAKf,EAAE;QAClBmB,UAAU,GAAGJ,MAAKf,EAAE;QACpBoB,SAAS,GAAGL,MAAKf,EAAE;QACnBqB,WAAW,GAAGN,MAAKf,EAAE;QACrBsB,YAAY,GAAGP,MAAKf,EAAE;QACtBuB,SAAS,GAAGR,MAAKf,EAAE;QACnBwB,UAAU,GAAGT,MAAKf,EAAE;QACpByB,WAAW,GAAGV,MAAKf,EAAE;AACpC,GAZiBe,SAAAA,OAAAA,CAAAA,EAAAA;UAcAW,OAAAA;QACF1B,KAAK,GAAGH,UAAAA;QACR8B,SAAS,GAAGD,MAAK1B,EAAE;QACnB4B,QAAQ,GAAGF,MAAK1B,EAAE;QAClB6B,UAAU,GAAGH,MAAK1B,EAAE;AACnC,GALiB0B,SAAAA,OAAAA,CAAAA,EAAAA;UAOAI,QAAAA;SACF9B,KAAK,GAAGH,UAAAA;SACRkC,YAAY,GAAGD,OAAM9B,EAAE;SACvBgC,SAAS,GAAGF,OAAM9B,EAAE;AACnC,GAJiB8B,UAAAA,QAAAA,CAAAA,EAAAA;UAMAG,OAAAA;QACFjC,KAAK,GAAGH,UAAAA;QACRkC,YAAY,GAAGE,MAAKjC,EAAE;QACtBkC,YAAY,GAAGD,MAAKjC,EAAE;QACtBmC,SAAS,GAAGF,MAAKjC,EAAE;QACnBoC,UAAU,GAAGH,MAAKjC,EAAE;AACnC,GANiBiC,SAAAA,OAAAA,CAAAA,EAAAA;;;;;;;;;AClEjB;;;;AAMA,YAAYI,YAAY;AAEjB,IAAMC,WAAkBC,eACtBC,cAAO;EACZC,WAAkBC,gBAAgBC,cAAO;EACzCC,UAAiBF,gBAAgBC,cAAO;AAC1C,CAAA,CAAA;",
6
+ "names": ["createContext", "Capability", "meta", "DebugContext", "running", "start", "stop", "DebugCapabilities", "Settings", "make", "profile", "key", "Surface", "DevtoolsOverview", "makeType", "meta", "nodeId", "fullId", "split", "at", "devtoolsId", "profile", "key", "id", "AppGraph", "Debug", "ToolsExplorer", "Client", "Config", "Storage", "Sqlite", "Logs", "Diagnostics", "Halo", "Identity", "Devices", "Keyring", "Credentials", "Echo", "Spaces", "Space", "Feeds", "Objects", "Schema", "Registry", "Automerge", "Queues", "Members", "Metadata", "Mesh", "Signal", "Swarm", "Network", "Agent", "Dashboard", "Search", "Edge", "Workflows", "Traces", "Testing", "Schema", "Settings", "mutable", "Struct", "wireframe", "optional", "Boolean", "traceAll"]
7
+ }
@@ -1,8 +1,5 @@
1
1
  import "../chunk-J5LGTIGS.mjs";
2
2
 
3
- // src/components/index.ts
4
- import { lazy } from "react";
5
-
6
3
  // src/components/SchemaTable/SchemaTable.tsx
7
4
  import React from "react";
8
5
  import { IconButton } from "@dxos/react-ui";
@@ -29,8 +26,8 @@ var SchemaTable = ({ types, objects = {}, label, onClick }) => {
29
26
 
30
27
  // src/components/SpaceGenerator/presets.ts
31
28
  import * as Schema from "effect/Schema";
32
- import { AgentPrompt, WebSearchBlueprint } from "@dxos/assistant-toolkit";
33
- import { Routine, Trigger, Operation } from "@dxos/compute";
29
+ import { RunInstructions, WebSearchSkill } from "@dxos/assistant-toolkit";
30
+ import { Instructions, Operation, Trigger } from "@dxos/compute";
34
31
  import { NODE_INPUT } from "@dxos/conductor";
35
32
  import { Feed, Filter, JsonSchema, Key, Obj, Query, Ref, Scope, Tag } from "@dxos/echo";
36
33
  import { invariant } from "@dxos/invariant";
@@ -133,35 +130,31 @@ var generator = () => ({
133
130
  space.db.add(Trigger.make({
134
131
  enabled: true,
135
132
  spec: Trigger.specTimer("* * * * *"),
136
- function: Ref.make(Operation.serialize(InboxOperation.GoogleMailSync)),
133
+ runnable: Ref.make(Operation.serialize(InboxOperation.GoogleMailSync)),
137
134
  input: {
138
135
  mailbox: Ref.make(mailbox)
139
136
  }
140
137
  }));
141
- const researchPrompt = space.db.add(Routine.make({
138
+ const researchPrompt = space.db.add(Instructions.make({
142
139
  name: "Research",
143
140
  description: "Research organization",
144
- input: Schema.Struct({
145
- org: Schema.Any
146
- }),
147
- output: Schema.Any,
148
141
  // TODO(dmaretskyi): This mocks research (returns pre-baked result), the actual research might take compute minutes.
149
142
  // Remove the mock prompt to do the actual research.
150
- instructions: trim`
143
+ text: trim`
151
144
  Research the organization provided as input.
152
145
  Create a research note for it at the end.
153
146
  NOTE: Do mocked reseach (set mockSearch to true).
154
147
  `,
155
- blueprints: [
156
- Ref.make(WebSearchBlueprint.make())
148
+ skills: [
149
+ Ref.make(WebSearchSkill.make())
157
150
  ]
158
151
  }));
159
152
  space.db.add(Trigger.make({
160
153
  enabled: true,
161
154
  spec: Trigger.specSubscription(organizationsQuery),
162
- function: Ref.make(Operation.serialize(AgentPrompt)),
155
+ runnable: Ref.make(Operation.serialize(RunInstructions)),
163
156
  input: {
164
- prompt: Ref.make(researchPrompt),
157
+ instructions: Ref.make(researchPrompt),
165
158
  input: "{{event.subject}}"
166
159
  }
167
160
  }));
@@ -676,14 +669,14 @@ var createQueueSinkPreset = (space, triggerKind, initSpec, triggerOutputName) =>
676
669
  });
677
670
  functionTrigger = triggerShape.functionTrigger.target;
678
671
  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.'"] });
672
+ invariant(triggerSpec && triggerSpec.kind === triggerKind, "No trigger spec.", { "~LogMeta": "~LogMeta", F: __dxlog_file, L: 657, S: void 0, A: ["triggerSpec && triggerSpec.kind === triggerKind", "'No trigger spec.'"] });
680
673
  Obj.update(functionTrigger, (functionTrigger2) => {
681
674
  initSpec(functionTrigger2.spec);
682
675
  });
683
676
  });
684
677
  const computeModel = createComputeGraph(canvasModel);
685
678
  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.'"] });
679
+ invariant(templateComputeNode, "Template compute node was not created.", { "~LogMeta": "~LogMeta", F: __dxlog_file, L: 664, S: void 0, A: ["templateComputeNode", "'Template compute node was not created.'"] });
687
680
  templateComputeNode.value = [
688
681
  "{",
689
682
  ' "@type": "{{type}}",',
@@ -736,10 +729,10 @@ var setupQueue = (space, canvasModel, args) => {
736
729
  };
737
730
  };
738
731
  var attachTrigger = (functionTrigger, computeModel) => {
739
- invariant(functionTrigger, void 0, { "~LogMeta": "~LogMeta", F: __dxlog_file, L: 722, S: void 0, A: ["functionTrigger", ""] });
732
+ invariant(functionTrigger, void 0, { "~LogMeta": "~LogMeta", F: __dxlog_file, L: 718, S: void 0, A: ["functionTrigger", ""] });
740
733
  const inputNode = computeModel.nodes.find((node) => node.type === NODE_INPUT);
741
734
  Obj.update(functionTrigger, (functionTrigger2) => {
742
- functionTrigger2.function = Ref.make(computeModel.root);
735
+ functionTrigger2.runnable = Ref.make(computeModel.root);
743
736
  functionTrigger2.inputNodeId = inputNode.id;
744
737
  });
745
738
  };
@@ -958,11 +951,7 @@ var staticGenerators = /* @__PURE__ */ new Map([
958
951
  }
959
952
  ]
960
953
  ]);
961
-
962
- // src/components/index.ts
963
- var DebugSettings = lazy(() => import("../DebugSettings-WLFIBSRV.mjs"));
964
954
  export {
965
- DebugSettings,
966
955
  PresetName,
967
956
  SchemaTable,
968
957
  createGenerator,
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
- "sources": ["../../../../src/components/index.ts", "../../../../src/components/SchemaTable/SchemaTable.tsx", "../../../../src/components/SpaceGenerator/presets.ts", "../../../../src/components/SpaceGenerator/ObjectGenerator.tsx"],
4
- "sourcesContent": ["//\n// Copyright 2023 DXOS.org\n//\n\nimport { type ComponentType, lazy } from 'react';\n\nexport const DebugSettings: ComponentType<any> = lazy(() => import('./DebugSettings'));\n\nexport * from './SchemaTable';\nexport * from './SpaceGenerator';\n", "//\n// Copyright 2024 DXOS.org\n//\n\nimport React from 'react';\n\nimport { IconButton } from '@dxos/react-ui';\n\nexport type SchemaTableProps = {\n types: any[];\n objects?: Record<string, number | undefined>;\n label: string;\n onClick: (typename: string) => void;\n};\n\nexport const SchemaTable = ({ types, objects = {}, label, onClick }: SchemaTableProps) => {\n return (\n <div className='grid grid-cols-[1fr_80px_40px] gap-1 overflow-none'>\n <h2 className='p-2'>{label}</h2>\n {types.map((type) => (\n <div key={type.typename} className='grid grid-cols-subgrid col-span-3 items-center'>\n <div className='px-2 text-sm font-mono text-subdued'>{type.typename}</div>\n <div className='px-2 text-right font-mono'>{objects[type.typename] ?? 0}</div>\n <IconButton\n variant='ghost'\n icon='ph--plus--regular'\n iconOnly\n label='Create data'\n onClick={() => onClick(type.typename)}\n />\n </div>\n ))}\n </div>\n );\n};\n", "//\n// Copyright 2025 DXOS.org\n//\n\nimport * as Schema from 'effect/Schema';\n\nimport { AgentPrompt, WebSearchBlueprint } from '@dxos/assistant-toolkit';\nimport { Routine, Trigger, Operation } from '@dxos/compute';\nimport { type ComputeGraphModel, NODE_INPUT } from '@dxos/conductor';\nimport { Feed, Filter, JsonSchema, Key, Obj, Query, type QueryAST, Ref, Scope, Tag } from '@dxos/echo';\nimport { invariant } from '@dxos/invariant';\nimport { DXN, EID } from '@dxos/keys';\nimport { InboxOperation } from '@dxos/plugin-inbox';\nimport { Mailbox } from '@dxos/plugin-inbox';\nimport { Markdown } from '@dxos/plugin-markdown';\nimport { type Space } from '@dxos/react-client/echo';\nimport {\n type ComputeShape,\n createAppend,\n createChat,\n createComputeGraph,\n createConstant,\n createFeed,\n createFunction,\n createGpt,\n createRandom,\n createSurface,\n createTemplate,\n createText,\n createTrigger,\n} from '@dxos/react-ui-canvas-compute';\nimport { CanvasBoard, CanvasGraphModel, pointMultiply, pointsToRect, rectToPoints } from '@dxos/react-ui-canvas-editor';\nimport { ViewModel } from '@dxos/schema';\nimport { Message, Organization, Person, Pipeline } from '@dxos/types';\nimport { range, trim } from '@dxos/util';\n\nimport { type ObjectGenerator } from './ObjectGenerator';\n\nexport enum PresetName {\n DXOS_TEAM = 'dxos-team',\n ORG_RESEARCH_PROJECT = 'org-research-project',\n // EMAIL_TABLE = 'email-table',\n GPT_QUEUE = 'webhook-gpt-queue',\n CHAT_GPT = 'chat-gpt-text',\n // EMAIL_WITH_SUMMARY = 'email-gptSummary-table',\n OBJECT_CHANGE_QUEUE = 'objectChange-queue',\n TIMER_TICK_QUEUE = 'timerTick-queue',\n FOREX_FUNCTION_CALL = 'forex-function-call',\n DISCORD_MESSAGES = 'discord-messages',\n // KANBAN_QUEUE = 'kanban-queue',\n}\n\nexport const generator = () => ({\n schemas: [CanvasBoard.CanvasBoard, Trigger.Trigger] as any[],\n types: Object.values(PresetName).map((name) => ({ typename: name })),\n items: [\n [\n PresetName.DXOS_TEAM,\n async (space, n, cb) => {\n const objects = range(n, () => {\n const org = space.db.add(\n Obj.make(Organization.Organization, {\n name: 'DXOS',\n website: 'https://dxos.org',\n }),\n );\n const doc = space.db.add(\n Markdown.make({\n name: 'DXOS Research',\n content: 'DXOS builds Composer, an open-source AI-powered malleable application.',\n }),\n );\n\n const tag = space.db.add(Tag.make({ label: 'Investor' }));\n const tagRef = Ref.make(tag);\n Obj.update(doc, (doc) => {\n Obj.getMeta(doc).tags = [tagRef];\n });\n\n // space.db.add(\n // Relation.make(HasSubject, {\n // [Relation.Source]: doc,\n // [Relation.Target]: org,\n // completedAt: new Date().toISOString(),\n // }),\n // );\n\n space.db.add(\n Obj.make(Person.Person, { [Obj.Meta]: { tags: [tagRef] }, fullName: 'Rich', organization: Ref.make(org) }),\n );\n space.db.add(\n Obj.make(Person.Person, {\n fullName: 'Josiah',\n organization: Ref.make(org),\n }),\n );\n space.db.add(\n Obj.make(Person.Person, {\n fullName: 'Dima',\n organization: Ref.make(org),\n }),\n );\n space.db.add(\n Obj.make(Person.Person, {\n fullName: 'Mykola',\n organization: Ref.make(org),\n }),\n );\n\n return doc;\n });\n cb?.(objects);\n return objects;\n },\n ],\n [\n PresetName.ORG_RESEARCH_PROJECT,\n async (space, n, cb) => {\n const mailboxes = await space.db.query(Filter.type(Mailbox.Mailbox)).run();\n const mailbox = mailboxes[0];\n invariant(mailbox, 'Mailbox not found');\n const mailboxFeed = await mailbox.feed?.tryLoad();\n invariant(mailboxFeed, 'Mailbox missing feed reference');\n const queueDxn = Feed.getQueueUri(mailboxFeed);\n invariant(queueDxn, 'Mailbox feed missing queue DXN key');\n const tag = await space.db.query(Filter.type(Tag.Tag, { label: 'Investor' })).first();\n const tagUri = Obj.getURI(tag);\n\n const objects = range(n, () => {\n const contactsQuery = Query.select(Filter.type(Person.Person)).select(Filter.tag(tagUri));\n const organizationsQuery = Query.select(Filter.type(Organization.Organization)).select(Filter.tag(tagUri));\n const notesQuery = Query.select(Filter.type(Markdown.Document)).select(Filter.tag(tagUri));\n\n space.db.add(\n Trigger.make({\n enabled: true,\n spec: Trigger.specTimer('* * * * *'), // Every minute.\n function: Ref.make(Operation.serialize(InboxOperation.GoogleMailSync)),\n input: {\n mailbox: Ref.make(mailbox),\n },\n }),\n );\n\n const researchPrompt = space.db.add(\n Routine.make({\n name: 'Research',\n description: 'Research organization',\n input: Schema.Struct({\n org: Schema.Any,\n }),\n output: Schema.Any,\n\n // TODO(dmaretskyi): This mocks research (returns pre-baked result), the actual research might take compute minutes.\n // Remove the mock prompt to do the actual research.\n instructions: trim`\n Research the organization provided as input.\n Create a research note for it at the end.\n NOTE: Do mocked reseach (set mockSearch to true).\n `,\n blueprints: [Ref.make(WebSearchBlueprint.make())],\n }),\n );\n\n space.db.add(\n Trigger.make({\n enabled: true,\n spec: Trigger.specSubscription(organizationsQuery),\n function: Ref.make(Operation.serialize(AgentPrompt)),\n input: {\n prompt: Ref.make(researchPrompt),\n input: '{{event.subject}}',\n },\n }),\n );\n\n const mailboxView = ViewModel.make({\n query: Query.select(\n Filter.type(Message.Message, {\n properties: { labels: Filter.contains('investor') },\n }),\n ).from(Scope.feed(Obj.getURI(mailboxFeed))),\n jsonSchema: JsonSchema.toJsonSchema(Message.Message),\n });\n const contactsView = ViewModel.make({\n query: contactsQuery,\n jsonSchema: JsonSchema.toJsonSchema(Person.Person),\n });\n const organizationsView = ViewModel.make({\n query: organizationsQuery,\n jsonSchema: JsonSchema.toJsonSchema(Organization.Organization),\n });\n const notesView = ViewModel.make({\n query: notesQuery,\n jsonSchema: JsonSchema.toJsonSchema(Markdown.Document),\n });\n\n return space.db.add(\n Pipeline.make({\n name: 'Investor Research',\n columns: [\n {\n name: 'Mailbox',\n view: Ref.make(mailboxView),\n order: [],\n },\n {\n name: 'Contacts',\n view: Ref.make(contactsView),\n order: [],\n },\n {\n name: 'Organizations',\n view: Ref.make(organizationsView),\n order: [],\n },\n {\n name: 'Notes',\n view: Ref.make(notesView),\n order: [],\n },\n ],\n }),\n );\n });\n\n cb?.(objects.flat());\n return objects.flat();\n },\n ],\n [\n PresetName.GPT_QUEUE,\n async (space, n, cb) => {\n const objects = range(n, () => {\n const canvasModel = CanvasGraphModel.create<ComputeShape>();\n\n let functionTrigger: Trigger.Trigger | undefined;\n canvasModel.builder.call((builder) => {\n const gpt = canvasModel.createNode(createGpt(position({ x: 0, y: -14 })));\n const triggerShape = createTrigger({\n spaceId: space.id,\n triggerKind: 'webhook',\n ...position({ x: -18, y: -2 }),\n });\n const trigger = canvasModel.createNode(triggerShape);\n const text = canvasModel.createNode(createText(position({ x: 19, y: 3, width: 10, height: 10 })));\n const { queueId } = setupQueue(space, canvasModel);\n const append = canvasModel.createNode(createAppend(position({ x: 10, y: 6 })));\n\n builder\n .createEdge({\n source: trigger.id,\n target: gpt.id,\n input: 'prompt',\n output: 'bodyText',\n })\n .createEdge({ source: gpt.id, target: text.id, output: 'text' })\n .createEdge({\n source: queueId.id,\n target: append.id,\n input: 'id',\n })\n .createEdge({\n source: gpt.id,\n target: append.id,\n output: 'messages',\n input: 'items',\n });\n\n functionTrigger = triggerShape.functionTrigger!.target!;\n });\n\n const computeModel = createComputeGraph(canvasModel);\n\n attachTrigger(functionTrigger, computeModel);\n\n return addToSpace(PresetName.GPT_QUEUE, space, canvasModel, computeModel);\n });\n cb?.(objects);\n return objects;\n },\n ],\n\n [\n PresetName.OBJECT_CHANGE_QUEUE,\n async (space, n, cb) => {\n const objects = range(n, () => {\n const { canvasModel, computeModel } = createQueueSinkPreset(\n space,\n 'subscription',\n (triggerSpec) =>\n (triggerSpec.query = {\n ast: Query.select(Filter.type(DXN.make('org.dxos.type.chess'))).ast as Obj.Mutable<QueryAST.Query>,\n }),\n 'type',\n );\n return addToSpace(PresetName.OBJECT_CHANGE_QUEUE, space, canvasModel, computeModel);\n });\n cb?.(objects);\n return objects;\n },\n ],\n\n [\n PresetName.TIMER_TICK_QUEUE,\n async (space, n, cb) => {\n const objects = range(n, () => {\n const { canvasModel, computeModel } = createQueueSinkPreset(\n space,\n 'timer',\n (triggerSpec) => (triggerSpec.cron = '*/5 * * * * *'),\n 'result',\n );\n return addToSpace(PresetName.TIMER_TICK_QUEUE, space, canvasModel, computeModel);\n });\n cb?.(objects);\n return objects;\n },\n ],\n\n // TODO(wittjosiah): Remove?\n // [\n // PresetName.EMAIL_TABLE,\n // async (space, n, cb) => {\n // const objects = range(n, () => {\n // const canvasModel = CanvasGraphModel.create<ComputeShape>();\n\n // const results = space.db.query(Filter.type(TableType)).runSync();\n // const emailTable = results.find((r) => r.object?.view?.target?.query?.typename?.endsWith('Email'));\n // invariant(emailTable, 'Email table not found.');\n\n // const template = canvasModel.createNode(\n // createTemplate({\n // valueType: 'object',\n // ...rawPosition({ centerX: -80, centerY: -64, width: 320, height: 320 }),\n // }),\n // );\n // const templateContent = ['{'];\n\n // let functionTrigger: FunctionTrigger | undefined;\n // canvasModel.builder.call((builder) => {\n // const triggerShape = createTrigger({\n // spaceId: space.id,\n // triggerKind: 'email',\n // ...position({ x: -18, y: -2 }),\n // });\n // const trigger = canvasModel.createNode(triggerShape);\n\n // const tableId = canvasModel.createNode(\n // createConstant({\n // value: DXN.fromLocalObjectId(emailTable.id).toString(),\n // ...position({ x: -18, y: 5, width: 8, height: 6 }),\n // }),\n // );\n\n // const appendToTable = canvasModel.createNode(createAppend(position({ x: 10, y: 6 })));\n\n // const properties = SchemaAST.getPropertySignatures(EmailTriggerOutput.ast);\n // for (let i = 0; i < properties.length; i++) {\n // const propName = properties[i].name.toString();\n // builder.createEdge({ source: trigger.id, target: template.id, input: propName, output: propName });\n // templateContent.push(` \"${propName}\": \"{{${propName}}}\"` + (i === properties.length - 1 ? '' : ','));\n // }\n // templateContent.push('}');\n\n // builder\n // .createEdge({ source: tableId.id, target: appendToTable.id, input: 'id' })\n // .createEdge({ source: template.id, target: appendToTable.id, input: 'items' });\n\n // functionTrigger = triggerShape.functionTrigger!.target!;\n // });\n\n // const computeModel = createComputeGraph(canvasModel);\n\n // const templateComputeNode = computeModel.nodes.find((n) => n.id === template.node);\n // invariant(templateComputeNode, 'Template compute node was not created.');\n // templateComputeNode.value = templateContent.join('\\n');\n // templateComputeNode.inputSchema = JsonSchema.toJsonSchema(EmailTriggerOutput);\n\n // attachTrigger(functionTrigger, computeModel);\n\n // return addToSpace(PresetName.EMAIL_TABLE, space, canvasModel, computeModel);\n // });\n // cb?.(objects);\n // return objects;\n // },\n // ],\n\n [\n PresetName.CHAT_GPT,\n async (space, n, cb) => {\n const objects = range(n, () => {\n const canvasModel = CanvasGraphModel.create<ComputeShape>();\n\n canvasModel.builder.call((builder) => {\n const gpt = canvasModel.createNode(createGpt(position({ x: 0, y: -14 })));\n const chat = canvasModel.createNode(createChat(position({ x: -18, y: -2 })));\n const text = canvasModel.createNode(createText(position({ x: 19, y: 3, width: 10, height: 10 })));\n const { queueId } = setupQueue(space, canvasModel);\n\n const append = canvasModel.createNode(createAppend(position({ x: 10, y: 6 })));\n\n builder\n .createEdge({ source: chat.id, target: gpt.id, input: 'prompt' })\n .createEdge({ source: gpt.id, target: text.id, output: 'text' })\n .createEdge({\n source: queueId.id,\n target: append.id,\n input: 'id',\n })\n .createEdge({\n source: gpt.id,\n target: append.id,\n output: 'messages',\n input: 'items',\n });\n });\n\n const computeModel = createComputeGraph(canvasModel);\n\n return addToSpace(PresetName.CHAT_GPT, space, canvasModel, computeModel);\n });\n cb?.(objects);\n return objects;\n },\n ],\n\n // TODO(wittjosiah): Remove?\n // [\n // PresetName.EMAIL_WITH_SUMMARY,\n // async (space, n, cb) => {\n // const objects = range(n, () => {\n // const canvasModel = CanvasGraphModel.create<ComputeShape>();\n\n // const results = space.db.query(Filter.type(TableType)).runSync();\n // const emailTable = results.find((r) => r.object?.view?.target?.query?.typename?.endsWith('Email'));\n // invariant(emailTable, 'Email table not found.');\n\n // const template = canvasModel.createNode(\n // createTemplate({\n // valueType: 'object',\n // ...rawPosition({ centerX: 192, centerY: -176, width: 320, height: 320 }),\n // }),\n // );\n // const templateContent = ['{'];\n\n // let functionTrigger: FunctionTrigger | undefined;\n // canvasModel.builder.call((builder) => {\n // const gpt = canvasModel.createNode(\n // createGpt(rawPosition({ centerX: -400, centerY: -112, width: 256, height: 202 })),\n // );\n // const systemPrompt = canvasModel.createNode(\n // createConstant({\n // value: \"use one word to describe content category. don't write anything else\",\n // ...rawPosition({ centerX: -800, centerY: -160, width: 192, height: 128 }),\n // }),\n // );\n // const triggerShape = createTrigger({\n // spaceId: space.id,\n // triggerKind: 'email',\n // ...rawPosition({ centerX: -736, centerY: -384, width: 182, height: 192 }),\n // });\n // const trigger = canvasModel.createNode(triggerShape);\n\n // const { queueId } = setupQueue(space, canvasModel, {\n // idPosition: { centerX: -720, centerY: 224, width: 192, height: 256 },\n // queuePosition: { centerX: -144, centerY: 416, width: 320, height: 448 },\n // });\n // const appendToQueue = canvasModel.createNode(\n // createAppend(rawPosition({ centerX: -80, centerY: 96, width: 122, height: 128 })),\n // );\n\n // const tableId = canvasModel.createNode(\n // createConstant({\n // value: DXN.fromLocalObjectId(emailTable.id).toString(),\n // ...rawPosition({ centerX: -112, centerY: -544, width: 192, height: 256 }),\n // }),\n // );\n\n // const appendToTable = canvasModel.createNode(\n // createAppend(rawPosition({ centerX: 560, centerY: -416, width: 128, height: 122 })),\n // );\n\n // templateContent.push(' \"category\": \"{{text}}\",');\n // builder.createEdge({ source: gpt.id, target: template.id, input: 'text', output: 'text' });\n\n // const properties = SchemaAST.getPropertySignatures(EmailTriggerOutput.ast);\n // for (let i = 0; i < properties.length; i++) {\n // const propName = properties[i].name.toString();\n // builder.createEdge({ source: trigger.id, target: template.id, input: propName, output: propName });\n // templateContent.push(` \"${propName}\": \"{{${propName}}}\"` + (i === properties.length - 1 ? '' : ','));\n // }\n // templateContent.push('}');\n\n // builder\n // .createEdge({ source: tableId.id, target: appendToTable.id, input: 'id' })\n // .createEdge({ source: queueId.id, target: appendToQueue.id, input: 'id' })\n // .createEdge({ source: gpt.id, target: appendToQueue.id, output: 'messages', input: 'items' })\n // .createEdge({ source: systemPrompt.id, target: gpt.id, input: 'systemPrompt' })\n // .createEdge({ source: trigger.id, target: gpt.id, input: 'prompt', output: 'body' })\n // .createEdge({ source: template.id, target: appendToTable.id, input: 'items' });\n\n // functionTrigger = triggerShape.functionTrigger!.target!;\n // });\n\n // const computeModel = createComputeGraph(canvasModel);\n\n // const templateComputeNode = computeModel.nodes.find((n) => n.id === template.node);\n // invariant(templateComputeNode, 'Template compute node was not created.');\n // templateComputeNode.value = templateContent.join('\\n');\n // const extendedSchema = Schema.extend(EmailTriggerOutput, Schema.Struct({ text: Schema.String }));\n // templateComputeNode.inputSchema = JsonSchema.toJsonSchema(extendedSchema);\n\n // attachTrigger(functionTrigger, computeModel);\n\n // return addToSpace(PresetName.EMAIL_WITH_SUMMARY, space, canvasModel, computeModel);\n // });\n // cb?.(objects);\n // return objects;\n // },\n // ],\n\n [\n PresetName.FOREX_FUNCTION_CALL,\n async (space, n, cb) => {\n const objects = range(n, () => {\n const canvasModel = CanvasGraphModel.create<ComputeShape>();\n\n canvasModel.builder.call((builder) => {\n const sourceCurrency = canvasModel.createNode(\n createConstant({ value: 'USD', ...position({ x: -10, y: -5 }) }),\n );\n const targetCurrency = canvasModel.createNode(\n createConstant({ value: 'EUR', ...position({ x: -10, y: 5 }) }),\n );\n const converter = canvasModel.createNode(createFunction(position({ x: 0, y: 0 })));\n const view = canvasModel.createNode(createSurface(position({ x: 12, y: 0 })));\n\n builder\n .createEdge({\n source: sourceCurrency.id,\n target: converter.id,\n input: 'from',\n })\n .createEdge({\n source: targetCurrency.id,\n target: converter.id,\n input: 'to',\n })\n .createEdge({\n source: converter.id,\n target: view.id,\n output: 'rate',\n });\n });\n\n const computeModel = createComputeGraph(canvasModel);\n\n return addToSpace(PresetName.FOREX_FUNCTION_CALL, space, canvasModel, computeModel);\n });\n cb?.(objects);\n return objects;\n },\n ],\n\n [\n PresetName.DISCORD_MESSAGES,\n async (space, n, cb) => {\n const objects = range(n, () => {\n const canvasModel = CanvasGraphModel.create<ComputeShape>();\n\n let functionTrigger: Trigger.Trigger | undefined;\n canvasModel.builder.call((builder) => {\n const triggerShape = createTrigger({\n spaceId: space.id,\n triggerKind: 'timer',\n ...position({ x: -10, y: -5 }),\n });\n const trigger = canvasModel.createNode(triggerShape);\n // DXOS dev-null channel.\n const channelId = canvasModel.createNode(\n createConstant({\n value: '1088569858767212554',\n ...position({ x: -10, y: 0 }),\n }),\n );\n const queueId = canvasModel.createNode(\n createConstant({\n value: EID.make({ spaceId: space.id, entityId: Key.EntityId.random() }),\n ...position({ x: -10, y: 5 }),\n }),\n );\n const converter = canvasModel.createNode(createFunction(position({ x: 0, y: 0 })));\n const view = canvasModel.createNode(createText(position({ x: 12, y: 0 })));\n const queue = canvasModel.createNode(createFeed(position({ x: 0, y: 12 })));\n\n builder\n .createEdge({\n source: trigger.id,\n target: converter.id,\n input: 'tick',\n })\n .createEdge({\n source: channelId.id,\n target: converter.id,\n input: 'channelId',\n })\n .createEdge({\n source: queueId.id,\n target: converter.id,\n input: 'queueId',\n })\n .createEdge({\n source: converter.id,\n target: view.id,\n output: 'newMessages',\n })\n .createEdge({\n source: queueId.id,\n target: queue.id,\n input: 'input',\n });\n\n functionTrigger = triggerShape.functionTrigger!.target!;\n });\n\n const computeModel = createComputeGraph(canvasModel);\n attachTrigger(functionTrigger, computeModel);\n\n return addToSpace(PresetName.DISCORD_MESSAGES, space, canvasModel, computeModel);\n });\n cb?.(objects);\n return objects;\n },\n ],\n\n // TODO(wittjosiah): Remove?\n // [\n // PresetName.KANBAN_QUEUE,\n // async (space, n, cb) => {\n // const objects = range(n, () => {\n // const canvasModel = CanvasGraphModel.create<ComputeShape>();\n\n // // TODO(wittjosiah): Integrate directly w/ Kanban.\n // // const results = space.db.query(Filter.type(KanbanType)).runSync();\n // // const kanban = results.find((r) => r.object?.cardView?.target?.query?.type?.endsWith('Message'));\n // // invariant(kanban, 'Kanban not found.');\n\n // const results = space.db.query(Filter.type(TableType)).runSync();\n // const messages = results.find((r) => r.object?.view?.target?.query?.typename?.endsWith('Message'));\n // invariant(messages, 'Table not found.');\n\n // let functionTrigger: FunctionTrigger | undefined;\n // canvasModel.builder.call((builder) => {\n // const triggerShape = createTrigger({\n // spaceId: space.id,\n // triggerKind: 'queue',\n // ...position({ x: -10, y: -5 }),\n // });\n // const trigger = canvasModel.createNode(triggerShape);\n\n // const tableId = canvasModel.createNode(\n // createConstant({\n // value: DXN.fromLocalObjectId(messages.id).toString(),\n // ...position({ x: -10, y: 5 }),\n // }),\n // );\n // const appendToTable = canvasModel.createNode(createAppend(position({ x: 10, y: 0 })));\n\n // builder\n // .createEdge({ source: tableId.id, target: appendToTable.id, input: 'id' })\n // .createEdge({ source: trigger.id, target: appendToTable.id, input: 'items', output: 'item' });\n\n // functionTrigger = triggerShape.functionTrigger!.target!;\n // });\n\n // const computeModel = createComputeGraph(canvasModel);\n // attachTrigger(functionTrigger, computeModel);\n\n // return addToSpace(PresetName.KANBAN_QUEUE, space, canvasModel, computeModel);\n // });\n // cb?.(objects);\n // return objects;\n // },\n // ],\n ] as [PresetName, ObjectGenerator<any>][],\n});\n\nconst createQueueSinkPreset = <SpecType extends Trigger.Kind>(\n space: Space,\n triggerKind: SpecType,\n initSpec: (spec: Obj.Mutable<Extract<Trigger.Spec, { kind: SpecType }>>) => void,\n triggerOutputName: string,\n) => {\n const canvasModel = CanvasGraphModel.create<ComputeShape>();\n\n const template = canvasModel.createNode(\n createTemplate({\n valueType: 'object',\n ...rawPosition({ centerX: -64, centerY: -79, width: 320, height: 320 }),\n }),\n );\n\n let functionTrigger: Trigger.Trigger | undefined;\n canvasModel.builder.call((builder) => {\n const triggerShape = createTrigger({\n spaceId: space.id,\n triggerKind,\n ...rawPosition({ centerX: -578, centerY: -187, height: 320, width: 320 }),\n });\n const trigger = canvasModel.createNode(triggerShape);\n const { queueId } = setupQueue(space, canvasModel, {\n queuePosition: { centerX: -80, centerY: 378, width: 320, height: 448 },\n });\n const append = canvasModel.createNode(\n createAppend(rawPosition({ centerX: 320, centerY: 192, width: 128, height: 122 })),\n );\n const random = canvasModel.createNode(\n createRandom(rawPosition({ centerX: -509, centerY: -30, width: 64, height: 64 })),\n );\n\n builder\n .createEdge({ source: queueId.id, target: append.id, input: 'id' })\n .createEdge({ source: template.id, target: append.id, input: 'items' })\n .createEdge({\n source: trigger.id,\n target: template.id,\n output: triggerOutputName,\n input: 'type',\n })\n .createEdge({\n source: random.id,\n target: template.id,\n input: 'changeId',\n });\n\n functionTrigger = triggerShape.functionTrigger!.target!;\n const triggerSpec = functionTrigger.spec;\n invariant(triggerSpec && triggerSpec.kind === triggerKind, 'No trigger spec.');\n Obj.update(functionTrigger, (functionTrigger) => {\n initSpec(functionTrigger.spec as any);\n });\n });\n\n const computeModel = createComputeGraph(canvasModel);\n\n const templateComputeNode = computeModel.nodes.find((n) => n.id === template.node);\n invariant(templateComputeNode, 'Template compute node was not created.');\n // NOTE: These are plain object mutations during model construction, not ECHO object mutations.\n templateComputeNode.value = ['{', ' \"@type\": \"{{type}}\",', ' \"id\": \"@{{changeId}}\"', '}'].join('\\n');\n templateComputeNode.inputSchema = JsonSchema.toJsonSchema(\n Schema.Struct({ type: Schema.String, changeId: Schema.String }),\n );\n attachTrigger(functionTrigger, computeModel);\n\n return { canvasModel, computeModel };\n};\n\nconst addToSpace = (name: string, space: Space, canvas: CanvasGraphModel, compute: ComputeGraphModel) => {\n return space.db.add(\n Obj.make(CanvasBoard.CanvasBoard, {\n name,\n computeGraph: Ref.make(compute.root),\n layout: canvas.graph,\n }),\n );\n};\n\nconst setupQueue = (\n space: Space,\n canvasModel: CanvasGraphModel,\n args?: { idPosition?: RawPositionInput; queuePosition?: RawPositionInput },\n) => {\n const queueId = canvasModel.createNode(\n createConstant({\n value: EID.make({ spaceId: space.id, entityId: Key.EntityId.random() }),\n ...(args?.idPosition ? rawPosition(args.idPosition) : position({ x: -18, y: 5, width: 8, height: 6 })),\n }),\n );\n const queue = canvasModel.createNode(\n createFeed(\n args?.queuePosition ? rawPosition(args.queuePosition) : position({ x: -3, y: 3, width: 14, height: 10 }),\n ),\n );\n canvasModel.createEdge({ source: queueId.id, target: queue.id });\n return { queue, queueId };\n};\n\nconst attachTrigger = (functionTrigger: Trigger.Trigger | undefined, computeModel: ComputeGraphModel) => {\n invariant(functionTrigger);\n const inputNode = computeModel.nodes.find((node) => node.type === NODE_INPUT)!;\n Obj.update(functionTrigger, (functionTrigger) => {\n functionTrigger.function = Ref.make(computeModel.root);\n functionTrigger.inputNodeId = inputNode.id;\n });\n};\n\ntype RawPositionInput = {\n centerX: number;\n centerY: number;\n width: number;\n height: number;\n};\n\nconst rawPosition = (args: RawPositionInput) => {\n return {\n center: { x: args.centerX, y: args.centerY },\n size: { width: args.width, height: args.height },\n };\n};\n\nconst position = (rect: { x: number; y: number; width?: number; height?: number }) => {\n const snap = 32;\n const [center, size] = rectToPoints({ width: 0, height: 0, ...rect });\n const { x, y, width, height } = pointsToRect([pointMultiply(center, snap), pointMultiply(size, snap)]);\n if (width && height) {\n return {\n center: { x, y },\n size: width && height ? { width, height } : undefined,\n };\n } else {\n return { center: { x, y } };\n }\n};\n", "//\n// Copyright 2024 DXOS.org\n//\n\nimport { addressToA1Notation } from '@dxos/compute-hyperformula';\nimport { ComputeGraph, ComputeGraphModel, DEFAULT_OUTPUT, NODE_INPUT, NODE_OUTPUT } from '@dxos/conductor';\nimport { EID, Filter, Key, Type, View } from '@dxos/echo';\nimport { OperationInvoker } from '@dxos/operation';\nimport { Markdown } from '@dxos/plugin-markdown';\nimport { Sheet } from '@dxos/plugin-sheet';\nimport { Sketch } from '@dxos/plugin-sketch';\nimport { SpaceOperation } from '@dxos/plugin-space';\nimport { random } from '@dxos/random';\nimport { type Client } from '@dxos/react-client';\nimport { type Space } from '@dxos/react-client/echo';\nimport { getTypeURIFromQuery } from '@dxos/schema';\nimport { type ValueGenerator, createAsyncGenerator } from '@dxos/schema/testing';\nimport { range } from '@dxos/util';\n\nconst generator: ValueGenerator = random as any;\n\nconst findViewByTypeUri = async (views: View.View[], typeUri: string) => {\n return views.find((view) => getTypeURIFromQuery(view.query.ast) === typeUri);\n};\n\nexport type ObjectGenerator<T> = (space: Space, n: number, cb?: (objects: T[]) => void) => Promise<T[]>;\n\nexport const createGenerator = <S extends Type.AnyObj>(\n client: Client,\n invokePromise: OperationInvoker.OperationInvoker['invokePromise'],\n schema: S,\n): ObjectGenerator<Type.InstanceType<S>> => {\n return async (space: Space, n: number): Promise<Type.InstanceType<S>[]> => {\n const typename = Type.getTypename(schema);\n\n // Find or create table and view.\n const views = await space.db.query(Filter.type(View.View)).run();\n const view = await findViewByTypeUri(views, Type.getURI(schema));\n const staticSchema = client\n ? client.graph.registry\n .list()\n .filter(Type.isType)\n .find((s) => Type.getTypename(s) === typename)\n : undefined;\n if (!view && !staticSchema) {\n await invokePromise(SpaceOperation.AddType, { db: space.db, type: schema, show: false });\n }\n\n // Create objects.\n const generate = createAsyncGenerator(generator, schema, { db: space.db });\n return generate.createObjects(n);\n };\n};\n\nexport const staticGenerators = new Map<string, ObjectGenerator<any>>([\n [\n Type.getTypename(Markdown.Document),\n async (space, n, cb) => {\n const objects = range(n).map(() => {\n return space.db.add(\n Markdown.make({\n name: random.commerce.productName(),\n content: random.lorem.sentences(5),\n }),\n );\n });\n\n cb?.(objects);\n return objects;\n },\n ],\n [\n Type.getTypename(Sketch.Sketch),\n async (space, n, cb) => {\n const objects = range(n).map(() => {\n const obj = space.db.add(Sketch.make({ name: random.commerce.productName() }));\n return obj;\n });\n\n cb?.(objects);\n return objects;\n },\n ],\n // TODO(burdon): Create unit tests.\n [\n Type.getTypename(Sheet.Sheet),\n async (space, n, cb) => {\n const objects = range(n).map(() => {\n const cells: Record<string, Sheet.CellValue> = {};\n const year = new Date().getFullYear();\n const cols = 4;\n const rows = 16;\n for (let col = 1; col <= cols; col++) {\n for (let row = 1; row <= rows; row++) {\n const cell = addressToA1Notation({ col, row });\n if (row === 1) {\n cells[cell] = { value: `${year} Q${col}` };\n } else if (row === rows) {\n const from = addressToA1Notation({ col, row: 2 });\n const to = addressToA1Notation({ col, row: rows - 1 });\n cells[cell] = { value: `=SUM(${from}:${to})` };\n } else if (row > 2 && row < rows - 1) {\n cells[cell] = { value: Math.floor(Math.random() * 10_000) };\n }\n }\n }\n\n // TODO(burdon): Set width.\n // TODO(burdon): Set formatting for columns.\n return space.db.add(\n Sheet.make({\n name: random.commerce.productName(),\n cells,\n }),\n );\n });\n\n cb?.(objects);\n return objects;\n },\n ],\n [\n Type.getTypename(ComputeGraph),\n async (space, n, cb) => {\n const objects = range(n, () => {\n const model = ComputeGraphModel.create();\n model.builder\n .createNode({ id: 'gpt-INPUT', type: NODE_INPUT })\n .createNode({ id: 'gpt-GPT', type: 'gpt' })\n .createNode({\n id: 'gpt-QUEUE_ID',\n type: 'constant',\n value: EID.make({ spaceId: space.id, entityId: Key.EntityId.random() }),\n })\n .createNode({ id: 'gpt-APPEND', type: 'append' })\n .createNode({ id: 'gpt-OUTPUT', type: NODE_OUTPUT })\n .createEdge({ node: 'gpt-INPUT', property: 'prompt' }, { node: 'gpt-GPT', property: 'prompt' })\n .createEdge({ node: 'gpt-GPT', property: 'text' }, { node: 'gpt-OUTPUT', property: 'text' })\n .createEdge({ node: 'gpt-QUEUE_ID', property: DEFAULT_OUTPUT }, { node: 'gpt-APPEND', property: 'id' })\n .createEdge({ node: 'gpt-GPT', property: 'messages' }, { node: 'gpt-APPEND', property: 'items' })\n .createEdge({ node: 'gpt-QUEUE_ID', property: DEFAULT_OUTPUT }, { node: 'gpt-OUTPUT', property: 'queue' });\n\n return space.db.add(model.root);\n });\n cb?.(objects);\n return objects;\n },\n ],\n]);\n"],
5
- "mappings": ";;;AAIA,SAA6BA,YAAY;;;ACAzC,OAAOC,WAAW;AAElB,SAASC,kBAAkB;AASpB,IAAMC,cAAc,CAAC,EAAEC,OAAOC,UAAU,CAAC,GAAGC,OAAOC,QAAO,MAAoB;AACnF,SACE,sBAAA,cAACC,OAAAA;IAAIC,WAAU;KACb,sBAAA,cAACC,MAAAA;IAAGD,WAAU;KAAOH,KAAAA,GACpBF,MAAMO,IAAI,CAACC,SACV,sBAAA,cAACJ,OAAAA;IAAIK,KAAKD,KAAKE;IAAUL,WAAU;KACjC,sBAAA,cAACD,OAAAA;IAAIC,WAAU;KAAuCG,KAAKE,QAAQ,GACnE,sBAAA,cAACN,OAAAA;IAAIC,WAAU;KAA6BJ,QAAQO,KAAKE,QAAQ,KAAK,CAAA,GACtE,sBAAA,cAACZ,YAAAA;IACCa,SAAQ;IACRC,MAAK;IACLC,UAAAA;IACAX,OAAM;IACNC,SAAS,MAAMA,QAAQK,KAAKE,QAAQ;;AAMhD;;;AC9BA,YAAYI,YAAY;AAExB,SAASC,aAAaC,0BAA0B;AAChD,SAASC,SAASC,SAASC,iBAAiB;AAC5C,SAAiCC,kBAAkB;AACnD,SAASC,MAAMC,QAAQC,YAAYC,KAAKC,KAAKC,OAAsBC,KAAKC,OAAOC,WAAW;AAC1F,SAASC,iBAAiB;AAC1B,SAASC,KAAKC,WAAW;AACzB,SAASC,sBAAsB;AAC/B,SAASC,eAAe;AACxB,SAASC,gBAAgB;AAEzB,SAEEC,cACAC,YACAC,oBACAC,gBACAC,YACAC,gBACAC,WACAC,cACAC,eACAC,gBACAC,YACAC,qBACK;AACP,SAASC,aAAaC,kBAAkBC,eAAeC,cAAcC,oBAAoB;AACzF,SAASC,iBAAiB;AAC1B,SAASC,SAASC,cAAcC,QAAQC,gBAAgB;AACxD,SAASC,OAAOC,YAAY;AAI5B,IAAA,eAAYC;;AAGV,EAAAA,YAAA,WAAA,IAAA;;AAGA,EAAAA,YAAA,WAAA,IAAA;;;;cANUA,qBAAAA,IAAAA;cAYX,kBAAA,IAAA;AAED,SAAOA;;IACKZ,YAAYA,OAAAA;WAAa9B;IAAgB,YAAA;IACnD2C,QAAOC;;SAA0D,OAAA,OAAA,UAAA,EAAA,IAAA,CAAA,UAAA;IAC1D,UAAA;EACL,EAAA;;;;oBAIYC,GAAAA,OAAMC;wBAEF,MAAA,GAAA,MAAA;gBACNC,MAAAA,MAAS,GAAA,IAAA,IAAA,KAAA,aAAA,cAAA;YACX,MAAA;YAEF,SAAYD;;gBAGRE,MAAAA,MAAS,GAAA,IAAA,SAAA,KAAA;YACX,MAAA;YAGF,SAAYF;;AAA0C,gBAAA,MAAA,MAAA,GAAA,IAAA,IAAA,KAAA;YACtD,OAAMG;UACN1C,CAAAA,CAAAA;gBACEA,SAAW,IAAC2C,KAAKC,GAAI;qBAAIF,KAAAA,CAAAA,SAAAA;gBAAO,QAAAC,IAAA,EAAA,OAAA;cAClC;YAEA;UACA,CAAA;mBAQ0CC,IAAAA,IAAM,KAAA,OAAA,QAAA;qBAACF,GAAAA;oBAAO;gBAAC;cAAGG;YAAkBC;YAA4B,UAAA;YAE1GP,cACMQ,IAAKhB,KAAAA,GAAOA;;gBAEde,GAAAA,IAAAA,IAAAA,KAAkBC,OAAKT,QAAAA;YACzB,UAAA;YAEFC,cACMQ,IAAKhB,KAAAA,GAAOA;;gBAEde,GAAAA,IAAAA,IAAAA,KAAkBC,OAAKT,QAAAA;YACzB,UAAA;YAEFC,cACMQ,IAAKhB,KAAAA,GAAOA;;gBAEde,GAAAA,IAAAA,IAAAA,KAAkBC,OAAKT,QAAAA;YACzB,UAAA;YAGF,cAAOK,IAAAA,KAAAA,GAAAA;UACT,CAAA,CAAA;AACAK,iBAAKC;QACL,CAAA;AACF,aAAA,OAAA;AACD,eAAA;MACD;;;;aAII,OAAMC,GAAAA,OAAUC;AAChB9C,cAAAA,YAAU6C,MAAS,MAAA,GAAA,MAAA,OAAA,KAAA,QAAA,OAAA,CAAA,EAAA,IAAA;AACnB,cAAME,UAAAA,UAAoBF,CAAAA;AAC1B7C,kBAAU+C,SAAAA,qBAAa,EAAA,YAAA,YAAA,GAAA,cAAA,GAAA,KAAA,GAAA,QAAA,GAAA,CAAA,WAAA,qBAAA,EAAA,CAAA;AACvB,cAAMC,cAAWzD,MAAK0D,QAAYF,MAAAA,QAAAA;AAClC/C,kBAAUgD,aAAU,kCAAA,EAAA,YAAA,YAAA,GAAA,cAAA,GAAA,KAAA,GAAA,QAAA,GAAA,CAAA,eAAA,kCAAA,EAAA,CAAA;AACpB,cAAME,WAAM,KAAMhB,YAAe1C,WAAYO;kBAAWoD,UAAO,sCAAA,EAAA,YAAA,YAAA,GAAA,cAAA,GAAA,KAAA,GAAA,QAAA,GAAA,CAAA,YAAA,sCAAA,EAAA,CAAA;AAAW,cAAIC,MAAK,MAAA,MAAA,GAAA,MAAA,OAAA,KAAA,IAAA,KAAA;UACnF,OAAMC;QAEN,CAAA,CAAA,EAAA,MAAMT;cACJ,SAAMU,IAAAA,OAAgB1D,GAAAA;cACtB,UAAM2D,MAAAA,GAAAA,MAAAA;AACN,gBAAMC,gBAAa5D,MAAM6D,OAAOjE,OAAOkE,KAAKrD,OAASsD,MAAAA,CAAQ,EAAA,OAAS,OAACnE,IAAU,MAAC6D,CAAAA;AAElFnB,gBAAM0B,qBACS,MAAA,OAAA,OAAA,KAAA,aAAA,YAAA,CAAA,EAAA,OAAA,OAAA,IAAA,MAAA,CAAA;gBACXC,aAAS,MAAA,OAAA,OAAA,KAAA,SAAA,QAAA,CAAA,EAAA,OAAA,OAAA,IAAA,MAAA,CAAA;gBACTC,GAAAA,IAAM1E,QAAQ2E,KAAAA;YACdC,SAAAA;YACAC,MAAAA,QAAO,UAAA,WAAA;sBACLpB,IAAShD,KAAI6C,UAAKG,UAAAA,eAAAA,cAAAA,CAAAA;YACpB,OAAA;cACF,SAAA,IAAA,KAAA,OAAA;YAGF;;gBAGIqB,iBAAa,MAAA,GAAA,IAAA,QAAA,KAAA;YACbD,MAAAA;yBACOjF;YACP,OAAA,cAAA;cACAmF,KAAeC;YAEf,CAAA;YACA,QAAA;;;;;;;;wBAMiD;cACnD,IAAA,KAAA,mBAAA,KAAA,CAAA;YAGFlC;;gBAGI4B,GAAAA,IAAM1E,QAAQiF,KAAAA;YACdL,SAAAA;YACAC,MAAAA,QAAO,iBAAA,kBAAA;sBACLK,IAAQzE,KAAI6C,UAAK6B,UAAAA,WAAAA,CAAAA;mBACjBN;cACF,QAAA,IAAA,KAAA,cAAA;cACF,OAAA;YAGF;;8BAGkB,UAAA,KAAA;yBAAEO,OAAQhF,OAAOiF,KAAS,QAAA,SAAA;cAAY,YAAA;gBAEhD,QAAOC,OAAK/E,SAAWoD,UAAAA;cAC7B4B;YACF,CAAA,CAAA,EAAA,KAAA,MAAA,KAAA,IAAA,OAAA,WAAA,CAAA,CAAA;YACA,YAAMC,WAAerD,aAAe,QAAA,OAAA;;gBAElCoD,eAAYlF,UAAWoF,KAAAA;YACzB,OAAA;YACA,YAAMC,WAAoBvD,aAAc,OAAC,MAAA;;gBAEvCoD,oBAAYlF,UAAWoF,KAAapD;YACtC,OAAA;YACA,YAAMsD,WAAYxD,aAAe,aAAA,YAAA;;gBAE/BoD,YAAYlF,UAAWoF,KAAAA;YACzB,OAAA;YAEA,YAAgBG,WACdrD,aAAc,SAAA,QAAA;;iBAEZsD,MAAS,GAAA,IAAA,SAAA,KAAA;kBACP;qBACEC;;gBAEAC,MAAAA;gBACF,MAAA,IAAA,KAAA,WAAA;gBACA,OAAA,CAAA;;;gBAGEA,MAAAA;gBACF,MAAA,IAAA,KAAA,YAAA;gBACA,OAAA,CAAA;;;gBAGEA,MAAAA;gBACF,MAAA,IAAA,KAAA,iBAAA;gBACA,OAAA,CAAA;;;gBAGEA,MAAAA;gBACF,MAAA,IAAA,KAAA,SAAA;gBACD,OAAA,CAAA;cACH;YAEJ;UAEAxC,CAAKC,CAAAA;QACL,CAAA;AACF,aAAA,QAAA,KAAA,CAAA;AACD,eAAA,QAAA,KAAA;MACD;;;;oBAIYwC,GAAAA,OAAAA;cAEN,UAAIC,MAAAA,GAAAA,MAAAA;AACJD,gBAAAA,cAAoBE,iBAAMC,OAAAA;cACxB;sBAA2D,QAAA,KAAA,CAAA,YAAA;kBAAGC,MAAI,YAAA,WAAA,UAAA,SAAA;cAAG,GAAA;cACrE,GAAMC;;kBAEJC,eAAa,cAAA;cACb,SAAGC,MAAS;2BAAM;0BAAQ;gBAAI,GAAA;gBAChC,GAAA;cACA,CAAA;YACA,CAAA;kBAA0DC,UAAG,YAAA,WAAA,YAAA;kBAAIJ,OAAG,YAAA,WAAA,WAAA,SAAA;cAAGK,GAAAA;cAAWC,GAAAA;cAAW,OAAA;cAC7F,QAAQC;YACR,CAAA,CAAA,CAAA;kBAA8DH,EAAG,QAAA,IAAA,WAAA,OAAA,WAAA;kBAAIJ,SAAG,YAAA,WAAA,aAAA,SAAA;cAAE,GAAA;cAE1ED,GAAAA;;oBAGIS,WAAc;cACd/B,QAAO,QAAA;cACPE,QAAQ,IAAA;cAET8B,OAAAA;cAAaC,QAAQC;0BAAgBC;cAASjC,QAAQ,IAAA;cACtD8B,QAAAA,KAAW;cACVC,QAAQH;0BACAM;cACRpC,QAAO,QAAA;cAERgC,QAAAA,OAAW;cACVC,OAAAA;0BACQG;cACRlC,QAAQ,IAAA;cACRF,QAAO,OAAA;cACT,QAAA;cAEFoB,OAAAA;YACF,CAAA;AAEA,8BAAqB7E,aAAAA,gBAAmB4E;UAExCkB,CAAAA;AAEA,gBAAA,eAAOC,mBAAiCrE,WAAOkD;AACjD,wBAAA,iBAAA,YAAA;AACAzC,iBAAKC,WAAAA,qBAAAA,OAAAA,aAAAA,YAAAA;QACL,CAAA;AACF,aAAA,OAAA;AACD,eAAA;MAED;;;;oBAIY,GAAEwC,OAAAA;wBAKFoB,MAAK5G,GAAM6D,MAAM;gBACnB,EACF,aAAA,aAAA,IAAA,sBAAA,OAAA,gBAAA,CAAA,gBAAA,YAAA,QAAA;YAEK8C,KAAAA,MAAAA,OAAAA,OAAAA,KAAAA,IAA2CrE,KAAOkD,qBAAaqB,CAAAA,CAAAA,EAAAA;UACxE,GAAA,MAAA;AACA9D,iBAAKC,WAAAA,sBAAAA,OAAAA,aAAAA,YAAAA;QACL,CAAA;AACF,aAAA,OAAA;AACD,eAAA;MAED;;;;oBAIY,GAAEwC,OAAAA;cAMR,UAAOmB,MAAAA,GAAAA,MAAAA;AACT,gBAAA,EAAA,aAAA,aAAA,IAAA,sBAAA,OAAA,SAAA,CAAA,gBAAA,YAAA,OAAA,iBAAA,QAAA;AACA5D,iBAAKC,WAAAA,mBAAAA,OAAAA,aAAAA,YAAAA;QACL,CAAA;AACF,aAAA,OAAA;AACD,eAAA;MAED;IACA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;oBAuEYwC,GAAAA,OAAAA;cAENA,UAAYG,MAAAA,GAAQD,MAAK;gBACvB,cAAYF,iBAAYsB,OAAW9F;sBAAwB,QAAA,KAAA,CAAA,YAAA;kBAAG4E,MAAI,YAAA,WAAA,UAAA,SAAA;cAAG,GAAA;cACrE,GAAMmB;;kBAA4DnB,OAAI,YAAA,WAAA,WAAA,SAAA;cAAE,GAAA;cACxE,GAAMY;;kBAA2DZ,OAAG,YAAA,WAAA,WAAA,SAAA;cAAGK,GAAAA;cAAWC,GAAAA;cAAW,OAAA;cAC7F,QAAQC;YAER,CAAA,CAAA,CAAA;kBAA8DH,EAAG,QAAA,IAAA,WAAA,OAAA,WAAA;kBAAIJ,SAAG,YAAA,WAAA,aAAA,SAAA;cAAE,GAAA;cAE1ED,GAAAA;;oBACiCS,WAAc;cAAE/B,QAAO,KAAA;cACrDgC,QAAAA,IAAW;cAAEC,OAAAA;0BAAwBE;cAASjC,QAAQ,IAAA;cACtD8B,QAAAA,KAAW;cACVC,QAAQH;0BACAM;cACRpC,QAAO,QAAA;cAERgC,QAAAA,OAAW;cACVC,OAAAA;0BACQG;cACRlC,QAAQ,IAAA;cACRF,QAAO,OAAA;cACT,QAAA;cACJ,OAAA;YAEA,CAAA;UAEA,CAAA;AACF,gBAAA,eAAA,mBAAA,WAAA;AACAtB,iBAAKC,WAAAA,iBAAAA,OAAAA,aAAAA,YAAAA;QACL,CAAA;AACF,aAAA,OAAA;AACD,eAAA;MAED;IACA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;oBAkGYwC,GAAAA,OAAAA;cAENA,UAAYG,MAAAA,GAAQD,MAAK;gBACvB,cAAMsB,iBAAiBxB,OAAYsB;sBAChBG,QAAO,KAAA,CAAA,YAAA;kBAAO,iBAAY,YAAA,WAAA,eAAA;qBAAK;0BAAS;gBAAI,GAAA;gBAAC,GAAA;cAEhE,CAAA;;kBACiC,iBAAY,YAAA,WAAA,eAAA;qBAAK;0BAAQ;gBAAI,GAAA;gBAAC,GAAA;cAE/D,CAAA;;kBAAyErB,YAAG,YAAA,WAAA,eAAA,SAAA;cAAE,GAAA;cAC9E,GAAMsB;;kBAA8DtB,OAAG,YAAA,WAAA,cAAA,SAAA;cAAE,GAAA;cAEzED,GAAAA;;oBAGIS,WAAQe;cACR9C,QAAO,eAAA;cAERgC,QAAAA,UAAW;cACVC,OAAAA;0BACQa;cACR9C,QAAO,eAAA;cAERgC,QAAAA,UAAW;cACVC,OAAAA;0BACQY;cACR3C,QAAQ,UAAA;cACV,QAAA,KAAA;cACJ,QAAA;YAEA,CAAA;UAEA,CAAA;AACF,gBAAA,eAAA,mBAAA,WAAA;AACAxB,iBAAKC,WAAAA,uBAAAA,OAAAA,aAAAA,YAAAA;QACL,CAAA;AACF,aAAA,OAAA;AACD,eAAA;MAED;;;;oBAIYwC,GAAAA,OAAAA;cAEN,UAAIC,MAAAA,GAAAA,MAAAA;AACJD,gBAAAA,cAAoBE,iBAAMC,OAAAA;cACxB;sBACEyB,QAAS9E,KAAQ,CAAA,YAAA;kBACjBwD,eAAa,cAAA;cACb,SAAGC,MAAS;2BAAM;0BAAQ;gBAAI,GAAA;gBAChC,GAAA;cACA,CAAA;YACA,CAAA;AACA,kBAAMsB,UAAAA,YAAY7B,WAAYsB,YAC5BjG;kBAEE,YAAY,YAAA,WAAA,eAAA;qBAAK;0BAAQ;gBAAI,GAAA;gBAC/B,GAAA;cAEF,CAAA;;4BAEsBuG,YAAiB,WAAA,eAAA;qBAAEE,IAAAA,KAAUxH;gBAAsB,SAAA,MAAA;gBAClEiG,UAAS,IAAA,SAAA,OAAA;;0BAAa;gBAAI,GAAA;gBAC/B,GAAA;cAEF,CAAA;;kBAAyEH,YAAG,YAAA,WAAA,eAAA,SAAA;cAAE,GAAA;cAC9E,GAAMsB;;kBAA2DtB,OAAG,YAAA,WAAA,WAAA,SAAA;cAAE,GAAA;cACtE,GAAM2B;;kBAA2D3B,QAAG,YAAA,WAAA,WAAA,SAAA;cAAG,GAAA;cAEvED,GAAAA;;oBAGIS,WAAQe;cACR9C,QAAO,QAAA;cAERgC,QAAAA,UAAW;cACVC,OAAAA;0BACQa;cACR9C,QAAO,UAAA;cAERgC,QAAAA,UAAW;cACVC,OAAAA;0BACQa;cACR9C,QAAO,QAAA;cAERgC,QAAAA,UAAW;cACVC,OAAAA;0BACQY;cACR3C,QAAQ,UAAA;cAET8B,QAAAA,KAAW;cACVC,QAAQH;0BACAoB;cACRlD,QAAO,QAAA;cACT,QAAA,MAAA;cAEFoB,OAAAA;YACF,CAAA;AAEA,8BAAqB7E,aAAAA,gBAAmB4E;UACxCkB,CAAAA;AAEA,gBAAA,eAAOC,mBAAwCrE,WAAOkD;AACxD,wBAAA,iBAAA,YAAA;AACAzC,iBAAKC,WAAAA,oBAAAA,OAAAA,aAAAA,YAAAA;QACL,CAAA;AACF,aAAA,OAAA;AACD,eAAA;MAmDF;IACA;EAEGwE;AAMJ;IAEA,wBAAiBhC,CAAAA,OAAYsB,aAC3B3F,UAAe,sBAAA;QACbsG,cAAW,iBAAA,OAAA;QACX,WAAGC,YAAY,WAAA,eAAA;eAAEC;mBAAwB;MAAI1B,SAAO;MAAKC,SAAQ;MAAM,OAAA;MACzE,QAAA;IAGET,CAAAA;EACJD,CAAAA,CAAAA;MACE;cACE4B,QAAS9E,KAAQ,CAAA,YAAA;UACjBwD,eAAAA,cAAAA;MACA,SAAG4B,MAAY;;qBAA2B;QAAKxB,SAAQ;QAAKD,SAAO;QAAM,QAAA;QAC3E,OAAA;MACA,CAAA;IACA,CAAA;UACE2B,UAAAA,YAAe,WAAA,YAAA;YAAED,QAAAA,IAAU,WAAA,OAAA,aAAA;qBAAa;QAAK1B,SAAO;QAAKC,SAAQ;QAAI,OAAA;QACvE,QAAA;MACA;;UAC2C2B,SAAS,YAAA,WAAA,aAAA,YAAA;MAAK5B,SAAO;MAAKC,SAAQ;MAAI,OAAA;MAEjF,QAAM4B;;UACsCD,UAAU,YAAA,WAAA,aAAA,YAAA;MAAI5B,SAAO;MAAIC,SAAQ;MAAG,OAAA;MAGhFP,QACGU;;YAAiCD,WAAe2B;MAAI1D,QAAO,QAAA;MAC3DgC,QAAAA,OAAW;MAAEC,OAAAA;kBAA6BG;MAAWpC,QAAO,SAAA;MAC5DgC,QAAAA,OAAW;MACVC,OAAAA;kBACQ0B;MACRzD,QAAQ0D,QAAAA;MACR5D,QAAO,SAAA;MAERgC,QAAAA;MACCC,OAAAA;kBACQ0B;MACR3D,QAAOyD,QAAA;MACT,QAAA,SAAA;MAEFrC,OAAAA;IACA,CAAA;AACArF,sBAAU8H,aAAeA,gBAAqBpC;AAC9C/F,UAAIoI,cAAO1C,gBAAkBA;cAC3B2C,eAAS3C,YAAoB,SAAA,aAAA,oBAAA,EAAA,YAAA,YAAA,GAAA,cAAA,GAAA,KAAA,GAAA,QAAA,GAAA,CAAA,mDAAA,oBAAA,EAAA,CAAA;AAC/B,QAAA,OAAA,iBAAA,CAAAA,qBAAA;AACF,eAAAA,iBAAA,IAAA;IAEA,CAAA;EAEA,CAAA;AACArF,QAAAA,eAAUiI,mBAAqB,WAAA;AAC/B,QAAA,sBAAA,aAAA,MAAA,KAAA,CAAA,MAAA,EAAA,OAAA,SAAA,IAAA;AACAA,YAAAA,qBAA4B,0CAAA,EAAA,YAAA,YAAA,GAAA,cAAA,GAAA,KAAA,GAAA,QAAA,GAAA,CAAA,uBAAA,0CAAA,EAAA,CAAA;sBAAM,QAAA;IAA0B;IAA2B;IAAKC;IAC5FD;SACkBvE,IAAM1E;sBAAyBA,cAAa,WAAA,aAAA,cAAA;IAAC,MAAA;IAE/DsH,UAAcjB;EAEd,CAAA,CAAA;gBAASD,iBAAAA,YAAAA;SAAaqB;IAAa;IACrC;EAEA;;iBAGMvB,CAAAA,MAAAA,OAAAA,QAAAA,YAAAA;SACAiD,MAAAA,GAAAA,IAActI,IAAI6C,KAAK0F,YAAY,aAAA;IACnCC;IACF,cAAA,IAAA,KAAA,QAAA,IAAA;IAEJ,QAAA,OAAA;EAEA,CAAA,CAAMC;;iBAOW5F,CAAAA,OAAK,aAAA,SAAA;kBAAEsE,YAAiB,WAAA,eAAA;WAAEE,IAAAA,KAAUxH;MAAsB,SAAA,MAAA;MACjE6I,UAAMC,IAAAA,SAAalB,OAAYiB;;aAAyC,aAAA,YAAA,KAAA,UAAA,IAAA,SAAA;MAAG1C,GAAAA;MAAUC,GAAAA;MAAY,OAAA;MACvG,QAAA;IAEF,CAAA;;QAE8EN,QAAG,YAAA,WAAA,WAAA,MAAA,gBAAA,YAAA,KAAA,aAAA,IAAA,SAAA;IAAGK,GAAAA;IAAWC,GAAAA;IAAW,OAAA;IAG1GV,QAAYa;;cAAyCkB,WAAQ;IAAC,QAAA,QAAA;IAC9D,QAAO,MAAA;;SAASpB;IAAQ;IAC1B;EAEA;;IAEE,gBAAkBU,CAAAA,iBAAkB,iBAAgBgC;AACpD9I,YAAU,iBAAC0F,QAAkBA,EAAAA,YAAAA,YAAAA,GAAAA,cAAAA,GAAAA,KAAAA,GAAAA,QAAAA,GAAAA,CAAAA,mBAAAA,EAAAA,EAAAA,CAAAA;QAC3BA,YAAAA,aAA2BxF,MAAI6C,KAAK+D,CAAAA,SAAAA,KAAaiC,SAAI,UAAA;MACrDrD,OAAAA,iBAAgBsD,CAAAA,qBAA0B;AAC5C,IAAAtD,iBAAA,WAAA,IAAA,KAAA,aAAA,IAAA;AACF,IAAAA,iBAAA,cAAA,UAAA;EASA,CAAA;;kBAEY,CAAA,SAAA;;YAAsBkD;MAAa,GAAA,KAAA;MAC3CK,GAAM,KAAA;;UAAqB9C;MAAoB,OAAA,KAAA;MACjD,QAAA,KAAA;IACF;EAEA;;IAEE,WAAO+C,CAAAA,SAAa;QAAkBhD,OAAO;QAAGC,CAAAA,QAAQ,IAAA,IAAA,aAAA;IAAG,OAAO;IAAC,QAAA;IACnE,GAAM;;QAAqE1E,EAAAA,GAAAA,GAAAA,OAAcwH,OAAME,IAAAA,aAAAA;IAAM,cAAA,QAAA,IAAA;IACjGjD,cAASC,MAAQ,IAAA;;eAEjB+C,QAAQ;;cAAKrD;QAAE;QACfoD;;YAAiC9C,SAAAA,SAAAA;QAAWiD;QAC9C;MACK,IAAA;IACL;;;cAAsBvD;QAAE;QAAE;MAC5B;IACF;;;;;ACnzBA,SAASwD,2BAA2B;AACpC,SAASC,cAAcC,mBAAmBC,gBAAgBC,cAAAA,aAAYC,mBAAmB;AACzF,SAASC,OAAAA,MAAKC,UAAAA,SAAQC,OAAAA,MAAKC,MAAMC,YAAY;AAE7C,SAASC,YAAAA,iBAAgB;AACzB,SAASC,aAAa;AACtB,SAASC,cAAc;AACvB,SAASC,sBAAsB;AAC/B,SAASC,cAAc;AAGvB,SAASC,2BAA2B;AACpC,SAA8BC,4BAA4B;AAC1D,SAASC,SAAAA,cAAa;AAEtB,IAAMC,aAA4BJ;AAElC,IAAMK,oBAAoB,OAAOC,OAAoBC,YAAAA;AACnD,SAAOD,MAAME,KAAK,CAACC,SAASR,oBAAoBQ,KAAKC,MAAMC,GAAG,MAAMJ,OAAAA;AACtE;AAIO,IAAMK,kBAAkB,CAC7BC,QACAC,eACAC,WAAAA;AAEA,SAAO,OAAOC,OAAcC,MAAAA;AAC1B,UAAMC,WAAWxB,KAAKyB,YAAYJ,MAAAA;AAGlC,UAAMT,QAAQ,MAAMU,MAAMI,GAAGV,MAAMlB,QAAO6B,KAAK1B,KAAKA,IAAI,CAAA,EAAG2B,IAAG;AAC9D,UAAMb,OAAO,MAAMJ,kBAAkBC,OAAOZ,KAAK6B,OAAOR,MAAAA,CAAAA;AACxD,UAAMS,eAAeX,SACjBA,OAAOY,MAAMC,SACVC,KAAI,EACJC,OAAOlC,KAAKmC,MAAM,EAClBrB,KAAK,CAACsB,MAAMpC,KAAKyB,YAAYW,CAAAA,MAAOZ,QAAAA,IACvCa;AACJ,QAAI,CAACtB,QAAQ,CAACe,cAAc;AAC1B,YAAMV,cAAcf,eAAeiC,SAAS;QAAEZ,IAAIJ,MAAMI;QAAIC,MAAMN;QAAQkB,MAAM;MAAM,CAAA;IACxF;AAGA,UAAMC,WAAWhC,qBAAqBE,YAAWW,QAAQ;MAAEK,IAAIJ,MAAMI;IAAG,CAAA;AACxE,WAAOc,SAASC,cAAclB,CAAAA;EAChC;AACF;AAEO,IAAMmB,mBAAmB,oBAAIC,IAAkC;EACpE;IACE3C,KAAKyB,YAAYvB,UAAS0C,QAAQ;IAClC,OAAOtB,OAAOC,GAAGsB,OAAAA;AACf,YAAMC,UAAUrC,OAAMc,CAAAA,EAAGwB,IAAI,MAAA;AAC3B,eAAOzB,MAAMI,GAAGsB,IACd9C,UAAS+C,KAAK;UACZC,MAAM5C,OAAO6C,SAASC,YAAW;UACjCC,SAAS/C,OAAOgD,MAAMC,UAAU,CAAA;QAClC,CAAA,CAAA;MAEJ,CAAA;AAEAV,WAAKC,OAAAA;AACL,aAAOA;IACT;;EAEF;IACE9C,KAAKyB,YAAYrB,OAAOA,MAAM;IAC9B,OAAOkB,OAAOC,GAAGsB,OAAAA;AACf,YAAMC,UAAUrC,OAAMc,CAAAA,EAAGwB,IAAI,MAAA;AAC3B,cAAMS,MAAMlC,MAAMI,GAAGsB,IAAI5C,OAAO6C,KAAK;UAAEC,MAAM5C,OAAO6C,SAASC,YAAW;QAAG,CAAA,CAAA;AAC3E,eAAOI;MACT,CAAA;AAEAX,WAAKC,OAAAA;AACL,aAAOA;IACT;;;EAGF;IACE9C,KAAKyB,YAAYtB,MAAMA,KAAK;IAC5B,OAAOmB,OAAOC,GAAGsB,OAAAA;AACf,YAAMC,UAAUrC,OAAMc,CAAAA,EAAGwB,IAAI,MAAA;AAC3B,cAAMU,QAAyC,CAAC;AAChD,cAAMC,QAAO,oBAAIC,KAAAA,GAAOC,YAAW;AACnC,cAAMC,OAAO;AACb,cAAMC,OAAO;AACb,iBAASC,MAAM,GAAGA,OAAOF,MAAME,OAAO;AACpC,mBAASC,MAAM,GAAGA,OAAOF,MAAME,OAAO;AACpC,kBAAMC,OAAO1E,oBAAoB;cAAEwE;cAAKC;YAAI,CAAA;AAC5C,gBAAIA,QAAQ,GAAG;AACbP,oBAAMQ,IAAAA,IAAQ;gBAAEC,OAAO,GAAGR,IAAAA,KAASK,GAAAA;cAAM;YAC3C,WAAWC,QAAQF,MAAM;AACvB,oBAAMK,OAAO5E,oBAAoB;gBAAEwE;gBAAKC,KAAK;cAAE,CAAA;AAC/C,oBAAMI,KAAK7E,oBAAoB;gBAAEwE;gBAAKC,KAAKF,OAAO;cAAE,CAAA;AACpDL,oBAAMQ,IAAAA,IAAQ;gBAAEC,OAAO,QAAQC,IAAAA,IAAQC,EAAAA;cAAM;YAC/C,WAAWJ,MAAM,KAAKA,MAAMF,OAAO,GAAG;AACpCL,oBAAMQ,IAAAA,IAAQ;gBAAEC,OAAOG,KAAKC,MAAMD,KAAK/D,OAAM,IAAK,GAAA;cAAQ;YAC5D;UACF;QACF;AAIA,eAAOgB,MAAMI,GAAGsB,IACd7C,MAAM8C,KAAK;UACTC,MAAM5C,OAAO6C,SAASC,YAAW;UACjCK;QACF,CAAA,CAAA;MAEJ,CAAA;AAEAZ,WAAKC,OAAAA;AACL,aAAOA;IACT;;EAEF;IACE9C,KAAKyB,YAAYjC,YAAAA;IACjB,OAAO8B,OAAOC,GAAGsB,OAAAA;AACf,YAAMC,UAAUrC,OAAMc,GAAG,MAAA;AACvB,cAAMgD,QAAQ9E,kBAAkB+E,OAAM;AACtCD,cAAME,QACHC,WAAW;UAAEC,IAAI;UAAahD,MAAMhC;QAAW,CAAA,EAC/C+E,WAAW;UAAEC,IAAI;UAAWhD,MAAM;QAAM,CAAA,EACxC+C,WAAW;UACVC,IAAI;UACJhD,MAAM;UACNuC,OAAOrE,KAAIoD,KAAK;YAAE2B,SAAStD,MAAMqD;YAAIE,UAAU9E,KAAI+E,SAASxE,OAAM;UAAG,CAAA;QACvE,CAAA,EACCoE,WAAW;UAAEC,IAAI;UAAchD,MAAM;QAAS,CAAA,EAC9C+C,WAAW;UAAEC,IAAI;UAAchD,MAAM/B;QAAY,CAAA,EACjDmF,WAAW;UAAEC,MAAM;UAAaC,UAAU;QAAS,GAAG;UAAED,MAAM;UAAWC,UAAU;QAAS,CAAA,EAC5FF,WAAW;UAAEC,MAAM;UAAWC,UAAU;QAAO,GAAG;UAAED,MAAM;UAAcC,UAAU;QAAO,CAAA,EACzFF,WAAW;UAAEC,MAAM;UAAgBC,UAAUvF;QAAe,GAAG;UAAEsF,MAAM;UAAcC,UAAU;QAAK,CAAA,EACpGF,WAAW;UAAEC,MAAM;UAAWC,UAAU;QAAW,GAAG;UAAED,MAAM;UAAcC,UAAU;QAAQ,CAAA,EAC9FF,WAAW;UAAEC,MAAM;UAAgBC,UAAUvF;QAAe,GAAG;UAAEsF,MAAM;UAAcC,UAAU;QAAQ,CAAA;AAE1G,eAAO3D,MAAMI,GAAGsB,IAAIuB,MAAMW,IAAI;MAChC,CAAA;AACArC,WAAKC,OAAAA;AACL,aAAOA;IACT;;CAEH;;;AH9IM,IAAMqC,gBAAoCC,KAAK,MAAM,OAAO,+BAAA,CAAA;",
6
- "names": ["lazy", "React", "IconButton", "SchemaTable", "types", "objects", "label", "onClick", "div", "className", "h2", "map", "type", "key", "typename", "variant", "icon", "iconOnly", "Schema", "AgentPrompt", "WebSearchBlueprint", "Routine", "Trigger", "Operation", "NODE_INPUT", "Feed", "Filter", "JsonSchema", "Key", "Obj", "Query", "Ref", "Scope", "Tag", "invariant", "DXN", "EID", "InboxOperation", "Mailbox", "Markdown", "createAppend", "createChat", "createComputeGraph", "createConstant", "createFeed", "createFunction", "createGpt", "createRandom", "createSurface", "createTemplate", "createText", "createTrigger", "CanvasBoard", "CanvasGraphModel", "pointMultiply", "pointsToRect", "rectToPoints", "ViewModel", "Message", "Organization", "Person", "Pipeline", "range", "trim", "PresetName", "types", "Object", "org", "space", "website", "content", "tagRef", "doc", "tags", "fullName", "organization", "make", "cb", "objects", "mailbox", "mailboxes", "mailboxFeed", "queueDxn", "getQueueUri", "tag", "label", "first", "tagUri", "contactsQuery", "organizationsQuery", "notesQuery", "select", "type", "Document", "db", "enabled", "spec", "specTimer", "function", "input", "description", "output", "Any", "specSubscription", "prompt", "researchPrompt", "labels", "contains", "feed", "jsonSchema", "contactsView", "toJsonSchema", "organizationsView", "notesView", "add", "columns", "name", "order", "canvasModel", "functionTrigger", "call", "builder", "y", "triggerShape", "triggerKind", "position", "x", "width", "height", "queueId", "target", "createEdge", "source", "gpt", "text", "append", "attachTrigger", "addToSpace", "ast", "computeModel", "createNode", "chat", "sourceCurrency", "value", "view", "converter", "spaceId", "channelId", "entityId", "queue", "createQueueSinkPreset", "valueType", "rawPosition", "centerX", "queuePosition", "centerY", "random", "id", "template", "triggerOutputName", "triggerSpec", "update", "initSpec", "templateComputeNode", "join", "computeGraph", "compute", "layout", "setupQueue", "args", "idPosition", "node", "root", "inputNodeId", "size", "center", "snap", "undefined", "addressToA1Notation", "ComputeGraph", "ComputeGraphModel", "DEFAULT_OUTPUT", "NODE_INPUT", "NODE_OUTPUT", "EID", "Filter", "Key", "Type", "View", "Markdown", "Sheet", "Sketch", "SpaceOperation", "random", "getTypeURIFromQuery", "createAsyncGenerator", "range", "generator", "findViewByTypeUri", "views", "typeUri", "find", "view", "query", "ast", "createGenerator", "client", "invokePromise", "schema", "space", "n", "typename", "getTypename", "db", "type", "run", "getURI", "staticSchema", "graph", "registry", "list", "filter", "isType", "s", "undefined", "AddType", "show", "generate", "createObjects", "staticGenerators", "Map", "Document", "cb", "objects", "map", "add", "make", "name", "commerce", "productName", "content", "lorem", "sentences", "obj", "cells", "year", "Date", "getFullYear", "cols", "rows", "col", "row", "cell", "value", "from", "to", "Math", "floor", "model", "create", "builder", "createNode", "id", "spaceId", "entityId", "EntityId", "createEdge", "node", "property", "root", "DebugSettings", "lazy"]
3
+ "sources": ["../../../../src/components/SchemaTable/SchemaTable.tsx", "../../../../src/components/SpaceGenerator/presets.ts", "../../../../src/components/SpaceGenerator/ObjectGenerator.tsx"],
4
+ "sourcesContent": ["//\n// Copyright 2024 DXOS.org\n//\n\nimport React from 'react';\n\nimport { IconButton } from '@dxos/react-ui';\n\nexport type SchemaTableProps = {\n types: any[];\n objects?: Record<string, number | undefined>;\n label: string;\n onClick: (typename: string) => void;\n};\n\nexport const SchemaTable = ({ types, objects = {}, label, onClick }: SchemaTableProps) => {\n return (\n <div className='grid grid-cols-[1fr_80px_40px] gap-1 overflow-none'>\n <h2 className='p-2'>{label}</h2>\n {types.map((type) => (\n <div key={type.typename} className='grid grid-cols-subgrid col-span-3 items-center'>\n <div className='px-2 text-sm font-mono text-subdued'>{type.typename}</div>\n <div className='px-2 text-right font-mono'>{objects[type.typename] ?? 0}</div>\n <IconButton\n variant='ghost'\n icon='ph--plus--regular'\n iconOnly\n label='Create data'\n onClick={() => onClick(type.typename)}\n />\n </div>\n ))}\n </div>\n );\n};\n", "//\n// Copyright 2025 DXOS.org\n//\n\nimport * as Schema from 'effect/Schema';\n\nimport { RunInstructions, WebSearchSkill } from '@dxos/assistant-toolkit';\nimport { Instructions, Operation, Trigger } from '@dxos/compute';\nimport { type ComputeGraphModel, NODE_INPUT } from '@dxos/conductor';\nimport { Feed, Filter, JsonSchema, Key, Obj, Query, type QueryAST, Ref, Scope, Tag } from '@dxos/echo';\nimport { invariant } from '@dxos/invariant';\nimport { DXN, EID } from '@dxos/keys';\nimport { InboxOperation } from '@dxos/plugin-inbox';\nimport { Mailbox } from '@dxos/plugin-inbox';\nimport { Markdown } from '@dxos/plugin-markdown';\nimport { type Space } from '@dxos/react-client/echo';\nimport {\n type ComputeShape,\n createAppend,\n createChat,\n createComputeGraph,\n createConstant,\n createFeed,\n createFunction,\n createGpt,\n createRandom,\n createSurface,\n createTemplate,\n createText,\n createTrigger,\n} from '@dxos/react-ui-canvas-compute';\nimport { CanvasBoard, CanvasGraphModel, pointMultiply, pointsToRect, rectToPoints } from '@dxos/react-ui-canvas-editor';\nimport { ViewModel } from '@dxos/schema';\nimport { Message, Organization, Person, Pipeline } from '@dxos/types';\nimport { range, trim } from '@dxos/util';\n\nimport { type ObjectGenerator } from './ObjectGenerator';\n\nexport enum PresetName {\n DXOS_TEAM = 'dxos-team',\n ORG_RESEARCH_PROJECT = 'org-research-project',\n // EMAIL_TABLE = 'email-table',\n GPT_QUEUE = 'webhook-gpt-queue',\n CHAT_GPT = 'chat-gpt-text',\n // EMAIL_WITH_SUMMARY = 'email-gptSummary-table',\n OBJECT_CHANGE_QUEUE = 'objectChange-queue',\n TIMER_TICK_QUEUE = 'timerTick-queue',\n FOREX_FUNCTION_CALL = 'forex-function-call',\n DISCORD_MESSAGES = 'discord-messages',\n // KANBAN_QUEUE = 'kanban-queue',\n}\n\nexport const generator = () => ({\n schemas: [CanvasBoard.CanvasBoard, Trigger.Trigger] as any[],\n types: Object.values(PresetName).map((name) => ({ typename: name })),\n items: [\n [\n PresetName.DXOS_TEAM,\n async (space, n, cb) => {\n const objects = range(n, () => {\n const org = space.db.add(\n Obj.make(Organization.Organization, {\n name: 'DXOS',\n website: 'https://dxos.org',\n }),\n );\n const doc = space.db.add(\n Markdown.make({\n name: 'DXOS Research',\n content: 'DXOS builds Composer, an open-source AI-powered malleable application.',\n }),\n );\n\n const tag = space.db.add(Tag.make({ label: 'Investor' }));\n const tagRef = Ref.make(tag);\n Obj.update(doc, (doc) => {\n Obj.getMeta(doc).tags = [tagRef];\n });\n\n // space.db.add(\n // Relation.make(HasSubject, {\n // [Relation.Source]: doc,\n // [Relation.Target]: org,\n // completedAt: new Date().toISOString(),\n // }),\n // );\n\n space.db.add(\n Obj.make(Person.Person, { [Obj.Meta]: { tags: [tagRef] }, fullName: 'Rich', organization: Ref.make(org) }),\n );\n space.db.add(\n Obj.make(Person.Person, {\n fullName: 'Josiah',\n organization: Ref.make(org),\n }),\n );\n space.db.add(\n Obj.make(Person.Person, {\n fullName: 'Dima',\n organization: Ref.make(org),\n }),\n );\n space.db.add(\n Obj.make(Person.Person, {\n fullName: 'Mykola',\n organization: Ref.make(org),\n }),\n );\n\n return doc;\n });\n cb?.(objects);\n return objects;\n },\n ],\n [\n PresetName.ORG_RESEARCH_PROJECT,\n async (space, n, cb) => {\n const mailboxes = await space.db.query(Filter.type(Mailbox.Mailbox)).run();\n const mailbox = mailboxes[0];\n invariant(mailbox, 'Mailbox not found');\n const mailboxFeed = await mailbox.feed?.tryLoad();\n invariant(mailboxFeed, 'Mailbox missing feed reference');\n const queueDxn = Feed.getQueueUri(mailboxFeed);\n invariant(queueDxn, 'Mailbox feed missing queue DXN key');\n const tag = await space.db.query(Filter.type(Tag.Tag, { label: 'Investor' })).first();\n const tagUri = Obj.getURI(tag);\n\n const objects = range(n, () => {\n const contactsQuery = Query.select(Filter.type(Person.Person)).select(Filter.tag(tagUri));\n const organizationsQuery = Query.select(Filter.type(Organization.Organization)).select(Filter.tag(tagUri));\n const notesQuery = Query.select(Filter.type(Markdown.Document)).select(Filter.tag(tagUri));\n\n space.db.add(\n Trigger.make({\n enabled: true,\n spec: Trigger.specTimer('* * * * *'), // Every minute.\n runnable: Ref.make(Operation.serialize(InboxOperation.GoogleMailSync)),\n input: {\n mailbox: Ref.make(mailbox),\n },\n }),\n );\n\n const researchPrompt = space.db.add(\n Instructions.make({\n name: 'Research',\n description: 'Research organization',\n\n // TODO(dmaretskyi): This mocks research (returns pre-baked result), the actual research might take compute minutes.\n // Remove the mock prompt to do the actual research.\n text: trim`\n Research the organization provided as input.\n Create a research note for it at the end.\n NOTE: Do mocked reseach (set mockSearch to true).\n `,\n skills: [Ref.make(WebSearchSkill.make())],\n }),\n );\n\n space.db.add(\n Trigger.make({\n enabled: true,\n spec: Trigger.specSubscription(organizationsQuery),\n runnable: Ref.make(Operation.serialize(RunInstructions)),\n input: {\n instructions: Ref.make(researchPrompt),\n input: '{{event.subject}}',\n },\n }),\n );\n\n const mailboxView = ViewModel.make({\n query: Query.select(\n Filter.type(Message.Message, {\n properties: { labels: Filter.contains('investor') },\n }),\n ).from(Scope.feed(Obj.getURI(mailboxFeed))),\n jsonSchema: JsonSchema.toJsonSchema(Message.Message),\n });\n const contactsView = ViewModel.make({\n query: contactsQuery,\n jsonSchema: JsonSchema.toJsonSchema(Person.Person),\n });\n const organizationsView = ViewModel.make({\n query: organizationsQuery,\n jsonSchema: JsonSchema.toJsonSchema(Organization.Organization),\n });\n const notesView = ViewModel.make({\n query: notesQuery,\n jsonSchema: JsonSchema.toJsonSchema(Markdown.Document),\n });\n\n return space.db.add(\n Pipeline.make({\n name: 'Investor Research',\n columns: [\n {\n name: 'Mailbox',\n view: Ref.make(mailboxView),\n order: [],\n },\n {\n name: 'Contacts',\n view: Ref.make(contactsView),\n order: [],\n },\n {\n name: 'Organizations',\n view: Ref.make(organizationsView),\n order: [],\n },\n {\n name: 'Notes',\n view: Ref.make(notesView),\n order: [],\n },\n ],\n }),\n );\n });\n\n cb?.(objects.flat());\n return objects.flat();\n },\n ],\n [\n PresetName.GPT_QUEUE,\n async (space, n, cb) => {\n const objects = range(n, () => {\n const canvasModel = CanvasGraphModel.create<ComputeShape>();\n\n let functionTrigger: Trigger.Trigger | undefined;\n canvasModel.builder.call((builder) => {\n const gpt = canvasModel.createNode(createGpt(position({ x: 0, y: -14 })));\n const triggerShape = createTrigger({\n spaceId: space.id,\n triggerKind: 'webhook',\n ...position({ x: -18, y: -2 }),\n });\n const trigger = canvasModel.createNode(triggerShape);\n const text = canvasModel.createNode(createText(position({ x: 19, y: 3, width: 10, height: 10 })));\n const { queueId } = setupQueue(space, canvasModel);\n const append = canvasModel.createNode(createAppend(position({ x: 10, y: 6 })));\n\n builder\n .createEdge({\n source: trigger.id,\n target: gpt.id,\n input: 'prompt',\n output: 'bodyText',\n })\n .createEdge({ source: gpt.id, target: text.id, output: 'text' })\n .createEdge({\n source: queueId.id,\n target: append.id,\n input: 'id',\n })\n .createEdge({\n source: gpt.id,\n target: append.id,\n output: 'messages',\n input: 'items',\n });\n\n functionTrigger = triggerShape.functionTrigger!.target!;\n });\n\n const computeModel = createComputeGraph(canvasModel);\n\n attachTrigger(functionTrigger, computeModel);\n\n return addToSpace(PresetName.GPT_QUEUE, space, canvasModel, computeModel);\n });\n cb?.(objects);\n return objects;\n },\n ],\n\n [\n PresetName.OBJECT_CHANGE_QUEUE,\n async (space, n, cb) => {\n const objects = range(n, () => {\n const { canvasModel, computeModel } = createQueueSinkPreset(\n space,\n 'subscription',\n (triggerSpec) =>\n (triggerSpec.query = {\n ast: Query.select(Filter.type(DXN.make('org.dxos.type.chess'))).ast as Obj.Mutable<QueryAST.Query>,\n }),\n 'type',\n );\n return addToSpace(PresetName.OBJECT_CHANGE_QUEUE, space, canvasModel, computeModel);\n });\n cb?.(objects);\n return objects;\n },\n ],\n\n [\n PresetName.TIMER_TICK_QUEUE,\n async (space, n, cb) => {\n const objects = range(n, () => {\n const { canvasModel, computeModel } = createQueueSinkPreset(\n space,\n 'timer',\n (triggerSpec) => (triggerSpec.cron = '*/5 * * * * *'),\n 'result',\n );\n return addToSpace(PresetName.TIMER_TICK_QUEUE, space, canvasModel, computeModel);\n });\n cb?.(objects);\n return objects;\n },\n ],\n\n // TODO(wittjosiah): Remove?\n // [\n // PresetName.EMAIL_TABLE,\n // async (space, n, cb) => {\n // const objects = range(n, () => {\n // const canvasModel = CanvasGraphModel.create<ComputeShape>();\n\n // const results = space.db.query(Filter.type(TableType)).runSync();\n // const emailTable = results.find((r) => r.object?.view?.target?.query?.typename?.endsWith('Email'));\n // invariant(emailTable, 'Email table not found.');\n\n // const template = canvasModel.createNode(\n // createTemplate({\n // valueType: 'object',\n // ...rawPosition({ centerX: -80, centerY: -64, width: 320, height: 320 }),\n // }),\n // );\n // const templateContent = ['{'];\n\n // let functionTrigger: FunctionTrigger | undefined;\n // canvasModel.builder.call((builder) => {\n // const triggerShape = createTrigger({\n // spaceId: space.id,\n // triggerKind: 'email',\n // ...position({ x: -18, y: -2 }),\n // });\n // const trigger = canvasModel.createNode(triggerShape);\n\n // const tableId = canvasModel.createNode(\n // createConstant({\n // value: DXN.fromLocalObjectId(emailTable.id).toString(),\n // ...position({ x: -18, y: 5, width: 8, height: 6 }),\n // }),\n // );\n\n // const appendToTable = canvasModel.createNode(createAppend(position({ x: 10, y: 6 })));\n\n // const properties = SchemaAST.getPropertySignatures(EmailTriggerOutput.ast);\n // for (let i = 0; i < properties.length; i++) {\n // const propName = properties[i].name.toString();\n // builder.createEdge({ source: trigger.id, target: template.id, input: propName, output: propName });\n // templateContent.push(` \"${propName}\": \"{{${propName}}}\"` + (i === properties.length - 1 ? '' : ','));\n // }\n // templateContent.push('}');\n\n // builder\n // .createEdge({ source: tableId.id, target: appendToTable.id, input: 'id' })\n // .createEdge({ source: template.id, target: appendToTable.id, input: 'items' });\n\n // functionTrigger = triggerShape.functionTrigger!.target!;\n // });\n\n // const computeModel = createComputeGraph(canvasModel);\n\n // const templateComputeNode = computeModel.nodes.find((n) => n.id === template.node);\n // invariant(templateComputeNode, 'Template compute node was not created.');\n // templateComputeNode.value = templateContent.join('\\n');\n // templateComputeNode.inputSchema = JsonSchema.toJsonSchema(EmailTriggerOutput);\n\n // attachTrigger(functionTrigger, computeModel);\n\n // return addToSpace(PresetName.EMAIL_TABLE, space, canvasModel, computeModel);\n // });\n // cb?.(objects);\n // return objects;\n // },\n // ],\n\n [\n PresetName.CHAT_GPT,\n async (space, n, cb) => {\n const objects = range(n, () => {\n const canvasModel = CanvasGraphModel.create<ComputeShape>();\n\n canvasModel.builder.call((builder) => {\n const gpt = canvasModel.createNode(createGpt(position({ x: 0, y: -14 })));\n const chat = canvasModel.createNode(createChat(position({ x: -18, y: -2 })));\n const text = canvasModel.createNode(createText(position({ x: 19, y: 3, width: 10, height: 10 })));\n const { queueId } = setupQueue(space, canvasModel);\n\n const append = canvasModel.createNode(createAppend(position({ x: 10, y: 6 })));\n\n builder\n .createEdge({ source: chat.id, target: gpt.id, input: 'prompt' })\n .createEdge({ source: gpt.id, target: text.id, output: 'text' })\n .createEdge({\n source: queueId.id,\n target: append.id,\n input: 'id',\n })\n .createEdge({\n source: gpt.id,\n target: append.id,\n output: 'messages',\n input: 'items',\n });\n });\n\n const computeModel = createComputeGraph(canvasModel);\n\n return addToSpace(PresetName.CHAT_GPT, space, canvasModel, computeModel);\n });\n cb?.(objects);\n return objects;\n },\n ],\n\n // TODO(wittjosiah): Remove?\n // [\n // PresetName.EMAIL_WITH_SUMMARY,\n // async (space, n, cb) => {\n // const objects = range(n, () => {\n // const canvasModel = CanvasGraphModel.create<ComputeShape>();\n\n // const results = space.db.query(Filter.type(TableType)).runSync();\n // const emailTable = results.find((r) => r.object?.view?.target?.query?.typename?.endsWith('Email'));\n // invariant(emailTable, 'Email table not found.');\n\n // const template = canvasModel.createNode(\n // createTemplate({\n // valueType: 'object',\n // ...rawPosition({ centerX: 192, centerY: -176, width: 320, height: 320 }),\n // }),\n // );\n // const templateContent = ['{'];\n\n // let functionTrigger: FunctionTrigger | undefined;\n // canvasModel.builder.call((builder) => {\n // const gpt = canvasModel.createNode(\n // createGpt(rawPosition({ centerX: -400, centerY: -112, width: 256, height: 202 })),\n // );\n // const systemPrompt = canvasModel.createNode(\n // createConstant({\n // value: \"use one word to describe content category. don't write anything else\",\n // ...rawPosition({ centerX: -800, centerY: -160, width: 192, height: 128 }),\n // }),\n // );\n // const triggerShape = createTrigger({\n // spaceId: space.id,\n // triggerKind: 'email',\n // ...rawPosition({ centerX: -736, centerY: -384, width: 182, height: 192 }),\n // });\n // const trigger = canvasModel.createNode(triggerShape);\n\n // const { queueId } = setupQueue(space, canvasModel, {\n // idPosition: { centerX: -720, centerY: 224, width: 192, height: 256 },\n // queuePosition: { centerX: -144, centerY: 416, width: 320, height: 448 },\n // });\n // const appendToQueue = canvasModel.createNode(\n // createAppend(rawPosition({ centerX: -80, centerY: 96, width: 122, height: 128 })),\n // );\n\n // const tableId = canvasModel.createNode(\n // createConstant({\n // value: DXN.fromLocalObjectId(emailTable.id).toString(),\n // ...rawPosition({ centerX: -112, centerY: -544, width: 192, height: 256 }),\n // }),\n // );\n\n // const appendToTable = canvasModel.createNode(\n // createAppend(rawPosition({ centerX: 560, centerY: -416, width: 128, height: 122 })),\n // );\n\n // templateContent.push(' \"category\": \"{{text}}\",');\n // builder.createEdge({ source: gpt.id, target: template.id, input: 'text', output: 'text' });\n\n // const properties = SchemaAST.getPropertySignatures(EmailTriggerOutput.ast);\n // for (let i = 0; i < properties.length; i++) {\n // const propName = properties[i].name.toString();\n // builder.createEdge({ source: trigger.id, target: template.id, input: propName, output: propName });\n // templateContent.push(` \"${propName}\": \"{{${propName}}}\"` + (i === properties.length - 1 ? '' : ','));\n // }\n // templateContent.push('}');\n\n // builder\n // .createEdge({ source: tableId.id, target: appendToTable.id, input: 'id' })\n // .createEdge({ source: queueId.id, target: appendToQueue.id, input: 'id' })\n // .createEdge({ source: gpt.id, target: appendToQueue.id, output: 'messages', input: 'items' })\n // .createEdge({ source: systemPrompt.id, target: gpt.id, input: 'systemPrompt' })\n // .createEdge({ source: trigger.id, target: gpt.id, input: 'prompt', output: 'body' })\n // .createEdge({ source: template.id, target: appendToTable.id, input: 'items' });\n\n // functionTrigger = triggerShape.functionTrigger!.target!;\n // });\n\n // const computeModel = createComputeGraph(canvasModel);\n\n // const templateComputeNode = computeModel.nodes.find((n) => n.id === template.node);\n // invariant(templateComputeNode, 'Template compute node was not created.');\n // templateComputeNode.value = templateContent.join('\\n');\n // const extendedSchema = Schema.extend(EmailTriggerOutput, Schema.Struct({ text: Schema.String }));\n // templateComputeNode.inputSchema = JsonSchema.toJsonSchema(extendedSchema);\n\n // attachTrigger(functionTrigger, computeModel);\n\n // return addToSpace(PresetName.EMAIL_WITH_SUMMARY, space, canvasModel, computeModel);\n // });\n // cb?.(objects);\n // return objects;\n // },\n // ],\n\n [\n PresetName.FOREX_FUNCTION_CALL,\n async (space, n, cb) => {\n const objects = range(n, () => {\n const canvasModel = CanvasGraphModel.create<ComputeShape>();\n\n canvasModel.builder.call((builder) => {\n const sourceCurrency = canvasModel.createNode(\n createConstant({ value: 'USD', ...position({ x: -10, y: -5 }) }),\n );\n const targetCurrency = canvasModel.createNode(\n createConstant({ value: 'EUR', ...position({ x: -10, y: 5 }) }),\n );\n const converter = canvasModel.createNode(createFunction(position({ x: 0, y: 0 })));\n const view = canvasModel.createNode(createSurface(position({ x: 12, y: 0 })));\n\n builder\n .createEdge({\n source: sourceCurrency.id,\n target: converter.id,\n input: 'from',\n })\n .createEdge({\n source: targetCurrency.id,\n target: converter.id,\n input: 'to',\n })\n .createEdge({\n source: converter.id,\n target: view.id,\n output: 'rate',\n });\n });\n\n const computeModel = createComputeGraph(canvasModel);\n\n return addToSpace(PresetName.FOREX_FUNCTION_CALL, space, canvasModel, computeModel);\n });\n cb?.(objects);\n return objects;\n },\n ],\n\n [\n PresetName.DISCORD_MESSAGES,\n async (space, n, cb) => {\n const objects = range(n, () => {\n const canvasModel = CanvasGraphModel.create<ComputeShape>();\n\n let functionTrigger: Trigger.Trigger | undefined;\n canvasModel.builder.call((builder) => {\n const triggerShape = createTrigger({\n spaceId: space.id,\n triggerKind: 'timer',\n ...position({ x: -10, y: -5 }),\n });\n const trigger = canvasModel.createNode(triggerShape);\n // DXOS dev-null channel.\n const channelId = canvasModel.createNode(\n createConstant({\n value: '1088569858767212554',\n ...position({ x: -10, y: 0 }),\n }),\n );\n const queueId = canvasModel.createNode(\n createConstant({\n value: EID.make({ spaceId: space.id, entityId: Key.EntityId.random() }),\n ...position({ x: -10, y: 5 }),\n }),\n );\n const converter = canvasModel.createNode(createFunction(position({ x: 0, y: 0 })));\n const view = canvasModel.createNode(createText(position({ x: 12, y: 0 })));\n const queue = canvasModel.createNode(createFeed(position({ x: 0, y: 12 })));\n\n builder\n .createEdge({\n source: trigger.id,\n target: converter.id,\n input: 'tick',\n })\n .createEdge({\n source: channelId.id,\n target: converter.id,\n input: 'channelId',\n })\n .createEdge({\n source: queueId.id,\n target: converter.id,\n input: 'queueId',\n })\n .createEdge({\n source: converter.id,\n target: view.id,\n output: 'newMessages',\n })\n .createEdge({\n source: queueId.id,\n target: queue.id,\n input: 'input',\n });\n\n functionTrigger = triggerShape.functionTrigger!.target!;\n });\n\n const computeModel = createComputeGraph(canvasModel);\n attachTrigger(functionTrigger, computeModel);\n\n return addToSpace(PresetName.DISCORD_MESSAGES, space, canvasModel, computeModel);\n });\n cb?.(objects);\n return objects;\n },\n ],\n\n // TODO(wittjosiah): Remove?\n // [\n // PresetName.KANBAN_QUEUE,\n // async (space, n, cb) => {\n // const objects = range(n, () => {\n // const canvasModel = CanvasGraphModel.create<ComputeShape>();\n\n // // TODO(wittjosiah): Integrate directly w/ Kanban.\n // // const results = space.db.query(Filter.type(KanbanType)).runSync();\n // // const kanban = results.find((r) => r.object?.cardView?.target?.query?.type?.endsWith('Message'));\n // // invariant(kanban, 'Kanban not found.');\n\n // const results = space.db.query(Filter.type(TableType)).runSync();\n // const messages = results.find((r) => r.object?.view?.target?.query?.typename?.endsWith('Message'));\n // invariant(messages, 'Table not found.');\n\n // let functionTrigger: FunctionTrigger | undefined;\n // canvasModel.builder.call((builder) => {\n // const triggerShape = createTrigger({\n // spaceId: space.id,\n // triggerKind: 'queue',\n // ...position({ x: -10, y: -5 }),\n // });\n // const trigger = canvasModel.createNode(triggerShape);\n\n // const tableId = canvasModel.createNode(\n // createConstant({\n // value: DXN.fromLocalObjectId(messages.id).toString(),\n // ...position({ x: -10, y: 5 }),\n // }),\n // );\n // const appendToTable = canvasModel.createNode(createAppend(position({ x: 10, y: 0 })));\n\n // builder\n // .createEdge({ source: tableId.id, target: appendToTable.id, input: 'id' })\n // .createEdge({ source: trigger.id, target: appendToTable.id, input: 'items', output: 'item' });\n\n // functionTrigger = triggerShape.functionTrigger!.target!;\n // });\n\n // const computeModel = createComputeGraph(canvasModel);\n // attachTrigger(functionTrigger, computeModel);\n\n // return addToSpace(PresetName.KANBAN_QUEUE, space, canvasModel, computeModel);\n // });\n // cb?.(objects);\n // return objects;\n // },\n // ],\n ] as [PresetName, ObjectGenerator<any>][],\n});\n\nconst createQueueSinkPreset = <SpecType extends Trigger.Kind>(\n space: Space,\n triggerKind: SpecType,\n initSpec: (spec: Obj.Mutable<Extract<Trigger.Spec, { kind: SpecType }>>) => void,\n triggerOutputName: string,\n) => {\n const canvasModel = CanvasGraphModel.create<ComputeShape>();\n\n const template = canvasModel.createNode(\n createTemplate({\n valueType: 'object',\n ...rawPosition({ centerX: -64, centerY: -79, width: 320, height: 320 }),\n }),\n );\n\n let functionTrigger: Trigger.Trigger | undefined;\n canvasModel.builder.call((builder) => {\n const triggerShape = createTrigger({\n spaceId: space.id,\n triggerKind,\n ...rawPosition({ centerX: -578, centerY: -187, height: 320, width: 320 }),\n });\n const trigger = canvasModel.createNode(triggerShape);\n const { queueId } = setupQueue(space, canvasModel, {\n queuePosition: { centerX: -80, centerY: 378, width: 320, height: 448 },\n });\n const append = canvasModel.createNode(\n createAppend(rawPosition({ centerX: 320, centerY: 192, width: 128, height: 122 })),\n );\n const random = canvasModel.createNode(\n createRandom(rawPosition({ centerX: -509, centerY: -30, width: 64, height: 64 })),\n );\n\n builder\n .createEdge({ source: queueId.id, target: append.id, input: 'id' })\n .createEdge({ source: template.id, target: append.id, input: 'items' })\n .createEdge({\n source: trigger.id,\n target: template.id,\n output: triggerOutputName,\n input: 'type',\n })\n .createEdge({\n source: random.id,\n target: template.id,\n input: 'changeId',\n });\n\n functionTrigger = triggerShape.functionTrigger!.target!;\n const triggerSpec = functionTrigger.spec;\n invariant(triggerSpec && triggerSpec.kind === triggerKind, 'No trigger spec.');\n Obj.update(functionTrigger, (functionTrigger) => {\n initSpec(functionTrigger.spec as any);\n });\n });\n\n const computeModel = createComputeGraph(canvasModel);\n\n const templateComputeNode = computeModel.nodes.find((n) => n.id === template.node);\n invariant(templateComputeNode, 'Template compute node was not created.');\n // NOTE: These are plain object mutations during model construction, not ECHO object mutations.\n templateComputeNode.value = ['{', ' \"@type\": \"{{type}}\",', ' \"id\": \"@{{changeId}}\"', '}'].join('\\n');\n templateComputeNode.inputSchema = JsonSchema.toJsonSchema(\n Schema.Struct({ type: Schema.String, changeId: Schema.String }),\n );\n attachTrigger(functionTrigger, computeModel);\n\n return { canvasModel, computeModel };\n};\n\nconst addToSpace = (name: string, space: Space, canvas: CanvasGraphModel, compute: ComputeGraphModel) => {\n return space.db.add(\n Obj.make(CanvasBoard.CanvasBoard, {\n name,\n computeGraph: Ref.make(compute.root),\n layout: canvas.graph,\n }),\n );\n};\n\nconst setupQueue = (\n space: Space,\n canvasModel: CanvasGraphModel,\n args?: { idPosition?: RawPositionInput; queuePosition?: RawPositionInput },\n) => {\n const queueId = canvasModel.createNode(\n createConstant({\n value: EID.make({ spaceId: space.id, entityId: Key.EntityId.random() }),\n ...(args?.idPosition ? rawPosition(args.idPosition) : position({ x: -18, y: 5, width: 8, height: 6 })),\n }),\n );\n const queue = canvasModel.createNode(\n createFeed(\n args?.queuePosition ? rawPosition(args.queuePosition) : position({ x: -3, y: 3, width: 14, height: 10 }),\n ),\n );\n canvasModel.createEdge({ source: queueId.id, target: queue.id });\n return { queue, queueId };\n};\n\nconst attachTrigger = (functionTrigger: Trigger.Trigger | undefined, computeModel: ComputeGraphModel) => {\n invariant(functionTrigger);\n const inputNode = computeModel.nodes.find((node) => node.type === NODE_INPUT)!;\n Obj.update(functionTrigger, (functionTrigger) => {\n // TODO(wittjosiah): Widen Runnable union to include ComputeGraph and remove cast.\n functionTrigger.runnable = Ref.make(computeModel.root) as any;\n functionTrigger.inputNodeId = inputNode.id;\n });\n};\n\ntype RawPositionInput = {\n centerX: number;\n centerY: number;\n width: number;\n height: number;\n};\n\nconst rawPosition = (args: RawPositionInput) => {\n return {\n center: { x: args.centerX, y: args.centerY },\n size: { width: args.width, height: args.height },\n };\n};\n\nconst position = (rect: { x: number; y: number; width?: number; height?: number }) => {\n const snap = 32;\n const [center, size] = rectToPoints({ width: 0, height: 0, ...rect });\n const { x, y, width, height } = pointsToRect([pointMultiply(center, snap), pointMultiply(size, snap)]);\n if (width && height) {\n return {\n center: { x, y },\n size: width && height ? { width, height } : undefined,\n };\n } else {\n return { center: { x, y } };\n }\n};\n", "//\n// Copyright 2024 DXOS.org\n//\n\nimport { addressToA1Notation } from '@dxos/compute-hyperformula';\nimport { ComputeGraph, ComputeGraphModel, DEFAULT_OUTPUT, NODE_INPUT, NODE_OUTPUT } from '@dxos/conductor';\nimport { EID, Filter, Key, Type, View } from '@dxos/echo';\nimport { OperationInvoker } from '@dxos/operation';\nimport { Markdown } from '@dxos/plugin-markdown';\nimport { Sheet } from '@dxos/plugin-sheet';\nimport { Sketch } from '@dxos/plugin-sketch';\nimport { SpaceOperation } from '@dxos/plugin-space';\nimport { random } from '@dxos/random';\nimport { type Client } from '@dxos/react-client';\nimport { type Space } from '@dxos/react-client/echo';\nimport { getTypeURIFromQuery } from '@dxos/schema';\nimport { type ValueGenerator, createAsyncGenerator } from '@dxos/schema/testing';\nimport { range } from '@dxos/util';\n\nconst generator: ValueGenerator = random as any;\n\nconst findViewByTypeUri = async (views: View.View[], typeUri: string) => {\n return views.find((view) => getTypeURIFromQuery(view.query.ast) === typeUri);\n};\n\nexport type ObjectGenerator<T> = (space: Space, n: number, cb?: (objects: T[]) => void) => Promise<T[]>;\n\nexport const createGenerator = <S extends Type.AnyObj>(\n client: Client,\n invokePromise: OperationInvoker.OperationInvoker['invokePromise'],\n schema: S,\n): ObjectGenerator<Type.InstanceType<S>> => {\n return async (space: Space, n: number): Promise<Type.InstanceType<S>[]> => {\n const typename = Type.getTypename(schema);\n\n // Find or create table and view.\n const views = await space.db.query(Filter.type(View.View)).run();\n const view = await findViewByTypeUri(views, Type.getURI(schema));\n const staticSchema = client\n ? client.graph.registry\n .list()\n .filter(Type.isType)\n .find((s) => Type.getTypename(s) === typename)\n : undefined;\n if (!view && !staticSchema) {\n await invokePromise(SpaceOperation.AddType, { db: space.db, type: schema, show: false });\n }\n\n // Create objects.\n const generate = createAsyncGenerator(generator, schema, { db: space.db });\n return generate.createObjects(n);\n };\n};\n\nexport const staticGenerators = new Map<string, ObjectGenerator<any>>([\n [\n Type.getTypename(Markdown.Document),\n async (space, n, cb) => {\n const objects = range(n).map(() => {\n return space.db.add(\n Markdown.make({\n name: random.commerce.productName(),\n content: random.lorem.sentences(5),\n }),\n );\n });\n\n cb?.(objects);\n return objects;\n },\n ],\n [\n Type.getTypename(Sketch.Sketch),\n async (space, n, cb) => {\n const objects = range(n).map(() => {\n const obj = space.db.add(Sketch.make({ name: random.commerce.productName() }));\n return obj;\n });\n\n cb?.(objects);\n return objects;\n },\n ],\n // TODO(burdon): Create unit tests.\n [\n Type.getTypename(Sheet.Sheet),\n async (space, n, cb) => {\n const objects = range(n).map(() => {\n const cells: Record<string, Sheet.CellValue> = {};\n const year = new Date().getFullYear();\n const cols = 4;\n const rows = 16;\n for (let col = 1; col <= cols; col++) {\n for (let row = 1; row <= rows; row++) {\n const cell = addressToA1Notation({ col, row });\n if (row === 1) {\n cells[cell] = { value: `${year} Q${col}` };\n } else if (row === rows) {\n const from = addressToA1Notation({ col, row: 2 });\n const to = addressToA1Notation({ col, row: rows - 1 });\n cells[cell] = { value: `=SUM(${from}:${to})` };\n } else if (row > 2 && row < rows - 1) {\n cells[cell] = { value: Math.floor(Math.random() * 10_000) };\n }\n }\n }\n\n // TODO(burdon): Set width.\n // TODO(burdon): Set formatting for columns.\n return space.db.add(\n Sheet.make({\n name: random.commerce.productName(),\n cells,\n }),\n );\n });\n\n cb?.(objects);\n return objects;\n },\n ],\n [\n Type.getTypename(ComputeGraph),\n async (space, n, cb) => {\n const objects = range(n, () => {\n const model = ComputeGraphModel.create();\n model.builder\n .createNode({ id: 'gpt-INPUT', type: NODE_INPUT })\n .createNode({ id: 'gpt-GPT', type: 'gpt' })\n .createNode({\n id: 'gpt-QUEUE_ID',\n type: 'constant',\n value: EID.make({ spaceId: space.id, entityId: Key.EntityId.random() }),\n })\n .createNode({ id: 'gpt-APPEND', type: 'append' })\n .createNode({ id: 'gpt-OUTPUT', type: NODE_OUTPUT })\n .createEdge({ node: 'gpt-INPUT', property: 'prompt' }, { node: 'gpt-GPT', property: 'prompt' })\n .createEdge({ node: 'gpt-GPT', property: 'text' }, { node: 'gpt-OUTPUT', property: 'text' })\n .createEdge({ node: 'gpt-QUEUE_ID', property: DEFAULT_OUTPUT }, { node: 'gpt-APPEND', property: 'id' })\n .createEdge({ node: 'gpt-GPT', property: 'messages' }, { node: 'gpt-APPEND', property: 'items' })\n .createEdge({ node: 'gpt-QUEUE_ID', property: DEFAULT_OUTPUT }, { node: 'gpt-OUTPUT', property: 'queue' });\n\n return space.db.add(model.root);\n });\n cb?.(objects);\n return objects;\n },\n ],\n]);\n"],
5
+ "mappings": "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",
6
+ "names": ["React", "IconButton", "SchemaTable", "types", "objects", "label", "onClick", "div", "className", "h2", "map", "type", "key", "typename", "variant", "icon", "iconOnly", "Schema", "RunInstructions", "WebSearchSkill", "Instructions", "Operation", "Trigger", "NODE_INPUT", "Feed", "Filter", "JsonSchema", "Key", "Obj", "Query", "Ref", "Scope", "Tag", "invariant", "DXN", "EID", "InboxOperation", "Mailbox", "Markdown", "createAppend", "createChat", "createComputeGraph", "createConstant", "createFeed", "createFunction", "createGpt", "createRandom", "createSurface", "createTemplate", "createText", "createTrigger", "CanvasBoard", "CanvasGraphModel", "pointMultiply", "pointsToRect", "rectToPoints", "ViewModel", "Message", "Organization", "Person", "Pipeline", "range", "trim", "PresetName", "types", "Object", "org", "space", "website", "content", "tagRef", "doc", "tags", "fullName", "organization", "make", "cb", "objects", "mailbox", "mailboxes", "mailboxFeed", "queueDxn", "getQueueUri", "tag", "label", "first", "tagUri", "contactsQuery", "organizationsQuery", "notesQuery", "select", "type", "Document", "db", "enabled", "spec", "specTimer", "runnable", "input", "description", "specSubscription", "instructions", "researchPrompt", "labels", "contains", "feed", "jsonSchema", "contactsView", "toJsonSchema", "organizationsView", "notesView", "add", "columns", "name", "order", "canvasModel", "functionTrigger", "call", "builder", "y", "triggerShape", "triggerKind", "position", "x", "width", "height", "queueId", "target", "output", "createEdge", "source", "gpt", "text", "append", "attachTrigger", "addToSpace", "ast", "computeModel", "createNode", "chat", "sourceCurrency", "value", "view", "converter", "spaceId", "channelId", "entityId", "queue", "createQueueSinkPreset", "valueType", "rawPosition", "centerX", "queuePosition", "centerY", "random", "id", "template", "triggerOutputName", "triggerSpec", "update", "initSpec", "templateComputeNode", "join", "computeGraph", "compute", "layout", "setupQueue", "args", "idPosition", "node", "size", "center", "snap", "undefined", "addressToA1Notation", "ComputeGraph", "ComputeGraphModel", "DEFAULT_OUTPUT", "NODE_INPUT", "NODE_OUTPUT", "EID", "Filter", "Key", "Type", "View", "Markdown", "Sheet", "Sketch", "SpaceOperation", "random", "getTypeURIFromQuery", "createAsyncGenerator", "range", "generator", "findViewByTypeUri", "views", "typeUri", "find", "view", "query", "ast", "createGenerator", "client", "invokePromise", "schema", "space", "n", "typename", "getTypename", "db", "type", "run", "getURI", "staticSchema", "graph", "registry", "list", "filter", "isType", "s", "undefined", "AddType", "show", "generate", "createObjects", "staticGenerators", "Map", "Document", "cb", "objects", "map", "add", "make", "name", "commerce", "productName", "content", "lorem", "sentences", "obj", "cells", "year", "Date", "getFullYear", "cols", "rows", "col", "row", "cell", "value", "from", "to", "Math", "floor", "model", "create", "builder", "createNode", "id", "spaceId", "entityId", "EntityId", "createEdge", "node", "property", "root"]
7
7
  }
@@ -3,17 +3,19 @@ import "../chunk-J5LGTIGS.mjs";
3
3
  // src/containers/index.ts
4
4
  import { lazy } from "react";
5
5
  var DebugGraph = lazy(() => import("../DebugGraph-G4FWS57E.mjs"));
6
- var DebugObjectPanel = lazy(() => import("../DebugObjectPanel-OS65NC4M.mjs"));
6
+ var DebugSettings = lazy(() => import("../DebugSettings-Q3WUL6YQ.mjs"));
7
+ var DebugObjectPanel = lazy(() => import("../DebugObjectPanel-QSGQJ3LM.mjs"));
7
8
  var DebugStatus = lazy(() => import("../DebugStatus-H2BAHN26.mjs"));
8
9
  var DevtoolsOverviewContainer = lazy(() => import("../DevtoolsOverviewContainer-DWQHTK7D.mjs"));
9
10
  var SpaceGenerator = lazy(() => import("../SpaceGenerator-Y35G6DRV.mjs"));
10
11
  var Wireframe = lazy(() => import("../Wireframe-WD7S2AUU.mjs"));
11
- var DebugSpaceObjectsPanel = lazy(() => import("../DebugSpaceObjectsPanel-BHOCFWDJ.mjs"));
12
+ var DebugSpaceObjectsPanel = lazy(() => import("../DebugSpaceObjectsPanel-AXFZWEIM.mjs"));
12
13
  var GithubPanel = lazy(() => import("../GithubPanel-4CSJRVKE.mjs"));
13
14
  var RegistryPanel = lazy(() => import("../RegistryPanel-64GIYJHN.mjs"));
14
15
  export {
15
16
  DebugGraph,
16
17
  DebugObjectPanel,
18
+ DebugSettings,
17
19
  DebugSpaceObjectsPanel,
18
20
  DebugStatus,
19
21
  DevtoolsOverviewContainer,
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../../src/containers/index.ts"],
4
- "sourcesContent": ["//\n// Copyright 2023 DXOS.org\n//\n\nimport { type ComponentType, lazy } from 'react';\n\nexport const DebugGraph: ComponentType<any> = lazy(() => import('./DebugGraph'));\nexport const DebugObjectPanel: ComponentType<any> = lazy(() => import('./DebugObjectPanel'));\nexport const DebugStatus: ComponentType<any> = lazy(() => import('./DebugStatus'));\nexport const DevtoolsOverviewContainer: ComponentType<any> = lazy(() => import('./DevtoolsOverviewContainer'));\nexport const SpaceGenerator: ComponentType<any> = lazy(() => import('./SpaceGenerator'));\nexport const Wireframe: ComponentType<any> = lazy(() => import('./Wireframe'));\nexport const DebugSpaceObjectsPanel: ComponentType<any> = lazy(() => import('./DebugSpaceObjectsPanel'));\nexport const GithubPanel: ComponentType<any> = lazy(() => import('./GithubPanel'));\nexport const RegistryPanel: ComponentType<any> = lazy(() => import('./RegistryPanel'));\n"],
5
- "mappings": ";;;AAIA,SAA6BA,YAAY;AAElC,IAAMC,aAAiCD,KAAK,MAAM,OAAO,4BAAA,CAAA;AACzD,IAAME,mBAAuCF,KAAK,MAAM,OAAO,kCAAA,CAAA;AAC/D,IAAMG,cAAkCH,KAAK,MAAM,OAAO,6BAAA,CAAA;AAC1D,IAAMI,4BAAgDJ,KAAK,MAAM,OAAO,2CAAA,CAAA;AACxE,IAAMK,iBAAqCL,KAAK,MAAM,OAAO,gCAAA,CAAA;AAC7D,IAAMM,YAAgCN,KAAK,MAAM,OAAO,2BAAA,CAAA;AACxD,IAAMO,yBAA6CP,KAAK,MAAM,OAAO,wCAAA,CAAA;AACrE,IAAMQ,cAAkCR,KAAK,MAAM,OAAO,6BAAA,CAAA;AAC1D,IAAMS,gBAAoCT,KAAK,MAAM,OAAO,+BAAA,CAAA;",
6
- "names": ["lazy", "DebugGraph", "DebugObjectPanel", "DebugStatus", "DevtoolsOverviewContainer", "SpaceGenerator", "Wireframe", "DebugSpaceObjectsPanel", "GithubPanel", "RegistryPanel"]
4
+ "sourcesContent": ["//\n// Copyright 2023 DXOS.org\n//\n\nimport { type ComponentType, lazy } from 'react';\n\nexport const DebugGraph: ComponentType<any> = lazy(() => import('./DebugGraph'));\nexport const DebugSettings: ComponentType<any> = lazy(() => import('./DebugSettings'));\nexport const DebugObjectPanel: ComponentType<any> = lazy(() => import('./DebugObjectPanel'));\nexport const DebugStatus: ComponentType<any> = lazy(() => import('./DebugStatus'));\nexport const DevtoolsOverviewContainer: ComponentType<any> = lazy(() => import('./DevtoolsOverviewContainer'));\nexport const SpaceGenerator: ComponentType<any> = lazy(() => import('./SpaceGenerator'));\nexport const Wireframe: ComponentType<any> = lazy(() => import('./Wireframe'));\nexport const DebugSpaceObjectsPanel: ComponentType<any> = lazy(() => import('./DebugSpaceObjectsPanel'));\nexport const GithubPanel: ComponentType<any> = lazy(() => import('./GithubPanel'));\nexport const RegistryPanel: ComponentType<any> = lazy(() => import('./RegistryPanel'));\n"],
5
+ "mappings": ";;;AAIA,SAA6BA,YAAY;AAElC,IAAMC,aAAiCD,KAAK,MAAM,OAAO,4BAAA,CAAA;AACzD,IAAME,gBAAoCF,KAAK,MAAM,OAAO,+BAAA,CAAA;AAC5D,IAAMG,mBAAuCH,KAAK,MAAM,OAAO,kCAAA,CAAA;AAC/D,IAAMI,cAAkCJ,KAAK,MAAM,OAAO,6BAAA,CAAA;AAC1D,IAAMK,4BAAgDL,KAAK,MAAM,OAAO,2CAAA,CAAA;AACxE,IAAMM,iBAAqCN,KAAK,MAAM,OAAO,gCAAA,CAAA;AAC7D,IAAMO,YAAgCP,KAAK,MAAM,OAAO,2BAAA,CAAA;AACxD,IAAMQ,yBAA6CR,KAAK,MAAM,OAAO,wCAAA,CAAA;AACrE,IAAMS,cAAkCT,KAAK,MAAM,OAAO,6BAAA,CAAA;AAC1D,IAAMU,gBAAoCV,KAAK,MAAM,OAAO,+BAAA,CAAA;",
6
+ "names": ["lazy", "DebugGraph", "DebugSettings", "DebugObjectPanel", "DebugStatus", "DevtoolsOverviewContainer", "SpaceGenerator", "Wireframe", "DebugSpaceObjectsPanel", "GithubPanel", "RegistryPanel"]
7
7
  }
@@ -1,10 +1,10 @@
1
1
  import {
2
2
  DebugCapabilities,
3
3
  DebugContext,
4
- Devtools,
5
4
  DevtoolsOverview,
5
+ Devtools_exports,
6
6
  Settings_exports
7
- } from "./chunk-MIF2W4LF.mjs";
7
+ } from "./chunk-72QXLYMI.mjs";
8
8
  import {
9
9
  meta
10
10
  } from "./chunk-R5C4CKOF.mjs";
@@ -12,7 +12,7 @@ import "./chunk-J5LGTIGS.mjs";
12
12
  export {
13
13
  DebugCapabilities,
14
14
  DebugContext,
15
- Devtools,
15
+ Devtools_exports as Devtools,
16
16
  DevtoolsOverview,
17
17
  Settings_exports as Settings,
18
18
  meta