@dxos/plugin-debug 0.8.4-main.c4373fc → 0.8.4-main.c85a9c8dae

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (188) hide show
  1. package/dist/lib/browser/DebugGraph-7HXJ2PS2.mjs +16 -0
  2. package/dist/lib/browser/DebugGraph-7HXJ2PS2.mjs.map +7 -0
  3. package/dist/lib/browser/DebugObjectPanel-3TCDNUNW.mjs +33 -0
  4. package/dist/lib/browser/DebugObjectPanel-3TCDNUNW.mjs.map +7 -0
  5. package/dist/lib/browser/DebugSettings-JZMIUDYB.mjs +174 -0
  6. package/dist/lib/browser/DebugSettings-JZMIUDYB.mjs.map +7 -0
  7. package/dist/lib/browser/DebugSpaceObjectsPanel-7NRPLWZ4.mjs +50 -0
  8. package/dist/lib/browser/DebugSpaceObjectsPanel-7NRPLWZ4.mjs.map +7 -0
  9. package/dist/lib/browser/DebugStatus-COQGH37G.mjs +125 -0
  10. package/dist/lib/browser/DebugStatus-COQGH37G.mjs.map +7 -0
  11. package/dist/lib/browser/DevtoolsOverviewContainer-C75NFVER.mjs +20 -0
  12. package/dist/lib/browser/DevtoolsOverviewContainer-C75NFVER.mjs.map +7 -0
  13. package/dist/lib/browser/{SpaceGenerator-54FUIZIH.mjs → SpaceGenerator-SWSGJEEL.mjs} +476 -461
  14. package/dist/lib/browser/SpaceGenerator-SWSGJEEL.mjs.map +7 -0
  15. package/dist/lib/browser/Wireframe-KAGOKEFW.mjs +53 -0
  16. package/dist/lib/browser/Wireframe-KAGOKEFW.mjs.map +7 -0
  17. package/dist/lib/browser/app-graph-builder-LGUQNXHD.mjs +625 -0
  18. package/dist/lib/browser/app-graph-builder-LGUQNXHD.mjs.map +7 -0
  19. package/dist/lib/browser/{chunk-SRV2AIGJ.mjs → chunk-4UFQXPP7.mjs} +11 -1
  20. package/dist/lib/browser/chunk-4UFQXPP7.mjs.map +7 -0
  21. package/dist/lib/browser/chunk-A5H5GRV6.mjs +20 -0
  22. package/dist/lib/browser/chunk-A5H5GRV6.mjs.map +7 -0
  23. package/dist/lib/browser/index.mjs +42 -41
  24. package/dist/lib/browser/index.mjs.map +4 -4
  25. package/dist/lib/browser/meta.json +1 -1
  26. package/dist/lib/browser/react-context-I3USIAF6.mjs +17 -0
  27. package/dist/lib/browser/react-context-I3USIAF6.mjs.map +7 -0
  28. package/dist/lib/browser/react-surface-BTVNKKVQ.mjs +443 -0
  29. package/dist/lib/browser/react-surface-BTVNKKVQ.mjs.map +7 -0
  30. package/dist/lib/browser/settings-SLTQJJNF.mjs +32 -0
  31. package/dist/lib/browser/settings-SLTQJJNF.mjs.map +7 -0
  32. package/dist/types/src/DebugPlugin.d.ts +7 -1
  33. package/dist/types/src/DebugPlugin.d.ts.map +1 -1
  34. package/dist/types/src/capabilities/app-graph-builder/app-graph-builder.d.ts +6 -0
  35. package/dist/types/src/capabilities/app-graph-builder/app-graph-builder.d.ts.map +1 -0
  36. package/dist/types/src/capabilities/app-graph-builder/index.d.ts +3 -0
  37. package/dist/types/src/capabilities/app-graph-builder/index.d.ts.map +1 -0
  38. package/dist/types/src/capabilities/index.d.ts +4 -8
  39. package/dist/types/src/capabilities/index.d.ts.map +1 -1
  40. package/dist/types/src/capabilities/react-context/index.d.ts +7 -0
  41. package/dist/types/src/capabilities/react-context/index.d.ts.map +1 -0
  42. package/dist/types/src/capabilities/react-context/react-context.d.ts +10 -0
  43. package/dist/types/src/capabilities/react-context/react-context.d.ts.map +1 -0
  44. package/dist/types/src/capabilities/react-surface/index.d.ts +5 -0
  45. package/dist/types/src/capabilities/react-surface/index.d.ts.map +1 -0
  46. package/dist/types/src/capabilities/react-surface/react-surface.d.ts +9 -0
  47. package/dist/types/src/capabilities/react-surface/react-surface.d.ts.map +1 -0
  48. package/dist/types/src/capabilities/settings/index.d.ts +3 -0
  49. package/dist/types/src/capabilities/settings/index.d.ts.map +1 -0
  50. package/dist/types/src/capabilities/settings/settings.d.ts +6 -0
  51. package/dist/types/src/capabilities/settings/settings.d.ts.map +1 -0
  52. package/dist/types/src/components/SchemaTable/SchemaTable.d.ts.map +1 -0
  53. package/dist/types/src/components/SchemaTable/index.d.ts +2 -0
  54. package/dist/types/src/components/SchemaTable/index.d.ts.map +1 -0
  55. package/dist/types/src/components/SpaceGenerator/ObjectGenerator.d.ts +5 -5
  56. package/dist/types/src/components/SpaceGenerator/ObjectGenerator.d.ts.map +1 -1
  57. package/dist/types/src/components/SpaceGenerator/index.d.ts +2 -2
  58. package/dist/types/src/components/SpaceGenerator/index.d.ts.map +1 -1
  59. package/dist/types/src/components/SpaceGenerator/presets.d.ts +2 -5
  60. package/dist/types/src/components/SpaceGenerator/presets.d.ts.map +1 -1
  61. package/dist/types/src/components/index.d.ts +2 -10
  62. package/dist/types/src/components/index.d.ts.map +1 -1
  63. package/dist/types/src/containers/DebugGraph/DebugGraph.d.ts +8 -0
  64. package/dist/types/src/containers/DebugGraph/DebugGraph.d.ts.map +1 -0
  65. package/dist/types/src/containers/DebugGraph/index.d.ts +3 -0
  66. package/dist/types/src/containers/DebugGraph/index.d.ts.map +1 -0
  67. package/dist/types/src/{components → containers/DebugObjectPanel}/DebugObjectPanel.d.ts +2 -2
  68. package/dist/types/src/containers/DebugObjectPanel/DebugObjectPanel.d.ts.map +1 -0
  69. package/dist/types/src/containers/DebugObjectPanel/index.d.ts +3 -0
  70. package/dist/types/src/containers/DebugObjectPanel/index.d.ts.map +1 -0
  71. package/dist/types/src/containers/DebugSettings/DebugSettings.d.ts +10 -0
  72. package/dist/types/src/containers/DebugSettings/DebugSettings.d.ts.map +1 -0
  73. package/dist/types/src/containers/DebugSettings/index.d.ts +3 -0
  74. package/dist/types/src/containers/DebugSettings/index.d.ts.map +1 -0
  75. package/dist/types/src/containers/DebugSpaceObjectsPanel/DebugSpaceObjectsPanel.d.ts +3 -0
  76. package/dist/types/src/containers/DebugSpaceObjectsPanel/DebugSpaceObjectsPanel.d.ts.map +1 -0
  77. package/dist/types/src/containers/DebugSpaceObjectsPanel/index.d.ts +3 -0
  78. package/dist/types/src/containers/DebugSpaceObjectsPanel/index.d.ts.map +1 -0
  79. package/dist/types/src/containers/DebugStatus/DebugStatus.d.ts.map +1 -0
  80. package/dist/types/src/containers/DebugStatus/index.d.ts +3 -0
  81. package/dist/types/src/containers/DebugStatus/index.d.ts.map +1 -0
  82. package/dist/types/src/{components → containers/DevtoolsOverviewContainer}/DevtoolsOverviewContainer.d.ts +0 -1
  83. package/dist/types/src/containers/DevtoolsOverviewContainer/DevtoolsOverviewContainer.d.ts.map +1 -0
  84. package/dist/types/src/containers/DevtoolsOverviewContainer/index.d.ts +3 -0
  85. package/dist/types/src/containers/DevtoolsOverviewContainer/index.d.ts.map +1 -0
  86. package/dist/types/src/{components → containers}/SpaceGenerator/SpaceGenerator.d.ts +2 -2
  87. package/dist/types/src/containers/SpaceGenerator/SpaceGenerator.d.ts.map +1 -0
  88. package/dist/types/src/containers/SpaceGenerator/index.d.ts +3 -0
  89. package/dist/types/src/containers/SpaceGenerator/index.d.ts.map +1 -0
  90. package/dist/types/src/{components → containers/Wireframe}/Wireframe.d.ts +2 -2
  91. package/dist/types/src/containers/Wireframe/Wireframe.d.ts.map +1 -0
  92. package/dist/types/src/containers/Wireframe/index.d.ts +3 -0
  93. package/dist/types/src/containers/Wireframe/index.d.ts.map +1 -0
  94. package/dist/types/src/containers/index.d.ts +10 -0
  95. package/dist/types/src/containers/index.d.ts.map +1 -0
  96. package/dist/types/src/meta.d.ts +2 -2
  97. package/dist/types/src/meta.d.ts.map +1 -1
  98. package/dist/types/src/translations.d.ts +3 -1
  99. package/dist/types/src/translations.d.ts.map +1 -1
  100. package/dist/types/src/types.d.ts +5 -0
  101. package/dist/types/src/types.d.ts.map +1 -1
  102. package/dist/types/tsconfig.tsbuildinfo +1 -1
  103. package/package.json +75 -69
  104. package/src/DebugPlugin.tsx +27 -31
  105. package/src/capabilities/app-graph-builder/app-graph-builder.ts +441 -0
  106. package/src/capabilities/app-graph-builder/index.ts +7 -0
  107. package/src/capabilities/index.ts +4 -6
  108. package/src/capabilities/react-context/index.ts +7 -0
  109. package/src/capabilities/react-context/react-context.tsx +20 -0
  110. package/src/capabilities/react-surface/index.ts +7 -0
  111. package/src/capabilities/react-surface/react-surface.tsx +428 -0
  112. package/src/capabilities/settings/index.ts +7 -0
  113. package/src/capabilities/settings/settings.ts +31 -0
  114. package/src/components/SchemaTable/index.ts +5 -0
  115. package/src/components/SpaceGenerator/ObjectGenerator.tsx +26 -32
  116. package/src/components/SpaceGenerator/index.ts +2 -3
  117. package/src/components/SpaceGenerator/presets.ts +258 -141
  118. package/src/components/index.ts +2 -10
  119. package/src/containers/DebugGraph/DebugGraph.tsx +13 -0
  120. package/src/containers/DebugGraph/index.ts +7 -0
  121. package/src/containers/DebugObjectPanel/DebugObjectPanel.tsx +45 -0
  122. package/src/containers/DebugObjectPanel/index.ts +7 -0
  123. package/src/{components → containers/DebugSettings}/DebugSettings.tsx +78 -36
  124. package/src/containers/DebugSettings/index.ts +7 -0
  125. package/src/containers/DebugSpaceObjectsPanel/DebugSpaceObjectsPanel.tsx +60 -0
  126. package/src/containers/DebugSpaceObjectsPanel/index.ts +7 -0
  127. package/src/containers/DebugStatus/index.ts +7 -0
  128. package/src/{components → containers/DevtoolsOverviewContainer}/DevtoolsOverviewContainer.tsx +2 -4
  129. package/src/containers/DevtoolsOverviewContainer/index.ts +7 -0
  130. package/src/containers/SpaceGenerator/SpaceGenerator.tsx +127 -0
  131. package/src/containers/SpaceGenerator/index.ts +7 -0
  132. package/src/{components → containers/Wireframe}/Wireframe.tsx +6 -7
  133. package/src/containers/Wireframe/index.ts +7 -0
  134. package/src/containers/index.ts +14 -0
  135. package/src/meta.ts +7 -4
  136. package/src/translations.ts +3 -1
  137. package/src/types.ts +8 -0
  138. package/dist/lib/browser/DebugGraph-EDOH6R2G.mjs +0 -20
  139. package/dist/lib/browser/DebugGraph-EDOH6R2G.mjs.map +0 -7
  140. package/dist/lib/browser/DevtoolsOverviewContainer-EPD6EWT5.mjs +0 -25
  141. package/dist/lib/browser/DevtoolsOverviewContainer-EPD6EWT5.mjs.map +0 -7
  142. package/dist/lib/browser/SpaceGenerator-54FUIZIH.mjs.map +0 -7
  143. package/dist/lib/browser/app-graph-builder-I4IHBKKN.mjs +0 -588
  144. package/dist/lib/browser/app-graph-builder-I4IHBKKN.mjs.map +0 -7
  145. package/dist/lib/browser/chunk-SRV2AIGJ.mjs.map +0 -7
  146. package/dist/lib/browser/chunk-SVCKCXCL.mjs +0 -16
  147. package/dist/lib/browser/chunk-SVCKCXCL.mjs.map +0 -7
  148. package/dist/lib/browser/react-context-QLZE7VSQ.mjs +0 -16
  149. package/dist/lib/browser/react-context-QLZE7VSQ.mjs.map +0 -7
  150. package/dist/lib/browser/react-surface-BTWJ2I3F.mjs +0 -772
  151. package/dist/lib/browser/react-surface-BTWJ2I3F.mjs.map +0 -7
  152. package/dist/lib/browser/settings-EBVICEEW.mjs +0 -22
  153. package/dist/lib/browser/settings-EBVICEEW.mjs.map +0 -7
  154. package/dist/types/src/capabilities/app-graph-builder.d.ts +0 -4
  155. package/dist/types/src/capabilities/app-graph-builder.d.ts.map +0 -1
  156. package/dist/types/src/capabilities/react-context.d.ts +0 -8
  157. package/dist/types/src/capabilities/react-context.d.ts.map +0 -1
  158. package/dist/types/src/capabilities/react-surface.d.ts +0 -4
  159. package/dist/types/src/capabilities/react-surface.d.ts.map +0 -1
  160. package/dist/types/src/capabilities/settings.d.ts +0 -4
  161. package/dist/types/src/capabilities/settings.d.ts.map +0 -1
  162. package/dist/types/src/components/Container.d.ts +0 -5
  163. package/dist/types/src/components/Container.d.ts.map +0 -1
  164. package/dist/types/src/components/DebugGraph.d.ts +0 -8
  165. package/dist/types/src/components/DebugGraph.d.ts.map +0 -1
  166. package/dist/types/src/components/DebugObjectPanel.d.ts.map +0 -1
  167. package/dist/types/src/components/DebugSettings.d.ts +0 -6
  168. package/dist/types/src/components/DebugSettings.d.ts.map +0 -1
  169. package/dist/types/src/components/DebugStatus.d.ts.map +0 -1
  170. package/dist/types/src/components/DevtoolsOverviewContainer.d.ts.map +0 -1
  171. package/dist/types/src/components/SpaceGenerator/SchemaTable.d.ts.map +0 -1
  172. package/dist/types/src/components/SpaceGenerator/SpaceGenerator.d.ts.map +0 -1
  173. package/dist/types/src/components/SpaceGenerator/SpaceGenerator.stories.d.ts +0 -15
  174. package/dist/types/src/components/SpaceGenerator/SpaceGenerator.stories.d.ts.map +0 -1
  175. package/dist/types/src/components/Wireframe.d.ts.map +0 -1
  176. package/src/capabilities/app-graph-builder.ts +0 -431
  177. package/src/capabilities/react-context.tsx +0 -16
  178. package/src/capabilities/react-surface.tsx +0 -399
  179. package/src/capabilities/settings.ts +0 -19
  180. package/src/components/Container.tsx +0 -15
  181. package/src/components/DebugGraph.tsx +0 -14
  182. package/src/components/DebugObjectPanel.tsx +0 -33
  183. package/src/components/SpaceGenerator/SpaceGenerator.stories.tsx +0 -52
  184. package/src/components/SpaceGenerator/SpaceGenerator.tsx +0 -122
  185. /package/dist/types/src/components/{SpaceGenerator → SchemaTable}/SchemaTable.d.ts +0 -0
  186. /package/dist/types/src/{components → containers/DebugStatus}/DebugStatus.d.ts +0 -0
  187. /package/src/components/{SpaceGenerator → SchemaTable}/SchemaTable.tsx +0 -0
  188. /package/src/{components → containers/DebugStatus}/DebugStatus.tsx +0 -0
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../src/containers/SpaceGenerator/SpaceGenerator.tsx", "../../../src/components/SchemaTable/SchemaTable.tsx", "../../../src/components/SpaceGenerator/presets.ts", "../../../src/components/SpaceGenerator/ObjectGenerator.tsx", "../../../src/containers/SpaceGenerator/index.ts"],
4
+ "sourcesContent": ["//\n// Copyright 2024 DXOS.org\n//\n\nimport React, { useCallback, useMemo, useState } from 'react';\n\nimport { useOperationInvoker } from '@dxos/app-framework/ui';\nimport { ComputeGraph } from '@dxos/conductor';\nimport { Filter, Obj, type Type } from '@dxos/echo';\nimport { Markdown } from '@dxos/plugin-markdown/types';\nimport { Sheet } from '@dxos/plugin-sheet/types';\nimport { Diagram } from '@dxos/plugin-sketch/types';\nimport { useClient } from '@dxos/react-client';\nimport { type Space } from '@dxos/react-client/echo';\nimport { IconButton, Input, Panel, ScrollArea, Toolbar, useAsyncEffect } from '@dxos/react-ui';\nimport { SyntaxHighlighter } from '@dxos/react-ui-syntax-highlighter';\nimport { Organization, Person, Task } from '@dxos/types';\nimport { jsonKeyReplacer, sortKeys } from '@dxos/util';\n\nimport { type ObjectGenerator, SchemaTable, createGenerator, generator, staticGenerators } from '../../components';\n\nexport type SpaceGeneratorProps = {\n space: Space;\n onCreateObjects?: (objects: Obj.Unknown[]) => void;\n};\n\nexport const SpaceGenerator = ({ space, onCreateObjects }: SpaceGeneratorProps) => {\n const { invokePromise } = useOperationInvoker();\n const client = useClient();\n const staticTypes = [Markdown.Document, Diagram.Diagram, Sheet.Sheet, ComputeGraph]; // TODO(burdon): Make extensible.\n const recordTypes: Type.AnyObj[] = [Organization.Organization, Person.Person, Task.Task];\n const [count, setCount] = useState(1);\n const [info, setInfo] = useState<any>({});\n const presets = useMemo(() => generator(), []);\n\n // Register types.\n useAsyncEffect(async () => {\n await client.addTypes([...staticTypes, ...recordTypes, ...presets.schemas]);\n }, [client]);\n\n // Create type generators.\n const typeMap = useMemo(() => {\n const recordGenerators = new Map<string, ObjectGenerator<any>>(\n recordTypes.map((type) => [type.typename, createGenerator(client, invokePromise, type)]),\n );\n\n return new Map([...staticGenerators, ...presets.items, ...recordGenerators]);\n }, [client, recordTypes, invokePromise]);\n\n // Query space to get info.\n const updateInfo = async () => {\n // Create schema map.\n const echoSchema = await space.db.schemaRegistry.query().run();\n const staticSchema = await space.db.graph.schemaRegistry.query().run();\n\n // Create object map.\n const objects = await space.db.query(Filter.everything()).run();\n const objectMap = sortKeys(\n objects.reduce<Record<string, number>>((map, obj) => {\n const type = Obj.getTypename(obj);\n if (type) {\n const count = map[type] ?? 0;\n map[type] = count + 1;\n }\n\n return map;\n }, {}),\n );\n\n setInfo({\n schema: {\n static: staticSchema.length,\n mutable: echoSchema.length,\n },\n objects: objectMap,\n });\n };\n\n useAsyncEffect(updateInfo, [space]);\n\n const handleCreateData = useCallback(\n async (typename: string) => {\n const constructor = typeMap.get(typename);\n if (constructor) {\n // TODO(burdon): Input to specify number of objects.\n await constructor(space, count, onCreateObjects);\n await updateInfo();\n }\n },\n [typeMap, count],\n );\n\n return (\n <Panel.Root>\n <Panel.Toolbar asChild>\n <Toolbar.Root>\n <IconButton icon='ph--arrow-clockwise--regular' iconOnly label='Refresh' onClick={updateInfo} />\n <Toolbar.Separator />\n <Input.Root>\n <Input.TextInput\n type='number'\n placeholder='Count'\n classNames='w-[4rem] text-right'\n min={1}\n max={100}\n size={8}\n value={count}\n onChange={(event) => setCount(parseInt(event.target.value))}\n />\n </Input.Root>\n </Toolbar.Root>\n </Panel.Toolbar>\n <Panel.Content asChild>\n <ScrollArea.Root thin orientation='vertical'>\n <ScrollArea.Viewport classNames='gap-4 divide-y divide-subdued-separator'>\n <SchemaTable types={staticTypes} objects={info.objects} label='Static Types' onClick={handleCreateData} />\n <SchemaTable types={recordTypes} objects={info.objects} label='Record Types' onClick={handleCreateData} />\n <SchemaTable types={presets.types} objects={info.objects} label='Presets' onClick={handleCreateData} />\n <SyntaxHighlighter language='json' classNames='text-xs'>\n {JSON.stringify({ space, ...info }, jsonKeyReplacer({ truncate: true }), 2)}\n </SyntaxHighlighter>\n </ScrollArea.Viewport>\n </ScrollArea.Root>\n </Panel.Content>\n </Panel.Root>\n );\n};\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 { AgentFunctions, EntityExtractionFunctions, ResearchBlueprint } from '@dxos/assistant-toolkit';\nimport { Prompt } from '@dxos/blueprints';\nimport { type ComputeGraphModel, NODE_INPUT } from '@dxos/conductor';\nimport { DXN, Feed, Filter, JsonSchema, Key, Obj, Query, type QueryAST, Ref, Tag } from '@dxos/echo';\nimport { Trigger, serializeFunction } from '@dxos/functions';\nimport { invariant } from '@dxos/invariant';\nimport { GmailFunctions } from '@dxos/plugin-inbox';\nimport { Mailbox } from '@dxos/plugin-inbox/types';\nimport { Markdown } from '@dxos/plugin-markdown/types';\nimport { type Space } from '@dxos/react-client/echo';\nimport {\n type ComputeShape,\n createAppend,\n createChat,\n createComputeGraph,\n createConstant,\n createFunction,\n createGpt,\n createQueue,\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 tagDxn = Obj.getDXN(tag).toString();\n Obj.change(doc, (d) => {\n Obj.getMeta(d).tags = [tagDxn];\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: [tagDxn] }, 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 feeds = await space.db.query(Filter.type(Feed.Feed)).run();\n const mailbox = feeds.find((feed) => feed.kind === Mailbox.kind);\n invariant(mailbox, 'Mailbox feed not found');\n const queueDxn = Feed.getQueueDxn(mailbox)?.toString();\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 tagDxn = Obj.getDXN(tag).toString();\n\n const objects = range(n, () => {\n const contactsQuery = Query.select(Filter.type(Person.Person)).select(Filter.tag(tagDxn));\n const organizationsQuery = Query.select(Filter.type(Organization.Organization)).select(Filter.tag(tagDxn));\n const notesQuery = Query.select(Filter.type(Markdown.Document)).select(Filter.tag(tagDxn));\n\n space.db.add(\n Trigger.make({\n enabled: true,\n spec: {\n kind: 'timer',\n cron: '* * * * *', // Every minute.\n },\n function: Ref.make(serializeFunction(GmailFunctions.Sync)),\n input: {\n mailbox: Ref.make(mailbox),\n },\n }),\n );\n\n space.db.add(\n Trigger.make({\n enabled: true,\n // TODO(wittjosiah): Queue trigger doesn't support matching query of the column.\n spec: {\n kind: 'queue',\n queue: queueDxn,\n },\n function: Ref.make(serializeFunction(EntityExtractionFunctions.Extract)),\n input: {\n source: '{{event.item}}',\n },\n }),\n );\n\n const researchPrompt = space.db.add(\n Prompt.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(ResearchBlueprint.make())],\n }),\n );\n\n space.db.add(\n Trigger.make({\n enabled: true,\n spec: {\n kind: 'subscription',\n query: {\n ast: organizationsQuery.ast,\n },\n },\n function: Ref.make(serializeFunction(AgentFunctions.Prompt)),\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({\n queues: [queueDxn],\n }),\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.typename('dxos.org/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: new DXN(DXN.kind.QUEUE, ['data', space.id, Key.ObjectId.random()]).toString(),\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(createQueue(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.change(functionTrigger, (ft) => {\n initSpec(ft.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: new DXN(DXN.kind.QUEUE, ['data', space.id, Key.ObjectId.random()]).toString(),\n ...(args?.idPosition ? rawPosition(args.idPosition) : position({ x: -18, y: 5, width: 8, height: 6 })),\n }),\n );\n const queue = canvasModel.createNode(\n createQueue(\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.change(functionTrigger, (t) => {\n t.function = Ref.make(computeModel.root);\n t.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 type * as Schema from 'effect/Schema';\n\nimport { addressToA1Notation } from '@dxos/compute';\nimport { ComputeGraph, ComputeGraphModel, DEFAULT_OUTPUT, NODE_INPUT, NODE_OUTPUT } from '@dxos/conductor';\nimport { DXN, Filter, Key, type Type } from '@dxos/echo';\nimport { View } from '@dxos/echo';\nimport { type OperationInvoker } from '@dxos/operation';\nimport { Markdown } from '@dxos/plugin-markdown/types';\nimport { Sheet } from '@dxos/plugin-sheet/types';\nimport { Diagram } from '@dxos/plugin-sketch/types';\nimport { SpaceOperation } from '@dxos/plugin-space/types';\nimport { faker } from '@dxos/random';\nimport { type Client } from '@dxos/react-client';\nimport { type Space } from '@dxos/react-client/echo';\nimport { getTypenameFromQuery } from '@dxos/schema';\nimport { type ValueGenerator, createAsyncGenerator } from '@dxos/schema/testing';\nimport { range } from '@dxos/util';\n\nconst generator: ValueGenerator = faker as any;\n\nconst findViewByTypename = async (views: View.View[], typename: string) => {\n return views.find((view) => getTypenameFromQuery(view.query.ast) === typename);\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<Schema.Schema.Type<S>> => {\n return async (space: Space, n: number): Promise<Schema.Schema.Type<S>[]> => {\n const typename = schema.typename;\n\n // Find or create table and view.\n const views = await space.db.query(Filter.type(View.View)).run();\n const view = await findViewByTypename(views, typename);\n const staticSchema = client?.graph.schemaRegistry.query({ typename }).runSync()[0];\n if (!view && !staticSchema) {\n await invokePromise(SpaceOperation.AddSchema, { db: space.db, schema, show: false });\n } else if (!view && staticSchema) {\n await invokePromise(SpaceOperation.UseStaticSchema, { db: space.db, typename, 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 Markdown.Document.typename,\n async (space, n, cb) => {\n const objects = range(n).map(() => {\n return space.db.add(\n Markdown.make({\n name: faker.commerce.productName(),\n content: faker.lorem.sentences(5),\n }),\n );\n });\n\n cb?.(objects);\n return objects;\n },\n ],\n [\n Diagram.Diagram.typename,\n async (space, n, cb) => {\n const objects = range(n).map(() => {\n const obj = space.db.add(Diagram.make({ name: faker.commerce.productName() }));\n return obj;\n });\n\n cb?.(objects);\n return objects;\n },\n ],\n // TODO(burdon): Create unit tests.\n [\n Sheet.Sheet.typename,\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: faker.commerce.productName(),\n cells,\n }),\n );\n });\n\n cb?.(objects);\n return objects;\n },\n ],\n [\n ComputeGraph.typename,\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: new DXN(DXN.kind.QUEUE, ['data', space.id, Key.ObjectId.random()]).toString(),\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", "//\n// Copyright 2024 DXOS.org\n//\n\nimport { SpaceGenerator } from './SpaceGenerator';\n\nexport default SpaceGenerator;\n"],
5
+ "mappings": "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",
6
+ "names": ["React", "useCallback", "useMemo", "useState", "useOperationInvoker", "ComputeGraph", "Filter", "Obj", "Markdown", "Sheet", "Diagram", "useClient", "IconButton", "Input", "Panel", "ScrollArea", "Toolbar", "useAsyncEffect", "SyntaxHighlighter", "Organization", "Person", "Task", "jsonKeyReplacer", "sortKeys", "React", "IconButton", "SchemaTable", "types", "objects", "label", "onClick", "div", "className", "h2", "map", "type", "key", "typename", "IconButton", "variant", "icon", "iconOnly", "Schema", "AgentFunctions", "EntityExtractionFunctions", "ResearchBlueprint", "Prompt", "NODE_INPUT", "DXN", "Feed", "Filter", "JsonSchema", "Key", "Obj", "Query", "Ref", "Tag", "Trigger", "serializeFunction", "invariant", "GmailFunctions", "Mailbox", "Markdown", "createAppend", "createChat", "createComputeGraph", "createConstant", "createFunction", "createGpt", "createQueue", "createRandom", "createSurface", "createTemplate", "createText", "createTrigger", "CanvasBoard", "CanvasGraphModel", "pointMultiply", "pointsToRect", "rectToPoints", "ViewModel", "Message", "Organization", "Person", "Pipeline", "range", "trim", "PresetName", "generator", "schemas", "types", "Object", "values", "map", "name", "typename", "items", "space", "n", "cb", "objects", "org", "db", "add", "make", "website", "doc", "content", "tag", "label", "tagDxn", "getDXN", "toString", "change", "d", "getMeta", "tags", "Meta", "fullName", "organization", "feeds", "query", "type", "run", "mailbox", "find", "feed", "kind", "queueDxn", "getQueueDxn", "first", "contactsQuery", "select", "organizationsQuery", "notesQuery", "Document", "enabled", "spec", "cron", "function", "Sync", "input", "queue", "Extract", "source", "researchPrompt", "description", "Struct", "Any", "output", "instructions", "blueprints", "ast", "prompt", "mailboxView", "properties", "labels", "contains", "from", "queues", "jsonSchema", "toJsonSchema", "contactsView", "organizationsView", "notesView", "columns", "view", "order", "flat", "canvasModel", "create", "functionTrigger", "builder", "call", "gpt", "createNode", "position", "x", "y", "triggerShape", "spaceId", "id", "triggerKind", "trigger", "text", "width", "height", "queueId", "setupQueue", "append", "createEdge", "target", "computeModel", "attachTrigger", "addToSpace", "createQueueSinkPreset", "triggerSpec", "chat", "sourceCurrency", "value", "targetCurrency", "converter", "channelId", "QUEUE", "ObjectId", "random", "initSpec", "triggerOutputName", "template", "valueType", "rawPosition", "centerX", "centerY", "queuePosition", "ft", "templateComputeNode", "nodes", "node", "join", "inputSchema", "String", "changeId", "canvas", "compute", "computeGraph", "root", "layout", "graph", "args", "idPosition", "inputNode", "t", "inputNodeId", "center", "size", "rect", "snap", "undefined", "addressToA1Notation", "ComputeGraph", "ComputeGraphModel", "DEFAULT_OUTPUT", "NODE_INPUT", "NODE_OUTPUT", "DXN", "Filter", "Key", "View", "Markdown", "Sheet", "Diagram", "SpaceOperation", "faker", "getTypenameFromQuery", "createAsyncGenerator", "range", "generator", "faker", "findViewByTypename", "views", "typename", "find", "view", "getTypenameFromQuery", "query", "ast", "createGenerator", "client", "invokePromise", "schema", "space", "n", "db", "Filter", "type", "View", "run", "staticSchema", "graph", "schemaRegistry", "runSync", "SpaceOperation", "AddSchema", "show", "UseStaticSchema", "generate", "createAsyncGenerator", "createObjects", "staticGenerators", "Map", "Markdown", "Document", "cb", "objects", "range", "map", "add", "make", "name", "commerce", "productName", "content", "lorem", "sentences", "Diagram", "obj", "Sheet", "cells", "year", "Date", "getFullYear", "cols", "rows", "col", "row", "cell", "addressToA1Notation", "value", "from", "to", "Math", "floor", "random", "ComputeGraph", "model", "ComputeGraphModel", "create", "builder", "createNode", "id", "NODE_INPUT", "DXN", "kind", "QUEUE", "Key", "ObjectId", "toString", "NODE_OUTPUT", "createEdge", "node", "property", "DEFAULT_OUTPUT", "root", "SpaceGenerator", "space", "onCreateObjects", "invokePromise", "useOperationInvoker", "client", "useClient", "staticTypes", "Markdown", "Document", "Diagram", "Sheet", "ComputeGraph", "recordTypes", "Organization", "Person", "Task", "count", "setCount", "useState", "info", "setInfo", "presets", "useMemo", "generator", "useAsyncEffect", "addTypes", "schemas", "typeMap", "recordGenerators", "Map", "map", "type", "typename", "createGenerator", "staticGenerators", "items", "updateInfo", "echoSchema", "db", "schemaRegistry", "query", "run", "staticSchema", "graph", "objects", "Filter", "everything", "objectMap", "sortKeys", "reduce", "obj", "Obj", "getTypename", "schema", "static", "length", "mutable", "handleCreateData", "useCallback", "constructor", "get", "React", "Panel", "Root", "Toolbar", "asChild", "IconButton", "icon", "iconOnly", "label", "onClick", "Separator", "Input", "TextInput", "placeholder", "classNames", "min", "max", "size", "value", "onChange", "event", "parseInt", "target", "Content", "ScrollArea", "thin", "orientation", "Viewport", "SchemaTable", "types", "SyntaxHighlighter", "language", "JSON", "stringify", "jsonKeyReplacer", "truncate", "SpaceGenerator"]
7
+ }
@@ -0,0 +1,53 @@
1
+ // src/containers/Wireframe/Wireframe.tsx
2
+ import React from "react";
3
+ import { useResizeDetector } from "react-resize-detector";
4
+ import { Obj } from "@dxos/echo";
5
+ import { useAttentionAttributes } from "@dxos/react-ui-attention";
6
+ import { SyntaxHighlighter } from "@dxos/react-ui-syntax-highlighter";
7
+ import { mx } from "@dxos/ui-theme";
8
+ var Wireframe = ({ classNames, label, object }) => {
9
+ const attentionAttrs = useAttentionAttributes(Obj.getDXN(object).toString());
10
+ const { width, height, ref } = useResizeDetector();
11
+ return /* @__PURE__ */ React.createElement("div", {
12
+ ref,
13
+ className: mx("relative grow min-h-96", classNames),
14
+ ...attentionAttrs
15
+ }, /* @__PURE__ */ React.createElement("div", {
16
+ className: "absolute inset-2 flex flex-col gap-2 overflow-hidden font-mono"
17
+ }, /* @__PURE__ */ React.createElement("div", {
18
+ className: "flex justify-between"
19
+ }, /* @__PURE__ */ React.createElement("div", null, label), /* @__PURE__ */ React.createElement("div", null, `[${width}x${height}]`)), object && /* @__PURE__ */ React.createElement(SyntaxHighlighter, {
20
+ language: "json",
21
+ classNames: "text-xs opacity-75 rounded-sm"
22
+ }, JSON.stringify(object, void 0, 2))), /* @__PURE__ */ React.createElement("svg", {
23
+ width,
24
+ height,
25
+ className: "bg-transparent *:text-subdued"
26
+ }, /* @__PURE__ */ React.createElement("rect", {
27
+ x: 0,
28
+ y: 0,
29
+ width,
30
+ height,
31
+ strokeWidth: 1,
32
+ fill: "none"
33
+ }), /* @__PURE__ */ React.createElement("line", {
34
+ x1: 0,
35
+ y1: 0,
36
+ x2: width,
37
+ y2: height,
38
+ strokeWidth: 1
39
+ }), /* @__PURE__ */ React.createElement("line", {
40
+ x1: 0,
41
+ y1: height,
42
+ x2: width,
43
+ y2: 0,
44
+ strokeWidth: 1
45
+ })));
46
+ };
47
+
48
+ // src/containers/Wireframe/index.ts
49
+ var Wireframe_default = Wireframe;
50
+ export {
51
+ Wireframe_default as default
52
+ };
53
+ //# sourceMappingURL=Wireframe-KAGOKEFW.mjs.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../src/containers/Wireframe/Wireframe.tsx", "../../../src/containers/Wireframe/index.ts"],
4
+ "sourcesContent": ["//\n// Copyright 2024 DXOS.org\n//\n\nimport React from 'react';\nimport { useResizeDetector } from 'react-resize-detector';\n\nimport { Obj } from '@dxos/echo';\nimport { type ThemedClassName } from '@dxos/react-ui';\nimport { useAttentionAttributes } from '@dxos/react-ui-attention';\nimport { SyntaxHighlighter } from '@dxos/react-ui-syntax-highlighter';\nimport { mx } from '@dxos/ui-theme';\n\n// TODO(burdon): Create generic container with wireframe mode.\nexport type WireframeProps = ThemedClassName<{\n object: Obj.Unknown;\n label?: string;\n}>;\n\n// TODO(burdon): Make focusable and attendable with input.\nexport const Wireframe = ({ classNames, label, object }: WireframeProps) => {\n const attentionAttrs = useAttentionAttributes(Obj.getDXN(object).toString());\n const { width, height, ref } = useResizeDetector();\n\n return (\n <div ref={ref} className={mx('relative grow min-h-96', classNames)} {...attentionAttrs}>\n <div className='absolute inset-2 flex flex-col gap-2 overflow-hidden font-mono'>\n <div className='flex justify-between'>\n <div>{label}</div>\n <div>{`[${width}x${height}]`}</div>\n </div>\n {object && (\n <SyntaxHighlighter language='json' classNames='text-xs opacity-75 rounded-sm'>\n {JSON.stringify(object, undefined, 2)}\n </SyntaxHighlighter>\n )}\n </div>\n <svg width={width} height={height} className='bg-transparent *:text-subdued'>\n <rect x={0} y={0} width={width} height={height} strokeWidth={1} fill='none' />\n <line x1={0} y1={0} x2={width} y2={height} strokeWidth={1} />\n <line x1={0} y1={height} x2={width} y2={0} strokeWidth={1} />\n </svg>\n </div>\n );\n};\n", "//\n// Copyright 2024 DXOS.org\n//\n\nimport { Wireframe } from './Wireframe';\n\nexport default Wireframe;\n"],
5
+ "mappings": ";AAIA,OAAOA,WAAW;AAClB,SAASC,yBAAyB;AAElC,SAASC,WAAW;AAEpB,SAASC,8BAA8B;AACvC,SAASC,yBAAyB;AAClC,SAASC,UAAU;AASZ,IAAMC,YAAY,CAAC,EAAEC,YAAYC,OAAOC,OAAM,MAAkB;AACrE,QAAMC,iBAAiBC,uBAAuBC,IAAIC,OAAOJ,MAAAA,EAAQK,SAAQ,CAAA;AACzE,QAAM,EAAEC,OAAOC,QAAQC,IAAG,IAAKC,kBAAAA;AAE/B,SACE,sBAAA,cAACC,OAAAA;IAAIF;IAAUG,WAAWC,GAAG,0BAA0Bd,UAAAA;IAAc,GAAGG;KACtE,sBAAA,cAACS,OAAAA;IAAIC,WAAU;KACb,sBAAA,cAACD,OAAAA;IAAIC,WAAU;KACb,sBAAA,cAACD,OAAAA,MAAKX,KAAAA,GACN,sBAAA,cAACW,OAAAA,MAAK,IAAIJ,KAAAA,IAASC,MAAAA,GAAS,CAAA,GAE7BP,UACC,sBAAA,cAACa,mBAAAA;IAAkBC,UAAS;IAAOhB,YAAW;KAC3CiB,KAAKC,UAAUhB,QAAQiB,QAAW,CAAA,CAAA,CAAA,GAIzC,sBAAA,cAACC,OAAAA;IAAIZ;IAAcC;IAAgBI,WAAU;KAC3C,sBAAA,cAACQ,QAAAA;IAAKC,GAAG;IAAGC,GAAG;IAAGf;IAAcC;IAAgBe,aAAa;IAAGC,MAAK;MACrE,sBAAA,cAACC,QAAAA;IAAKC,IAAI;IAAGC,IAAI;IAAGC,IAAIrB;IAAOsB,IAAIrB;IAAQe,aAAa;MACxD,sBAAA,cAACE,QAAAA;IAAKC,IAAI;IAAGC,IAAInB;IAAQoB,IAAIrB;IAAOsB,IAAI;IAAGN,aAAa;;AAIhE;;;ACtCA,IAAA,oBAAeO;",
6
+ "names": ["React", "useResizeDetector", "Obj", "useAttentionAttributes", "SyntaxHighlighter", "mx", "Wireframe", "classNames", "label", "object", "attentionAttrs", "useAttentionAttributes", "Obj", "getDXN", "toString", "width", "height", "ref", "useResizeDetector", "div", "className", "mx", "SyntaxHighlighter", "language", "JSON", "stringify", "undefined", "svg", "rect", "x", "y", "strokeWidth", "fill", "line", "x1", "y1", "x2", "y2", "Wireframe"]
7
+ }