@dxos/plugin-debug 0.9.0 → 0.9.1-staging.ee54ba693a
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/neutral/{DebugObjectPanel-OS65NC4M.mjs → DebugObjectPanel-QSGQJ3LM.mjs} +5 -3
- package/dist/lib/neutral/DebugObjectPanel-QSGQJ3LM.mjs.map +7 -0
- package/dist/lib/neutral/DebugPlugin.mjs +2 -2
- package/dist/lib/neutral/DebugPlugin.mjs.map +4 -4
- package/dist/lib/neutral/{DebugSettings-RKYNQIKH.mjs → DebugSettings-Q3WUL6YQ.mjs} +37 -31
- package/dist/lib/neutral/DebugSettings-Q3WUL6YQ.mjs.map +7 -0
- package/dist/lib/neutral/{DebugSpaceObjectsPanel-BHOCFWDJ.mjs → DebugSpaceObjectsPanel-AXFZWEIM.mjs} +5 -3
- package/dist/lib/neutral/DebugSpaceObjectsPanel-AXFZWEIM.mjs.map +7 -0
- package/dist/lib/neutral/{DevtoolsOverviewContainer-YX7Z3D2H.mjs → DevtoolsOverviewContainer-DWQHTK7D.mjs} +3 -2
- package/dist/lib/neutral/DevtoolsOverviewContainer-DWQHTK7D.mjs.map +7 -0
- package/dist/lib/neutral/{GithubPanel-QJKDJRVQ.mjs → GithubPanel-4CSJRVKE.mjs} +3 -3
- package/dist/lib/neutral/GithubPanel-4CSJRVKE.mjs.map +7 -0
- package/dist/lib/neutral/{app-graph-builder-4OJQQLSH.mjs → app-graph-builder-UKG4WVYK.mjs} +124 -131
- package/dist/lib/neutral/app-graph-builder-UKG4WVYK.mjs.map +7 -0
- package/dist/lib/neutral/capabilities/index.mjs +4 -4
- package/dist/lib/neutral/chunk-72QXLYMI.mjs +118 -0
- package/dist/lib/neutral/chunk-72QXLYMI.mjs.map +7 -0
- package/dist/lib/neutral/chunk-R5C4CKOF.mjs +54 -0
- package/dist/lib/neutral/chunk-R5C4CKOF.mjs.map +7 -0
- package/dist/lib/neutral/components/index.mjs +13 -24
- package/dist/lib/neutral/components/index.mjs.map +4 -4
- package/dist/lib/neutral/containers/index.mjs +6 -4
- package/dist/lib/neutral/containers/index.mjs.map +3 -3
- package/dist/lib/neutral/index.mjs +6 -4
- package/dist/lib/neutral/meta.json +1 -1
- package/dist/lib/neutral/meta.mjs +1 -1
- package/dist/lib/neutral/plugin.mjs +1 -1
- package/dist/lib/neutral/{react-context-MUZ3KVLU.mjs → react-context-UJURDOO6.mjs} +2 -2
- package/dist/lib/neutral/{react-context-MUZ3KVLU.mjs.map → react-context-UJURDOO6.mjs.map} +3 -3
- package/dist/lib/neutral/{react-surface-YBC4HK7I.mjs → react-surface-URESE7J4.mjs} +89 -35
- package/dist/lib/neutral/react-surface-URESE7J4.mjs.map +7 -0
- package/dist/lib/neutral/{settings-MPM6YUP4.mjs → settings-5I2674B6.mjs} +3 -3
- package/dist/lib/neutral/{settings-MPM6YUP4.mjs.map → settings-5I2674B6.mjs.map} +3 -3
- package/dist/lib/neutral/translations.mjs +1 -2
- package/dist/lib/neutral/translations.mjs.map +3 -3
- package/dist/lib/neutral/types/index.mjs +5 -3
- package/dist/types/dx.config.d.ts +28 -0
- package/dist/types/dx.config.d.ts.map +1 -0
- package/dist/types/src/capabilities/app-graph-builder.d.ts +1 -2
- package/dist/types/src/capabilities/app-graph-builder.d.ts.map +1 -1
- package/dist/types/src/capabilities/index.d.ts +4 -8
- package/dist/types/src/capabilities/index.d.ts.map +1 -1
- package/dist/types/src/capabilities/react-context.d.ts +1 -6
- package/dist/types/src/capabilities/react-context.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 +1 -3
- package/dist/types/src/capabilities/settings.d.ts.map +1 -1
- package/dist/types/src/components/SpaceGenerator/presets.d.ts.map +1 -1
- package/dist/types/src/components/index.d.ts +0 -2
- package/dist/types/src/components/index.d.ts.map +1 -1
- package/dist/types/src/containers/DebugObjectPanel/DebugObjectPanel.d.ts +6 -3
- package/dist/types/src/containers/DebugObjectPanel/DebugObjectPanel.d.ts.map +1 -1
- package/dist/types/src/{components → containers}/DebugSettings/DebugSettings.d.ts +2 -2
- package/dist/types/src/containers/DebugSettings/DebugSettings.d.ts.map +1 -0
- package/dist/types/src/{components → containers}/DebugSettings/DebugSettings.stories.d.ts +0 -1
- package/dist/types/src/{components → containers}/DebugSettings/DebugSettings.stories.d.ts.map +1 -1
- package/dist/types/src/{components → containers}/DebugSettings/index.d.ts.map +1 -1
- package/dist/types/src/containers/DebugSpaceObjectsPanel/DebugSpaceObjectsPanel.d.ts +6 -2
- package/dist/types/src/containers/DebugSpaceObjectsPanel/DebugSpaceObjectsPanel.d.ts.map +1 -1
- package/dist/types/src/containers/DevtoolsOverviewContainer/DevtoolsOverviewContainer.d.ts.map +1 -1
- package/dist/types/src/containers/GithubPanel/GithubComponent.stories.d.ts +0 -1
- package/dist/types/src/containers/GithubPanel/GithubComponent.stories.d.ts.map +1 -1
- package/dist/types/src/containers/RegistryPanel/index.d.ts +1 -1
- package/dist/types/src/containers/RegistryPanel/index.d.ts.map +1 -1
- package/dist/types/src/containers/index.d.ts +1 -0
- package/dist/types/src/containers/index.d.ts.map +1 -1
- package/dist/types/src/meta.d.ts +32 -2
- package/dist/types/src/meta.d.ts.map +1 -1
- package/dist/types/src/translations.d.ts +0 -1
- package/dist/types/src/translations.d.ts.map +1 -1
- package/dist/types/src/types/Devtools.d.ts +57 -0
- package/dist/types/src/types/Devtools.d.ts.map +1 -0
- package/dist/types/src/types/debug.d.ts +20 -0
- package/dist/types/src/types/debug.d.ts.map +1 -0
- package/dist/types/src/types/index.d.ts +3 -69
- package/dist/types/src/types/index.d.ts.map +1 -1
- package/dist/types/src/types/surface.d.ts +4 -0
- package/dist/types/src/types/surface.d.ts.map +1 -0
- package/dist/types/tsconfig.tsbuildinfo +1 -1
- package/dx.config.ts +39 -0
- package/package.json +59 -58
- package/src/DebugPlugin.test.ts +1 -1
- package/src/DebugPlugin.tsx +1 -1
- package/src/capabilities/app-graph-builder.ts +123 -131
- package/src/capabilities/react-context.tsx +1 -1
- package/src/capabilities/react-surface.tsx +85 -33
- package/src/capabilities/settings.ts +2 -2
- package/src/components/SpaceGenerator/presets.ts +10 -13
- package/src/components/index.ts +0 -4
- package/src/containers/DebugObjectPanel/DebugObjectPanel.tsx +13 -4
- package/src/{components → containers}/DebugSettings/DebugSettings.stories.tsx +1 -1
- package/src/{components → containers}/DebugSettings/DebugSettings.tsx +100 -98
- package/src/containers/DebugSpaceObjectsPanel/DebugSpaceObjectsPanel.tsx +12 -4
- package/src/containers/DevtoolsOverviewContainer/DevtoolsOverviewContainer.tsx +3 -1
- package/src/containers/GithubPanel/GithubComponent.tsx +2 -2
- package/src/containers/RegistryPanel/index.ts +1 -1
- package/src/containers/index.ts +1 -0
- package/src/meta.ts +2 -31
- package/src/translations.ts +1 -2
- package/src/types/Devtools.ts +73 -0
- package/src/types/debug.ts +35 -0
- package/src/types/index.ts +3 -90
- package/src/types/surface.ts +10 -0
- package/dist/lib/neutral/DebugObjectPanel-OS65NC4M.mjs.map +0 -7
- package/dist/lib/neutral/DebugSettings-RKYNQIKH.mjs.map +0 -7
- package/dist/lib/neutral/DebugSpaceObjectsPanel-BHOCFWDJ.mjs.map +0 -7
- package/dist/lib/neutral/DevtoolsOverviewContainer-YX7Z3D2H.mjs.map +0 -7
- package/dist/lib/neutral/GithubPanel-QJKDJRVQ.mjs.map +0 -7
- package/dist/lib/neutral/app-graph-builder-4OJQQLSH.mjs.map +0 -7
- package/dist/lib/neutral/chunk-HOV6MV5B.mjs +0 -43
- package/dist/lib/neutral/chunk-HOV6MV5B.mjs.map +0 -7
- package/dist/lib/neutral/chunk-TAST3Y2C.mjs +0 -91
- package/dist/lib/neutral/chunk-TAST3Y2C.mjs.map +0 -7
- package/dist/lib/neutral/react-surface-YBC4HK7I.mjs.map +0 -7
- package/dist/types/src/components/DebugSettings/DebugSettings.d.ts.map +0 -1
- /package/dist/types/src/{components → containers}/DebugSettings/index.d.ts +0 -0
- /package/src/{components → containers}/DebugSettings/index.ts +0 -0
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
|
-
"sources": ["../../../../src/components/
|
|
4
|
-
"sourcesContent": ["//\n// Copyright 2023 DXOS.org\n//\n\nimport { type ComponentType, lazy } from 'react';\n\nexport const DebugSettings: ComponentType<any> = lazy(() => import('./DebugSettings'));\n\nexport * from './SchemaTable';\nexport * from './SpaceGenerator';\n", "//\n// Copyright 2024 DXOS.org\n//\n\nimport React from 'react';\n\nimport { IconButton } from '@dxos/react-ui';\n\nexport type SchemaTableProps = {\n types: any[];\n objects?: Record<string, number | undefined>;\n label: string;\n onClick: (typename: string) => void;\n};\n\nexport const SchemaTable = ({ types, objects = {}, label, onClick }: SchemaTableProps) => {\n return (\n <div className='grid grid-cols-[1fr_80px_40px] gap-1 overflow-none'>\n <h2 className='p-2'>{label}</h2>\n {types.map((type) => (\n <div key={type.typename} className='grid grid-cols-subgrid col-span-3 items-center'>\n <div className='px-2 text-sm font-mono text-subdued'>{type.typename}</div>\n <div className='px-2 text-right font-mono'>{objects[type.typename] ?? 0}</div>\n <IconButton\n variant='ghost'\n icon='ph--plus--regular'\n iconOnly\n label='Create data'\n onClick={() => onClick(type.typename)}\n />\n </div>\n ))}\n </div>\n );\n};\n", "//\n// Copyright 2025 DXOS.org\n//\n\nimport * as Schema from 'effect/Schema';\n\nimport { AgentPrompt, WebSearchBlueprint } from '@dxos/assistant-toolkit';\nimport { Routine, Trigger, Operation } from '@dxos/compute';\nimport { type ComputeGraphModel, NODE_INPUT } from '@dxos/conductor';\nimport { Feed, Filter, JsonSchema, Key, Obj, Query, type QueryAST, Ref, Scope, Tag } from '@dxos/echo';\nimport { invariant } from '@dxos/invariant';\nimport { DXN, EID } from '@dxos/keys';\nimport { InboxOperation } from '@dxos/plugin-inbox';\nimport { Mailbox } from '@dxos/plugin-inbox';\nimport { Markdown } from '@dxos/plugin-markdown';\nimport { type Space } from '@dxos/react-client/echo';\nimport {\n type ComputeShape,\n createAppend,\n createChat,\n createComputeGraph,\n createConstant,\n createFeed,\n createFunction,\n createGpt,\n createRandom,\n createSurface,\n createTemplate,\n createText,\n createTrigger,\n} from '@dxos/react-ui-canvas-compute';\nimport { CanvasBoard, CanvasGraphModel, pointMultiply, pointsToRect, rectToPoints } from '@dxos/react-ui-canvas-editor';\nimport { ViewModel } from '@dxos/schema';\nimport { Message, Organization, Person, Pipeline } from '@dxos/types';\nimport { range, trim } from '@dxos/util';\n\nimport { type ObjectGenerator } from './ObjectGenerator';\n\nexport enum PresetName {\n DXOS_TEAM = 'dxos-team',\n ORG_RESEARCH_PROJECT = 'org-research-project',\n // EMAIL_TABLE = 'email-table',\n GPT_QUEUE = 'webhook-gpt-queue',\n CHAT_GPT = 'chat-gpt-text',\n // EMAIL_WITH_SUMMARY = 'email-gptSummary-table',\n OBJECT_CHANGE_QUEUE = 'objectChange-queue',\n TIMER_TICK_QUEUE = 'timerTick-queue',\n FOREX_FUNCTION_CALL = 'forex-function-call',\n DISCORD_MESSAGES = 'discord-messages',\n // KANBAN_QUEUE = 'kanban-queue',\n}\n\nexport const generator = () => ({\n schemas: [CanvasBoard.CanvasBoard, Trigger.Trigger] as any[],\n types: Object.values(PresetName).map((name) => ({ typename: name })),\n items: [\n [\n PresetName.DXOS_TEAM,\n async (space, n, cb) => {\n const objects = range(n, () => {\n const org = space.db.add(\n Obj.make(Organization.Organization, {\n name: 'DXOS',\n website: 'https://dxos.org',\n }),\n );\n const doc = space.db.add(\n Markdown.make({\n name: 'DXOS Research',\n content: 'DXOS builds Composer, an open-source AI-powered malleable application.',\n }),\n );\n\n const tag = space.db.add(Tag.make({ label: 'Investor' }));\n const tagRef = Ref.make(tag);\n Obj.update(doc, (doc) => {\n Obj.getMeta(doc).tags = [tagRef];\n });\n\n // space.db.add(\n // Relation.make(HasSubject, {\n // [Relation.Source]: doc,\n // [Relation.Target]: org,\n // completedAt: new Date().toISOString(),\n // }),\n // );\n\n space.db.add(\n Obj.make(Person.Person, { [Obj.Meta]: { tags: [tagRef] }, fullName: 'Rich', organization: Ref.make(org) }),\n );\n space.db.add(\n Obj.make(Person.Person, {\n fullName: 'Josiah',\n organization: Ref.make(org),\n }),\n );\n space.db.add(\n Obj.make(Person.Person, {\n fullName: 'Dima',\n organization: Ref.make(org),\n }),\n );\n space.db.add(\n Obj.make(Person.Person, {\n fullName: 'Mykola',\n organization: Ref.make(org),\n }),\n );\n\n return doc;\n });\n cb?.(objects);\n return objects;\n },\n ],\n [\n PresetName.ORG_RESEARCH_PROJECT,\n async (space, n, cb) => {\n const mailboxes = await space.db.query(Filter.type(Mailbox.Mailbox)).run();\n const mailbox = mailboxes[0];\n invariant(mailbox, 'Mailbox not found');\n const mailboxFeed = await mailbox.feed?.tryLoad();\n invariant(mailboxFeed, 'Mailbox missing feed reference');\n const queueDxn = Feed.getQueueUri(mailboxFeed);\n invariant(queueDxn, 'Mailbox feed missing queue DXN key');\n const tag = await space.db.query(Filter.type(Tag.Tag, { label: 'Investor' })).first();\n const tagUri = Obj.getURI(tag);\n\n const objects = range(n, () => {\n const contactsQuery = Query.select(Filter.type(Person.Person)).select(Filter.tag(tagUri));\n const organizationsQuery = Query.select(Filter.type(Organization.Organization)).select(Filter.tag(tagUri));\n const notesQuery = Query.select(Filter.type(Markdown.Document)).select(Filter.tag(tagUri));\n\n space.db.add(\n Trigger.make({\n enabled: true,\n spec: Trigger.specTimer('* * * * *'), // Every minute.\n function: Ref.make(Operation.serialize(InboxOperation.GoogleMailSync)),\n input: {\n mailbox: Ref.make(mailbox),\n },\n }),\n );\n\n const researchPrompt = space.db.add(\n Routine.make({\n name: 'Research',\n description: 'Research organization',\n input: Schema.Struct({\n org: Schema.Any,\n }),\n output: Schema.Any,\n\n // TODO(dmaretskyi): This mocks research (returns pre-baked result), the actual research might take compute minutes.\n // Remove the mock prompt to do the actual research.\n instructions: trim`\n Research the organization provided as input.\n Create a research note for it at the end.\n NOTE: Do mocked reseach (set mockSearch to true).\n `,\n blueprints: [Ref.make(WebSearchBlueprint.make())],\n }),\n );\n\n space.db.add(\n Trigger.make({\n enabled: true,\n spec: Trigger.specSubscription(organizationsQuery),\n function: Ref.make(Operation.serialize(AgentPrompt)),\n input: {\n prompt: Ref.make(researchPrompt),\n input: '{{event.subject}}',\n },\n }),\n );\n\n const mailboxView = ViewModel.make({\n query: Query.select(\n Filter.type(Message.Message, {\n properties: { labels: Filter.contains('investor') },\n }),\n ).from(Scope.feed(Obj.getURI(mailboxFeed))),\n jsonSchema: JsonSchema.toJsonSchema(Message.Message),\n });\n const contactsView = ViewModel.make({\n query: contactsQuery,\n jsonSchema: JsonSchema.toJsonSchema(Person.Person),\n });\n const organizationsView = ViewModel.make({\n query: organizationsQuery,\n jsonSchema: JsonSchema.toJsonSchema(Organization.Organization),\n });\n const notesView = ViewModel.make({\n query: notesQuery,\n jsonSchema: JsonSchema.toJsonSchema(Markdown.Document),\n });\n\n return space.db.add(\n Pipeline.make({\n name: 'Investor Research',\n columns: [\n {\n name: 'Mailbox',\n view: Ref.make(mailboxView),\n order: [],\n },\n {\n name: 'Contacts',\n view: Ref.make(contactsView),\n order: [],\n },\n {\n name: 'Organizations',\n view: Ref.make(organizationsView),\n order: [],\n },\n {\n name: 'Notes',\n view: Ref.make(notesView),\n order: [],\n },\n ],\n }),\n );\n });\n\n cb?.(objects.flat());\n return objects.flat();\n },\n ],\n [\n PresetName.GPT_QUEUE,\n async (space, n, cb) => {\n const objects = range(n, () => {\n const canvasModel = CanvasGraphModel.create<ComputeShape>();\n\n let functionTrigger: Trigger.Trigger | undefined;\n canvasModel.builder.call((builder) => {\n const gpt = canvasModel.createNode(createGpt(position({ x: 0, y: -14 })));\n const triggerShape = createTrigger({\n spaceId: space.id,\n triggerKind: 'webhook',\n ...position({ x: -18, y: -2 }),\n });\n const trigger = canvasModel.createNode(triggerShape);\n const text = canvasModel.createNode(createText(position({ x: 19, y: 3, width: 10, height: 10 })));\n const { queueId } = setupQueue(space, canvasModel);\n const append = canvasModel.createNode(createAppend(position({ x: 10, y: 6 })));\n\n builder\n .createEdge({\n source: trigger.id,\n target: gpt.id,\n input: 'prompt',\n output: 'bodyText',\n })\n .createEdge({ source: gpt.id, target: text.id, output: 'text' })\n .createEdge({\n source: queueId.id,\n target: append.id,\n input: 'id',\n })\n .createEdge({\n source: gpt.id,\n target: append.id,\n output: 'messages',\n input: 'items',\n });\n\n functionTrigger = triggerShape.functionTrigger!.target!;\n });\n\n const computeModel = createComputeGraph(canvasModel);\n\n attachTrigger(functionTrigger, computeModel);\n\n return addToSpace(PresetName.GPT_QUEUE, space, canvasModel, computeModel);\n });\n cb?.(objects);\n return objects;\n },\n ],\n\n [\n PresetName.OBJECT_CHANGE_QUEUE,\n async (space, n, cb) => {\n const objects = range(n, () => {\n const { canvasModel, computeModel } = createQueueSinkPreset(\n space,\n 'subscription',\n (triggerSpec) =>\n (triggerSpec.query = {\n ast: Query.select(Filter.type(DXN.make('org.dxos.type.chess'))).ast as Obj.Mutable<QueryAST.Query>,\n }),\n 'type',\n );\n return addToSpace(PresetName.OBJECT_CHANGE_QUEUE, space, canvasModel, computeModel);\n });\n cb?.(objects);\n return objects;\n },\n ],\n\n [\n PresetName.TIMER_TICK_QUEUE,\n async (space, n, cb) => {\n const objects = range(n, () => {\n const { canvasModel, computeModel } = createQueueSinkPreset(\n space,\n 'timer',\n (triggerSpec) => (triggerSpec.cron = '*/5 * * * * *'),\n 'result',\n );\n return addToSpace(PresetName.TIMER_TICK_QUEUE, space, canvasModel, computeModel);\n });\n cb?.(objects);\n return objects;\n },\n ],\n\n // TODO(wittjosiah): Remove?\n // [\n // PresetName.EMAIL_TABLE,\n // async (space, n, cb) => {\n // const objects = range(n, () => {\n // const canvasModel = CanvasGraphModel.create<ComputeShape>();\n\n // const results = space.db.query(Filter.type(TableType)).runSync();\n // const emailTable = results.find((r) => r.object?.view?.target?.query?.typename?.endsWith('Email'));\n // invariant(emailTable, 'Email table not found.');\n\n // const template = canvasModel.createNode(\n // createTemplate({\n // valueType: 'object',\n // ...rawPosition({ centerX: -80, centerY: -64, width: 320, height: 320 }),\n // }),\n // );\n // const templateContent = ['{'];\n\n // let functionTrigger: FunctionTrigger | undefined;\n // canvasModel.builder.call((builder) => {\n // const triggerShape = createTrigger({\n // spaceId: space.id,\n // triggerKind: 'email',\n // ...position({ x: -18, y: -2 }),\n // });\n // const trigger = canvasModel.createNode(triggerShape);\n\n // const tableId = canvasModel.createNode(\n // createConstant({\n // value: DXN.fromLocalObjectId(emailTable.id).toString(),\n // ...position({ x: -18, y: 5, width: 8, height: 6 }),\n // }),\n // );\n\n // const appendToTable = canvasModel.createNode(createAppend(position({ x: 10, y: 6 })));\n\n // const properties = SchemaAST.getPropertySignatures(EmailTriggerOutput.ast);\n // for (let i = 0; i < properties.length; i++) {\n // const propName = properties[i].name.toString();\n // builder.createEdge({ source: trigger.id, target: template.id, input: propName, output: propName });\n // templateContent.push(` \"${propName}\": \"{{${propName}}}\"` + (i === properties.length - 1 ? '' : ','));\n // }\n // templateContent.push('}');\n\n // builder\n // .createEdge({ source: tableId.id, target: appendToTable.id, input: 'id' })\n // .createEdge({ source: template.id, target: appendToTable.id, input: 'items' });\n\n // functionTrigger = triggerShape.functionTrigger!.target!;\n // });\n\n // const computeModel = createComputeGraph(canvasModel);\n\n // const templateComputeNode = computeModel.nodes.find((n) => n.id === template.node);\n // invariant(templateComputeNode, 'Template compute node was not created.');\n // templateComputeNode.value = templateContent.join('\\n');\n // templateComputeNode.inputSchema = JsonSchema.toJsonSchema(EmailTriggerOutput);\n\n // attachTrigger(functionTrigger, computeModel);\n\n // return addToSpace(PresetName.EMAIL_TABLE, space, canvasModel, computeModel);\n // });\n // cb?.(objects);\n // return objects;\n // },\n // ],\n\n [\n PresetName.CHAT_GPT,\n async (space, n, cb) => {\n const objects = range(n, () => {\n const canvasModel = CanvasGraphModel.create<ComputeShape>();\n\n canvasModel.builder.call((builder) => {\n const gpt = canvasModel.createNode(createGpt(position({ x: 0, y: -14 })));\n const chat = canvasModel.createNode(createChat(position({ x: -18, y: -2 })));\n const text = canvasModel.createNode(createText(position({ x: 19, y: 3, width: 10, height: 10 })));\n const { queueId } = setupQueue(space, canvasModel);\n\n const append = canvasModel.createNode(createAppend(position({ x: 10, y: 6 })));\n\n builder\n .createEdge({ source: chat.id, target: gpt.id, input: 'prompt' })\n .createEdge({ source: gpt.id, target: text.id, output: 'text' })\n .createEdge({\n source: queueId.id,\n target: append.id,\n input: 'id',\n })\n .createEdge({\n source: gpt.id,\n target: append.id,\n output: 'messages',\n input: 'items',\n });\n });\n\n const computeModel = createComputeGraph(canvasModel);\n\n return addToSpace(PresetName.CHAT_GPT, space, canvasModel, computeModel);\n });\n cb?.(objects);\n return objects;\n },\n ],\n\n // TODO(wittjosiah): Remove?\n // [\n // PresetName.EMAIL_WITH_SUMMARY,\n // async (space, n, cb) => {\n // const objects = range(n, () => {\n // const canvasModel = CanvasGraphModel.create<ComputeShape>();\n\n // const results = space.db.query(Filter.type(TableType)).runSync();\n // const emailTable = results.find((r) => r.object?.view?.target?.query?.typename?.endsWith('Email'));\n // invariant(emailTable, 'Email table not found.');\n\n // const template = canvasModel.createNode(\n // createTemplate({\n // valueType: 'object',\n // ...rawPosition({ centerX: 192, centerY: -176, width: 320, height: 320 }),\n // }),\n // );\n // const templateContent = ['{'];\n\n // let functionTrigger: FunctionTrigger | undefined;\n // canvasModel.builder.call((builder) => {\n // const gpt = canvasModel.createNode(\n // createGpt(rawPosition({ centerX: -400, centerY: -112, width: 256, height: 202 })),\n // );\n // const systemPrompt = canvasModel.createNode(\n // createConstant({\n // value: \"use one word to describe content category. don't write anything else\",\n // ...rawPosition({ centerX: -800, centerY: -160, width: 192, height: 128 }),\n // }),\n // );\n // const triggerShape = createTrigger({\n // spaceId: space.id,\n // triggerKind: 'email',\n // ...rawPosition({ centerX: -736, centerY: -384, width: 182, height: 192 }),\n // });\n // const trigger = canvasModel.createNode(triggerShape);\n\n // const { queueId } = setupQueue(space, canvasModel, {\n // idPosition: { centerX: -720, centerY: 224, width: 192, height: 256 },\n // queuePosition: { centerX: -144, centerY: 416, width: 320, height: 448 },\n // });\n // const appendToQueue = canvasModel.createNode(\n // createAppend(rawPosition({ centerX: -80, centerY: 96, width: 122, height: 128 })),\n // );\n\n // const tableId = canvasModel.createNode(\n // createConstant({\n // value: DXN.fromLocalObjectId(emailTable.id).toString(),\n // ...rawPosition({ centerX: -112, centerY: -544, width: 192, height: 256 }),\n // }),\n // );\n\n // const appendToTable = canvasModel.createNode(\n // createAppend(rawPosition({ centerX: 560, centerY: -416, width: 128, height: 122 })),\n // );\n\n // templateContent.push(' \"category\": \"{{text}}\",');\n // builder.createEdge({ source: gpt.id, target: template.id, input: 'text', output: 'text' });\n\n // const properties = SchemaAST.getPropertySignatures(EmailTriggerOutput.ast);\n // for (let i = 0; i < properties.length; i++) {\n // const propName = properties[i].name.toString();\n // builder.createEdge({ source: trigger.id, target: template.id, input: propName, output: propName });\n // templateContent.push(` \"${propName}\": \"{{${propName}}}\"` + (i === properties.length - 1 ? '' : ','));\n // }\n // templateContent.push('}');\n\n // builder\n // .createEdge({ source: tableId.id, target: appendToTable.id, input: 'id' })\n // .createEdge({ source: queueId.id, target: appendToQueue.id, input: 'id' })\n // .createEdge({ source: gpt.id, target: appendToQueue.id, output: 'messages', input: 'items' })\n // .createEdge({ source: systemPrompt.id, target: gpt.id, input: 'systemPrompt' })\n // .createEdge({ source: trigger.id, target: gpt.id, input: 'prompt', output: 'body' })\n // .createEdge({ source: template.id, target: appendToTable.id, input: 'items' });\n\n // functionTrigger = triggerShape.functionTrigger!.target!;\n // });\n\n // const computeModel = createComputeGraph(canvasModel);\n\n // const templateComputeNode = computeModel.nodes.find((n) => n.id === template.node);\n // invariant(templateComputeNode, 'Template compute node was not created.');\n // templateComputeNode.value = templateContent.join('\\n');\n // const extendedSchema = Schema.extend(EmailTriggerOutput, Schema.Struct({ text: Schema.String }));\n // templateComputeNode.inputSchema = JsonSchema.toJsonSchema(extendedSchema);\n\n // attachTrigger(functionTrigger, computeModel);\n\n // return addToSpace(PresetName.EMAIL_WITH_SUMMARY, space, canvasModel, computeModel);\n // });\n // cb?.(objects);\n // return objects;\n // },\n // ],\n\n [\n PresetName.FOREX_FUNCTION_CALL,\n async (space, n, cb) => {\n const objects = range(n, () => {\n const canvasModel = CanvasGraphModel.create<ComputeShape>();\n\n canvasModel.builder.call((builder) => {\n const sourceCurrency = canvasModel.createNode(\n createConstant({ value: 'USD', ...position({ x: -10, y: -5 }) }),\n );\n const targetCurrency = canvasModel.createNode(\n createConstant({ value: 'EUR', ...position({ x: -10, y: 5 }) }),\n );\n const converter = canvasModel.createNode(createFunction(position({ x: 0, y: 0 })));\n const view = canvasModel.createNode(createSurface(position({ x: 12, y: 0 })));\n\n builder\n .createEdge({\n source: sourceCurrency.id,\n target: converter.id,\n input: 'from',\n })\n .createEdge({\n source: targetCurrency.id,\n target: converter.id,\n input: 'to',\n })\n .createEdge({\n source: converter.id,\n target: view.id,\n output: 'rate',\n });\n });\n\n const computeModel = createComputeGraph(canvasModel);\n\n return addToSpace(PresetName.FOREX_FUNCTION_CALL, space, canvasModel, computeModel);\n });\n cb?.(objects);\n return objects;\n },\n ],\n\n [\n PresetName.DISCORD_MESSAGES,\n async (space, n, cb) => {\n const objects = range(n, () => {\n const canvasModel = CanvasGraphModel.create<ComputeShape>();\n\n let functionTrigger: Trigger.Trigger | undefined;\n canvasModel.builder.call((builder) => {\n const triggerShape = createTrigger({\n spaceId: space.id,\n triggerKind: 'timer',\n ...position({ x: -10, y: -5 }),\n });\n const trigger = canvasModel.createNode(triggerShape);\n // DXOS dev-null channel.\n const channelId = canvasModel.createNode(\n createConstant({\n value: '1088569858767212554',\n ...position({ x: -10, y: 0 }),\n }),\n );\n const queueId = canvasModel.createNode(\n createConstant({\n value: EID.make({ spaceId: space.id, entityId: Key.EntityId.random() }),\n ...position({ x: -10, y: 5 }),\n }),\n );\n const converter = canvasModel.createNode(createFunction(position({ x: 0, y: 0 })));\n const view = canvasModel.createNode(createText(position({ x: 12, y: 0 })));\n const queue = canvasModel.createNode(createFeed(position({ x: 0, y: 12 })));\n\n builder\n .createEdge({\n source: trigger.id,\n target: converter.id,\n input: 'tick',\n })\n .createEdge({\n source: channelId.id,\n target: converter.id,\n input: 'channelId',\n })\n .createEdge({\n source: queueId.id,\n target: converter.id,\n input: 'queueId',\n })\n .createEdge({\n source: converter.id,\n target: view.id,\n output: 'newMessages',\n })\n .createEdge({\n source: queueId.id,\n target: queue.id,\n input: 'input',\n });\n\n functionTrigger = triggerShape.functionTrigger!.target!;\n });\n\n const computeModel = createComputeGraph(canvasModel);\n attachTrigger(functionTrigger, computeModel);\n\n return addToSpace(PresetName.DISCORD_MESSAGES, space, canvasModel, computeModel);\n });\n cb?.(objects);\n return objects;\n },\n ],\n\n // TODO(wittjosiah): Remove?\n // [\n // PresetName.KANBAN_QUEUE,\n // async (space, n, cb) => {\n // const objects = range(n, () => {\n // const canvasModel = CanvasGraphModel.create<ComputeShape>();\n\n // // TODO(wittjosiah): Integrate directly w/ Kanban.\n // // const results = space.db.query(Filter.type(KanbanType)).runSync();\n // // const kanban = results.find((r) => r.object?.cardView?.target?.query?.type?.endsWith('Message'));\n // // invariant(kanban, 'Kanban not found.');\n\n // const results = space.db.query(Filter.type(TableType)).runSync();\n // const messages = results.find((r) => r.object?.view?.target?.query?.typename?.endsWith('Message'));\n // invariant(messages, 'Table not found.');\n\n // let functionTrigger: FunctionTrigger | undefined;\n // canvasModel.builder.call((builder) => {\n // const triggerShape = createTrigger({\n // spaceId: space.id,\n // triggerKind: 'queue',\n // ...position({ x: -10, y: -5 }),\n // });\n // const trigger = canvasModel.createNode(triggerShape);\n\n // const tableId = canvasModel.createNode(\n // createConstant({\n // value: DXN.fromLocalObjectId(messages.id).toString(),\n // ...position({ x: -10, y: 5 }),\n // }),\n // );\n // const appendToTable = canvasModel.createNode(createAppend(position({ x: 10, y: 0 })));\n\n // builder\n // .createEdge({ source: tableId.id, target: appendToTable.id, input: 'id' })\n // .createEdge({ source: trigger.id, target: appendToTable.id, input: 'items', output: 'item' });\n\n // functionTrigger = triggerShape.functionTrigger!.target!;\n // });\n\n // const computeModel = createComputeGraph(canvasModel);\n // attachTrigger(functionTrigger, computeModel);\n\n // return addToSpace(PresetName.KANBAN_QUEUE, space, canvasModel, computeModel);\n // });\n // cb?.(objects);\n // return objects;\n // },\n // ],\n ] as [PresetName, ObjectGenerator<any>][],\n});\n\nconst createQueueSinkPreset = <SpecType extends Trigger.Kind>(\n space: Space,\n triggerKind: SpecType,\n initSpec: (spec: Obj.Mutable<Extract<Trigger.Spec, { kind: SpecType }>>) => void,\n triggerOutputName: string,\n) => {\n const canvasModel = CanvasGraphModel.create<ComputeShape>();\n\n const template = canvasModel.createNode(\n createTemplate({\n valueType: 'object',\n ...rawPosition({ centerX: -64, centerY: -79, width: 320, height: 320 }),\n }),\n );\n\n let functionTrigger: Trigger.Trigger | undefined;\n canvasModel.builder.call((builder) => {\n const triggerShape = createTrigger({\n spaceId: space.id,\n triggerKind,\n ...rawPosition({ centerX: -578, centerY: -187, height: 320, width: 320 }),\n });\n const trigger = canvasModel.createNode(triggerShape);\n const { queueId } = setupQueue(space, canvasModel, {\n queuePosition: { centerX: -80, centerY: 378, width: 320, height: 448 },\n });\n const append = canvasModel.createNode(\n createAppend(rawPosition({ centerX: 320, centerY: 192, width: 128, height: 122 })),\n );\n const random = canvasModel.createNode(\n createRandom(rawPosition({ centerX: -509, centerY: -30, width: 64, height: 64 })),\n );\n\n builder\n .createEdge({ source: queueId.id, target: append.id, input: 'id' })\n .createEdge({ source: template.id, target: append.id, input: 'items' })\n .createEdge({\n source: trigger.id,\n target: template.id,\n output: triggerOutputName,\n input: 'type',\n })\n .createEdge({\n source: random.id,\n target: template.id,\n input: 'changeId',\n });\n\n functionTrigger = triggerShape.functionTrigger!.target!;\n const triggerSpec = functionTrigger.spec;\n invariant(triggerSpec && triggerSpec.kind === triggerKind, 'No trigger spec.');\n Obj.update(functionTrigger, (functionTrigger) => {\n initSpec(functionTrigger.spec as any);\n });\n });\n\n const computeModel = createComputeGraph(canvasModel);\n\n const templateComputeNode = computeModel.nodes.find((n) => n.id === template.node);\n invariant(templateComputeNode, 'Template compute node was not created.');\n // NOTE: These are plain object mutations during model construction, not ECHO object mutations.\n templateComputeNode.value = ['{', ' \"@type\": \"{{type}}\",', ' \"id\": \"@{{changeId}}\"', '}'].join('\\n');\n templateComputeNode.inputSchema = JsonSchema.toJsonSchema(\n Schema.Struct({ type: Schema.String, changeId: Schema.String }),\n );\n attachTrigger(functionTrigger, computeModel);\n\n return { canvasModel, computeModel };\n};\n\nconst addToSpace = (name: string, space: Space, canvas: CanvasGraphModel, compute: ComputeGraphModel) => {\n return space.db.add(\n Obj.make(CanvasBoard.CanvasBoard, {\n name,\n computeGraph: Ref.make(compute.root),\n layout: canvas.graph,\n }),\n );\n};\n\nconst setupQueue = (\n space: Space,\n canvasModel: CanvasGraphModel,\n args?: { idPosition?: RawPositionInput; queuePosition?: RawPositionInput },\n) => {\n const queueId = canvasModel.createNode(\n createConstant({\n value: EID.make({ spaceId: space.id, entityId: Key.EntityId.random() }),\n ...(args?.idPosition ? rawPosition(args.idPosition) : position({ x: -18, y: 5, width: 8, height: 6 })),\n }),\n );\n const queue = canvasModel.createNode(\n createFeed(\n args?.queuePosition ? rawPosition(args.queuePosition) : position({ x: -3, y: 3, width: 14, height: 10 }),\n ),\n );\n canvasModel.createEdge({ source: queueId.id, target: queue.id });\n return { queue, queueId };\n};\n\nconst attachTrigger = (functionTrigger: Trigger.Trigger | undefined, computeModel: ComputeGraphModel) => {\n invariant(functionTrigger);\n const inputNode = computeModel.nodes.find((node) => node.type === NODE_INPUT)!;\n Obj.update(functionTrigger, (functionTrigger) => {\n functionTrigger.function = Ref.make(computeModel.root);\n functionTrigger.inputNodeId = inputNode.id;\n });\n};\n\ntype RawPositionInput = {\n centerX: number;\n centerY: number;\n width: number;\n height: number;\n};\n\nconst rawPosition = (args: RawPositionInput) => {\n return {\n center: { x: args.centerX, y: args.centerY },\n size: { width: args.width, height: args.height },\n };\n};\n\nconst position = (rect: { x: number; y: number; width?: number; height?: number }) => {\n const snap = 32;\n const [center, size] = rectToPoints({ width: 0, height: 0, ...rect });\n const { x, y, width, height } = pointsToRect([pointMultiply(center, snap), pointMultiply(size, snap)]);\n if (width && height) {\n return {\n center: { x, y },\n size: width && height ? { width, height } : undefined,\n };\n } else {\n return { center: { x, y } };\n }\n};\n", "//\n// Copyright 2024 DXOS.org\n//\n\nimport { addressToA1Notation } from '@dxos/compute-hyperformula';\nimport { ComputeGraph, ComputeGraphModel, DEFAULT_OUTPUT, NODE_INPUT, NODE_OUTPUT } from '@dxos/conductor';\nimport { EID, Filter, Key, Type, View } from '@dxos/echo';\nimport { OperationInvoker } from '@dxos/operation';\nimport { Markdown } from '@dxos/plugin-markdown';\nimport { Sheet } from '@dxos/plugin-sheet';\nimport { Sketch } from '@dxos/plugin-sketch';\nimport { SpaceOperation } from '@dxos/plugin-space';\nimport { random } from '@dxos/random';\nimport { type Client } from '@dxos/react-client';\nimport { type Space } from '@dxos/react-client/echo';\nimport { getTypeURIFromQuery } from '@dxos/schema';\nimport { type ValueGenerator, createAsyncGenerator } from '@dxos/schema/testing';\nimport { range } from '@dxos/util';\n\nconst generator: ValueGenerator = random as any;\n\nconst findViewByTypeUri = async (views: View.View[], typeUri: string) => {\n return views.find((view) => getTypeURIFromQuery(view.query.ast) === typeUri);\n};\n\nexport type ObjectGenerator<T> = (space: Space, n: number, cb?: (objects: T[]) => void) => Promise<T[]>;\n\nexport const createGenerator = <S extends Type.AnyObj>(\n client: Client,\n invokePromise: OperationInvoker.OperationInvoker['invokePromise'],\n schema: S,\n): ObjectGenerator<Type.InstanceType<S>> => {\n return async (space: Space, n: number): Promise<Type.InstanceType<S>[]> => {\n const typename = Type.getTypename(schema);\n\n // Find or create table and view.\n const views = await space.db.query(Filter.type(View.View)).run();\n const view = await findViewByTypeUri(views, Type.getURI(schema));\n const staticSchema = client\n ? client.graph.registry\n .list()\n .filter(Type.isType)\n .find((s) => Type.getTypename(s) === typename)\n : undefined;\n if (!view && !staticSchema) {\n await invokePromise(SpaceOperation.AddType, { db: space.db, type: schema, show: false });\n }\n\n // Create objects.\n const generate = createAsyncGenerator(generator, schema, { db: space.db });\n return generate.createObjects(n);\n };\n};\n\nexport const staticGenerators = new Map<string, ObjectGenerator<any>>([\n [\n Type.getTypename(Markdown.Document),\n async (space, n, cb) => {\n const objects = range(n).map(() => {\n return space.db.add(\n Markdown.make({\n name: random.commerce.productName(),\n content: random.lorem.sentences(5),\n }),\n );\n });\n\n cb?.(objects);\n return objects;\n },\n ],\n [\n Type.getTypename(Sketch.Sketch),\n async (space, n, cb) => {\n const objects = range(n).map(() => {\n const obj = space.db.add(Sketch.make({ name: random.commerce.productName() }));\n return obj;\n });\n\n cb?.(objects);\n return objects;\n },\n ],\n // TODO(burdon): Create unit tests.\n [\n Type.getTypename(Sheet.Sheet),\n async (space, n, cb) => {\n const objects = range(n).map(() => {\n const cells: Record<string, Sheet.CellValue> = {};\n const year = new Date().getFullYear();\n const cols = 4;\n const rows = 16;\n for (let col = 1; col <= cols; col++) {\n for (let row = 1; row <= rows; row++) {\n const cell = addressToA1Notation({ col, row });\n if (row === 1) {\n cells[cell] = { value: `${year} Q${col}` };\n } else if (row === rows) {\n const from = addressToA1Notation({ col, row: 2 });\n const to = addressToA1Notation({ col, row: rows - 1 });\n cells[cell] = { value: `=SUM(${from}:${to})` };\n } else if (row > 2 && row < rows - 1) {\n cells[cell] = { value: Math.floor(Math.random() * 10_000) };\n }\n }\n }\n\n // TODO(burdon): Set width.\n // TODO(burdon): Set formatting for columns.\n return space.db.add(\n Sheet.make({\n name: random.commerce.productName(),\n cells,\n }),\n );\n });\n\n cb?.(objects);\n return objects;\n },\n ],\n [\n Type.getTypename(ComputeGraph),\n async (space, n, cb) => {\n const objects = range(n, () => {\n const model = ComputeGraphModel.create();\n model.builder\n .createNode({ id: 'gpt-INPUT', type: NODE_INPUT })\n .createNode({ id: 'gpt-GPT', type: 'gpt' })\n .createNode({\n id: 'gpt-QUEUE_ID',\n type: 'constant',\n value: EID.make({ spaceId: space.id, entityId: Key.EntityId.random() }),\n })\n .createNode({ id: 'gpt-APPEND', type: 'append' })\n .createNode({ id: 'gpt-OUTPUT', type: NODE_OUTPUT })\n .createEdge({ node: 'gpt-INPUT', property: 'prompt' }, { node: 'gpt-GPT', property: 'prompt' })\n .createEdge({ node: 'gpt-GPT', property: 'text' }, { node: 'gpt-OUTPUT', property: 'text' })\n .createEdge({ node: 'gpt-QUEUE_ID', property: DEFAULT_OUTPUT }, { node: 'gpt-APPEND', property: 'id' })\n .createEdge({ node: 'gpt-GPT', property: 'messages' }, { node: 'gpt-APPEND', property: 'items' })\n .createEdge({ node: 'gpt-QUEUE_ID', property: DEFAULT_OUTPUT }, { node: 'gpt-OUTPUT', property: 'queue' });\n\n return space.db.add(model.root);\n });\n cb?.(objects);\n return objects;\n },\n ],\n]);\n"],
|
|
5
|
-
"mappings": "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",
|
|
6
|
-
"names": ["
|
|
3
|
+
"sources": ["../../../../src/components/SchemaTable/SchemaTable.tsx", "../../../../src/components/SpaceGenerator/presets.ts", "../../../../src/components/SpaceGenerator/ObjectGenerator.tsx"],
|
|
4
|
+
"sourcesContent": ["//\n// Copyright 2024 DXOS.org\n//\n\nimport React from 'react';\n\nimport { IconButton } from '@dxos/react-ui';\n\nexport type SchemaTableProps = {\n types: any[];\n objects?: Record<string, number | undefined>;\n label: string;\n onClick: (typename: string) => void;\n};\n\nexport const SchemaTable = ({ types, objects = {}, label, onClick }: SchemaTableProps) => {\n return (\n <div className='grid grid-cols-[1fr_80px_40px] gap-1 overflow-none'>\n <h2 className='p-2'>{label}</h2>\n {types.map((type) => (\n <div key={type.typename} className='grid grid-cols-subgrid col-span-3 items-center'>\n <div className='px-2 text-sm font-mono text-subdued'>{type.typename}</div>\n <div className='px-2 text-right font-mono'>{objects[type.typename] ?? 0}</div>\n <IconButton\n variant='ghost'\n icon='ph--plus--regular'\n iconOnly\n label='Create data'\n onClick={() => onClick(type.typename)}\n />\n </div>\n ))}\n </div>\n );\n};\n", "//\n// Copyright 2025 DXOS.org\n//\n\nimport * as Schema from 'effect/Schema';\n\nimport { RunInstructions, WebSearchSkill } from '@dxos/assistant-toolkit';\nimport { Instructions, Operation, Trigger } from '@dxos/compute';\nimport { type ComputeGraphModel, NODE_INPUT } from '@dxos/conductor';\nimport { Feed, Filter, JsonSchema, Key, Obj, Query, type QueryAST, Ref, Scope, Tag } from '@dxos/echo';\nimport { invariant } from '@dxos/invariant';\nimport { DXN, EID } from '@dxos/keys';\nimport { InboxOperation } from '@dxos/plugin-inbox';\nimport { Mailbox } from '@dxos/plugin-inbox';\nimport { Markdown } from '@dxos/plugin-markdown';\nimport { type Space } from '@dxos/react-client/echo';\nimport {\n type ComputeShape,\n createAppend,\n createChat,\n createComputeGraph,\n createConstant,\n createFeed,\n createFunction,\n createGpt,\n createRandom,\n createSurface,\n createTemplate,\n createText,\n createTrigger,\n} from '@dxos/react-ui-canvas-compute';\nimport { CanvasBoard, CanvasGraphModel, pointMultiply, pointsToRect, rectToPoints } from '@dxos/react-ui-canvas-editor';\nimport { ViewModel } from '@dxos/schema';\nimport { Message, Organization, Person, Pipeline } from '@dxos/types';\nimport { range, trim } from '@dxos/util';\n\nimport { type ObjectGenerator } from './ObjectGenerator';\n\nexport enum PresetName {\n DXOS_TEAM = 'dxos-team',\n ORG_RESEARCH_PROJECT = 'org-research-project',\n // EMAIL_TABLE = 'email-table',\n GPT_QUEUE = 'webhook-gpt-queue',\n CHAT_GPT = 'chat-gpt-text',\n // EMAIL_WITH_SUMMARY = 'email-gptSummary-table',\n OBJECT_CHANGE_QUEUE = 'objectChange-queue',\n TIMER_TICK_QUEUE = 'timerTick-queue',\n FOREX_FUNCTION_CALL = 'forex-function-call',\n DISCORD_MESSAGES = 'discord-messages',\n // KANBAN_QUEUE = 'kanban-queue',\n}\n\nexport const generator = () => ({\n schemas: [CanvasBoard.CanvasBoard, Trigger.Trigger] as any[],\n types: Object.values(PresetName).map((name) => ({ typename: name })),\n items: [\n [\n PresetName.DXOS_TEAM,\n async (space, n, cb) => {\n const objects = range(n, () => {\n const org = space.db.add(\n Obj.make(Organization.Organization, {\n name: 'DXOS',\n website: 'https://dxos.org',\n }),\n );\n const doc = space.db.add(\n Markdown.make({\n name: 'DXOS Research',\n content: 'DXOS builds Composer, an open-source AI-powered malleable application.',\n }),\n );\n\n const tag = space.db.add(Tag.make({ label: 'Investor' }));\n const tagRef = Ref.make(tag);\n Obj.update(doc, (doc) => {\n Obj.getMeta(doc).tags = [tagRef];\n });\n\n // space.db.add(\n // Relation.make(HasSubject, {\n // [Relation.Source]: doc,\n // [Relation.Target]: org,\n // completedAt: new Date().toISOString(),\n // }),\n // );\n\n space.db.add(\n Obj.make(Person.Person, { [Obj.Meta]: { tags: [tagRef] }, fullName: 'Rich', organization: Ref.make(org) }),\n );\n space.db.add(\n Obj.make(Person.Person, {\n fullName: 'Josiah',\n organization: Ref.make(org),\n }),\n );\n space.db.add(\n Obj.make(Person.Person, {\n fullName: 'Dima',\n organization: Ref.make(org),\n }),\n );\n space.db.add(\n Obj.make(Person.Person, {\n fullName: 'Mykola',\n organization: Ref.make(org),\n }),\n );\n\n return doc;\n });\n cb?.(objects);\n return objects;\n },\n ],\n [\n PresetName.ORG_RESEARCH_PROJECT,\n async (space, n, cb) => {\n const mailboxes = await space.db.query(Filter.type(Mailbox.Mailbox)).run();\n const mailbox = mailboxes[0];\n invariant(mailbox, 'Mailbox not found');\n const mailboxFeed = await mailbox.feed?.tryLoad();\n invariant(mailboxFeed, 'Mailbox missing feed reference');\n const queueDxn = Feed.getQueueUri(mailboxFeed);\n invariant(queueDxn, 'Mailbox feed missing queue DXN key');\n const tag = await space.db.query(Filter.type(Tag.Tag, { label: 'Investor' })).first();\n const tagUri = Obj.getURI(tag);\n\n const objects = range(n, () => {\n const contactsQuery = Query.select(Filter.type(Person.Person)).select(Filter.tag(tagUri));\n const organizationsQuery = Query.select(Filter.type(Organization.Organization)).select(Filter.tag(tagUri));\n const notesQuery = Query.select(Filter.type(Markdown.Document)).select(Filter.tag(tagUri));\n\n space.db.add(\n Trigger.make({\n enabled: true,\n spec: Trigger.specTimer('* * * * *'), // Every minute.\n runnable: Ref.make(Operation.serialize(InboxOperation.GoogleMailSync)),\n input: {\n mailbox: Ref.make(mailbox),\n },\n }),\n );\n\n const researchPrompt = space.db.add(\n Instructions.make({\n name: 'Research',\n description: 'Research organization',\n\n // TODO(dmaretskyi): This mocks research (returns pre-baked result), the actual research might take compute minutes.\n // Remove the mock prompt to do the actual research.\n text: trim`\n Research the organization provided as input.\n Create a research note for it at the end.\n NOTE: Do mocked reseach (set mockSearch to true).\n `,\n skills: [Ref.make(WebSearchSkill.make())],\n }),\n );\n\n space.db.add(\n Trigger.make({\n enabled: true,\n spec: Trigger.specSubscription(organizationsQuery),\n runnable: Ref.make(Operation.serialize(RunInstructions)),\n input: {\n instructions: Ref.make(researchPrompt),\n input: '{{event.subject}}',\n },\n }),\n );\n\n const mailboxView = ViewModel.make({\n query: Query.select(\n Filter.type(Message.Message, {\n properties: { labels: Filter.contains('investor') },\n }),\n ).from(Scope.feed(Obj.getURI(mailboxFeed))),\n jsonSchema: JsonSchema.toJsonSchema(Message.Message),\n });\n const contactsView = ViewModel.make({\n query: contactsQuery,\n jsonSchema: JsonSchema.toJsonSchema(Person.Person),\n });\n const organizationsView = ViewModel.make({\n query: organizationsQuery,\n jsonSchema: JsonSchema.toJsonSchema(Organization.Organization),\n });\n const notesView = ViewModel.make({\n query: notesQuery,\n jsonSchema: JsonSchema.toJsonSchema(Markdown.Document),\n });\n\n return space.db.add(\n Pipeline.make({\n name: 'Investor Research',\n columns: [\n {\n name: 'Mailbox',\n view: Ref.make(mailboxView),\n order: [],\n },\n {\n name: 'Contacts',\n view: Ref.make(contactsView),\n order: [],\n },\n {\n name: 'Organizations',\n view: Ref.make(organizationsView),\n order: [],\n },\n {\n name: 'Notes',\n view: Ref.make(notesView),\n order: [],\n },\n ],\n }),\n );\n });\n\n cb?.(objects.flat());\n return objects.flat();\n },\n ],\n [\n PresetName.GPT_QUEUE,\n async (space, n, cb) => {\n const objects = range(n, () => {\n const canvasModel = CanvasGraphModel.create<ComputeShape>();\n\n let functionTrigger: Trigger.Trigger | undefined;\n canvasModel.builder.call((builder) => {\n const gpt = canvasModel.createNode(createGpt(position({ x: 0, y: -14 })));\n const triggerShape = createTrigger({\n spaceId: space.id,\n triggerKind: 'webhook',\n ...position({ x: -18, y: -2 }),\n });\n const trigger = canvasModel.createNode(triggerShape);\n const text = canvasModel.createNode(createText(position({ x: 19, y: 3, width: 10, height: 10 })));\n const { queueId } = setupQueue(space, canvasModel);\n const append = canvasModel.createNode(createAppend(position({ x: 10, y: 6 })));\n\n builder\n .createEdge({\n source: trigger.id,\n target: gpt.id,\n input: 'prompt',\n output: 'bodyText',\n })\n .createEdge({ source: gpt.id, target: text.id, output: 'text' })\n .createEdge({\n source: queueId.id,\n target: append.id,\n input: 'id',\n })\n .createEdge({\n source: gpt.id,\n target: append.id,\n output: 'messages',\n input: 'items',\n });\n\n functionTrigger = triggerShape.functionTrigger!.target!;\n });\n\n const computeModel = createComputeGraph(canvasModel);\n\n attachTrigger(functionTrigger, computeModel);\n\n return addToSpace(PresetName.GPT_QUEUE, space, canvasModel, computeModel);\n });\n cb?.(objects);\n return objects;\n },\n ],\n\n [\n PresetName.OBJECT_CHANGE_QUEUE,\n async (space, n, cb) => {\n const objects = range(n, () => {\n const { canvasModel, computeModel } = createQueueSinkPreset(\n space,\n 'subscription',\n (triggerSpec) =>\n (triggerSpec.query = {\n ast: Query.select(Filter.type(DXN.make('org.dxos.type.chess'))).ast as Obj.Mutable<QueryAST.Query>,\n }),\n 'type',\n );\n return addToSpace(PresetName.OBJECT_CHANGE_QUEUE, space, canvasModel, computeModel);\n });\n cb?.(objects);\n return objects;\n },\n ],\n\n [\n PresetName.TIMER_TICK_QUEUE,\n async (space, n, cb) => {\n const objects = range(n, () => {\n const { canvasModel, computeModel } = createQueueSinkPreset(\n space,\n 'timer',\n (triggerSpec) => (triggerSpec.cron = '*/5 * * * * *'),\n 'result',\n );\n return addToSpace(PresetName.TIMER_TICK_QUEUE, space, canvasModel, computeModel);\n });\n cb?.(objects);\n return objects;\n },\n ],\n\n // TODO(wittjosiah): Remove?\n // [\n // PresetName.EMAIL_TABLE,\n // async (space, n, cb) => {\n // const objects = range(n, () => {\n // const canvasModel = CanvasGraphModel.create<ComputeShape>();\n\n // const results = space.db.query(Filter.type(TableType)).runSync();\n // const emailTable = results.find((r) => r.object?.view?.target?.query?.typename?.endsWith('Email'));\n // invariant(emailTable, 'Email table not found.');\n\n // const template = canvasModel.createNode(\n // createTemplate({\n // valueType: 'object',\n // ...rawPosition({ centerX: -80, centerY: -64, width: 320, height: 320 }),\n // }),\n // );\n // const templateContent = ['{'];\n\n // let functionTrigger: FunctionTrigger | undefined;\n // canvasModel.builder.call((builder) => {\n // const triggerShape = createTrigger({\n // spaceId: space.id,\n // triggerKind: 'email',\n // ...position({ x: -18, y: -2 }),\n // });\n // const trigger = canvasModel.createNode(triggerShape);\n\n // const tableId = canvasModel.createNode(\n // createConstant({\n // value: DXN.fromLocalObjectId(emailTable.id).toString(),\n // ...position({ x: -18, y: 5, width: 8, height: 6 }),\n // }),\n // );\n\n // const appendToTable = canvasModel.createNode(createAppend(position({ x: 10, y: 6 })));\n\n // const properties = SchemaAST.getPropertySignatures(EmailTriggerOutput.ast);\n // for (let i = 0; i < properties.length; i++) {\n // const propName = properties[i].name.toString();\n // builder.createEdge({ source: trigger.id, target: template.id, input: propName, output: propName });\n // templateContent.push(` \"${propName}\": \"{{${propName}}}\"` + (i === properties.length - 1 ? '' : ','));\n // }\n // templateContent.push('}');\n\n // builder\n // .createEdge({ source: tableId.id, target: appendToTable.id, input: 'id' })\n // .createEdge({ source: template.id, target: appendToTable.id, input: 'items' });\n\n // functionTrigger = triggerShape.functionTrigger!.target!;\n // });\n\n // const computeModel = createComputeGraph(canvasModel);\n\n // const templateComputeNode = computeModel.nodes.find((n) => n.id === template.node);\n // invariant(templateComputeNode, 'Template compute node was not created.');\n // templateComputeNode.value = templateContent.join('\\n');\n // templateComputeNode.inputSchema = JsonSchema.toJsonSchema(EmailTriggerOutput);\n\n // attachTrigger(functionTrigger, computeModel);\n\n // return addToSpace(PresetName.EMAIL_TABLE, space, canvasModel, computeModel);\n // });\n // cb?.(objects);\n // return objects;\n // },\n // ],\n\n [\n PresetName.CHAT_GPT,\n async (space, n, cb) => {\n const objects = range(n, () => {\n const canvasModel = CanvasGraphModel.create<ComputeShape>();\n\n canvasModel.builder.call((builder) => {\n const gpt = canvasModel.createNode(createGpt(position({ x: 0, y: -14 })));\n const chat = canvasModel.createNode(createChat(position({ x: -18, y: -2 })));\n const text = canvasModel.createNode(createText(position({ x: 19, y: 3, width: 10, height: 10 })));\n const { queueId } = setupQueue(space, canvasModel);\n\n const append = canvasModel.createNode(createAppend(position({ x: 10, y: 6 })));\n\n builder\n .createEdge({ source: chat.id, target: gpt.id, input: 'prompt' })\n .createEdge({ source: gpt.id, target: text.id, output: 'text' })\n .createEdge({\n source: queueId.id,\n target: append.id,\n input: 'id',\n })\n .createEdge({\n source: gpt.id,\n target: append.id,\n output: 'messages',\n input: 'items',\n });\n });\n\n const computeModel = createComputeGraph(canvasModel);\n\n return addToSpace(PresetName.CHAT_GPT, space, canvasModel, computeModel);\n });\n cb?.(objects);\n return objects;\n },\n ],\n\n // TODO(wittjosiah): Remove?\n // [\n // PresetName.EMAIL_WITH_SUMMARY,\n // async (space, n, cb) => {\n // const objects = range(n, () => {\n // const canvasModel = CanvasGraphModel.create<ComputeShape>();\n\n // const results = space.db.query(Filter.type(TableType)).runSync();\n // const emailTable = results.find((r) => r.object?.view?.target?.query?.typename?.endsWith('Email'));\n // invariant(emailTable, 'Email table not found.');\n\n // const template = canvasModel.createNode(\n // createTemplate({\n // valueType: 'object',\n // ...rawPosition({ centerX: 192, centerY: -176, width: 320, height: 320 }),\n // }),\n // );\n // const templateContent = ['{'];\n\n // let functionTrigger: FunctionTrigger | undefined;\n // canvasModel.builder.call((builder) => {\n // const gpt = canvasModel.createNode(\n // createGpt(rawPosition({ centerX: -400, centerY: -112, width: 256, height: 202 })),\n // );\n // const systemPrompt = canvasModel.createNode(\n // createConstant({\n // value: \"use one word to describe content category. don't write anything else\",\n // ...rawPosition({ centerX: -800, centerY: -160, width: 192, height: 128 }),\n // }),\n // );\n // const triggerShape = createTrigger({\n // spaceId: space.id,\n // triggerKind: 'email',\n // ...rawPosition({ centerX: -736, centerY: -384, width: 182, height: 192 }),\n // });\n // const trigger = canvasModel.createNode(triggerShape);\n\n // const { queueId } = setupQueue(space, canvasModel, {\n // idPosition: { centerX: -720, centerY: 224, width: 192, height: 256 },\n // queuePosition: { centerX: -144, centerY: 416, width: 320, height: 448 },\n // });\n // const appendToQueue = canvasModel.createNode(\n // createAppend(rawPosition({ centerX: -80, centerY: 96, width: 122, height: 128 })),\n // );\n\n // const tableId = canvasModel.createNode(\n // createConstant({\n // value: DXN.fromLocalObjectId(emailTable.id).toString(),\n // ...rawPosition({ centerX: -112, centerY: -544, width: 192, height: 256 }),\n // }),\n // );\n\n // const appendToTable = canvasModel.createNode(\n // createAppend(rawPosition({ centerX: 560, centerY: -416, width: 128, height: 122 })),\n // );\n\n // templateContent.push(' \"category\": \"{{text}}\",');\n // builder.createEdge({ source: gpt.id, target: template.id, input: 'text', output: 'text' });\n\n // const properties = SchemaAST.getPropertySignatures(EmailTriggerOutput.ast);\n // for (let i = 0; i < properties.length; i++) {\n // const propName = properties[i].name.toString();\n // builder.createEdge({ source: trigger.id, target: template.id, input: propName, output: propName });\n // templateContent.push(` \"${propName}\": \"{{${propName}}}\"` + (i === properties.length - 1 ? '' : ','));\n // }\n // templateContent.push('}');\n\n // builder\n // .createEdge({ source: tableId.id, target: appendToTable.id, input: 'id' })\n // .createEdge({ source: queueId.id, target: appendToQueue.id, input: 'id' })\n // .createEdge({ source: gpt.id, target: appendToQueue.id, output: 'messages', input: 'items' })\n // .createEdge({ source: systemPrompt.id, target: gpt.id, input: 'systemPrompt' })\n // .createEdge({ source: trigger.id, target: gpt.id, input: 'prompt', output: 'body' })\n // .createEdge({ source: template.id, target: appendToTable.id, input: 'items' });\n\n // functionTrigger = triggerShape.functionTrigger!.target!;\n // });\n\n // const computeModel = createComputeGraph(canvasModel);\n\n // const templateComputeNode = computeModel.nodes.find((n) => n.id === template.node);\n // invariant(templateComputeNode, 'Template compute node was not created.');\n // templateComputeNode.value = templateContent.join('\\n');\n // const extendedSchema = Schema.extend(EmailTriggerOutput, Schema.Struct({ text: Schema.String }));\n // templateComputeNode.inputSchema = JsonSchema.toJsonSchema(extendedSchema);\n\n // attachTrigger(functionTrigger, computeModel);\n\n // return addToSpace(PresetName.EMAIL_WITH_SUMMARY, space, canvasModel, computeModel);\n // });\n // cb?.(objects);\n // return objects;\n // },\n // ],\n\n [\n PresetName.FOREX_FUNCTION_CALL,\n async (space, n, cb) => {\n const objects = range(n, () => {\n const canvasModel = CanvasGraphModel.create<ComputeShape>();\n\n canvasModel.builder.call((builder) => {\n const sourceCurrency = canvasModel.createNode(\n createConstant({ value: 'USD', ...position({ x: -10, y: -5 }) }),\n );\n const targetCurrency = canvasModel.createNode(\n createConstant({ value: 'EUR', ...position({ x: -10, y: 5 }) }),\n );\n const converter = canvasModel.createNode(createFunction(position({ x: 0, y: 0 })));\n const view = canvasModel.createNode(createSurface(position({ x: 12, y: 0 })));\n\n builder\n .createEdge({\n source: sourceCurrency.id,\n target: converter.id,\n input: 'from',\n })\n .createEdge({\n source: targetCurrency.id,\n target: converter.id,\n input: 'to',\n })\n .createEdge({\n source: converter.id,\n target: view.id,\n output: 'rate',\n });\n });\n\n const computeModel = createComputeGraph(canvasModel);\n\n return addToSpace(PresetName.FOREX_FUNCTION_CALL, space, canvasModel, computeModel);\n });\n cb?.(objects);\n return objects;\n },\n ],\n\n [\n PresetName.DISCORD_MESSAGES,\n async (space, n, cb) => {\n const objects = range(n, () => {\n const canvasModel = CanvasGraphModel.create<ComputeShape>();\n\n let functionTrigger: Trigger.Trigger | undefined;\n canvasModel.builder.call((builder) => {\n const triggerShape = createTrigger({\n spaceId: space.id,\n triggerKind: 'timer',\n ...position({ x: -10, y: -5 }),\n });\n const trigger = canvasModel.createNode(triggerShape);\n // DXOS dev-null channel.\n const channelId = canvasModel.createNode(\n createConstant({\n value: '1088569858767212554',\n ...position({ x: -10, y: 0 }),\n }),\n );\n const queueId = canvasModel.createNode(\n createConstant({\n value: EID.make({ spaceId: space.id, entityId: Key.EntityId.random() }),\n ...position({ x: -10, y: 5 }),\n }),\n );\n const converter = canvasModel.createNode(createFunction(position({ x: 0, y: 0 })));\n const view = canvasModel.createNode(createText(position({ x: 12, y: 0 })));\n const queue = canvasModel.createNode(createFeed(position({ x: 0, y: 12 })));\n\n builder\n .createEdge({\n source: trigger.id,\n target: converter.id,\n input: 'tick',\n })\n .createEdge({\n source: channelId.id,\n target: converter.id,\n input: 'channelId',\n })\n .createEdge({\n source: queueId.id,\n target: converter.id,\n input: 'queueId',\n })\n .createEdge({\n source: converter.id,\n target: view.id,\n output: 'newMessages',\n })\n .createEdge({\n source: queueId.id,\n target: queue.id,\n input: 'input',\n });\n\n functionTrigger = triggerShape.functionTrigger!.target!;\n });\n\n const computeModel = createComputeGraph(canvasModel);\n attachTrigger(functionTrigger, computeModel);\n\n return addToSpace(PresetName.DISCORD_MESSAGES, space, canvasModel, computeModel);\n });\n cb?.(objects);\n return objects;\n },\n ],\n\n // TODO(wittjosiah): Remove?\n // [\n // PresetName.KANBAN_QUEUE,\n // async (space, n, cb) => {\n // const objects = range(n, () => {\n // const canvasModel = CanvasGraphModel.create<ComputeShape>();\n\n // // TODO(wittjosiah): Integrate directly w/ Kanban.\n // // const results = space.db.query(Filter.type(KanbanType)).runSync();\n // // const kanban = results.find((r) => r.object?.cardView?.target?.query?.type?.endsWith('Message'));\n // // invariant(kanban, 'Kanban not found.');\n\n // const results = space.db.query(Filter.type(TableType)).runSync();\n // const messages = results.find((r) => r.object?.view?.target?.query?.typename?.endsWith('Message'));\n // invariant(messages, 'Table not found.');\n\n // let functionTrigger: FunctionTrigger | undefined;\n // canvasModel.builder.call((builder) => {\n // const triggerShape = createTrigger({\n // spaceId: space.id,\n // triggerKind: 'queue',\n // ...position({ x: -10, y: -5 }),\n // });\n // const trigger = canvasModel.createNode(triggerShape);\n\n // const tableId = canvasModel.createNode(\n // createConstant({\n // value: DXN.fromLocalObjectId(messages.id).toString(),\n // ...position({ x: -10, y: 5 }),\n // }),\n // );\n // const appendToTable = canvasModel.createNode(createAppend(position({ x: 10, y: 0 })));\n\n // builder\n // .createEdge({ source: tableId.id, target: appendToTable.id, input: 'id' })\n // .createEdge({ source: trigger.id, target: appendToTable.id, input: 'items', output: 'item' });\n\n // functionTrigger = triggerShape.functionTrigger!.target!;\n // });\n\n // const computeModel = createComputeGraph(canvasModel);\n // attachTrigger(functionTrigger, computeModel);\n\n // return addToSpace(PresetName.KANBAN_QUEUE, space, canvasModel, computeModel);\n // });\n // cb?.(objects);\n // return objects;\n // },\n // ],\n ] as [PresetName, ObjectGenerator<any>][],\n});\n\nconst createQueueSinkPreset = <SpecType extends Trigger.Kind>(\n space: Space,\n triggerKind: SpecType,\n initSpec: (spec: Obj.Mutable<Extract<Trigger.Spec, { kind: SpecType }>>) => void,\n triggerOutputName: string,\n) => {\n const canvasModel = CanvasGraphModel.create<ComputeShape>();\n\n const template = canvasModel.createNode(\n createTemplate({\n valueType: 'object',\n ...rawPosition({ centerX: -64, centerY: -79, width: 320, height: 320 }),\n }),\n );\n\n let functionTrigger: Trigger.Trigger | undefined;\n canvasModel.builder.call((builder) => {\n const triggerShape = createTrigger({\n spaceId: space.id,\n triggerKind,\n ...rawPosition({ centerX: -578, centerY: -187, height: 320, width: 320 }),\n });\n const trigger = canvasModel.createNode(triggerShape);\n const { queueId } = setupQueue(space, canvasModel, {\n queuePosition: { centerX: -80, centerY: 378, width: 320, height: 448 },\n });\n const append = canvasModel.createNode(\n createAppend(rawPosition({ centerX: 320, centerY: 192, width: 128, height: 122 })),\n );\n const random = canvasModel.createNode(\n createRandom(rawPosition({ centerX: -509, centerY: -30, width: 64, height: 64 })),\n );\n\n builder\n .createEdge({ source: queueId.id, target: append.id, input: 'id' })\n .createEdge({ source: template.id, target: append.id, input: 'items' })\n .createEdge({\n source: trigger.id,\n target: template.id,\n output: triggerOutputName,\n input: 'type',\n })\n .createEdge({\n source: random.id,\n target: template.id,\n input: 'changeId',\n });\n\n functionTrigger = triggerShape.functionTrigger!.target!;\n const triggerSpec = functionTrigger.spec;\n invariant(triggerSpec && triggerSpec.kind === triggerKind, 'No trigger spec.');\n Obj.update(functionTrigger, (functionTrigger) => {\n initSpec(functionTrigger.spec as any);\n });\n });\n\n const computeModel = createComputeGraph(canvasModel);\n\n const templateComputeNode = computeModel.nodes.find((n) => n.id === template.node);\n invariant(templateComputeNode, 'Template compute node was not created.');\n // NOTE: These are plain object mutations during model construction, not ECHO object mutations.\n templateComputeNode.value = ['{', ' \"@type\": \"{{type}}\",', ' \"id\": \"@{{changeId}}\"', '}'].join('\\n');\n templateComputeNode.inputSchema = JsonSchema.toJsonSchema(\n Schema.Struct({ type: Schema.String, changeId: Schema.String }),\n );\n attachTrigger(functionTrigger, computeModel);\n\n return { canvasModel, computeModel };\n};\n\nconst addToSpace = (name: string, space: Space, canvas: CanvasGraphModel, compute: ComputeGraphModel) => {\n return space.db.add(\n Obj.make(CanvasBoard.CanvasBoard, {\n name,\n computeGraph: Ref.make(compute.root),\n layout: canvas.graph,\n }),\n );\n};\n\nconst setupQueue = (\n space: Space,\n canvasModel: CanvasGraphModel,\n args?: { idPosition?: RawPositionInput; queuePosition?: RawPositionInput },\n) => {\n const queueId = canvasModel.createNode(\n createConstant({\n value: EID.make({ spaceId: space.id, entityId: Key.EntityId.random() }),\n ...(args?.idPosition ? rawPosition(args.idPosition) : position({ x: -18, y: 5, width: 8, height: 6 })),\n }),\n );\n const queue = canvasModel.createNode(\n createFeed(\n args?.queuePosition ? rawPosition(args.queuePosition) : position({ x: -3, y: 3, width: 14, height: 10 }),\n ),\n );\n canvasModel.createEdge({ source: queueId.id, target: queue.id });\n return { queue, queueId };\n};\n\nconst attachTrigger = (functionTrigger: Trigger.Trigger | undefined, computeModel: ComputeGraphModel) => {\n invariant(functionTrigger);\n const inputNode = computeModel.nodes.find((node) => node.type === NODE_INPUT)!;\n Obj.update(functionTrigger, (functionTrigger) => {\n // TODO(wittjosiah): Widen Runnable union to include ComputeGraph and remove cast.\n functionTrigger.runnable = Ref.make(computeModel.root) as any;\n functionTrigger.inputNodeId = inputNode.id;\n });\n};\n\ntype RawPositionInput = {\n centerX: number;\n centerY: number;\n width: number;\n height: number;\n};\n\nconst rawPosition = (args: RawPositionInput) => {\n return {\n center: { x: args.centerX, y: args.centerY },\n size: { width: args.width, height: args.height },\n };\n};\n\nconst position = (rect: { x: number; y: number; width?: number; height?: number }) => {\n const snap = 32;\n const [center, size] = rectToPoints({ width: 0, height: 0, ...rect });\n const { x, y, width, height } = pointsToRect([pointMultiply(center, snap), pointMultiply(size, snap)]);\n if (width && height) {\n return {\n center: { x, y },\n size: width && height ? { width, height } : undefined,\n };\n } else {\n return { center: { x, y } };\n }\n};\n", "//\n// Copyright 2024 DXOS.org\n//\n\nimport { addressToA1Notation } from '@dxos/compute-hyperformula';\nimport { ComputeGraph, ComputeGraphModel, DEFAULT_OUTPUT, NODE_INPUT, NODE_OUTPUT } from '@dxos/conductor';\nimport { EID, Filter, Key, Type, View } from '@dxos/echo';\nimport { OperationInvoker } from '@dxos/operation';\nimport { Markdown } from '@dxos/plugin-markdown';\nimport { Sheet } from '@dxos/plugin-sheet';\nimport { Sketch } from '@dxos/plugin-sketch';\nimport { SpaceOperation } from '@dxos/plugin-space';\nimport { random } from '@dxos/random';\nimport { type Client } from '@dxos/react-client';\nimport { type Space } from '@dxos/react-client/echo';\nimport { getTypeURIFromQuery } from '@dxos/schema';\nimport { type ValueGenerator, createAsyncGenerator } from '@dxos/schema/testing';\nimport { range } from '@dxos/util';\n\nconst generator: ValueGenerator = random as any;\n\nconst findViewByTypeUri = async (views: View.View[], typeUri: string) => {\n return views.find((view) => getTypeURIFromQuery(view.query.ast) === typeUri);\n};\n\nexport type ObjectGenerator<T> = (space: Space, n: number, cb?: (objects: T[]) => void) => Promise<T[]>;\n\nexport const createGenerator = <S extends Type.AnyObj>(\n client: Client,\n invokePromise: OperationInvoker.OperationInvoker['invokePromise'],\n schema: S,\n): ObjectGenerator<Type.InstanceType<S>> => {\n return async (space: Space, n: number): Promise<Type.InstanceType<S>[]> => {\n const typename = Type.getTypename(schema);\n\n // Find or create table and view.\n const views = await space.db.query(Filter.type(View.View)).run();\n const view = await findViewByTypeUri(views, Type.getURI(schema));\n const staticSchema = client\n ? client.graph.registry\n .list()\n .filter(Type.isType)\n .find((s) => Type.getTypename(s) === typename)\n : undefined;\n if (!view && !staticSchema) {\n await invokePromise(SpaceOperation.AddType, { db: space.db, type: schema, show: false });\n }\n\n // Create objects.\n const generate = createAsyncGenerator(generator, schema, { db: space.db });\n return generate.createObjects(n);\n };\n};\n\nexport const staticGenerators = new Map<string, ObjectGenerator<any>>([\n [\n Type.getTypename(Markdown.Document),\n async (space, n, cb) => {\n const objects = range(n).map(() => {\n return space.db.add(\n Markdown.make({\n name: random.commerce.productName(),\n content: random.lorem.sentences(5),\n }),\n );\n });\n\n cb?.(objects);\n return objects;\n },\n ],\n [\n Type.getTypename(Sketch.Sketch),\n async (space, n, cb) => {\n const objects = range(n).map(() => {\n const obj = space.db.add(Sketch.make({ name: random.commerce.productName() }));\n return obj;\n });\n\n cb?.(objects);\n return objects;\n },\n ],\n // TODO(burdon): Create unit tests.\n [\n Type.getTypename(Sheet.Sheet),\n async (space, n, cb) => {\n const objects = range(n).map(() => {\n const cells: Record<string, Sheet.CellValue> = {};\n const year = new Date().getFullYear();\n const cols = 4;\n const rows = 16;\n for (let col = 1; col <= cols; col++) {\n for (let row = 1; row <= rows; row++) {\n const cell = addressToA1Notation({ col, row });\n if (row === 1) {\n cells[cell] = { value: `${year} Q${col}` };\n } else if (row === rows) {\n const from = addressToA1Notation({ col, row: 2 });\n const to = addressToA1Notation({ col, row: rows - 1 });\n cells[cell] = { value: `=SUM(${from}:${to})` };\n } else if (row > 2 && row < rows - 1) {\n cells[cell] = { value: Math.floor(Math.random() * 10_000) };\n }\n }\n }\n\n // TODO(burdon): Set width.\n // TODO(burdon): Set formatting for columns.\n return space.db.add(\n Sheet.make({\n name: random.commerce.productName(),\n cells,\n }),\n );\n });\n\n cb?.(objects);\n return objects;\n },\n ],\n [\n Type.getTypename(ComputeGraph),\n async (space, n, cb) => {\n const objects = range(n, () => {\n const model = ComputeGraphModel.create();\n model.builder\n .createNode({ id: 'gpt-INPUT', type: NODE_INPUT })\n .createNode({ id: 'gpt-GPT', type: 'gpt' })\n .createNode({\n id: 'gpt-QUEUE_ID',\n type: 'constant',\n value: EID.make({ spaceId: space.id, entityId: Key.EntityId.random() }),\n })\n .createNode({ id: 'gpt-APPEND', type: 'append' })\n .createNode({ id: 'gpt-OUTPUT', type: NODE_OUTPUT })\n .createEdge({ node: 'gpt-INPUT', property: 'prompt' }, { node: 'gpt-GPT', property: 'prompt' })\n .createEdge({ node: 'gpt-GPT', property: 'text' }, { node: 'gpt-OUTPUT', property: 'text' })\n .createEdge({ node: 'gpt-QUEUE_ID', property: DEFAULT_OUTPUT }, { node: 'gpt-APPEND', property: 'id' })\n .createEdge({ node: 'gpt-GPT', property: 'messages' }, { node: 'gpt-APPEND', property: 'items' })\n .createEdge({ node: 'gpt-QUEUE_ID', property: DEFAULT_OUTPUT }, { node: 'gpt-OUTPUT', property: 'queue' });\n\n return space.db.add(model.root);\n });\n cb?.(objects);\n return objects;\n },\n ],\n]);\n"],
|
|
5
|
+
"mappings": "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",
|
|
6
|
+
"names": ["React", "IconButton", "SchemaTable", "types", "objects", "label", "onClick", "div", "className", "h2", "map", "type", "key", "typename", "variant", "icon", "iconOnly", "Schema", "RunInstructions", "WebSearchSkill", "Instructions", "Operation", "Trigger", "NODE_INPUT", "Feed", "Filter", "JsonSchema", "Key", "Obj", "Query", "Ref", "Scope", "Tag", "invariant", "DXN", "EID", "InboxOperation", "Mailbox", "Markdown", "createAppend", "createChat", "createComputeGraph", "createConstant", "createFeed", "createFunction", "createGpt", "createRandom", "createSurface", "createTemplate", "createText", "createTrigger", "CanvasBoard", "CanvasGraphModel", "pointMultiply", "pointsToRect", "rectToPoints", "ViewModel", "Message", "Organization", "Person", "Pipeline", "range", "trim", "PresetName", "types", "Object", "org", "space", "website", "content", "tagRef", "doc", "tags", "fullName", "organization", "make", "cb", "objects", "mailbox", "mailboxes", "mailboxFeed", "queueDxn", "getQueueUri", "tag", "label", "first", "tagUri", "contactsQuery", "organizationsQuery", "notesQuery", "select", "type", "Document", "db", "enabled", "spec", "specTimer", "runnable", "input", "description", "specSubscription", "instructions", "researchPrompt", "labels", "contains", "feed", "jsonSchema", "contactsView", "toJsonSchema", "organizationsView", "notesView", "add", "columns", "name", "order", "canvasModel", "functionTrigger", "call", "builder", "y", "triggerShape", "triggerKind", "position", "x", "width", "height", "queueId", "target", "output", "createEdge", "source", "gpt", "text", "append", "attachTrigger", "addToSpace", "ast", "computeModel", "createNode", "chat", "sourceCurrency", "value", "view", "converter", "spaceId", "channelId", "entityId", "queue", "createQueueSinkPreset", "valueType", "rawPosition", "centerX", "queuePosition", "centerY", "random", "id", "template", "triggerOutputName", "triggerSpec", "update", "initSpec", "templateComputeNode", "join", "computeGraph", "compute", "layout", "setupQueue", "args", "idPosition", "node", "size", "center", "snap", "undefined", "addressToA1Notation", "ComputeGraph", "ComputeGraphModel", "DEFAULT_OUTPUT", "NODE_INPUT", "NODE_OUTPUT", "EID", "Filter", "Key", "Type", "View", "Markdown", "Sheet", "Sketch", "SpaceOperation", "random", "getTypeURIFromQuery", "createAsyncGenerator", "range", "generator", "findViewByTypeUri", "views", "typeUri", "find", "view", "query", "ast", "createGenerator", "client", "invokePromise", "schema", "space", "n", "typename", "getTypename", "db", "type", "run", "getURI", "staticSchema", "graph", "registry", "list", "filter", "isType", "s", "undefined", "AddType", "show", "generate", "createObjects", "staticGenerators", "Map", "Document", "cb", "objects", "map", "add", "make", "name", "commerce", "productName", "content", "lorem", "sentences", "obj", "cells", "year", "Date", "getFullYear", "cols", "rows", "col", "row", "cell", "value", "from", "to", "Math", "floor", "model", "create", "builder", "createNode", "id", "spaceId", "entityId", "EntityId", "createEdge", "node", "property", "root"]
|
|
7
7
|
}
|
|
@@ -3,17 +3,19 @@ import "../chunk-J5LGTIGS.mjs";
|
|
|
3
3
|
// src/containers/index.ts
|
|
4
4
|
import { lazy } from "react";
|
|
5
5
|
var DebugGraph = lazy(() => import("../DebugGraph-G4FWS57E.mjs"));
|
|
6
|
-
var
|
|
6
|
+
var DebugSettings = lazy(() => import("../DebugSettings-Q3WUL6YQ.mjs"));
|
|
7
|
+
var DebugObjectPanel = lazy(() => import("../DebugObjectPanel-QSGQJ3LM.mjs"));
|
|
7
8
|
var DebugStatus = lazy(() => import("../DebugStatus-H2BAHN26.mjs"));
|
|
8
|
-
var DevtoolsOverviewContainer = lazy(() => import("../DevtoolsOverviewContainer-
|
|
9
|
+
var DevtoolsOverviewContainer = lazy(() => import("../DevtoolsOverviewContainer-DWQHTK7D.mjs"));
|
|
9
10
|
var SpaceGenerator = lazy(() => import("../SpaceGenerator-Y35G6DRV.mjs"));
|
|
10
11
|
var Wireframe = lazy(() => import("../Wireframe-WD7S2AUU.mjs"));
|
|
11
|
-
var DebugSpaceObjectsPanel = lazy(() => import("../DebugSpaceObjectsPanel-
|
|
12
|
-
var GithubPanel = lazy(() => import("../GithubPanel-
|
|
12
|
+
var DebugSpaceObjectsPanel = lazy(() => import("../DebugSpaceObjectsPanel-AXFZWEIM.mjs"));
|
|
13
|
+
var GithubPanel = lazy(() => import("../GithubPanel-4CSJRVKE.mjs"));
|
|
13
14
|
var RegistryPanel = lazy(() => import("../RegistryPanel-64GIYJHN.mjs"));
|
|
14
15
|
export {
|
|
15
16
|
DebugGraph,
|
|
16
17
|
DebugObjectPanel,
|
|
18
|
+
DebugSettings,
|
|
17
19
|
DebugSpaceObjectsPanel,
|
|
18
20
|
DebugStatus,
|
|
19
21
|
DevtoolsOverviewContainer,
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../../src/containers/index.ts"],
|
|
4
|
-
"sourcesContent": ["//\n// Copyright 2023 DXOS.org\n//\n\nimport { type ComponentType, lazy } from 'react';\n\nexport const DebugGraph: ComponentType<any> = lazy(() => import('./DebugGraph'));\nexport const DebugObjectPanel: ComponentType<any> = lazy(() => import('./DebugObjectPanel'));\nexport const DebugStatus: ComponentType<any> = lazy(() => import('./DebugStatus'));\nexport const DevtoolsOverviewContainer: ComponentType<any> = lazy(() => import('./DevtoolsOverviewContainer'));\nexport const SpaceGenerator: ComponentType<any> = lazy(() => import('./SpaceGenerator'));\nexport const Wireframe: ComponentType<any> = lazy(() => import('./Wireframe'));\nexport const DebugSpaceObjectsPanel: ComponentType<any> = lazy(() => import('./DebugSpaceObjectsPanel'));\nexport const GithubPanel: ComponentType<any> = lazy(() => import('./GithubPanel'));\nexport const RegistryPanel: ComponentType<any> = lazy(() => import('./RegistryPanel'));\n"],
|
|
5
|
-
"mappings": ";;;AAIA,SAA6BA,YAAY;AAElC,IAAMC,aAAiCD,KAAK,MAAM,OAAO,4BAAA,CAAA;AACzD,IAAME,
|
|
6
|
-
"names": ["lazy", "DebugGraph", "DebugObjectPanel", "DebugStatus", "DevtoolsOverviewContainer", "SpaceGenerator", "Wireframe", "DebugSpaceObjectsPanel", "GithubPanel", "RegistryPanel"]
|
|
4
|
+
"sourcesContent": ["//\n// Copyright 2023 DXOS.org\n//\n\nimport { type ComponentType, lazy } from 'react';\n\nexport const DebugGraph: ComponentType<any> = lazy(() => import('./DebugGraph'));\nexport const DebugSettings: ComponentType<any> = lazy(() => import('./DebugSettings'));\nexport const DebugObjectPanel: ComponentType<any> = lazy(() => import('./DebugObjectPanel'));\nexport const DebugStatus: ComponentType<any> = lazy(() => import('./DebugStatus'));\nexport const DevtoolsOverviewContainer: ComponentType<any> = lazy(() => import('./DevtoolsOverviewContainer'));\nexport const SpaceGenerator: ComponentType<any> = lazy(() => import('./SpaceGenerator'));\nexport const Wireframe: ComponentType<any> = lazy(() => import('./Wireframe'));\nexport const DebugSpaceObjectsPanel: ComponentType<any> = lazy(() => import('./DebugSpaceObjectsPanel'));\nexport const GithubPanel: ComponentType<any> = lazy(() => import('./GithubPanel'));\nexport const RegistryPanel: ComponentType<any> = lazy(() => import('./RegistryPanel'));\n"],
|
|
5
|
+
"mappings": ";;;AAIA,SAA6BA,YAAY;AAElC,IAAMC,aAAiCD,KAAK,MAAM,OAAO,4BAAA,CAAA;AACzD,IAAME,gBAAoCF,KAAK,MAAM,OAAO,+BAAA,CAAA;AAC5D,IAAMG,mBAAuCH,KAAK,MAAM,OAAO,kCAAA,CAAA;AAC/D,IAAMI,cAAkCJ,KAAK,MAAM,OAAO,6BAAA,CAAA;AAC1D,IAAMK,4BAAgDL,KAAK,MAAM,OAAO,2CAAA,CAAA;AACxE,IAAMM,iBAAqCN,KAAK,MAAM,OAAO,gCAAA,CAAA;AAC7D,IAAMO,YAAgCP,KAAK,MAAM,OAAO,2BAAA,CAAA;AACxD,IAAMQ,yBAA6CR,KAAK,MAAM,OAAO,wCAAA,CAAA;AACrE,IAAMS,cAAkCT,KAAK,MAAM,OAAO,6BAAA,CAAA;AAC1D,IAAMU,gBAAoCV,KAAK,MAAM,OAAO,+BAAA,CAAA;",
|
|
6
|
+
"names": ["lazy", "DebugGraph", "DebugSettings", "DebugObjectPanel", "DebugStatus", "DevtoolsOverviewContainer", "SpaceGenerator", "Wireframe", "DebugSpaceObjectsPanel", "GithubPanel", "RegistryPanel"]
|
|
7
7
|
}
|
|
@@ -1,17 +1,19 @@
|
|
|
1
1
|
import {
|
|
2
2
|
DebugCapabilities,
|
|
3
3
|
DebugContext,
|
|
4
|
-
|
|
4
|
+
DevtoolsOverview,
|
|
5
|
+
Devtools_exports,
|
|
5
6
|
Settings_exports
|
|
6
|
-
} from "./chunk-
|
|
7
|
+
} from "./chunk-72QXLYMI.mjs";
|
|
7
8
|
import {
|
|
8
9
|
meta
|
|
9
|
-
} from "./chunk-
|
|
10
|
+
} from "./chunk-R5C4CKOF.mjs";
|
|
10
11
|
import "./chunk-J5LGTIGS.mjs";
|
|
11
12
|
export {
|
|
12
13
|
DebugCapabilities,
|
|
13
14
|
DebugContext,
|
|
14
|
-
Devtools,
|
|
15
|
+
Devtools_exports as Devtools,
|
|
16
|
+
DevtoolsOverview,
|
|
15
17
|
Settings_exports as Settings,
|
|
16
18
|
meta
|
|
17
19
|
};
|