@dxos/plugin-debug 0.11.0 → 0.12.0-next-bbabc02363f18d7643ea4160e3a7a7809870fd0d
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.
- package/dist/lib/Debug.mjs +22 -0
- package/dist/lib/Debug.mjs.map +1 -0
- package/dist/lib/DebugEvents.mjs +15 -0
- package/dist/lib/DebugEvents.mjs.map +1 -0
- package/dist/lib/DebugNodes.mjs +19 -0
- package/dist/lib/DebugNodes.mjs.map +1 -0
- package/dist/lib/DebugPlugin.mjs +4 -16
- package/dist/lib/DebugPlugin.mjs.map +1 -1
- package/dist/lib/DebugPlugin.node.mjs +2 -3
- package/dist/lib/DebugPlugin.node.mjs.map +1 -1
- package/dist/lib/DebugPlugin.workerd.mjs +1 -1
- package/dist/lib/DebugPlugin.workerd.mjs.map +1 -1
- package/dist/lib/DebugSurface.mjs +15 -0
- package/dist/lib/DebugSurface.mjs.map +1 -0
- package/dist/lib/Settings.mjs +12 -0
- package/dist/lib/Settings.mjs.map +1 -0
- package/dist/lib/capabilities.mjs +38 -6
- package/dist/lib/capabilities.mjs.map +1 -1
- package/dist/lib/chunk-DebugObjectPanel.mjs +1 -1
- package/dist/lib/chunk-DebugSettings.mjs +95 -15
- package/dist/lib/chunk-DebugSettings.mjs.map +1 -1
- package/dist/lib/chunk-DebugSpaceObjectsPanel.mjs +1 -1
- package/dist/lib/chunk-SpaceGenerator.mjs +52 -10
- package/dist/lib/chunk-SpaceGenerator.mjs.map +1 -1
- package/dist/lib/chunk-StatsPanel.mjs +2 -2
- package/dist/lib/chunk-StatsPanel.mjs.map +1 -1
- package/dist/lib/chunk-Wireframe.mjs +1 -1
- package/dist/lib/chunk-app-graph-builder.mjs +13 -10
- package/dist/lib/chunk-app-graph-builder.mjs.map +1 -1
- package/dist/lib/chunk-log-recording.mjs +3 -2
- package/dist/lib/chunk-log-recording.mjs.map +1 -1
- package/dist/lib/chunk-meta.mjs +1 -1
- package/dist/lib/chunk-meta.mjs.map +1 -1
- package/dist/lib/chunk-react-surface.mjs +20 -14
- package/dist/lib/chunk-react-surface.mjs.map +1 -1
- package/dist/lib/chunk-rolldown-runtime.mjs +13 -0
- package/dist/lib/chunk-settings.mjs +7 -6
- package/dist/lib/chunk-settings.mjs.map +1 -1
- package/dist/lib/chunk-stats-panel.mjs +5 -4
- package/dist/lib/chunk-stats-panel.mjs.map +1 -1
- package/dist/lib/components.mjs +41 -35
- package/dist/lib/components.mjs.map +1 -1
- package/dist/lib/index.mjs +6 -2
- package/dist/lib/plugin.mjs +1 -1
- package/dist/lib/plugin.mjs.map +1 -1
- package/dist/lib/translations.mjs +10 -1
- package/dist/lib/translations.mjs.map +1 -1
- package/dist/types/src/DebugPlugin.d.ts +3 -3
- package/dist/types/src/DebugPlugin.d.ts.map +1 -1
- package/dist/types/src/DebugPlugin.node.d.ts +3 -3
- package/dist/types/src/DebugPlugin.node.d.ts.map +1 -1
- package/dist/types/src/DebugPlugin.workerd.d.ts +3 -3
- package/dist/types/src/DebugPlugin.workerd.d.ts.map +1 -1
- package/dist/types/src/capabilities/DebugSurfaces.d.ts +1 -1
- package/dist/types/src/capabilities/DebugSurfaces.d.ts.map +1 -1
- package/dist/types/src/capabilities/app-graph-builder.d.ts +2 -2
- package/dist/types/src/capabilities/app-graph-builder.d.ts.map +1 -1
- package/dist/types/src/capabilities/index.d.ts +7 -10
- package/dist/types/src/capabilities/index.d.ts.map +1 -1
- package/dist/types/src/capabilities/log-recording.d.ts +1 -2
- package/dist/types/src/capabilities/log-recording.d.ts.map +1 -1
- package/dist/types/src/capabilities/react-surface.d.ts +2 -2
- package/dist/types/src/capabilities/react-surface.d.ts.map +1 -1
- package/dist/types/src/capabilities/settings.d.ts +2 -2
- package/dist/types/src/capabilities/settings.d.ts.map +1 -1
- package/dist/types/src/capabilities/stats-panel.d.ts +2 -2
- package/dist/types/src/capabilities/stats-panel.d.ts.map +1 -1
- package/dist/types/src/components/SchemaTable/SchemaTable.d.ts.map +1 -1
- package/dist/types/src/components/SpaceGenerator/presets.d.ts.map +1 -1
- package/dist/types/src/containers/DebugPortSettings/DebugPortSettings.d.ts +13 -0
- package/dist/types/src/containers/DebugPortSettings/DebugPortSettings.d.ts.map +1 -0
- package/dist/types/src/containers/DebugPortSettings/DebugPortSettings.stories.d.ts +93 -0
- package/dist/types/src/containers/DebugPortSettings/DebugPortSettings.stories.d.ts.map +1 -0
- package/dist/types/src/containers/DebugPortSettings/index.d.ts +2 -0
- package/dist/types/src/containers/DebugPortSettings/index.d.ts.map +1 -0
- package/dist/types/src/containers/DebugSettings/DebugSettings.d.ts +2 -2
- package/dist/types/src/containers/DebugSettings/DebugSettings.d.ts.map +1 -1
- package/dist/types/src/containers/DebugSettings/DebugSettings.stories.d.ts +10 -1
- package/dist/types/src/containers/DebugSettings/DebugSettings.stories.d.ts.map +1 -1
- package/dist/types/src/containers/SpaceGenerator/SpaceGenerator.d.ts.map +1 -1
- package/dist/types/src/containers/SpaceGenerator/SpaceGenerator.stories.d.ts +87 -0
- package/dist/types/src/containers/SpaceGenerator/SpaceGenerator.stories.d.ts.map +1 -0
- package/dist/types/src/index.d.ts +5 -1
- package/dist/types/src/index.d.ts.map +1 -1
- package/dist/types/src/plugin.d.ts +3 -3
- package/dist/types/src/plugin.d.ts.map +1 -1
- package/dist/types/src/translations.d.ts +9 -0
- package/dist/types/src/translations.d.ts.map +1 -1
- package/dist/types/src/types/{debug.d.ts → Debug.d.ts} +3 -3
- package/dist/types/src/types/Debug.d.ts.map +1 -0
- package/dist/types/src/types/DebugEvents.d.ts +8 -0
- package/dist/types/src/types/DebugEvents.d.ts.map +1 -0
- package/dist/types/tsconfig.tsbuildinfo +1 -1
- package/package.json +93 -54
- package/src/DebugPlugin.node.ts +6 -6
- package/src/DebugPlugin.tsx +18 -25
- package/src/DebugPlugin.workerd.ts +4 -3
- package/src/capabilities/DebugSurfaces.tsx +9 -4
- package/src/capabilities/app-graph-builder.ts +8 -4
- package/src/capabilities/index.ts +40 -6
- package/src/capabilities/log-recording.ts +3 -2
- package/src/capabilities/react-surface.ts +10 -8
- package/src/capabilities/settings.ts +7 -5
- package/src/capabilities/stats-panel.ts +5 -4
- package/src/components/SchemaTable/SchemaTable.tsx +19 -13
- package/src/components/SpaceGenerator/ObjectGenerator.tsx +5 -5
- package/src/components/SpaceGenerator/presets.ts +6 -4
- package/src/containers/DebugPortSettings/DebugPortSettings.stories.tsx +144 -0
- package/src/containers/DebugPortSettings/DebugPortSettings.tsx +112 -0
- package/src/containers/DebugPortSettings/index.ts +5 -0
- package/src/containers/DebugSettings/DebugSettings.tsx +11 -6
- package/src/containers/SpaceGenerator/SpaceGenerator.stories.tsx +93 -0
- package/src/containers/SpaceGenerator/SpaceGenerator.tsx +44 -6
- package/src/containers/StatsPanel/StatsPanel.tsx +2 -2
- package/src/index.ts +5 -1
- package/src/meta.ts +1 -1
- package/src/plugin.ts +2 -2
- package/src/translations.ts +13 -0
- package/src/types/{debug.ts → Debug.ts} +4 -2
- package/src/types/DebugEvents.ts +16 -0
- package/dist/lib/chunk-types.mjs +0 -60
- package/dist/lib/chunk-types.mjs.map +0 -1
- package/dist/lib/types.mjs +0 -2
- package/dist/types/src/components/SpaceGenerator/draw-util.d.ts +0 -8
- package/dist/types/src/components/SpaceGenerator/draw-util.d.ts.map +0 -1
- package/dist/types/src/types/debug.d.ts.map +0 -1
- package/dist/types/src/types/index.d.ts +0 -5
- package/dist/types/src/types/index.d.ts.map +0 -1
- package/src/components/SpaceGenerator/draw-util.ts +0 -191
- package/src/types/index.ts +0 -8
package/dist/lib/components.mjs
CHANGED
|
@@ -1,26 +1,29 @@
|
|
|
1
|
-
import { range, trim } from "@dxos/util";
|
|
2
1
|
import "react";
|
|
3
2
|
import * as Schema from "effect/Schema";
|
|
3
|
+
import { range, trim } from "@dxos/util";
|
|
4
|
+
import { EID, Feed, Filter, JsonSchema, Key, Obj, Query, Ref, Scope, Tag, Type, View } from "@dxos/echo";
|
|
4
5
|
import { IconButton } from "@dxos/react-ui";
|
|
5
6
|
import { mx } from "@dxos/ui-theme";
|
|
6
7
|
import { jsx, jsxs } from "react/jsx-runtime";
|
|
7
8
|
import { RunInstructions, WebSearchSkill } from "@dxos/assistant-toolkit";
|
|
8
|
-
import
|
|
9
|
+
import * as Instructions from "@dxos/compute/Instructions";
|
|
10
|
+
import * as Operation from "@dxos/compute/Operation";
|
|
11
|
+
import * as Trigger from "@dxos/compute/Trigger";
|
|
9
12
|
import { ComputeGraph, ComputeGraphModel, DEFAULT_OUTPUT, NODE_INPUT, NODE_OUTPUT } from "@dxos/conductor";
|
|
10
|
-
import { EID, Feed, Filter, JsonSchema, Key, Obj, Query, Ref, Scope, Tag, Type, View } from "@dxos/echo";
|
|
11
13
|
import { invariant } from "@dxos/invariant";
|
|
12
14
|
import { DXN, EID as EID$1 } from "@dxos/keys";
|
|
13
|
-
import
|
|
14
|
-
import
|
|
15
|
+
import * as InboxOperation from "@dxos/plugin-inbox/InboxOperation";
|
|
16
|
+
import * as Mailbox from "@dxos/plugin-inbox/Mailbox";
|
|
17
|
+
import * as Markdown from "@dxos/plugin-markdown/Markdown";
|
|
15
18
|
import { createAppend, createChat, createComputeGraph, createConstant, createFeed, createFunction, createGpt, createRandom, createSurface, createTemplate, createText, createTrigger } from "@dxos/react-ui-canvas-compute";
|
|
16
19
|
import { CanvasBoard, CanvasGraphModel, pointMultiply, pointsToRect, rectToPoints } from "@dxos/react-ui-canvas-editor";
|
|
17
20
|
import { ViewModel, getTypeURIFromQuery } from "@dxos/schema";
|
|
18
21
|
import { Message, Organization, Person, Pipeline } from "@dxos/types";
|
|
19
|
-
import { addressToA1Notation } from "@dxos/compute-hyperformula";
|
|
20
|
-
import
|
|
21
|
-
import
|
|
22
|
+
import { addressToA1Notation } from "@dxos/compute-hyperformula/types";
|
|
23
|
+
import * as Drawing from "@dxos/plugin-illustrator/Drawing";
|
|
24
|
+
import * as Sheet from "@dxos/plugin-sheet/Sheet";
|
|
22
25
|
import { SpaceOperation } from "@dxos/plugin-space";
|
|
23
|
-
import
|
|
26
|
+
import * as Tldraw from "@dxos/plugin-tldraw/Tldraw";
|
|
24
27
|
import { random } from "@dxos/random";
|
|
25
28
|
import { createAsyncGenerator } from "@dxos/schema/testing";
|
|
26
29
|
//#region src/components/SchemaTable/SchemaTable.tsx
|
|
@@ -30,26 +33,29 @@ var SchemaTable = ({ classNames, types, objects = {}, label, onClick }) => {
|
|
|
30
33
|
children: [/* @__PURE__ */ jsx("h2", {
|
|
31
34
|
className: "p-2",
|
|
32
35
|
children: label
|
|
33
|
-
}), types.map((type) =>
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
36
|
+
}), types.map((type) => {
|
|
37
|
+
const typename = typeof type.typename === "string" ? type.typename : Type.getTypename(type);
|
|
38
|
+
return /* @__PURE__ */ jsxs("div", {
|
|
39
|
+
className: "grid grid-cols-subgrid col-span-3 items-center",
|
|
40
|
+
children: [
|
|
41
|
+
/* @__PURE__ */ jsx("div", {
|
|
42
|
+
className: "px-2 text-sm font-mono text-subdued",
|
|
43
|
+
children: typename
|
|
44
|
+
}),
|
|
45
|
+
/* @__PURE__ */ jsx("div", {
|
|
46
|
+
className: "px-2 text-right font-mono",
|
|
47
|
+
children: typename ? objects[typename] ?? 0 : 0
|
|
48
|
+
}),
|
|
49
|
+
/* @__PURE__ */ jsx(IconButton, {
|
|
50
|
+
variant: "ghost",
|
|
51
|
+
icon: "ph--plus--regular",
|
|
52
|
+
iconOnly: true,
|
|
53
|
+
label: "Create data",
|
|
54
|
+
onClick: () => typename && onClick(typename)
|
|
55
|
+
})
|
|
56
|
+
]
|
|
57
|
+
}, typename);
|
|
58
|
+
})]
|
|
53
59
|
});
|
|
54
60
|
};
|
|
55
61
|
//#endregion
|
|
@@ -112,7 +118,7 @@ var generator = () => ({
|
|
|
112
118
|
invariant(mailbox, "Mailbox not found", {
|
|
113
119
|
"~LogMeta": "~LogMeta",
|
|
114
120
|
F: __dxlog_file,
|
|
115
|
-
L:
|
|
121
|
+
L: 123,
|
|
116
122
|
S: void 0,
|
|
117
123
|
A: ["mailbox", "'Mailbox not found'"]
|
|
118
124
|
});
|
|
@@ -120,14 +126,14 @@ var generator = () => ({
|
|
|
120
126
|
invariant(mailboxFeed, "Mailbox missing feed reference", {
|
|
121
127
|
"~LogMeta": "~LogMeta",
|
|
122
128
|
F: __dxlog_file,
|
|
123
|
-
L:
|
|
129
|
+
L: 125,
|
|
124
130
|
S: void 0,
|
|
125
131
|
A: ["mailboxFeed", "'Mailbox missing feed reference'"]
|
|
126
132
|
});
|
|
127
133
|
invariant(Feed.getFeedUri(mailboxFeed), "Mailbox feed missing feed URI", {
|
|
128
134
|
"~LogMeta": "~LogMeta",
|
|
129
135
|
F: __dxlog_file,
|
|
130
|
-
L:
|
|
136
|
+
L: 127,
|
|
131
137
|
S: void 0,
|
|
132
138
|
A: ["feedUri", "'Mailbox feed missing feed URI'"]
|
|
133
139
|
});
|
|
@@ -512,7 +518,7 @@ var createQueueSinkPreset = (space, triggerKind, initSpec, triggerOutputName) =>
|
|
|
512
518
|
invariant(triggerSpec && triggerSpec.kind === triggerKind, "No trigger spec.", {
|
|
513
519
|
"~LogMeta": "~LogMeta",
|
|
514
520
|
F: __dxlog_file,
|
|
515
|
-
L:
|
|
521
|
+
L: 737,
|
|
516
522
|
S: void 0,
|
|
517
523
|
A: ["triggerSpec && triggerSpec.kind === triggerKind", "'No trigger spec.'"]
|
|
518
524
|
});
|
|
@@ -525,7 +531,7 @@ var createQueueSinkPreset = (space, triggerKind, initSpec, triggerOutputName) =>
|
|
|
525
531
|
invariant(templateComputeNode, "Template compute node was not created.", {
|
|
526
532
|
"~LogMeta": "~LogMeta",
|
|
527
533
|
F: __dxlog_file,
|
|
528
|
-
L:
|
|
534
|
+
L: 746,
|
|
529
535
|
S: void 0,
|
|
530
536
|
A: ["templateComputeNode", "'Template compute node was not created.'"]
|
|
531
537
|
});
|
|
@@ -584,7 +590,7 @@ var attachTrigger = (functionTrigger, computeModel) => {
|
|
|
584
590
|
invariant(functionTrigger, void 0, {
|
|
585
591
|
"~LogMeta": "~LogMeta",
|
|
586
592
|
F: __dxlog_file,
|
|
587
|
-
L:
|
|
593
|
+
L: 788,
|
|
588
594
|
S: void 0,
|
|
589
595
|
A: ["functionTrigger", ""]
|
|
590
596
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"components.mjs","names":[],"sources":["../../src/components/SchemaTable/SchemaTable.tsx","../../src/components/SpaceGenerator/presets.ts","../../src/components/SpaceGenerator/ObjectGenerator.tsx"],"sourcesContent":["//\n// Copyright 2024 DXOS.org\n//\n\nimport React from 'react';\n\nimport { IconButton, ThemedClassName } from '@dxos/react-ui';\nimport { mx } from '@dxos/ui-theme';\n\nexport type SchemaTableProps = ThemedClassName<{\n types: any[];\n objects?: Record<string, number | undefined>;\n label: string;\n onClick: (typename: string) => void;\n}>;\n\nexport const SchemaTable = ({ classNames, types, objects = {}, label, onClick }: SchemaTableProps) => {\n return (\n <div className={mx('grid grid-cols-[1fr_80px_40px] gap-1 overflow-none', classNames)}>\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 feedUri = Feed.getFeedUri(mailboxFeed);\n invariant(feedUri, 'Mailbox feed missing feed URI');\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 { Drawing } from '@dxos/plugin-illustrator';\nimport { Markdown } from '@dxos/plugin-markdown';\nimport { Sheet } from '@dxos/plugin-sheet';\nimport { SpaceOperation } from '@dxos/plugin-space';\nimport { Tldraw } from '@dxos/plugin-tldraw';\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(Drawing.Drawing),\n async (space, n, cb) => {\n const objects = range(n).map(() => {\n const obj = space.db.add(\n Drawing.make({\n name: random.commerce.productName(),\n canvas: Drawing.makeCanvas({ schema: Tldraw.TLDRAW_SCHEMA }),\n }),\n );\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"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AAgBA,IAAa,eAAe,EAAE,YAAY,OAAO,UAAU,CAAC,GAAG,OAAO,cAAgC;CACpG,OACE,qBAAC,OAAD;EAAK,WAAW,GAAG,sDAAsD,UAAU;YAAnF,CACE,oBAAC,MAAD;GAAI,WAAU;aAAO;EAAU,CAAA,GAC9B,MAAM,KAAK,SACV,qBAAC,OAAD;GAAyB,WAAU;aAAnC;IACE,oBAAC,OAAD;KAAK,WAAU;eAAuC,KAAK;IAAc,CAAA;IACzE,oBAAC,OAAD;KAAK,WAAU;eAA6B,QAAQ,KAAK,aAAa;IAAO,CAAA;IAC7E,oBAAC,YAAD;KACE,SAAQ;KACR,MAAK;KACL,UAAA;KACA,OAAM;KACN,eAAe,QAAQ,KAAK,QAAQ;IACrC,CAAA;GACE;KAVK,KAAK,QAUV,CACN,CACE;;AAET;;;;ACGA,IAAY,aAAL,yBAAA,YAAA;CACL,WAAA,eAAA;CACA,WAAA,0BAAA;CAEA,WAAA,eAAA;CACA,WAAA,cAAA;CAEA,WAAA,yBAAA;CACA,WAAA,sBAAA;CACA,WAAA,yBAAA;CACA,WAAA,sBAAA;;AAEF,EAAA,CAAA,CAAA;AAEA,IAAa,mBAAmB;CAC9B,SAAS,CAAC,YAAY,aAAa,QAAQ,OAAO;CAClD,OAAO,OAAO,OAAO,UAAU,CAAC,CAAC,KAAK,UAAU,EAAE,UAAU,KAAK,EAAE;CACnE,OAAO;EACL,CAAA,aAEE,OAAO,OAAO,GAAG,OAAO;GACtB,MAAM,UAAU,MAAM,SAAS;IAC7B,MAAM,MAAM,MAAM,GAAG,IACnB,IAAI,KAAK,aAAa,cAAc;KAClC,MAAM;KACN,SAAS;IACX,CAAC,CACH;IACA,MAAM,MAAM,MAAM,GAAG,IACnB,SAAS,KAAK;KACZ,MAAM;KACN,SAAS;IACX,CAAC,CACH;IAEA,MAAM,MAAM,MAAM,GAAG,IAAI,IAAI,KAAK,EAAE,OAAO,WAAW,CAAC,CAAC;IACxD,MAAM,SAAS,IAAI,KAAK,GAAG;IAC3B,IAAI,OAAO,MAAM,QAAQ;KACvB,IAAI,QAAQ,GAAG,CAAC,CAAC,OAAO,CAAC,MAAM;IACjC,CAAC;IAUD,MAAM,GAAG,IACP,IAAI,KAAK,OAAO,QAAQ;MAAG,IAAI,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE;KAAG,UAAU;KAAQ,cAAc,IAAI,KAAK,GAAG;IAAE,CAAC,CAC3G;IACA,MAAM,GAAG,IACP,IAAI,KAAK,OAAO,QAAQ;KACtB,UAAU;KACV,cAAc,IAAI,KAAK,GAAG;IAC5B,CAAC,CACH;IACA,MAAM,GAAG,IACP,IAAI,KAAK,OAAO,QAAQ;KACtB,UAAU;KACV,cAAc,IAAI,KAAK,GAAG;IAC5B,CAAC,CACH;IACA,MAAM,GAAG,IACP,IAAI,KAAK,OAAO,QAAQ;KACtB,UAAU;KACV,cAAc,IAAI,KAAK,GAAG;IAC5B,CAAC,CACH;IAEA,OAAO;GACT,CAAC;GACD,KAAK,OAAO;GACZ,OAAO;EACT,CACF;EACA,CAAA,wBAEE,OAAO,OAAO,GAAG,OAAO;GAEtB,MAAM,WAAU,MADQ,MAAM,GAAG,MAAM,OAAO,KAAK,QAAQ,OAAO,CAAC,CAAC,CAAC,IAAI,EAAA,CAC/C;GAC1B,UAAU,SAAS,qBAAkB;IAAA,YAAA;IAAA,GAAA;IAAA,GAAA;IAAA,GAAA,KAAA;IAAA,GAAA,CAAA,WAAA,qBAAA;GAAA,CAAC;GACtC,MAAM,cAAc,MAAM,QAAQ,MAAM,QAAQ;GAChD,UAAU,aAAa,kCAA+B;IAAA,YAAA;IAAA,GAAA;IAAA,GAAA;IAAA,GAAA,KAAA;IAAA,GAAA,CAAA,eAAA,kCAAA;GAAA,CAAC;GAEvD,UADgB,KAAK,WAAW,WACtB,GAAS,iCAA8B;IAAA,YAAA;IAAA,GAAA;IAAA,GAAA;IAAA,GAAA,KAAA;IAAA,GAAA,CAAA,WAAA,iCAAA;GAAA,CAAC;GAClD,MAAM,MAAM,MAAM,MAAM,GAAG,MAAM,OAAO,KAAK,IAAI,KAAK,EAAE,OAAO,WAAW,CAAC,CAAC,CAAC,CAAC,MAAM;GACpF,MAAM,SAAS,IAAI,OAAO,GAAG;GAE7B,MAAM,UAAU,MAAM,SAAS;IAC7B,MAAM,gBAAgB,MAAM,OAAO,OAAO,KAAK,OAAO,MAAM,CAAC,CAAC,CAAC,OAAO,OAAO,IAAI,MAAM,CAAC;IACxF,MAAM,qBAAqB,MAAM,OAAO,OAAO,KAAK,aAAa,YAAY,CAAC,CAAC,CAAC,OAAO,OAAO,IAAI,MAAM,CAAC;IACzG,MAAM,aAAa,MAAM,OAAO,OAAO,KAAK,SAAS,QAAQ,CAAC,CAAC,CAAC,OAAO,OAAO,IAAI,MAAM,CAAC;IAEzF,MAAM,GAAG,IACP,QAAQ,KAAK;KACX,SAAS;KACT,MAAM,QAAQ,UAAU,WAAW;KACnC,UAAU,IAAI,KAAK,UAAU,UAAU,eAAe,cAAc,CAAC;KACrE,OAAO,EACL,SAAS,IAAI,KAAK,OAAO,EAC3B;IACF,CAAC,CACH;IAEA,MAAM,iBAAiB,MAAM,GAAG,IAC9B,aAAa,KAAK;KAChB,MAAM;KACN,aAAa;KAIb,MAAM,IAAI;;;;;KAKV,QAAQ,CAAC,IAAI,KAAK,eAAe,KAAK,CAAC,CAAC;IAC1C,CAAC,CACH;IAEA,MAAM,GAAG,IACP,QAAQ,KAAK;KACX,SAAS;KACT,MAAM,QAAQ,iBAAiB,kBAAkB;KACjD,UAAU,IAAI,KAAK,UAAU,UAAU,eAAe,CAAC;KACvD,OAAO;MACL,cAAc,IAAI,KAAK,cAAc;MACrC,OAAO;KACT;IACF,CAAC,CACH;IAEA,MAAM,cAAc,UAAU,KAAK;KACjC,OAAO,MAAM,OACX,OAAO,KAAK,QAAQ,SAAS,EAC3B,YAAY,EAAE,QAAQ,OAAO,SAAS,UAAU,EAAE,EACpD,CAAC,CACH,CAAC,CAAC,KAAK,MAAM,KAAK,IAAI,OAAO,WAAW,CAAC,CAAC;KAC1C,YAAY,WAAW,aAAa,QAAQ,OAAO;IACrD,CAAC;IACD,MAAM,eAAe,UAAU,KAAK;KAClC,OAAO;KACP,YAAY,WAAW,aAAa,OAAO,MAAM;IACnD,CAAC;IACD,MAAM,oBAAoB,UAAU,KAAK;KACvC,OAAO;KACP,YAAY,WAAW,aAAa,aAAa,YAAY;IAC/D,CAAC;IACD,MAAM,YAAY,UAAU,KAAK;KAC/B,OAAO;KACP,YAAY,WAAW,aAAa,SAAS,QAAQ;IACvD,CAAC;IAED,OAAO,MAAM,GAAG,IACd,SAAS,KAAK;KACZ,MAAM;KACN,SAAS;MACP;OACE,MAAM;OACN,MAAM,IAAI,KAAK,WAAW;OAC1B,OAAO,CAAC;MACV;MACA;OACE,MAAM;OACN,MAAM,IAAI,KAAK,YAAY;OAC3B,OAAO,CAAC;MACV;MACA;OACE,MAAM;OACN,MAAM,IAAI,KAAK,iBAAiB;OAChC,OAAO,CAAC;MACV;MACA;OACE,MAAM;OACN,MAAM,IAAI,KAAK,SAAS;OACxB,OAAO,CAAC;MACV;KACF;IACF,CAAC,CACH;GACF,CAAC;GAED,KAAK,QAAQ,KAAK,CAAC;GACnB,OAAO,QAAQ,KAAK;EACtB,CACF;EACA,CAAA,qBAEE,OAAO,OAAO,GAAG,OAAO;GACtB,MAAM,UAAU,MAAM,SAAS;IAC7B,MAAM,cAAc,iBAAiB,OAAqB;IAE1D,IAAI;IACJ,YAAY,QAAQ,MAAM,YAAY;KACpC,MAAM,MAAM,YAAY,WAAW,UAAU,SAAS;MAAE,GAAG;MAAG,GAAG;KAAI,CAAC,CAAC,CAAC;KACxE,MAAM,eAAe,cAAc;MACjC,SAAS,MAAM;MACf,aAAa;MACb,GAAG,SAAS;OAAE,GAAG;OAAK,GAAG;MAAG,CAAC;KAC/B,CAAC;KACD,MAAM,UAAU,YAAY,WAAW,YAAY;KACnD,MAAM,OAAO,YAAY,WAAW,WAAW,SAAS;MAAE,GAAG;MAAI,GAAG;MAAG,OAAO;MAAI,QAAQ;KAAG,CAAC,CAAC,CAAC;KAChG,MAAM,EAAE,YAAY,WAAW,OAAO,WAAW;KACjD,MAAM,SAAS,YAAY,WAAW,aAAa,SAAS;MAAE,GAAG;MAAI,GAAG;KAAE,CAAC,CAAC,CAAC;KAE7E,QACG,WAAW;MACV,QAAQ,QAAQ;MAChB,QAAQ,IAAI;MACZ,OAAO;MACP,QAAQ;KACV,CAAC,CAAA,CACA,WAAW;MAAE,QAAQ,IAAI;MAAI,QAAQ,KAAK;MAAI,QAAQ;KAAO,CAAC,CAAA,CAC9D,WAAW;MACV,QAAQ,QAAQ;MAChB,QAAQ,OAAO;MACf,OAAO;KACT,CAAC,CAAA,CACA,WAAW;MACV,QAAQ,IAAI;MACZ,QAAQ,OAAO;MACf,QAAQ;MACR,OAAO;KACT,CAAC;KAEH,kBAAkB,aAAa,gBAAiB;IAClD,CAAC;IAED,MAAM,eAAe,mBAAmB,WAAW;IAEnD,cAAc,iBAAiB,YAAY;IAE3C,OAAO,WAAA,qBAAiC,OAAO,aAAa,YAAY;GAC1E,CAAC;GACD,KAAK,OAAO;GACZ,OAAO;EACT,CACF;EAEA,CAAA,sBAEE,OAAO,OAAO,GAAG,OAAO;GACtB,MAAM,UAAU,MAAM,SAAS;IAC7B,MAAM,EAAE,aAAa,iBAAiB,sBACpC,OACA,iBACC,gBACE,YAAY,QAAQ,EACnB,KAAK,MAAM,OAAO,OAAO,KAAK,IAAI,KAAK,qBAAqB,CAAC,CAAC,CAAC,CAAC,IAClE,GACF,MACF;IACA,OAAO,WAAA,sBAA2C,OAAO,aAAa,YAAY;GACpF,CAAC;GACD,KAAK,OAAO;GACZ,OAAO;EACT,CACF;EAEA,CAAA,mBAEE,OAAO,OAAO,GAAG,OAAO;GACtB,MAAM,UAAU,MAAM,SAAS;IAC7B,MAAM,EAAE,aAAa,iBAAiB,sBACpC,OACA,UACC,gBAAiB,YAAY,OAAO,iBACrC,QACF;IACA,OAAO,WAAA,mBAAwC,OAAO,aAAa,YAAY;GACjF,CAAC;GACD,KAAK,OAAO;GACZ,OAAO;EACT,CACF;EAsEA,CAAA,iBAEE,OAAO,OAAO,GAAG,OAAO;GACtB,MAAM,UAAU,MAAM,SAAS;IAC7B,MAAM,cAAc,iBAAiB,OAAqB;IAE1D,YAAY,QAAQ,MAAM,YAAY;KACpC,MAAM,MAAM,YAAY,WAAW,UAAU,SAAS;MAAE,GAAG;MAAG,GAAG;KAAI,CAAC,CAAC,CAAC;KACxE,MAAM,OAAO,YAAY,WAAW,WAAW,SAAS;MAAE,GAAG;MAAK,GAAG;KAAG,CAAC,CAAC,CAAC;KAC3E,MAAM,OAAO,YAAY,WAAW,WAAW,SAAS;MAAE,GAAG;MAAI,GAAG;MAAG,OAAO;MAAI,QAAQ;KAAG,CAAC,CAAC,CAAC;KAChG,MAAM,EAAE,YAAY,WAAW,OAAO,WAAW;KAEjD,MAAM,SAAS,YAAY,WAAW,aAAa,SAAS;MAAE,GAAG;MAAI,GAAG;KAAE,CAAC,CAAC,CAAC;KAE7E,QACG,WAAW;MAAE,QAAQ,KAAK;MAAI,QAAQ,IAAI;MAAI,OAAO;KAAS,CAAC,CAAA,CAC/D,WAAW;MAAE,QAAQ,IAAI;MAAI,QAAQ,KAAK;MAAI,QAAQ;KAAO,CAAC,CAAA,CAC9D,WAAW;MACV,QAAQ,QAAQ;MAChB,QAAQ,OAAO;MACf,OAAO;KACT,CAAC,CAAA,CACA,WAAW;MACV,QAAQ,IAAI;MACZ,QAAQ,OAAO;MACf,QAAQ;MACR,OAAO;KACT,CAAC;IACL,CAAC;IAID,OAAO,WAAA,iBAAgC,OAAO,aAFzB,mBAAmB,WAEmB,CAAY;GACzE,CAAC;GACD,KAAK,OAAO;GACZ,OAAO;EACT,CACF;EAiGA,CAAA,uBAEE,OAAO,OAAO,GAAG,OAAO;GACtB,MAAM,UAAU,MAAM,SAAS;IAC7B,MAAM,cAAc,iBAAiB,OAAqB;IAE1D,YAAY,QAAQ,MAAM,YAAY;KACpC,MAAM,iBAAiB,YAAY,WACjC,eAAe;MAAE,OAAO;MAAO,GAAG,SAAS;OAAE,GAAG;OAAK,GAAG;MAAG,CAAC;KAAE,CAAC,CACjE;KACA,MAAM,iBAAiB,YAAY,WACjC,eAAe;MAAE,OAAO;MAAO,GAAG,SAAS;OAAE,GAAG;OAAK,GAAG;MAAE,CAAC;KAAE,CAAC,CAChE;KACA,MAAM,YAAY,YAAY,WAAW,eAAe,SAAS;MAAE,GAAG;MAAG,GAAG;KAAE,CAAC,CAAC,CAAC;KACjF,MAAM,OAAO,YAAY,WAAW,cAAc,SAAS;MAAE,GAAG;MAAI,GAAG;KAAE,CAAC,CAAC,CAAC;KAE5E,QACG,WAAW;MACV,QAAQ,eAAe;MACvB,QAAQ,UAAU;MAClB,OAAO;KACT,CAAC,CAAA,CACA,WAAW;MACV,QAAQ,eAAe;MACvB,QAAQ,UAAU;MAClB,OAAO;KACT,CAAC,CAAA,CACA,WAAW;MACV,QAAQ,UAAU;MAClB,QAAQ,KAAK;MACb,QAAQ;KACV,CAAC;IACL,CAAC;IAID,OAAO,WAAA,uBAA2C,OAAO,aAFpC,mBAAmB,WAE8B,CAAY;GACpF,CAAC;GACD,KAAK,OAAO;GACZ,OAAO;EACT,CACF;EAEA,CAAA,oBAEE,OAAO,OAAO,GAAG,OAAO;GACtB,MAAM,UAAU,MAAM,SAAS;IAC7B,MAAM,cAAc,iBAAiB,OAAqB;IAE1D,IAAI;IACJ,YAAY,QAAQ,MAAM,YAAY;KACpC,MAAM,eAAe,cAAc;MACjC,SAAS,MAAM;MACf,aAAa;MACb,GAAG,SAAS;OAAE,GAAG;OAAK,GAAG;MAAG,CAAC;KAC/B,CAAC;KACD,MAAM,UAAU,YAAY,WAAW,YAAY;KAEnD,MAAM,YAAY,YAAY,WAC5B,eAAe;MACb,OAAO;MACP,GAAG,SAAS;OAAE,GAAG;OAAK,GAAG;MAAE,CAAC;KAC9B,CAAC,CACH;KACA,MAAM,UAAU,YAAY,WAC1B,eAAe;MACb,OAAO,MAAI,KAAK;OAAE,SAAS,MAAM;OAAI,UAAU,IAAI,SAAS,OAAO;MAAE,CAAC;MACtE,GAAG,SAAS;OAAE,GAAG;OAAK,GAAG;MAAE,CAAC;KAC9B,CAAC,CACH;KACA,MAAM,YAAY,YAAY,WAAW,eAAe,SAAS;MAAE,GAAG;MAAG,GAAG;KAAE,CAAC,CAAC,CAAC;KACjF,MAAM,OAAO,YAAY,WAAW,WAAW,SAAS;MAAE,GAAG;MAAI,GAAG;KAAE,CAAC,CAAC,CAAC;KACzE,MAAM,QAAQ,YAAY,WAAW,WAAW,SAAS;MAAE,GAAG;MAAG,GAAG;KAAG,CAAC,CAAC,CAAC;KAE1E,QACG,WAAW;MACV,QAAQ,QAAQ;MAChB,QAAQ,UAAU;MAClB,OAAO;KACT,CAAC,CAAA,CACA,WAAW;MACV,QAAQ,UAAU;MAClB,QAAQ,UAAU;MAClB,OAAO;KACT,CAAC,CAAA,CACA,WAAW;MACV,QAAQ,QAAQ;MAChB,QAAQ,UAAU;MAClB,OAAO;KACT,CAAC,CAAA,CACA,WAAW;MACV,QAAQ,UAAU;MAClB,QAAQ,KAAK;MACb,QAAQ;KACV,CAAC,CAAA,CACA,WAAW;MACV,QAAQ,QAAQ;MAChB,QAAQ,MAAM;MACd,OAAO;KACT,CAAC;KAEH,kBAAkB,aAAa,gBAAiB;IAClD,CAAC;IAED,MAAM,eAAe,mBAAmB,WAAW;IACnD,cAAc,iBAAiB,YAAY;IAE3C,OAAO,WAAA,oBAAwC,OAAO,aAAa,YAAY;GACjF,CAAC;GACD,KAAK,OAAO;GACZ,OAAO;EACT,CACF;CAmDF;AACF;AAEA,IAAM,yBACJ,OACA,aACA,UACA,sBACG;CACH,MAAM,cAAc,iBAAiB,OAAqB;CAE1D,MAAM,WAAW,YAAY,WAC3B,eAAe;EACb,WAAW;EACX,GAAG,YAAY;GAAE,SAAS;GAAK,SAAS;GAAK,OAAO;GAAK,QAAQ;EAAI,CAAC;CACxE,CAAC,CACH;CAEA,IAAI;CACJ,YAAY,QAAQ,MAAM,YAAY;EACpC,MAAM,eAAe,cAAc;GACjC,SAAS,MAAM;GACf;GACA,GAAG,YAAY;IAAE,SAAS;IAAM,SAAS;IAAM,QAAQ;IAAK,OAAO;GAAI,CAAC;EAC1E,CAAC;EACD,MAAM,UAAU,YAAY,WAAW,YAAY;EACnD,MAAM,EAAE,YAAY,WAAW,OAAO,aAAa,EACjD,eAAe;GAAE,SAAS;GAAK,SAAS;GAAK,OAAO;GAAK,QAAQ;EAAI,EACvE,CAAC;EACD,MAAM,SAAS,YAAY,WACzB,aAAa,YAAY;GAAE,SAAS;GAAK,SAAS;GAAK,OAAO;GAAK,QAAQ;EAAI,CAAC,CAAC,CACnF;EACA,MAAM,SAAS,YAAY,WACzB,aAAa,YAAY;GAAE,SAAS;GAAM,SAAS;GAAK,OAAO;GAAI,QAAQ;EAAG,CAAC,CAAC,CAClF;EAEA,QACG,WAAW;GAAE,QAAQ,QAAQ;GAAI,QAAQ,OAAO;GAAI,OAAO;EAAK,CAAC,CAAA,CACjE,WAAW;GAAE,QAAQ,SAAS;GAAI,QAAQ,OAAO;GAAI,OAAO;EAAQ,CAAC,CAAA,CACrE,WAAW;GACV,QAAQ,QAAQ;GAChB,QAAQ,SAAS;GACjB,QAAQ;GACR,OAAO;EACT,CAAC,CAAA,CACA,WAAW;GACV,QAAQ,OAAO;GACf,QAAQ,SAAS;GACjB,OAAO;EACT,CAAC;EAEH,kBAAkB,aAAa,gBAAiB;EAChD,MAAM,cAAc,gBAAgB;EACpC,UAAU,eAAe,YAAY,SAAS,aAAa,oBAAiB;GAAA,YAAA;GAAA,GAAA;GAAA,GAAA;GAAA,GAAA,KAAA;GAAA,GAAA,CAAA,mDAAA,oBAAA;EAAA,CAAC;EAC7E,IAAI,OAAO,kBAAkB,oBAAoB;GAC/C,SAAS,gBAAgB,IAAW;EACtC,CAAC;CACH,CAAC;CAED,MAAM,eAAe,mBAAmB,WAAW;CAEnD,MAAM,sBAAsB,aAAa,MAAM,MAAM,MAAM,EAAE,OAAO,SAAS,IAAI;CACjF,UAAU,qBAAqB,0CAAuC;EAAA,YAAA;EAAA,GAAA;EAAA,GAAA;EAAA,GAAA,KAAA;EAAA,GAAA,CAAA,uBAAA,0CAAA;CAAA,CAAC;CAEvE,oBAAoB,QAAQ;EAAC;EAAK;EAA0B;EAA2B;CAAG,CAAC,CAAC,KAAK,IAAI;CACrG,oBAAoB,cAAc,WAAW,aAC3C,OAAO,OAAO;EAAE,MAAM,OAAO;EAAQ,UAAU,OAAO;CAAO,CAAC,CAChE;CACA,cAAc,iBAAiB,YAAY;CAE3C,OAAO;EAAE;EAAa;CAAa;AACrC;AAEA,IAAM,cAAc,MAAc,OAAc,QAA0B,YAA+B;CACvG,OAAO,MAAM,GAAG,IACd,IAAI,KAAK,YAAY,aAAa;EAChC;EACA,cAAc,IAAI,KAAK,QAAQ,IAAI;EACnC,QAAQ,OAAO;CACjB,CAAC,CACH;AACF;AAEA,IAAM,cACJ,OACA,aACA,SACG;CACH,MAAM,UAAU,YAAY,WAC1B,eAAe;EACb,OAAO,MAAI,KAAK;GAAE,SAAS,MAAM;GAAI,UAAU,IAAI,SAAS,OAAO;EAAE,CAAC;EACtE,GAAI,MAAM,aAAa,YAAY,KAAK,UAAU,IAAI,SAAS;GAAE,GAAG;GAAK,GAAG;GAAG,OAAO;GAAG,QAAQ;EAAE,CAAC;CACtG,CAAC,CACH;CACA,MAAM,QAAQ,YAAY,WACxB,WACE,MAAM,gBAAgB,YAAY,KAAK,aAAa,IAAI,SAAS;EAAE,GAAG;EAAI,GAAG;EAAG,OAAO;EAAI,QAAQ;CAAG,CAAC,CACzG,CACF;CACA,YAAY,WAAW;EAAE,QAAQ,QAAQ;EAAI,QAAQ,MAAM;CAAG,CAAC;CAC/D,OAAO;EAAE;EAAO;CAAQ;AAC1B;AAEA,IAAM,iBAAiB,iBAA8C,iBAAoC;CACvG,UAAU,iBAAc,KAAA,GAAA;EAAA,YAAA;EAAA,GAAA;EAAA,GAAA;EAAA,GAAA,KAAA;EAAA,GAAA,CAAA,mBAAA,EAAA;CAAA,CAAC;CACzB,MAAM,YAAY,aAAa,MAAM,MAAM,SAAS,KAAK,SAAS,UAAU;CAC5E,IAAI,OAAO,kBAAkB,oBAAoB;EAE/C,gBAAgB,WAAW,IAAI,KAAK,aAAa,IAAI;EACrD,gBAAgB,cAAc,UAAU;CAC1C,CAAC;AACH;AASA,IAAM,eAAe,SAA2B;CAC9C,OAAO;EACL,QAAQ;GAAE,GAAG,KAAK;GAAS,GAAG,KAAK;EAAQ;EAC3C,MAAM;GAAE,OAAO,KAAK;GAAO,QAAQ,KAAK;EAAO;CACjD;AACF;AAEA,IAAM,YAAY,SAAoE;CACpF,MAAM,OAAO;CACb,MAAM,CAAC,QAAQ,QAAQ,aAAa;EAAE,OAAO;EAAG,QAAQ;EAAG,GAAG;CAAK,CAAC;CACpE,MAAM,EAAE,GAAG,GAAG,OAAO,WAAW,aAAa,CAAC,cAAc,QAAQ,IAAI,GAAG,cAAc,MAAM,IAAI,CAAC,CAAC;CACrG,IAAI,SAAS,QACX,OAAO;EACL,QAAQ;GAAE;GAAG;EAAE;EACf,MAAM,SAAS,SAAS;GAAE;GAAO;EAAO,IAAI,KAAA;CAC9C;MAEA,OAAO,EAAE,QAAQ;EAAE;EAAG;CAAE,EAAE;AAE9B;;;AChyBA,IAAM,cAA4B;AAElC,IAAM,oBAAoB,OAAO,OAAoB,YAAoB;CACvE,OAAO,MAAM,MAAM,SAAS,oBAAoB,KAAK,MAAM,GAAG,MAAM,OAAO;AAC7E;AAIA,IAAa,mBACX,QACA,eACA,WAC0C;CAC1C,OAAO,OAAO,OAAc,MAA+C;EACzE,MAAM,WAAW,KAAK,YAAY,MAAM;EAIxC,MAAM,OAAO,MAAM,kBAAkB,MADjB,MAAM,GAAG,MAAM,OAAO,KAAK,KAAK,IAAI,CAAC,CAAC,CAAC,IAAI,GACnB,KAAK,OAAO,MAAM,CAAC;EAC/D,MAAM,eAAe,SACjB,OAAO,MAAM,SACV,KAAK,CAAA,CACL,OAAO,KAAK,MAAM,CAAA,CAClB,MAAM,MAAM,KAAK,YAAY,CAAC,MAAM,QAAQ,IAC/C,KAAA;EACJ,IAAI,CAAC,QAAQ,CAAC,cACZ,MAAM,cAAc,eAAe,SAAS;GAAE,IAAI,MAAM;GAAI,MAAM;GAAQ,MAAM;EAAM,CAAC;EAKzF,OADiB,qBAAqB,aAAW,QAAQ,EAAE,IAAI,MAAM,GAAG,CACjE,CAAA,CAAS,cAAc,CAAC;CACjC;AACF;AAEA,IAAa,mCAAmB,IAAI,IAAkC;CACpE,CACE,KAAK,YAAY,SAAS,QAAQ,GAClC,OAAO,OAAO,GAAG,OAAO;EACtB,MAAM,UAAU,MAAM,CAAC,CAAC,CAAC,UAAU;GACjC,OAAO,MAAM,GAAG,IACd,SAAS,KAAK;IACZ,MAAM,OAAO,SAAS,YAAY;IAClC,SAAS,OAAO,MAAM,UAAU,CAAC;GACnC,CAAC,CACH;EACF,CAAC;EAED,KAAK,OAAO;EACZ,OAAO;CACT,CACF;CACA,CACE,KAAK,YAAY,QAAQ,OAAO,GAChC,OAAO,OAAO,GAAG,OAAO;EACtB,MAAM,UAAU,MAAM,CAAC,CAAC,CAAC,UAAU;GAOjC,OANY,MAAM,GAAG,IACnB,QAAQ,KAAK;IACX,MAAM,OAAO,SAAS,YAAY;IAClC,QAAQ,QAAQ,WAAW,EAAE,QAAQ,OAAO,cAAc,CAAC;GAC7D,CAAC,CAEI;EACT,CAAC;EAED,KAAK,OAAO;EACZ,OAAO;CACT,CACF;CAEA,CACE,KAAK,YAAY,MAAM,KAAK,GAC5B,OAAO,OAAO,GAAG,OAAO;EACtB,MAAM,UAAU,MAAM,CAAC,CAAC,CAAC,UAAU;GACjC,MAAM,QAAyC,CAAC;GAChD,MAAM,wBAAO,IAAI,KAAK,EAAA,CAAE,YAAY;GACpC,MAAM,OAAO;GACb,MAAM,OAAO;GACb,KAAK,IAAI,MAAM,GAAG,OAAO,MAAM,OAC7B,KAAK,IAAI,MAAM,GAAG,OAAO,MAAM,OAAO;IACpC,MAAM,OAAO,oBAAoB;KAAE;KAAK;IAAI,CAAC;IAC7C,IAAI,QAAQ,GACV,MAAM,QAAQ,EAAE,OAAO,GAAG,KAAK,IAAI,MAAM;SACpC,IAAI,QAAQ,MAGjB,MAAM,QAAQ,EAAE,OAAO,QAFV,oBAAoB;KAAE;KAAK,KAAK;IAAE,CAEhB,EAAK,GADzB,oBAAoB;KAAE;KAAK,KAAK,OAAO;IAAE,CACb,EAAG,GAAG;SACxC,IAAI,MAAM,KAAK,MAAM,OAAO,GACjC,MAAM,QAAQ,EAAE,OAAO,KAAK,MAAM,KAAK,OAAO,IAAI,GAAM,EAAE;GAE9D;GAKF,OAAO,MAAM,GAAG,IACd,MAAM,KAAK;IACT,MAAM,OAAO,SAAS,YAAY;IAClC;GACF,CAAC,CACH;EACF,CAAC;EAED,KAAK,OAAO;EACZ,OAAO;CACT,CACF;CACA,CACE,KAAK,YAAY,YAAY,GAC7B,OAAO,OAAO,GAAG,OAAO;EACtB,MAAM,UAAU,MAAM,SAAS;GAC7B,MAAM,QAAQ,kBAAkB,OAAO;GACvC,MAAM,QACH,WAAW;IAAE,IAAI;IAAa,MAAM;GAAW,CAAC,CAAA,CAChD,WAAW;IAAE,IAAI;IAAW,MAAM;GAAM,CAAC,CAAA,CACzC,WAAW;IACV,IAAI;IACJ,MAAM;IACN,OAAO,IAAI,KAAK;KAAE,SAAS,MAAM;KAAI,UAAU,IAAI,SAAS,OAAO;IAAE,CAAC;GACxE,CAAC,CAAA,CACA,WAAW;IAAE,IAAI;IAAc,MAAM;GAAS,CAAC,CAAA,CAC/C,WAAW;IAAE,IAAI;IAAc,MAAM;GAAY,CAAC,CAAA,CAClD,WAAW;IAAE,MAAM;IAAa,UAAU;GAAS,GAAG;IAAE,MAAM;IAAW,UAAU;GAAS,CAAC,CAAA,CAC7F,WAAW;IAAE,MAAM;IAAW,UAAU;GAAO,GAAG;IAAE,MAAM;IAAc,UAAU;GAAO,CAAC,CAAA,CAC1F,WAAW;IAAE,MAAM;IAAgB,UAAU;GAAe,GAAG;IAAE,MAAM;IAAc,UAAU;GAAK,CAAC,CAAA,CACrG,WAAW;IAAE,MAAM;IAAW,UAAU;GAAW,GAAG;IAAE,MAAM;IAAc,UAAU;GAAQ,CAAC,CAAA,CAC/F,WAAW;IAAE,MAAM;IAAgB,UAAU;GAAe,GAAG;IAAE,MAAM;IAAc,UAAU;GAAQ,CAAC;GAE3G,OAAO,MAAM,GAAG,IAAI,MAAM,IAAI;EAChC,CAAC;EACD,KAAK,OAAO;EACZ,OAAO;CACT,CACF;AACF,CAAC"}
|
|
1
|
+
{"version":3,"file":"components.mjs","names":[],"sources":["../../src/components/SchemaTable/SchemaTable.tsx","../../src/components/SpaceGenerator/presets.ts","../../src/components/SpaceGenerator/ObjectGenerator.tsx"],"sourcesContent":["//\n// Copyright 2024 DXOS.org\n//\n\nimport React from 'react';\n\nimport { Type } from '@dxos/echo';\nimport { IconButton, ThemedClassName } from '@dxos/react-ui';\nimport { mx } from '@dxos/ui-theme';\n\nexport type SchemaTableProps = ThemedClassName<{\n types: any[];\n objects?: Record<string, number | undefined>;\n label: string;\n onClick: (typename: string) => void;\n}>;\n\nexport const SchemaTable = ({ classNames, types, objects = {}, label, onClick }: SchemaTableProps) => {\n return (\n <div className={mx('grid grid-cols-[1fr_80px_40px] gap-1 overflow-none', classNames)}>\n <h2 className='p-2'>{label}</h2>\n {types.map((type) => {\n // Preset descriptors are plain `{ typename }` objects, while class-based type entities carry\n // no `typename` property — those resolve via `Type.getTypename`.\n const typename = typeof type.typename === 'string' ? type.typename : Type.getTypename(type);\n return (\n <div key={typename} className='grid grid-cols-subgrid col-span-3 items-center'>\n <div className='px-2 text-sm font-mono text-subdued'>{typename}</div>\n <div className='px-2 text-right font-mono'>{typename ? (objects[typename] ?? 0) : 0}</div>\n <IconButton\n variant='ghost'\n icon='ph--plus--regular'\n iconOnly\n label='Create data'\n onClick={() => typename && onClick(typename)}\n />\n </div>\n );\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 * as Instructions from '@dxos/compute/Instructions';\nimport * as Operation from '@dxos/compute/Operation';\nimport * as Trigger from '@dxos/compute/Trigger';\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 * as InboxOperation from '@dxos/plugin-inbox/InboxOperation';\nimport * as Mailbox from '@dxos/plugin-inbox/Mailbox';\nimport * as Markdown from '@dxos/plugin-markdown/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 feedUri = Feed.getFeedUri(mailboxFeed);\n invariant(feedUri, 'Mailbox feed missing feed URI');\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/types';\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 * as Drawing from '@dxos/plugin-illustrator/Drawing';\nimport * as Markdown from '@dxos/plugin-markdown/Markdown';\nimport * as Sheet from '@dxos/plugin-sheet/Sheet';\nimport { SpaceOperation } from '@dxos/plugin-space';\nimport * as Tldraw from '@dxos/plugin-tldraw/Tldraw';\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(Drawing.Drawing),\n async (space, n, cb) => {\n const objects = range(n).map(() => {\n const obj = space.db.add(\n Drawing.make({\n name: random.commerce.productName(),\n canvas: Drawing.makeCanvas({ schema: Tldraw.TLDRAW_SCHEMA }),\n }),\n );\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"],"mappings":"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"}
|
package/dist/lib/index.mjs
CHANGED
|
@@ -1,3 +1,7 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { t as Debug_exports } from "./Debug.mjs";
|
|
2
|
+
import { t as DebugEvents_exports } from "./DebugEvents.mjs";
|
|
3
|
+
import { t as DebugNodes_exports } from "./DebugNodes.mjs";
|
|
4
|
+
import { t as DebugSurface_exports } from "./DebugSurface.mjs";
|
|
5
|
+
import { t as Settings_exports } from "./Settings.mjs";
|
|
2
6
|
import { t as meta } from "./chunk-meta.mjs";
|
|
3
|
-
export {
|
|
7
|
+
export { Debug_exports as Debug, DebugEvents_exports as DebugEvents, DebugNodes_exports as DebugNodes, DebugSurface_exports as DebugSurface, Settings_exports as Settings, meta };
|
package/dist/lib/plugin.mjs
CHANGED
package/dist/lib/plugin.mjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"plugin.mjs","names":[],"sources":["../../src/plugin.ts"],"sourcesContent":["//\n// Copyright 2026 DXOS.org\n//\n\nimport
|
|
1
|
+
{"version":3,"file":"plugin.mjs","names":[],"sources":["../../src/plugin.ts"],"sourcesContent":["//\n// Copyright 2026 DXOS.org\n//\n\nimport * as Plugin from '@dxos/app-framework/Plugin';\n\nimport { meta } from './meta';\n\nexport const DebugPlugin = Plugin.lazy(meta, () => import('#plugin'));\nexport type { DebugPluginOptions } from './types/Debug';\n"],"mappings":";;;AAQA,IAAa,cAAc,OAAO,KAAK,YAAY,OAAO,UAAU"}
|
|
@@ -30,7 +30,16 @@ var translations = [...translations$1, { "en-US": { [meta.profile.key]: {
|
|
|
30
30
|
"settings.storage-adaptor.idb.label": "IndexedDB",
|
|
31
31
|
"settings.storage-adaptor.opfs.label": "OPFS",
|
|
32
32
|
"settings.storage-adapter.changed-alert.message": "Warning: Swapping the storage adapter will make your data unavailable.",
|
|
33
|
-
"settings.data-store.label": "Data Store"
|
|
33
|
+
"settings.data-store.label": "Data Store",
|
|
34
|
+
"settings.debug-port.section.label": "Agent debug port",
|
|
35
|
+
"settings.debug-port.section.description": "Lets a local agent evaluate code against this page via composer-recovery.js. Off by default; stops on reload.",
|
|
36
|
+
"settings.debug-port.label": "Open debug port.",
|
|
37
|
+
"settings.debug-port.description": "Runs arbitrary code from a loopback server with full access to your data. Only enable while you are working with an agent you trust.",
|
|
38
|
+
"settings.debug-port.running.label": "Listening on",
|
|
39
|
+
"settings.debug-port.session.label": "Session id",
|
|
40
|
+
"settings.debug-port.session.description": "Pass to composer-recovery.js --session. A new id is issued on every restart.",
|
|
41
|
+
"settings.debug-port.copy-session.label": "Copy session id.",
|
|
42
|
+
"settings.debug-port.log.label": "Debug port log"
|
|
34
43
|
} } }];
|
|
35
44
|
//#endregion
|
|
36
45
|
export { translations };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"translations.mjs","names":[],"sources":["../../src/translations.ts"],"sourcesContent":["//\n// Copyright 2026 DXOS.org\n//\n\nimport { type Resource } from '@dxos/react-ui';\nimport { translations as logPanelTranslations } from '@dxos/react-ui-debug/translations';\n\nimport { meta } from '#meta';\n\nexport const translations = [\n // The R0 log companion and status popover render `@dxos/react-ui-debug`, so its namespace must be registered.\n ...logPanelTranslations,\n {\n 'en-US': {\n [meta.profile.key]: {\n 'plugin.name': 'Debug',\n 'debug.label': 'Debug',\n 'generate-objects.label': 'Generate Objects',\n 'space-objects.label': 'Database',\n 'open-debug-panel.label': 'Show Debug',\n 'logs.label': 'Logs',\n 'open-logs.label': 'Show logs',\n\n 'settings.wireframe.label': 'Show wireframes.',\n 'settings.wireframe.description': 'Overlay wireframe outlines on UI components for debugging layout.',\n 'settings.trace-all.label': 'Trace all requests (100% sampling).',\n 'settings.trace-all.description':\n 'Override the default 30% sampling rate to capture all traces. Requires page reload to take effect.',\n 'settings.tracing-panel.label': 'Open tracing panel.',\n 'settings.tracing-panel.description': 'Open the tracing dashboard to inspect captured spans.',\n 'settings.repair.label': 'Run repair tool.',\n 'settings.repair.description': 'Attempt to detect and fix inconsistencies in local data storage.',\n 'settings.download-diagnostics.label': 'Download diagnostics.',\n 'settings.download-diagnostics.description':\n 'Export a JSON file containing client diagnostics for troubleshooting.',\n 'settings.download-logs.label': 'Download log buffer.',\n 'settings.download-logs.description': 'Export the in-memory log buffer as an NDJSON file.',\n 'settings.uploaded.message': 'Settings uploaded.',\n 'settings.uploaded.description': 'URL copied to clipboard.',\n 'settings.choose-storage-adaptor.label': 'Storage adaptor (worker reload required).',\n 'settings.choose-storage-adaptor.description':\n 'Select the browser storage backend. Changing this requires a worker reload and may make existing data unavailable.',\n 'settings.repair-success.message': 'Repair succeeded',\n 'settings.repair-failed.message': 'Repair failed',\n\n 'settings.storage-adaptor.idb.label': 'IndexedDB',\n 'settings.storage-adaptor.opfs.label': 'OPFS',\n 'settings.storage-adapter.changed-alert.message':\n 'Warning: Swapping the storage adapter will make your data unavailable.',\n\n 'settings.data-store.label': 'Data Store',\n },\n },\n },\n] as const satisfies Resource[];\n"],"mappings":";;;AASA,IAAa,eAAe,CAE1B,GAAG,gBACH,EACE,SAAS,GACN,KAAK,QAAQ,MAAM;CAClB,eAAe;CACf,eAAe;CACf,0BAA0B;CAC1B,uBAAuB;CACvB,0BAA0B;CAC1B,cAAc;CACd,mBAAmB;CAEnB,4BAA4B;CAC5B,kCAAkC;CAClC,4BAA4B;CAC5B,kCACE;CACF,gCAAgC;CAChC,sCAAsC;CACtC,yBAAyB;CACzB,+BAA+B;CAC/B,uCAAuC;CACvC,6CACE;CACF,gCAAgC;CAChC,sCAAsC;CACtC,6BAA6B;CAC7B,iCAAiC;CACjC,yCAAyC;CACzC,+CACE;CACF,mCAAmC;CACnC,kCAAkC;CAElC,sCAAsC;CACtC,uCAAuC;CACvC,kDACE;CAEF,6BAA6B;
|
|
1
|
+
{"version":3,"file":"translations.mjs","names":[],"sources":["../../src/translations.ts"],"sourcesContent":["//\n// Copyright 2026 DXOS.org\n//\n\nimport { type Resource } from '@dxos/react-ui';\nimport { translations as logPanelTranslations } from '@dxos/react-ui-debug/translations';\n\nimport { meta } from '#meta';\n\nexport const translations = [\n // The R0 log companion and status popover render `@dxos/react-ui-debug`, so its namespace must be registered.\n ...logPanelTranslations,\n {\n 'en-US': {\n [meta.profile.key]: {\n 'plugin.name': 'Debug',\n 'debug.label': 'Debug',\n 'generate-objects.label': 'Generate Objects',\n 'space-objects.label': 'Database',\n 'open-debug-panel.label': 'Show Debug',\n 'logs.label': 'Logs',\n 'open-logs.label': 'Show logs',\n\n 'settings.wireframe.label': 'Show wireframes.',\n 'settings.wireframe.description': 'Overlay wireframe outlines on UI components for debugging layout.',\n 'settings.trace-all.label': 'Trace all requests (100% sampling).',\n 'settings.trace-all.description':\n 'Override the default 30% sampling rate to capture all traces. Requires page reload to take effect.',\n 'settings.tracing-panel.label': 'Open tracing panel.',\n 'settings.tracing-panel.description': 'Open the tracing dashboard to inspect captured spans.',\n 'settings.repair.label': 'Run repair tool.',\n 'settings.repair.description': 'Attempt to detect and fix inconsistencies in local data storage.',\n 'settings.download-diagnostics.label': 'Download diagnostics.',\n 'settings.download-diagnostics.description':\n 'Export a JSON file containing client diagnostics for troubleshooting.',\n 'settings.download-logs.label': 'Download log buffer.',\n 'settings.download-logs.description': 'Export the in-memory log buffer as an NDJSON file.',\n 'settings.uploaded.message': 'Settings uploaded.',\n 'settings.uploaded.description': 'URL copied to clipboard.',\n 'settings.choose-storage-adaptor.label': 'Storage adaptor (worker reload required).',\n 'settings.choose-storage-adaptor.description':\n 'Select the browser storage backend. Changing this requires a worker reload and may make existing data unavailable.',\n 'settings.repair-success.message': 'Repair succeeded',\n 'settings.repair-failed.message': 'Repair failed',\n\n 'settings.storage-adaptor.idb.label': 'IndexedDB',\n 'settings.storage-adaptor.opfs.label': 'OPFS',\n 'settings.storage-adapter.changed-alert.message':\n 'Warning: Swapping the storage adapter will make your data unavailable.',\n\n 'settings.data-store.label': 'Data Store',\n\n 'settings.debug-port.section.label': 'Agent debug port',\n 'settings.debug-port.section.description':\n 'Lets a local agent evaluate code against this page via composer-recovery.js. Off by default; stops on reload.',\n 'settings.debug-port.label': 'Open debug port.',\n 'settings.debug-port.description':\n 'Runs arbitrary code from a loopback server with full access to your data. Only enable while you are working with an agent you trust.',\n 'settings.debug-port.running.label': 'Listening on',\n 'settings.debug-port.session.label': 'Session id',\n 'settings.debug-port.session.description':\n 'Pass to composer-recovery.js --session. A new id is issued on every restart.',\n 'settings.debug-port.copy-session.label': 'Copy session id.',\n 'settings.debug-port.log.label': 'Debug port log',\n },\n },\n },\n] as const satisfies Resource[];\n"],"mappings":";;;AASA,IAAa,eAAe,CAE1B,GAAG,gBACH,EACE,SAAS,GACN,KAAK,QAAQ,MAAM;CAClB,eAAe;CACf,eAAe;CACf,0BAA0B;CAC1B,uBAAuB;CACvB,0BAA0B;CAC1B,cAAc;CACd,mBAAmB;CAEnB,4BAA4B;CAC5B,kCAAkC;CAClC,4BAA4B;CAC5B,kCACE;CACF,gCAAgC;CAChC,sCAAsC;CACtC,yBAAyB;CACzB,+BAA+B;CAC/B,uCAAuC;CACvC,6CACE;CACF,gCAAgC;CAChC,sCAAsC;CACtC,6BAA6B;CAC7B,iCAAiC;CACjC,yCAAyC;CACzC,+CACE;CACF,mCAAmC;CACnC,kCAAkC;CAElC,sCAAsC;CACtC,uCAAuC;CACvC,kDACE;CAEF,6BAA6B;CAE7B,qCAAqC;CACrC,2CACE;CACF,6BAA6B;CAC7B,mCACE;CACF,qCAAqC;CACrC,qCAAqC;CACrC,2CACE;CACF,0CAA0C;CAC1C,iCAAiC;AACnC,EACF,EACF,CACF"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import
|
|
2
|
-
import
|
|
3
|
-
export declare const DebugPlugin: Plugin.PluginFactory<DebugPluginOptions>;
|
|
1
|
+
import * as Plugin from '@dxos/app-framework/Plugin';
|
|
2
|
+
import * as Debug from './types/Debug';
|
|
3
|
+
export declare const DebugPlugin: Plugin.PluginFactory<Debug.DebugPluginOptions>;
|
|
4
4
|
export default DebugPlugin;
|
|
5
5
|
//# sourceMappingURL=DebugPlugin.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DebugPlugin.d.ts","sourceRoot":"","sources":["../../../src/DebugPlugin.tsx"],"names":[],"mappings":"AAIA,OAAO,
|
|
1
|
+
{"version":3,"file":"DebugPlugin.d.ts","sourceRoot":"","sources":["../../../src/DebugPlugin.tsx"],"names":[],"mappings":"AAIA,OAAO,KAAK,MAAM,MAAM,4BAA4B,CAAC;AASrD,OAAO,KAAK,KAAK,MAAM,eAAe,CAAC;AAEvC,eAAO,MAAM,WAAW,gDAgBvB,CAAC;eAEa,WAAW"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import
|
|
2
|
-
import
|
|
3
|
-
export declare const DebugPlugin: Plugin.PluginFactory<DebugPluginOptions>;
|
|
1
|
+
import * as Plugin from '@dxos/app-framework/Plugin';
|
|
2
|
+
import * as Debug from './types/Debug';
|
|
3
|
+
export declare const DebugPlugin: Plugin.PluginFactory<Debug.DebugPluginOptions>;
|
|
4
4
|
export default DebugPlugin;
|
|
5
5
|
//# sourceMappingURL=DebugPlugin.node.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DebugPlugin.node.d.ts","sourceRoot":"","sources":["../../../src/DebugPlugin.node.ts"],"names":[],"mappings":"AAIA,OAAO,
|
|
1
|
+
{"version":3,"file":"DebugPlugin.node.d.ts","sourceRoot":"","sources":["../../../src/DebugPlugin.node.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,MAAM,MAAM,4BAA4B,CAAC;AAKrD,OAAO,KAAK,KAAK,MAAM,eAAe,CAAC;AAEvC,eAAO,MAAM,WAAW,gDAIvB,CAAC;eAEa,WAAW"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import
|
|
2
|
-
import
|
|
3
|
-
export declare const DebugPlugin: Plugin.PluginFactory<DebugPluginOptions>;
|
|
1
|
+
import * as Plugin from '@dxos/app-framework/Plugin';
|
|
2
|
+
import * as Debug from './types/Debug';
|
|
3
|
+
export declare const DebugPlugin: Plugin.PluginFactory<Debug.DebugPluginOptions>;
|
|
4
4
|
export default DebugPlugin;
|
|
5
5
|
//# sourceMappingURL=DebugPlugin.workerd.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DebugPlugin.workerd.d.ts","sourceRoot":"","sources":["../../../src/DebugPlugin.workerd.ts"],"names":[],"mappings":"AAIA,OAAO,
|
|
1
|
+
{"version":3,"file":"DebugPlugin.workerd.d.ts","sourceRoot":"","sources":["../../../src/DebugPlugin.workerd.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,MAAM,MAAM,4BAA4B,CAAC;AAIrD,OAAO,KAAK,KAAK,MAAM,eAAe,CAAC;AAEvC,eAAO,MAAM,WAAW,gDAAkE,CAAC;eAE5E,WAAW"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
|
-
import
|
|
2
|
+
import type * as AppCapabilities from '@dxos/app-toolkit/AppCapabilities';
|
|
3
3
|
import { Obj } from '@dxos/echo';
|
|
4
4
|
import { type IdbLogStore } from '@dxos/log-store-idb';
|
|
5
5
|
import { type Space } from '@dxos/react-client/echo';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DebugSurfaces.d.ts","sourceRoot":"","sources":["../../../../src/capabilities/DebugSurfaces.tsx"],"names":[],"mappings":"AAQA,OAAO,KAA+B,MAAM,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"DebugSurfaces.d.ts","sourceRoot":"","sources":["../../../../src/capabilities/DebugSurfaces.tsx"],"names":[],"mappings":"AAQA,OAAO,KAA+B,MAAM,OAAO,CAAC;AAIpD,OAAO,KAAK,KAAK,eAAe,MAAM,mCAAmC,CAAC;AAI1E,OAAO,EAA0C,GAAG,EAAQ,MAAM,YAAY,CAAC;AAE/E,OAAO,EAAE,KAAK,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAIvD,OAAO,EAAE,KAAK,KAAK,EAAc,MAAM,yBAAyB,CAAC;AAgDjE,MAAM,MAAM,yBAAyB,GAAG;IACtC,OAAO,EAAE,eAAe,CAAC,QAAQ,CAAC;IAClC,QAAQ,CAAC,EAAE,WAAW,CAAC;IACvB,QAAQ,CAAC,EAAE,eAAe,CAAC,YAAY,CAAC;CACzC,CAAC;AAEF,eAAO,MAAM,oBAAoB,oCAAqC,yBAAyB,sBAM9F,CAAC;AAEF,MAAM,MAAM,0BAA0B,GAAG;IACvC,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,KAAK,CAAC;CACd,CAAC;AAEF,+FAA+F;AAC/F,eAAO,MAAM,qBAAqB,oBAAqB,0BAA0B,sBAmBhF,CAAC;AAEF,MAAM,MAAM,uBAAuB,GAAG;IACpC,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,GAAG,CAAC,OAAO,CAAC;CAC1B,CAAC;AAEF,eAAO,MAAM,kBAAkB,0BAA2B,uBAAuB,sBAKhF,CAAC;AAEF,eAAO,MAAM,mBAAmB,gCAS/B,CAAC;AAEF,eAAO,MAAM,aAAa,yBAgBzB,CAAC"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import * as Effect from 'effect/Effect';
|
|
2
|
-
import
|
|
3
|
-
declare const _default: (props: void) => Effect.Effect<Capability.
|
|
2
|
+
import * as Capability from '@dxos/app-framework/Capability';
|
|
3
|
+
declare const _default: (props: void) => Effect.Effect<Capability.Contribution<Capability.CapabilityIdentifier<"org.dxos.app-framework.capability.appGraphBuilder", "multi">>, never, import("effect/Scope").Scope>;
|
|
4
4
|
export default _default;
|
|
5
5
|
//# sourceMappingURL=app-graph-builder.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"app-graph-builder.d.ts","sourceRoot":"","sources":["../../../../src/capabilities/app-graph-builder.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,MAAM,MAAM,eAAe,CAAC;AAExC,OAAO,
|
|
1
|
+
{"version":3,"file":"app-graph-builder.d.ts","sourceRoot":"","sources":["../../../../src/capabilities/app-graph-builder.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,MAAM,MAAM,eAAe,CAAC;AAExC,OAAO,KAAK,UAAU,MAAM,gCAAgC,CAAC"}
|
|
@@ -1,11 +1,8 @@
|
|
|
1
|
-
import
|
|
2
|
-
|
|
3
|
-
export declare const
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
export declare const
|
|
7
|
-
export declare const
|
|
8
|
-
persist?: boolean;
|
|
9
|
-
} | undefined, Capability.ModuleReturn, Error>;
|
|
10
|
-
export declare const LogRecording: Capability.LazyCapability<void, Capability.ModuleReturn, Error>;
|
|
1
|
+
import * as Capability from '@dxos/app-framework/Capability';
|
|
2
|
+
import * as Debug from '../types/Debug';
|
|
3
|
+
export declare const AppGraphBuilder: Capability.Module<void>;
|
|
4
|
+
export declare const ReactSurface: Capability.Module<Debug.DebugPluginOptions>;
|
|
5
|
+
export declare const DebugSettings: Capability.Module<void>;
|
|
6
|
+
export declare const StatsPanel: Capability.Module<Debug.DebugPluginOptions>;
|
|
7
|
+
export declare const LogRecording: Capability.Module<void>;
|
|
11
8
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/capabilities/index.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/capabilities/index.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,UAAU,MAAM,gCAAgC,CAAC;AAI7D,OAAO,KAAK,KAAK,MAAM,gBAAgB,CAAC;AAGxC,eAAO,MAAM,eAAe,yBAAqE,CAAC;AAClG,eAAO,MAAM,YAAY,6CAWvB,CAAC;AACH,eAAO,MAAM,aAAa,yBAGxB,CAAC;AACH,eAAO,MAAM,UAAU,6CAStB,CAAC;AACF,eAAO,MAAM,YAAY,yBAIxB,CAAC"}
|
|
@@ -1,10 +1,9 @@
|
|
|
1
1
|
import * as Effect from 'effect/Effect';
|
|
2
|
-
import { Capability } from '@dxos/app-framework';
|
|
3
2
|
/**
|
|
4
3
|
* Start recording into the process-wide log buffer at startup, so the log companion shows what
|
|
5
4
|
* happened before it was opened. Recording deliberately does not follow the panel's mount: the
|
|
6
5
|
* entries worth reading are usually the ones from before you went looking.
|
|
7
6
|
*/
|
|
8
|
-
declare const _default: (props: void) => Effect.Effect<
|
|
7
|
+
declare const _default: (props: void) => Effect.Effect<never[], never, import("effect/Scope").Scope>;
|
|
9
8
|
export default _default;
|
|
10
9
|
//# sourceMappingURL=log-recording.d.ts.map
|