@dxos/plugin-debug 0.7.5-labs.071a3e2 → 0.7.5-labs.401163d
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/browser/{SpaceGenerator-4VO7E5P2.mjs → SpaceGenerator-KYSK77VG.mjs} +262 -8
- package/dist/lib/browser/SpaceGenerator-KYSK77VG.mjs.map +7 -0
- package/dist/lib/browser/{app-graph-builder-KRYWP5XD.mjs → app-graph-builder-DCMGZAT3.mjs} +1 -1
- package/dist/lib/browser/{app-graph-builder-KRYWP5XD.mjs.map → app-graph-builder-DCMGZAT3.mjs.map} +2 -2
- package/dist/lib/browser/index.mjs +2 -2
- package/dist/lib/browser/meta.json +1 -1
- package/dist/lib/browser/{react-surface-ZRQ4TPNG.mjs → react-surface-6GVTLM4O.mjs} +2 -2
- package/dist/types/src/capabilities/app-graph-builder.d.ts.map +1 -1
- package/dist/types/src/components/SpaceGenerator/presets.d.ts +5 -1
- package/dist/types/src/components/SpaceGenerator/presets.d.ts.map +1 -1
- package/package.json +47 -47
- package/src/capabilities/app-graph-builder.ts +1 -6
- package/src/components/SpaceGenerator/presets.ts +173 -2
- package/dist/lib/browser/SpaceGenerator-4VO7E5P2.mjs.map +0 -7
- /package/dist/lib/browser/{react-surface-ZRQ4TPNG.mjs.map → react-surface-6GVTLM4O.mjs.map} +0 -0
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
|
|
5
5
|
import { type ComputeGraphModel, EmailTriggerOutput, NODE_INPUT } from '@dxos/conductor';
|
|
6
6
|
import { AST, ObjectId, S, toJsonSchema } from '@dxos/echo-schema';
|
|
7
|
-
import { FunctionTrigger, TriggerKind } from '@dxos/functions/types';
|
|
7
|
+
import { FunctionTrigger, TriggerKind, type TriggerType } from '@dxos/functions/types';
|
|
8
8
|
import { invariant } from '@dxos/invariant';
|
|
9
9
|
import { DXN, SpaceId } from '@dxos/keys';
|
|
10
10
|
import { create, makeRef } from '@dxos/live-object';
|
|
@@ -15,8 +15,11 @@ import {
|
|
|
15
15
|
createChat,
|
|
16
16
|
createComputeGraph,
|
|
17
17
|
createConstant,
|
|
18
|
+
createFunction,
|
|
18
19
|
createGpt,
|
|
19
20
|
createQueue,
|
|
21
|
+
createSurface,
|
|
22
|
+
createRandom,
|
|
20
23
|
createTemplate,
|
|
21
24
|
createText,
|
|
22
25
|
createTrigger,
|
|
@@ -38,6 +41,10 @@ export enum PresetName {
|
|
|
38
41
|
GPT_QUEUE = 'webhook-gpt-queue',
|
|
39
42
|
CHAT_GPT = 'chat-gpt-text',
|
|
40
43
|
EMAIL_WITH_SUMMARY = 'email-gptSummary-table',
|
|
44
|
+
OBJECT_CHANGE_QUEUE = 'objectChange-queue',
|
|
45
|
+
FOREX_FUNCTION_CALL = 'forex-function-call',
|
|
46
|
+
TIMER_TICK_QUEUE = 'timerTick-queue',
|
|
47
|
+
DISCORD_MESSAGES = 'discord-messages',
|
|
41
48
|
}
|
|
42
49
|
|
|
43
50
|
export const presets = {
|
|
@@ -60,7 +67,7 @@ export const presets = {
|
|
|
60
67
|
const append = canvasModel.createNode(createAppend(position({ x: 10, y: 6 })));
|
|
61
68
|
|
|
62
69
|
builder
|
|
63
|
-
.createEdge({ source: trigger.id, target: gpt.id, input: 'prompt', output: '
|
|
70
|
+
.createEdge({ source: trigger.id, target: gpt.id, input: 'prompt', output: 'bodyText' })
|
|
64
71
|
.createEdge({ source: gpt.id, target: text.id, output: 'text' })
|
|
65
72
|
.createEdge({ source: queueId.id, target: append.id, input: 'id' })
|
|
66
73
|
.createEdge({ source: gpt.id, target: append.id, output: 'messages', input: 'items' });
|
|
@@ -79,6 +86,38 @@ export const presets = {
|
|
|
79
86
|
},
|
|
80
87
|
],
|
|
81
88
|
|
|
89
|
+
[
|
|
90
|
+
PresetName.OBJECT_CHANGE_QUEUE,
|
|
91
|
+
async (space, n, cb) => {
|
|
92
|
+
const objects = range(n, () => {
|
|
93
|
+
const { canvasModel, computeModel } = createQueueSinkPreset(
|
|
94
|
+
TriggerKind.Subscription,
|
|
95
|
+
(triggerSpec) => (triggerSpec.filter = { type: 'dxn:type:dxos.org/type/Chess' }),
|
|
96
|
+
'type',
|
|
97
|
+
);
|
|
98
|
+
return addToSpace(PresetName.OBJECT_CHANGE_QUEUE, space, canvasModel, computeModel);
|
|
99
|
+
});
|
|
100
|
+
cb?.(objects);
|
|
101
|
+
return objects;
|
|
102
|
+
},
|
|
103
|
+
],
|
|
104
|
+
|
|
105
|
+
[
|
|
106
|
+
PresetName.TIMER_TICK_QUEUE,
|
|
107
|
+
async (space, n, cb) => {
|
|
108
|
+
const objects = range(n, () => {
|
|
109
|
+
const { canvasModel, computeModel } = createQueueSinkPreset(
|
|
110
|
+
TriggerKind.Timer,
|
|
111
|
+
(triggerSpec) => (triggerSpec.cron = '*/5 * * * * *'),
|
|
112
|
+
'result',
|
|
113
|
+
);
|
|
114
|
+
return addToSpace(PresetName.TIMER_TICK_QUEUE, space, canvasModel, computeModel);
|
|
115
|
+
});
|
|
116
|
+
cb?.(objects);
|
|
117
|
+
return objects;
|
|
118
|
+
},
|
|
119
|
+
],
|
|
120
|
+
|
|
82
121
|
[
|
|
83
122
|
PresetName.EMAIL_TABLE,
|
|
84
123
|
async (space, n, cb) => {
|
|
@@ -264,9 +303,141 @@ export const presets = {
|
|
|
264
303
|
return objects;
|
|
265
304
|
},
|
|
266
305
|
],
|
|
306
|
+
[
|
|
307
|
+
PresetName.FOREX_FUNCTION_CALL,
|
|
308
|
+
async (space, n, cb) => {
|
|
309
|
+
const objects = range(n, () => {
|
|
310
|
+
const canvasModel = CanvasGraphModel.create<ComputeShape>();
|
|
311
|
+
|
|
312
|
+
canvasModel.builder.call((builder) => {
|
|
313
|
+
const sourceCurrency = canvasModel.createNode(
|
|
314
|
+
createConstant({ value: 'USD', ...position({ x: -10, y: -5 }) }),
|
|
315
|
+
);
|
|
316
|
+
const targetCurrency = canvasModel.createNode(
|
|
317
|
+
createConstant({ value: 'EUR', ...position({ x: -10, y: 5 }) }),
|
|
318
|
+
);
|
|
319
|
+
const converter = canvasModel.createNode(createFunction(position({ x: 0, y: 0 })));
|
|
320
|
+
const view = canvasModel.createNode(createSurface(position({ x: 12, y: 0 })));
|
|
321
|
+
|
|
322
|
+
builder
|
|
323
|
+
.createEdge({ source: sourceCurrency.id, target: converter.id, input: 'from' })
|
|
324
|
+
.createEdge({ source: targetCurrency.id, target: converter.id, input: 'to' })
|
|
325
|
+
.createEdge({ source: converter.id, target: view.id, output: 'rate' });
|
|
326
|
+
});
|
|
327
|
+
|
|
328
|
+
const computeModel = createComputeGraph(canvasModel);
|
|
329
|
+
|
|
330
|
+
return addToSpace(PresetName.FOREX_FUNCTION_CALL, space, canvasModel, computeModel);
|
|
331
|
+
});
|
|
332
|
+
cb?.(objects);
|
|
333
|
+
return objects;
|
|
334
|
+
},
|
|
335
|
+
],
|
|
336
|
+
[
|
|
337
|
+
PresetName.DISCORD_MESSAGES,
|
|
338
|
+
async (space, n, cb) => {
|
|
339
|
+
const objects = range(n, () => {
|
|
340
|
+
const canvasModel = CanvasGraphModel.create<ComputeShape>();
|
|
341
|
+
|
|
342
|
+
let functionTrigger: FunctionTrigger | undefined;
|
|
343
|
+
canvasModel.builder.call((builder) => {
|
|
344
|
+
const triggerShape = createTrigger({ triggerKind: TriggerKind.Timer, ...position({ x: -10, y: -5 }) });
|
|
345
|
+
const trigger = canvasModel.createNode(triggerShape);
|
|
346
|
+
// DXOS dev-null channel.
|
|
347
|
+
const channelId = canvasModel.createNode(
|
|
348
|
+
createConstant({ value: '1088569858767212554', ...position({ x: -10, y: 0 }) }),
|
|
349
|
+
);
|
|
350
|
+
const queueId = canvasModel.createNode(
|
|
351
|
+
createConstant({
|
|
352
|
+
value: new DXN(DXN.kind.QUEUE, ['data', SpaceId.random(), ObjectId.random()]).toString(),
|
|
353
|
+
...position({ x: -10, y: 5 }),
|
|
354
|
+
}),
|
|
355
|
+
);
|
|
356
|
+
const converter = canvasModel.createNode(createFunction(position({ x: 0, y: 0 })));
|
|
357
|
+
const view = canvasModel.createNode(createText(position({ x: 12, y: 0 })));
|
|
358
|
+
const queue = canvasModel.createNode(createQueue(position({ x: 0, y: 12 })));
|
|
359
|
+
|
|
360
|
+
builder
|
|
361
|
+
.createEdge({ source: trigger.id, target: converter.id, input: 'tick' })
|
|
362
|
+
.createEdge({ source: channelId.id, target: converter.id, input: 'channelId' })
|
|
363
|
+
.createEdge({ source: queueId.id, target: converter.id, input: 'queueId' })
|
|
364
|
+
.createEdge({ source: converter.id, target: view.id, output: 'newMessages' })
|
|
365
|
+
.createEdge({ source: queueId.id, target: queue.id, input: 'input' });
|
|
366
|
+
|
|
367
|
+
functionTrigger = triggerShape.functionTrigger!.target!;
|
|
368
|
+
});
|
|
369
|
+
|
|
370
|
+
const computeModel = createComputeGraph(canvasModel);
|
|
371
|
+
attachTrigger(functionTrigger, computeModel);
|
|
372
|
+
|
|
373
|
+
return addToSpace(PresetName.DISCORD_MESSAGES, space, canvasModel, computeModel);
|
|
374
|
+
});
|
|
375
|
+
cb?.(objects);
|
|
376
|
+
return objects;
|
|
377
|
+
},
|
|
378
|
+
],
|
|
267
379
|
] as [PresetName, ObjectGenerator<any>][],
|
|
268
380
|
};
|
|
269
381
|
|
|
382
|
+
const createQueueSinkPreset = <SpecType extends TriggerKind>(
|
|
383
|
+
triggerKind: SpecType,
|
|
384
|
+
initSpec: (spec: Extract<TriggerType, { type: SpecType }>) => void,
|
|
385
|
+
triggerOutputName: string,
|
|
386
|
+
) => {
|
|
387
|
+
const canvasModel = CanvasGraphModel.create<ComputeShape>();
|
|
388
|
+
|
|
389
|
+
const template = canvasModel.createNode(
|
|
390
|
+
createTemplate({
|
|
391
|
+
valueType: 'object',
|
|
392
|
+
...rawPosition({ centerX: -64, centerY: -79, width: 320, height: 320 }),
|
|
393
|
+
}),
|
|
394
|
+
);
|
|
395
|
+
|
|
396
|
+
let functionTrigger: FunctionTrigger | undefined;
|
|
397
|
+
canvasModel.builder.call((builder) => {
|
|
398
|
+
const triggerShape = createTrigger({
|
|
399
|
+
triggerKind,
|
|
400
|
+
...rawPosition({ centerX: -578, centerY: -187, height: 320, width: 320 }),
|
|
401
|
+
});
|
|
402
|
+
const trigger = canvasModel.createNode(triggerShape);
|
|
403
|
+
const { queueId } = setupQueue(canvasModel, {
|
|
404
|
+
queuePosition: { centerX: -80, centerY: 378, width: 320, height: 448 },
|
|
405
|
+
});
|
|
406
|
+
const append = canvasModel.createNode(
|
|
407
|
+
createAppend(rawPosition({ centerX: 320, centerY: 192, width: 128, height: 122 })),
|
|
408
|
+
);
|
|
409
|
+
const random = canvasModel.createNode(
|
|
410
|
+
createRandom(rawPosition({ centerX: -509, centerY: -30, width: 64, height: 64 })),
|
|
411
|
+
);
|
|
412
|
+
|
|
413
|
+
builder
|
|
414
|
+
.createEdge({ source: queueId.id, target: append.id, input: 'id' })
|
|
415
|
+
.createEdge({ source: template.id, target: append.id, input: 'items' })
|
|
416
|
+
.createEdge({ source: trigger.id, target: template.id, output: triggerOutputName, input: 'type' })
|
|
417
|
+
.createEdge({
|
|
418
|
+
source: random.id,
|
|
419
|
+
target: template.id,
|
|
420
|
+
input: 'changeId',
|
|
421
|
+
});
|
|
422
|
+
|
|
423
|
+
functionTrigger = triggerShape.functionTrigger!.target!;
|
|
424
|
+
const triggerSpec = functionTrigger.spec;
|
|
425
|
+
invariant(triggerSpec && triggerSpec.type === triggerKind, 'No trigger spec.');
|
|
426
|
+
initSpec(triggerSpec as any);
|
|
427
|
+
});
|
|
428
|
+
|
|
429
|
+
const computeModel = createComputeGraph(canvasModel);
|
|
430
|
+
|
|
431
|
+
const templateComputeNode = computeModel.nodes.find((n) => n.id === template.node);
|
|
432
|
+
invariant(templateComputeNode, 'Template compute node was not created.');
|
|
433
|
+
templateComputeNode.value = ['{', ' "@type": "{{type}}",', ' "id": "@{{changeId}}"', '}'].join('\n');
|
|
434
|
+
templateComputeNode.inputSchema = toJsonSchema(S.Struct({ type: S.String, changeId: S.String }));
|
|
435
|
+
|
|
436
|
+
attachTrigger(functionTrigger, computeModel);
|
|
437
|
+
|
|
438
|
+
return { canvasModel, computeModel };
|
|
439
|
+
};
|
|
440
|
+
|
|
270
441
|
const addToSpace = (name: string, space: Space, canvas: CanvasGraphModel, compute: ComputeGraphModel) => {
|
|
271
442
|
return space.db.add(
|
|
272
443
|
create(CanvasBoardType, {
|
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"version": 3,
|
|
3
|
-
"sources": ["../../../src/components/SpaceGenerator/SpaceGenerator.tsx", "../../../src/components/SpaceGenerator/ObjectGenerator.tsx", "../../../src/components/SpaceGenerator/SchemaTable.tsx", "../../../src/components/SpaceGenerator/presets.ts", "../../../src/components/SpaceGenerator/index.ts"],
|
|
4
|
-
"sourcesContent": ["//\n// Copyright 2024 DXOS.org\n//\n\nimport React, { useCallback, useMemo, useState } from 'react';\n\nimport { ComputeGraph } from '@dxos/conductor';\nimport { type ReactiveObject } from '@dxos/live-object';\nimport { DocumentType } from '@dxos/plugin-markdown/types';\nimport { SheetType } from '@dxos/plugin-sheet/types';\nimport { DiagramType } from '@dxos/plugin-sketch/types';\nimport { useClient } from '@dxos/react-client';\nimport { getTypename, type Space } from '@dxos/react-client/echo';\nimport { IconButton, Input, Toolbar, useAsyncEffect } from '@dxos/react-ui';\nimport { SyntaxHighlighter } from '@dxos/react-ui-syntax-highlighter';\nimport { Testing } from '@dxos/schema/testing';\nimport { jsonKeyReplacer, sortKeys } from '@dxos/util';\n\nimport { type ObjectGenerator, createGenerator, staticGenerators } from './ObjectGenerator';\nimport { SchemaTable } from './SchemaTable';\nimport { presets } from './presets';\n\nexport type SpaceGeneratorProps = {\n space: Space;\n onCreateObjects?: (objects: ReactiveObject<any>[]) => void;\n};\n\nexport const SpaceGenerator = ({ space, onCreateObjects }: SpaceGeneratorProps) => {\n const client = useClient();\n const staticTypes = [DocumentType, DiagramType, SheetType, ComputeGraph]; // TODO(burdon): Make extensible.\n const mutableTypes = [Testing.OrgType, Testing.ProjectType, Testing.ContactType, Testing.EmailType];\n const [count, setCount] = useState(1);\n const [info, setInfo] = useState<any>({});\n\n // Create type generators.\n const typeMap = useMemo(() => {\n client.addTypes([...staticTypes, ...presets.schemas]);\n const mutableGenerators = new Map<string, ObjectGenerator<any>>(\n mutableTypes.map((type) => [type.typename, createGenerator(type as any)]),\n );\n\n return new Map([...staticGenerators, ...presets.items, ...mutableGenerators]);\n }, [client, mutableTypes]);\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 = space.db.graph.schemaRegistry.schemas;\n\n // Create object map.\n const { objects } = await space.db.query().run();\n const objectMap = sortKeys(\n objects.reduce<Record<string, number>>((map, obj) => {\n const type = getTypename(obj);\n if (type) {\n const count = map[type] ?? 0;\n map[type] = count + 1;\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 <div role='none' className='flex flex-col divide-y divide-separator'>\n <Toolbar.Root classNames='p-1'>\n <IconButton icon='ph--arrow-clockwise--regular' iconOnly label='Refresh' onClick={updateInfo} />\n <Toolbar.Separator variant='gap' />\n <div className='flex'>\n <Input.Root>\n <Input.TextInput\n type='number'\n min={1}\n max={100}\n placeholder={'Count'}\n classNames='w-[80px]'\n value={count}\n onChange={(ev) => setCount(parseInt(ev.target.value))}\n />\n </Input.Root>\n </div>\n </Toolbar.Root>\n\n <SchemaTable types={staticTypes} objects={info.objects} label='Static Types' onClick={handleCreateData} />\n <SchemaTable types={mutableTypes} objects={info.objects} label='Mutable Types' onClick={handleCreateData} />\n <SchemaTable types={presets.types} objects={info.objects} label='Presets' onClick={handleCreateData} />\n\n <SyntaxHighlighter classNames='flex text-xs' language='json'>\n {JSON.stringify({ space, ...info }, jsonKeyReplacer({ truncate: true }), 2)}\n </SyntaxHighlighter>\n </div>\n );\n};\n", "//\n// Copyright 2024 DXOS.org\n//\n\nimport { addressToA1Notation } from '@dxos/compute';\nimport { ComputeGraph, ComputeGraphModel, DEFAULT_OUTPUT, NODE_INPUT, NODE_OUTPUT } from '@dxos/conductor';\nimport { ObjectId, type BaseObject, type TypedObject } from '@dxos/echo-schema';\nimport { DXN, SpaceId } from '@dxos/keys';\nimport { create, makeRef, type ReactiveObject } from '@dxos/live-object';\nimport { DocumentType } from '@dxos/plugin-markdown/types';\nimport { createSheet } from '@dxos/plugin-sheet/types';\nimport { SheetType, type CellValue } from '@dxos/plugin-sheet/types';\nimport { CanvasType, DiagramType } from '@dxos/plugin-sketch/types';\nimport { faker } from '@dxos/random';\nimport { Filter, type Space } from '@dxos/react-client/echo';\nimport { TableType } from '@dxos/react-ui-table';\nimport { createView, TextType } from '@dxos/schema';\nimport { createAsyncGenerator, type ValueGenerator } from '@dxos/schema/testing';\nimport { range } from '@dxos/util';\n\nconst generator: ValueGenerator = faker as any;\n\n// TODO(burdon): Add objects to collections.\n// TODO(burdon): Create docs.\n// TODO(burdon): Create sketches.\n// TODO(burdon): Create sheets.\n// TODO(burdon): Create comments.\n// TODO(burdon): Reuse in testbench-app.\n// TODO(burdon): Mutator running in background (factor out): from echo-generator.\n\nexport type ObjectGenerator<T extends BaseObject> = (\n space: Space,\n n: number,\n cb?: (objects: ReactiveObject<any>[]) => void,\n) => Promise<ReactiveObject<T>[]>;\n\nexport const staticGenerators = new Map<string, ObjectGenerator<any>>([\n [\n DocumentType.typename,\n async (space, n, cb) => {\n const objects = range(n).map(() => {\n return space.db.add(\n create(DocumentType, {\n name: faker.commerce.productName(),\n content: makeRef(create(TextType, { content: faker.lorem.sentences(5) })),\n threads: [],\n }),\n );\n });\n\n cb?.(objects);\n return objects;\n },\n ],\n [\n DiagramType.typename,\n async (space, n, cb) => {\n const objects = range(n).map(() => {\n // TODO(burdon): Generate diagram.\n const obj = space.db.add(\n create(DiagramType, {\n name: faker.commerce.productName(),\n canvas: makeRef(create(CanvasType, { content: {} })),\n }),\n );\n\n return obj;\n });\n\n cb?.(objects);\n return objects;\n },\n ],\n // TODO(burdon): Create unit tests.\n [\n SheetType.typename,\n async (space, n, cb) => {\n const objects = range(n).map(() => {\n const cells: Record<string, 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 createSheet({\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', SpaceId.random(), 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\nexport const createGenerator = <T extends BaseObject>(type: TypedObject<T>): ObjectGenerator<T> => {\n return async (\n space: Space,\n n: number,\n cb?: (objects: ReactiveObject<any>[]) => void,\n ): Promise<ReactiveObject<T>[]> => {\n // Find or create mutable schema.\n const schema =\n (await space.db.schemaRegistry.query({ typename: type.typename }).firstOrUndefined()) ??\n (await space.db.schemaRegistry.register([type]))[0];\n\n // Create objects.\n const generate = createAsyncGenerator(generator, schema.getSchemaSnapshot(), { db: space.db });\n const objects = await generate.createObjects(n);\n\n // Find or create table and view.\n const { objects: tables } = await space.db.query(Filter.schema(TableType)).run();\n const table = tables.find((table) => table.view?.target?.query?.type === type.typename);\n if (!table) {\n const name = type.typename.split('/').pop() ?? type.typename;\n const view = createView({ name, typename: type.typename, jsonSchema: schema.jsonSchema });\n const table = space.db.add(create(TableType, { name, view: makeRef(view) }));\n cb?.([table]);\n }\n\n return objects;\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-hidden'>\n <div className='grid grid-cols-subgrid col-span-3'>\n <div className='px-2 text-sm text-primary-500'>{label}</div>\n <div className='px-2 text-xs text-subdued text-right'>count</div>\n </div>\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-green-500'>{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 { type ComputeGraphModel, EmailTriggerOutput, NODE_INPUT } from '@dxos/conductor';\nimport { AST, ObjectId, S, toJsonSchema } from '@dxos/echo-schema';\nimport { FunctionTrigger, TriggerKind } from '@dxos/functions/types';\nimport { invariant } from '@dxos/invariant';\nimport { DXN, SpaceId } from '@dxos/keys';\nimport { create, makeRef } from '@dxos/live-object';\nimport { Filter, type Space } from '@dxos/react-client/echo';\nimport {\n type ComputeShape,\n createAppend,\n createChat,\n createComputeGraph,\n createConstant,\n createGpt,\n createQueue,\n createTemplate,\n createText,\n createTrigger,\n} from '@dxos/react-ui-canvas-compute';\nimport {\n CanvasBoardType,\n CanvasGraphModel,\n pointMultiply,\n pointsToRect,\n rectToPoints,\n} from '@dxos/react-ui-canvas-editor';\nimport { TableType } from '@dxos/react-ui-table';\nimport { range } from '@dxos/util';\n\nimport { type ObjectGenerator } from './ObjectGenerator';\n\nexport enum PresetName {\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}\n\nexport const presets = {\n schemas: [CanvasBoardType, FunctionTrigger],\n types: Object.values(PresetName).map((name) => ({ typename: name })),\n items: [\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: FunctionTrigger | undefined;\n canvasModel.builder.call((builder) => {\n const gpt = canvasModel.createNode(createGpt(position({ x: 0, y: -14 })));\n const triggerShape = createTrigger({ triggerKind: TriggerKind.Webhook, ...position({ x: -18, y: -2 }) });\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(canvasModel);\n const append = canvasModel.createNode(createAppend(position({ x: 10, y: 6 })));\n\n builder\n .createEdge({ source: trigger.id, target: gpt.id, input: 'prompt', output: 'body' })\n .createEdge({ source: gpt.id, target: text.id, output: 'text' })\n .createEdge({ source: queueId.id, target: append.id, input: 'id' })\n .createEdge({ source: gpt.id, target: append.id, output: 'messages', input: 'items' });\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.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.schema(TableType)).runSync();\n const emailTable = results.find((r) => r.object?.view?.target?.query?.type?.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({ triggerKind: TriggerKind.Email, ...position({ x: -18, y: -2 }) });\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 = AST.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 = 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(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({ source: queueId.id, target: append.id, input: 'id' })\n .createEdge({ source: gpt.id, target: append.id, output: 'messages', input: 'items' });\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 [\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.schema(TableType)).runSync();\n const emailTable = results.find((r) => r.object?.view?.target?.query?.type?.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 triggerKind: TriggerKind.Email,\n ...rawPosition({ centerX: -736, centerY: -384, width: 182, height: 192 }),\n });\n const trigger = canvasModel.createNode(triggerShape);\n\n const { queueId } = setupQueue(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 = AST.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 = S.extend(EmailTriggerOutput, S.Struct({ text: S.String }));\n templateComputeNode.inputSchema = 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 ] as [PresetName, ObjectGenerator<any>][],\n};\n\nconst addToSpace = (name: string, space: Space, canvas: CanvasGraphModel, compute: ComputeGraphModel) => {\n return space.db.add(\n create(CanvasBoardType, {\n name,\n computeGraph: makeRef(compute.root),\n layout: canvas.graph,\n }),\n );\n};\n\nconst setupQueue = (\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', SpaceId.random(), 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: FunctionTrigger | undefined, computeModel: ComputeGraphModel) => {\n invariant(functionTrigger);\n functionTrigger.function = DXN.fromLocalObjectId(computeModel.root.id).toString();\n functionTrigger.meta ??= {};\n const inputNode = computeModel.nodes.find((node) => node.type === NODE_INPUT)!;\n functionTrigger.meta.computeNodeId = inputNode.id;\n};\n\ntype RawPositionInput = { centerX: number; centerY: number; width: number; height: number };\n\nconst rawPosition = (args: RawPositionInput) => {\n return { center: { x: args.centerX, y: args.centerY }, size: { width: args.width, height: args.height } };\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 { center: { x, y }, size: width && height ? { width, height } : undefined };\n } else {\n return { center: { x, y } };\n }\n};\n", "//\n// Copyright 2023 DXOS.org\n//\n\nimport { SpaceGenerator } from './SpaceGenerator';\n\nexport default SpaceGenerator;\n"],
|
|
5
|
-
"mappings": ";AAIA,OAAOA,UAASC,aAAaC,SAASC,gBAAgB;AAEtD,SAASC,gBAAAA,qBAAoB;AAE7B,SAASC,gBAAAA,qBAAoB;AAC7B,SAASC,aAAAA,kBAAiB;AAC1B,SAASC,eAAAA,oBAAmB;AAC5B,SAASC,iBAAiB;AAC1B,SAASC,mBAA+B;AACxC,SAASC,cAAAA,aAAYC,OAAOC,SAASC,sBAAsB;AAC3D,SAASC,yBAAyB;AAClC,SAASC,eAAe;AACxB,SAASC,iBAAiBC,gBAAgB;;;ACZ1C,SAASC,2BAA2B;AACpC,SAASC,cAAcC,mBAAmBC,gBAAgBC,YAAYC,mBAAmB;AACzF,SAASC,gBAAmD;AAC5D,SAASC,KAAKC,eAAe;AAC7B,SAASC,QAAQC,eAAoC;AACrD,SAASC,oBAAoB;AAC7B,SAASC,mBAAmB;AAC5B,SAASC,iBAAiC;AAC1C,SAASC,YAAYC,mBAAmB;AACxC,SAASC,aAAa;AACtB,SAASC,cAA0B;AACnC,SAASC,iBAAiB;AAC1B,SAASC,YAAYC,gBAAgB;AACrC,SAASC,4BAAiD;AAC1D,SAASC,aAAa;AAEtB,IAAMC,YAA4BC;AAgB3B,IAAMC,mBAAmB,oBAAIC,IAAkC;EACpE;IACEC,aAAaC;IACb,OAAOC,OAAOC,GAAGC,OAAAA;AACf,YAAMC,UAAUC,MAAMH,CAAAA,EAAGI,IAAI,MAAA;AAC3B,eAAOL,MAAMM,GAAGC,IACdC,OAAOV,cAAc;UACnBW,MAAMd,MAAMe,SAASC,YAAW;UAChCC,SAASC,QAAQL,OAAOM,UAAU;YAAEF,SAASjB,MAAMoB,MAAMC,UAAU,CAAA;UAAG,CAAA,CAAA;UACtEC,SAAS,CAAA;QACX,CAAA,CAAA;MAEJ,CAAA;AAEAf,WAAKC,OAAAA;AACL,aAAOA;IACT;;EAEF;IACEe,YAAYnB;IACZ,OAAOC,OAAOC,GAAGC,OAAAA;AACf,YAAMC,UAAUC,MAAMH,CAAAA,EAAGI,IAAI,MAAA;AAE3B,cAAMc,MAAMnB,MAAMM,GAAGC,IACnBC,OAAOU,aAAa;UAClBT,MAAMd,MAAMe,SAASC,YAAW;UAChCS,QAAQP,QAAQL,OAAOa,YAAY;YAAET,SAAS,CAAC;UAAE,CAAA,CAAA;QACnD,CAAA,CAAA;AAGF,eAAOO;MACT,CAAA;AAEAjB,WAAKC,OAAAA;AACL,aAAOA;IACT;;;EAGF;IACEmB,UAAUvB;IACV,OAAOC,OAAOC,GAAGC,OAAAA;AACf,YAAMC,UAAUC,MAAMH,CAAAA,EAAGI,IAAI,MAAA;AAC3B,cAAMkB,QAAmC,CAAC;AAC1C,cAAMC,QAAO,oBAAIC,KAAAA,GAAOC,YAAW;AACnC,cAAMC,OAAO;AACb,cAAMC,OAAO;AACb,iBAASC,MAAM,GAAGA,OAAOF,MAAME,OAAO;AACpC,mBAASC,MAAM,GAAGA,OAAOF,MAAME,OAAO;AACpC,kBAAMC,OAAOC,oBAAoB;cAAEH;cAAKC;YAAI,CAAA;AAC5C,gBAAIA,QAAQ,GAAG;AACbP,oBAAMQ,IAAAA,IAAQ;gBAAEE,OAAO,GAAGT,IAAAA,KAASK,GAAAA;cAAM;YAC3C,WAAWC,QAAQF,MAAM;AACvB,oBAAMM,OAAOF,oBAAoB;gBAAEH;gBAAKC,KAAK;cAAE,CAAA;AAC/C,oBAAMK,KAAKH,oBAAoB;gBAAEH;gBAAKC,KAAKF,OAAO;cAAE,CAAA;AACpDL,oBAAMQ,IAAAA,IAAQ;gBAAEE,OAAO,QAAQC,IAAAA,IAAQC,EAAAA;cAAM;YAC/C,WAAWL,MAAM,KAAKA,MAAMF,OAAO,GAAG;AACpCL,oBAAMQ,IAAAA,IAAQ;gBAAEE,OAAOG,KAAKC,MAAMD,KAAKE,OAAM,IAAK,GAAA;cAAQ;YAC5D;UACF;QACF;AAIA,eAAOtC,MAAMM,GAAGC,IACdgC,YAAY;UACV9B,MAAMd,MAAMe,SAASC,YAAW;UAChCY;QACF,CAAA,CAAA;MAEJ,CAAA;AAEArB,WAAKC,OAAAA;AACL,aAAOA;IACT;;EAEF;IACEqC,aAAazC;IACb,OAAOC,OAAOC,GAAGC,OAAAA;AACf,YAAMC,UAAUC,MAAMH,GAAG,MAAA;AACvB,cAAMwC,QAAQC,kBAAkBlC,OAAM;AACtCiC,cAAME,QACHC,WAAW;UAAEC,IAAI;UAAaC,MAAMC;QAAW,CAAA,EAC/CH,WAAW;UAAEC,IAAI;UAAWC,MAAM;QAAM,CAAA,EACxCF,WAAW;UACVC,IAAI;UACJC,MAAM;UACNb,OAAO,IAAIe,IAAIA,IAAIC,KAAKC,OAAO;YAAC;YAAQC,QAAQb,OAAM;YAAIc,SAASd,OAAM;WAAG,EAAEe,SAAQ;QACxF,CAAA,EACCT,WAAW;UAAEC,IAAI;UAAcC,MAAM;QAAS,CAAA,EAC9CF,WAAW;UAAEC,IAAI;UAAcC,MAAMQ;QAAY,CAAA,EACjDC,WAAW;UAAEC,MAAM;UAAaC,UAAU;QAAS,GAAG;UAAED,MAAM;UAAWC,UAAU;QAAS,CAAA,EAC5FF,WAAW;UAAEC,MAAM;UAAWC,UAAU;QAAO,GAAG;UAAED,MAAM;UAAcC,UAAU;QAAO,CAAA,EACzFF,WAAW;UAAEC,MAAM;UAAgBC,UAAUC;QAAe,GAAG;UAAEF,MAAM;UAAcC,UAAU;QAAK,CAAA,EACpGF,WAAW;UAAEC,MAAM;UAAWC,UAAU;QAAW,GAAG;UAAED,MAAM;UAAcC,UAAU;QAAQ,CAAA,EAC9FF,WAAW;UAAEC,MAAM;UAAgBC,UAAUC;QAAe,GAAG;UAAEF,MAAM;UAAcC,UAAU;QAAQ,CAAA;AAE1G,eAAOzD,MAAMM,GAAGC,IAAIkC,MAAMkB,IAAI;MAChC,CAAA;AACAzD,WAAKC,OAAAA;AACL,aAAOA;IACT;;CAEH;AAEM,IAAMyD,kBAAkB,CAAuBd,SAAAA;AACpD,SAAO,OACL9C,OACAC,GACAC,OAAAA;AAGA,UAAM2D,SACH,MAAM7D,MAAMM,GAAGwD,eAAeC,MAAM;MAAEhE,UAAU+C,KAAK/C;IAAS,CAAA,EAAGiE,iBAAgB,MACjF,MAAMhE,MAAMM,GAAGwD,eAAeG,SAAS;MAACnB;KAAK,GAAG,CAAA;AAGnD,UAAMoB,WAAWC,qBAAqBzE,WAAWmE,OAAOO,kBAAiB,GAAI;MAAE9D,IAAIN,MAAMM;IAAG,CAAA;AAC5F,UAAMH,UAAU,MAAM+D,SAASG,cAAcpE,CAAAA;AAG7C,UAAM,EAAEE,SAASmE,OAAM,IAAK,MAAMtE,MAAMM,GAAGyD,MAAMQ,OAAOV,OAAOW,SAAAA,CAAAA,EAAYC,IAAG;AAC9E,UAAMC,QAAQJ,OAAOK,KAAK,CAACD,WAAUA,OAAME,MAAMC,QAAQd,OAAOjB,SAASA,KAAK/C,QAAQ;AACtF,QAAI,CAAC2E,OAAO;AACV,YAAMjE,OAAOqC,KAAK/C,SAAS+E,MAAM,GAAA,EAAKC,IAAG,KAAMjC,KAAK/C;AACpD,YAAM6E,OAAOI,WAAW;QAAEvE;QAAMV,UAAU+C,KAAK/C;QAAUkF,YAAYpB,OAAOoB;MAAW,CAAA;AACvF,YAAMP,SAAQ1E,MAAMM,GAAGC,IAAIC,OAAOgE,WAAW;QAAE/D;QAAMmE,MAAM/D,QAAQ+D,IAAAA;MAAM,CAAA,CAAA;AACzE1E,WAAK;QAACwE;OAAM;IACd;AAEA,WAAOvE;EACT;AACF;;;ACnKA,OAAO+E,WAAW;AAElB,SAASC,kBAAkB;AASpB,IAAMC,cAAc,CAAC,EAAEC,OAAOC,UAAU,CAAC,GAAGC,OAAOC,QAAO,MAAoB;AACnF,SACE,sBAAA,cAACC,OAAAA;IAAIC,WAAU;KACb,sBAAA,cAACD,OAAAA;IAAIC,WAAU;KACb,sBAAA,cAACD,OAAAA;IAAIC,WAAU;KAAiCH,KAAAA,GAChD,sBAAA,cAACE,OAAAA;IAAIC,WAAU;KAAuC,OAAA,CAAA,GAEvDL,MAAMM,IAAI,CAACC,SACV,sBAAA,cAACH,OAAAA;IAAII,KAAKD,KAAKE;IAAUJ,WAAU;KACjC,sBAAA,cAACD,OAAAA;IAAIC,WAAU;KAAyCE,KAAKE,QAAQ,GACrE,sBAAA,cAACL,OAAAA;IAAIC,WAAU;KAA6BJ,QAAQM,KAAKE,QAAQ,KAAK,CAAA,GACtE,sBAAA,cAACC,YAAAA;IACCC,SAAQ;IACRC,MAAK;IACLC,UAAAA;IACAX,OAAM;IACNC,SAAS,MAAMA,QAAQI,KAAKE,QAAQ;;AAMhD;;;ACjCA,SAAiCK,oBAAoBC,cAAAA,mBAAkB;AACvE,SAASC,KAAKC,YAAAA,WAAUC,GAAGC,oBAAoB;AAC/C,SAASC,iBAAiBC,mBAAmB;AAC7C,SAASC,iBAAiB;AAC1B,SAASC,OAAAA,MAAKC,WAAAA,gBAAe;AAC7B,SAASC,UAAAA,SAAQC,WAAAA,gBAAe;AAChC,SAASC,UAAAA,eAA0B;AACnC,SAEEC,cACAC,YACAC,oBACAC,gBACAC,WACAC,aACAC,gBACAC,YACAC,qBACK;AACP,SACEC,iBACAC,kBACAC,eACAC,cACAC,oBACK;AACP,SAASC,aAAAA,kBAAiB;AAC1B,SAASC,SAAAA,cAAa;;;UAIVC,aAAAA;;;;;GAAAA,eAAAA,aAAAA,CAAAA,EAAAA;AAOL,IAAMC,UAAU;EACrBC,SAAS;IAACT;IAAiBjB;;EAC3B2B,OAAOC,OAAOC,OAAOL,UAAAA,EAAYM,IAAI,CAACC,UAAU;IAAEC,UAAUD;EAAK,EAAA;EACjEE,OAAO;IACL;;MAEE,OAAOC,OAAOC,GAAGC,OAAAA;AACf,cAAMC,UAAUd,OAAMY,GAAG,MAAA;AACvB,gBAAMG,cAAcpB,iBAAiBb,OAAM;AAE3C,cAAIkC;AACJD,sBAAYE,QAAQC,KAAK,CAACD,YAAAA;AACxB,kBAAME,MAAMJ,YAAYK,WAAW/B,UAAUgC,SAAS;cAAEC,GAAG;cAAGC,GAAG;YAAI,CAAA,CAAA,CAAA;AACrE,kBAAMC,eAAe/B,cAAc;cAAEgC,aAAa/C,YAAYgD;cAAS,GAAGL,SAAS;gBAAEC,GAAG;gBAAKC,GAAG;cAAG,CAAA;YAAG,CAAA;AACtG,kBAAMI,UAAUZ,YAAYK,WAAWI,YAAAA;AACvC,kBAAMI,OAAOb,YAAYK,WAAW5B,WAAW6B,SAAS;cAAEC,GAAG;cAAIC,GAAG;cAAGM,OAAO;cAAIC,QAAQ;YAAG,CAAA,CAAA,CAAA;AAC7F,kBAAM,EAAEC,QAAO,IAAKC,WAAWjB,WAAAA;AAC/B,kBAAMkB,SAASlB,YAAYK,WAAWnC,aAAaoC,SAAS;cAAEC,GAAG;cAAIC,GAAG;YAAE,CAAA,CAAA,CAAA;AAE1EN,oBACGiB,WAAW;cAAEC,QAAQR,QAAQS;cAAIC,QAAQlB,IAAIiB;cAAIE,OAAO;cAAUC,QAAQ;YAAO,CAAA,EACjFL,WAAW;cAAEC,QAAQhB,IAAIiB;cAAIC,QAAQT,KAAKQ;cAAIG,QAAQ;YAAO,CAAA,EAC7DL,WAAW;cAAEC,QAAQJ,QAAQK;cAAIC,QAAQJ,OAAOG;cAAIE,OAAO;YAAK,CAAA,EAChEJ,WAAW;cAAEC,QAAQhB,IAAIiB;cAAIC,QAAQJ,OAAOG;cAAIG,QAAQ;cAAYD,OAAO;YAAQ,CAAA;AAEtFtB,8BAAkBQ,aAAaR,gBAAiBqB;UAClD,CAAA;AAEA,gBAAMG,eAAerD,mBAAmB4B,WAAAA;AAExC0B,wBAAczB,iBAAiBwB,YAAAA;AAE/B,iBAAOE,WAAAA,qBAAiC/B,OAAOI,aAAayB,YAAAA;QAC9D,CAAA;AACA3B,aAAKC,OAAAA;AACL,eAAOA;MACT;;IAGF;;MAEE,OAAOH,OAAOC,GAAGC,OAAAA;AACf,cAAMC,UAAUd,OAAMY,GAAG,MAAA;AACvB,gBAAMG,cAAcpB,iBAAiBb,OAAM;AAE3C,gBAAM6D,UAAUhC,MAAMiC,GAAGC,MAAM7D,QAAO8D,OAAO/C,UAAAA,CAAAA,EAAYgD,QAAO;AAChE,gBAAMC,aAAaL,QAAQM,KAAK,CAACC,MAAMA,EAAEC,QAAQC,MAAMf,QAAQQ,OAAOQ,MAAMC,SAAS,OAAA,CAAA;AACrF3E,oBAAUqE,YAAY,0BAAA;;;;;;;;;AAEtB,gBAAMO,WAAWxC,YAAYK,WAC3B7B,eAAe;YACbiE,WAAW;YACX,GAAGC,YAAY;cAAEC,SAAS;cAAKC,SAAS;cAAK9B,OAAO;cAAKC,QAAQ;YAAI,CAAA;UACvE,CAAA,CAAA;AAEF,gBAAM8B,kBAAkB;YAAC;;AAEzB,cAAI5C;AACJD,sBAAYE,QAAQC,KAAK,CAACD,YAAAA;AACxB,kBAAMO,eAAe/B,cAAc;cAAEgC,aAAa/C,YAAYmF;cAAO,GAAGxC,SAAS;gBAAEC,GAAG;gBAAKC,GAAG;cAAG,CAAA;YAAG,CAAA;AACpG,kBAAMI,UAAUZ,YAAYK,WAAWI,YAAAA;AAEvC,kBAAMsC,UAAU/C,YAAYK,WAC1BhC,eAAe;cACb2E,OAAOnF,KAAIoF,kBAAkBhB,WAAWZ,EAAE,EAAE6B,SAAQ;cACpD,GAAG5C,SAAS;gBAAEC,GAAG;gBAAKC,GAAG;gBAAGM,OAAO;gBAAGC,QAAQ;cAAE,CAAA;YAClD,CAAA,CAAA;AAGF,kBAAMoC,gBAAgBnD,YAAYK,WAAWnC,aAAaoC,SAAS;cAAEC,GAAG;cAAIC,GAAG;YAAE,CAAA,CAAA,CAAA;AAEjF,kBAAM4C,aAAa9F,IAAI+F,sBAAsBjG,mBAAmBkG,GAAG;AACnE,qBAASC,IAAI,GAAGA,IAAIH,WAAWI,QAAQD,KAAK;AAC1C,oBAAME,WAAWL,WAAWG,CAAAA,EAAG9D,KAAKyD,SAAQ;AAC5ChD,sBAAQiB,WAAW;gBAAEC,QAAQR,QAAQS;gBAAIC,QAAQkB,SAASnB;gBAAIE,OAAOkC;gBAAUjC,QAAQiC;cAAS,CAAA;AAChGZ,8BAAgBa,KAAK,MAAMD,QAAAA,SAAiBA,QAAAA,SAAiBF,MAAMH,WAAWI,SAAS,IAAI,KAAK,IAAE;YACpG;AACAX,4BAAgBa,KAAK,GAAA;AAErBxD,oBACGiB,WAAW;cAAEC,QAAQ2B,QAAQ1B;cAAIC,QAAQ6B,cAAc9B;cAAIE,OAAO;YAAK,CAAA,EACvEJ,WAAW;cAAEC,QAAQoB,SAASnB;cAAIC,QAAQ6B,cAAc9B;cAAIE,OAAO;YAAQ,CAAA;AAE9EtB,8BAAkBQ,aAAaR,gBAAiBqB;UAClD,CAAA;AAEA,gBAAMG,eAAerD,mBAAmB4B,WAAAA;AAExC,gBAAM2D,sBAAsBlC,aAAamC,MAAM1B,KAAK,CAACrC,OAAMA,GAAEwB,OAAOmB,SAASqB,IAAI;AACjFjG,oBAAU+F,qBAAqB,0CAAA;;;;;;;;;AAC/BA,8BAAoBX,QAAQH,gBAAgBiB,KAAK,IAAA;AACjDH,8BAAoBI,cAActG,aAAaL,kBAAAA;AAE/CsE,wBAAczB,iBAAiBwB,YAAAA;AAE/B,iBAAOE,WAAAA,eAAmC/B,OAAOI,aAAayB,YAAAA;QAChE,CAAA;AACA3B,aAAKC,OAAAA;AACL,eAAOA;MACT;;IAGF;;MAEE,OAAOH,OAAOC,GAAGC,OAAAA;AACf,cAAMC,UAAUd,OAAMY,GAAG,MAAA;AACvB,gBAAMG,cAAcpB,iBAAiBb,OAAM;AAE3CiC,sBAAYE,QAAQC,KAAK,CAACD,YAAAA;AACxB,kBAAME,MAAMJ,YAAYK,WAAW/B,UAAUgC,SAAS;cAAEC,GAAG;cAAGC,GAAG;YAAI,CAAA,CAAA,CAAA;AACrE,kBAAMwD,OAAOhE,YAAYK,WAAWlC,WAAWmC,SAAS;cAAEC,GAAG;cAAKC,GAAG;YAAG,CAAA,CAAA,CAAA;AACxE,kBAAMK,OAAOb,YAAYK,WAAW5B,WAAW6B,SAAS;cAAEC,GAAG;cAAIC,GAAG;cAAGM,OAAO;cAAIC,QAAQ;YAAG,CAAA,CAAA,CAAA;AAC7F,kBAAM,EAAEC,QAAO,IAAKC,WAAWjB,WAAAA;AAE/B,kBAAMkB,SAASlB,YAAYK,WAAWnC,aAAaoC,SAAS;cAAEC,GAAG;cAAIC,GAAG;YAAE,CAAA,CAAA,CAAA;AAE1EN,oBACGiB,WAAW;cAAEC,QAAQ4C,KAAK3C;cAAIC,QAAQlB,IAAIiB;cAAIE,OAAO;YAAS,CAAA,EAC9DJ,WAAW;cAAEC,QAAQhB,IAAIiB;cAAIC,QAAQT,KAAKQ;cAAIG,QAAQ;YAAO,CAAA,EAC7DL,WAAW;cAAEC,QAAQJ,QAAQK;cAAIC,QAAQJ,OAAOG;cAAIE,OAAO;YAAK,CAAA,EAChEJ,WAAW;cAAEC,QAAQhB,IAAIiB;cAAIC,QAAQJ,OAAOG;cAAIG,QAAQ;cAAYD,OAAO;YAAQ,CAAA;UACxF,CAAA;AAEA,gBAAME,eAAerD,mBAAmB4B,WAAAA;AAExC,iBAAO2B,WAAAA,iBAAgC/B,OAAOI,aAAayB,YAAAA;QAC7D,CAAA;AACA3B,aAAKC,OAAAA;AACL,eAAOA;MACT;;IAGF;;MAEE,OAAOH,OAAOC,GAAGC,OAAAA;AACf,cAAMC,UAAUd,OAAMY,GAAG,MAAA;AACvB,gBAAMG,cAAcpB,iBAAiBb,OAAM;AAE3C,gBAAM6D,UAAUhC,MAAMiC,GAAGC,MAAM7D,QAAO8D,OAAO/C,UAAAA,CAAAA,EAAYgD,QAAO;AAChE,gBAAMC,aAAaL,QAAQM,KAAK,CAACC,MAAMA,EAAEC,QAAQC,MAAMf,QAAQQ,OAAOQ,MAAMC,SAAS,OAAA,CAAA;AACrF3E,oBAAUqE,YAAY,0BAAA;;;;;;;;;AAEtB,gBAAMO,WAAWxC,YAAYK,WAC3B7B,eAAe;YACbiE,WAAW;YACX,GAAGC,YAAY;cAAEC,SAAS;cAAKC,SAAS;cAAM9B,OAAO;cAAKC,QAAQ;YAAI,CAAA;UACxE,CAAA,CAAA;AAEF,gBAAM8B,kBAAkB;YAAC;;AAEzB,cAAI5C;AACJD,sBAAYE,QAAQC,KAAK,CAACD,YAAAA;AACxB,kBAAME,MAAMJ,YAAYK,WACtB/B,UAAUoE,YAAY;cAAEC,SAAS;cAAMC,SAAS;cAAM9B,OAAO;cAAKC,QAAQ;YAAI,CAAA,CAAA,CAAA;AAEhF,kBAAMkD,eAAejE,YAAYK,WAC/BhC,eAAe;cACb2E,OAAO;cACP,GAAGN,YAAY;gBAAEC,SAAS;gBAAMC,SAAS;gBAAM9B,OAAO;gBAAKC,QAAQ;cAAI,CAAA;YACzE,CAAA,CAAA;AAEF,kBAAMN,eAAe/B,cAAc;cACjCgC,aAAa/C,YAAYmF;cACzB,GAAGJ,YAAY;gBAAEC,SAAS;gBAAMC,SAAS;gBAAM9B,OAAO;gBAAKC,QAAQ;cAAI,CAAA;YACzE,CAAA;AACA,kBAAMH,UAAUZ,YAAYK,WAAWI,YAAAA;AAEvC,kBAAM,EAAEO,QAAO,IAAKC,WAAWjB,aAAa;cAC1CkE,YAAY;gBAAEvB,SAAS;gBAAMC,SAAS;gBAAK9B,OAAO;gBAAKC,QAAQ;cAAI;cACnEoD,eAAe;gBAAExB,SAAS;gBAAMC,SAAS;gBAAK9B,OAAO;gBAAKC,QAAQ;cAAI;YACxE,CAAA;AACA,kBAAMqD,gBAAgBpE,YAAYK,WAChCnC,aAAawE,YAAY;cAAEC,SAAS;cAAKC,SAAS;cAAI9B,OAAO;cAAKC,QAAQ;YAAI,CAAA,CAAA,CAAA;AAGhF,kBAAMgC,UAAU/C,YAAYK,WAC1BhC,eAAe;cACb2E,OAAOnF,KAAIoF,kBAAkBhB,WAAWZ,EAAE,EAAE6B,SAAQ;cACpD,GAAGR,YAAY;gBAAEC,SAAS;gBAAMC,SAAS;gBAAM9B,OAAO;gBAAKC,QAAQ;cAAI,CAAA;YACzE,CAAA,CAAA;AAGF,kBAAMoC,gBAAgBnD,YAAYK,WAChCnC,aAAawE,YAAY;cAAEC,SAAS;cAAKC,SAAS;cAAM9B,OAAO;cAAKC,QAAQ;YAAI,CAAA,CAAA,CAAA;AAGlF8B,4BAAgBa,KAAK,2BAAA;AACrBxD,oBAAQiB,WAAW;cAAEC,QAAQhB,IAAIiB;cAAIC,QAAQkB,SAASnB;cAAIE,OAAO;cAAQC,QAAQ;YAAO,CAAA;AAExF,kBAAM4B,aAAa9F,IAAI+F,sBAAsBjG,mBAAmBkG,GAAG;AACnE,qBAASC,IAAI,GAAGA,IAAIH,WAAWI,QAAQD,KAAK;AAC1C,oBAAME,WAAWL,WAAWG,CAAAA,EAAG9D,KAAKyD,SAAQ;AAC5ChD,sBAAQiB,WAAW;gBAAEC,QAAQR,QAAQS;gBAAIC,QAAQkB,SAASnB;gBAAIE,OAAOkC;gBAAUjC,QAAQiC;cAAS,CAAA;AAChGZ,8BAAgBa,KAAK,MAAMD,QAAAA,SAAiBA,QAAAA,SAAiBF,MAAMH,WAAWI,SAAS,IAAI,KAAK,IAAE;YACpG;AACAX,4BAAgBa,KAAK,GAAA;AAErBxD,oBACGiB,WAAW;cAAEC,QAAQ2B,QAAQ1B;cAAIC,QAAQ6B,cAAc9B;cAAIE,OAAO;YAAK,CAAA,EACvEJ,WAAW;cAAEC,QAAQJ,QAAQK;cAAIC,QAAQ8C,cAAc/C;cAAIE,OAAO;YAAK,CAAA,EACvEJ,WAAW;cAAEC,QAAQhB,IAAIiB;cAAIC,QAAQ8C,cAAc/C;cAAIG,QAAQ;cAAYD,OAAO;YAAQ,CAAA,EAC1FJ,WAAW;cAAEC,QAAQ6C,aAAa5C;cAAIC,QAAQlB,IAAIiB;cAAIE,OAAO;YAAe,CAAA,EAC5EJ,WAAW;cAAEC,QAAQR,QAAQS;cAAIC,QAAQlB,IAAIiB;cAAIE,OAAO;cAAUC,QAAQ;YAAO,CAAA,EACjFL,WAAW;cAAEC,QAAQoB,SAASnB;cAAIC,QAAQ6B,cAAc9B;cAAIE,OAAO;YAAQ,CAAA;AAE9EtB,8BAAkBQ,aAAaR,gBAAiBqB;UAClD,CAAA;AAEA,gBAAMG,eAAerD,mBAAmB4B,WAAAA;AAExC,gBAAM2D,sBAAsBlC,aAAamC,MAAM1B,KAAK,CAACrC,OAAMA,GAAEwB,OAAOmB,SAASqB,IAAI;AACjFjG,oBAAU+F,qBAAqB,0CAAA;;;;;;;;;AAC/BA,8BAAoBX,QAAQH,gBAAgBiB,KAAK,IAAA;AACjD,gBAAMO,iBAAiB7G,EAAE8G,OAAOlH,oBAAoBI,EAAE+G,OAAO;YAAE1D,MAAMrD,EAAEgH;UAAO,CAAA,CAAA;AAC9Eb,8BAAoBI,cAActG,aAAa4G,cAAAA;AAE/C3C,wBAAczB,iBAAiBwB,YAAAA;AAE/B,iBAAOE,WAAAA,0BAA0C/B,OAAOI,aAAayB,YAAAA;QACvE,CAAA;AACA3B,aAAKC,OAAAA;AACL,eAAOA;MACT;;;AAGN;AAEA,IAAM4B,aAAa,CAAClC,MAAcG,OAAc6E,QAA0BC,YAAAA;AACxE,SAAO9E,MAAMiC,GAAG8C,IACd5G,QAAOY,iBAAiB;IACtBc;IACAmF,cAAc5G,SAAQ0G,QAAQG,IAAI;IAClCC,QAAQL,OAAOM;EACjB,CAAA,CAAA;AAEJ;AAEA,IAAM9D,aAAa,CACjBjB,aACAgF,SAAAA;AAEA,QAAMhE,UAAUhB,YAAYK,WAC1BhC,eAAe;IACb2E,OAAO,IAAInF,KAAIA,KAAIoH,KAAKC,OAAO;MAAC;MAAQpH,SAAQqH,OAAM;MAAI5H,UAAS4H,OAAM;KAAG,EAAEjC,SAAQ;IACtF,GAAI8B,MAAMd,aAAaxB,YAAYsC,KAAKd,UAAU,IAAI5D,SAAS;MAAEC,GAAG;MAAKC,GAAG;MAAGM,OAAO;MAAGC,QAAQ;IAAE,CAAA;EACrG,CAAA,CAAA;AAEF,QAAMqE,QAAQpF,YAAYK,WACxB9B,YACEyG,MAAMb,gBAAgBzB,YAAYsC,KAAKb,aAAa,IAAI7D,SAAS;IAAEC,GAAG;IAAIC,GAAG;IAAGM,OAAO;IAAIC,QAAQ;EAAG,CAAA,CAAA,CAAA;AAG1Gf,cAAYmB,WAAW;IAAEC,QAAQJ,QAAQK;IAAIC,QAAQ8D,MAAM/D;EAAG,CAAA;AAC9D,SAAO;IAAE+D;IAAOpE;EAAQ;AAC1B;AAEA,IAAMU,gBAAgB,CAACzB,iBAA8CwB,iBAAAA;AACnE7D,YAAUqC,iBAAAA,QAAAA;;;;;;;;;AACVA,kBAAgBoF,WAAWxH,KAAIoF,kBAAkBxB,aAAaoD,KAAKxD,EAAE,EAAE6B,SAAQ;AAC/EjD,kBAAgBqF,SAAS,CAAC;AAC1B,QAAMC,YAAY9D,aAAamC,MAAM1B,KAAK,CAAC2B,SAASA,KAAKvB,SAASjF,WAAAA;AAClE4C,kBAAgBqF,KAAKE,gBAAgBD,UAAUlE;AACjD;AAIA,IAAMqB,cAAc,CAACsC,SAAAA;AACnB,SAAO;IAAES,QAAQ;MAAElF,GAAGyE,KAAKrC;MAASnC,GAAGwE,KAAKpC;IAAQ;IAAG8C,MAAM;MAAE5E,OAAOkE,KAAKlE;MAAOC,QAAQiE,KAAKjE;IAAO;EAAE;AAC1G;AAEA,IAAMT,WAAW,CAACqF,SAAAA;AAChB,QAAMC,OAAO;AACb,QAAM,CAACH,QAAQC,IAAAA,IAAQ3G,aAAa;IAAE+B,OAAO;IAAGC,QAAQ;IAAG,GAAG4E;EAAK,CAAA;AACnE,QAAM,EAAEpF,GAAGC,GAAGM,OAAOC,OAAM,IAAKjC,aAAa;IAACD,cAAc4G,QAAQG,IAAAA;IAAO/G,cAAc6G,MAAME,IAAAA;GAAM;AACrG,MAAI9E,SAASC,QAAQ;AACnB,WAAO;MAAE0E,QAAQ;QAAElF;QAAGC;MAAE;MAAGkF,MAAM5E,SAASC,SAAS;QAAED;QAAOC;MAAO,IAAI8E;IAAU;EACnF,OAAO;AACL,WAAO;MAAEJ,QAAQ;QAAElF;QAAGC;MAAE;IAAE;EAC5B;AACF;;;AHtSO,IAAMsF,iBAAiB,CAAC,EAAEC,OAAOC,gBAAe,MAAuB;AAC5E,QAAMC,SAASC,UAAAA;AACf,QAAMC,cAAc;IAACC;IAAcC;IAAaC;IAAWC;;AAC3D,QAAMC,eAAe;IAACC,QAAQC;IAASD,QAAQE;IAAaF,QAAQG;IAAaH,QAAQI;;AACzF,QAAM,CAACC,OAAOC,QAAAA,IAAYC,SAAS,CAAA;AACnC,QAAM,CAACC,MAAMC,OAAAA,IAAWF,SAAc,CAAC,CAAA;AAGvC,QAAMG,UAAUC,QAAQ,MAAA;AACtBnB,WAAOoB,SAAS;SAAIlB;SAAgBmB,QAAQC;KAAQ;AACpD,UAAMC,oBAAoB,IAAIC,IAC5BjB,aAAakB,IAAI,CAACC,SAAS;MAACA,KAAKC;MAAUC,gBAAgBF,IAAAA;KAAa,CAAA;AAG1E,WAAO,IAAIF,IAAI;SAAIK;SAAqBR,QAAQS;SAAUP;KAAkB;EAC9E,GAAG;IAACvB;IAAQO;GAAa;AAGzB,QAAMwB,aAAa,YAAA;AAEjB,UAAMC,aAAa,MAAMlC,MAAMmC,GAAGC,eAAeC,MAAK,EAAGC,IAAG;AAC5D,UAAMC,eAAevC,MAAMmC,GAAGK,MAAMJ,eAAeZ;AAGnD,UAAM,EAAEiB,QAAO,IAAK,MAAMzC,MAAMmC,GAAGE,MAAK,EAAGC,IAAG;AAC9C,UAAMI,YAAYC,SAChBF,QAAQG,OAA+B,CAACjB,KAAKkB,QAAAA;AAC3C,YAAMjB,OAAOkB,YAAYD,GAAAA;AACzB,UAAIjB,MAAM;AACR,cAAMb,SAAQY,IAAIC,IAAAA,KAAS;AAC3BD,YAAIC,IAAAA,IAAQb,SAAQ;MACtB;AACA,aAAOY;IACT,GAAG,CAAC,CAAA,CAAA;AAGNR,YAAQ;MACN4B,QAAQ;QACNC,QAAQT,aAAaU;QACrBC,SAAShB,WAAWe;MACtB;MACAR,SAASC;IACX,CAAA;EACF;AAEAS,iBAAelB,YAAY;IAACjC;GAAM;AAElC,QAAMoD,mBAAmBC,YACvB,OAAOxB,aAAAA;AACL,UAAMyB,cAAclC,QAAQmC,IAAI1B,QAAAA;AAChC,QAAIyB,aAAa;AAEf,YAAMA,YAAYtD,OAAOe,OAAOd,eAAAA;AAChC,YAAMgC,WAAAA;IACR;EACF,GACA;IAACb;IAASL;GAAM;AAGlB,SACE,gBAAAyC,OAAA,cAACC,OAAAA;IAAIC,MAAK;IAAOC,WAAU;KACzB,gBAAAH,OAAA,cAACI,QAAQC,MAAI;IAACC,YAAW;KACvB,gBAAAN,OAAA,cAACO,aAAAA;IAAWC,MAAK;IAA+BC,UAAAA;IAASC,OAAM;IAAUC,SAASlC;MAClF,gBAAAuB,OAAA,cAACI,QAAQQ,WAAS;IAACC,SAAQ;MAC3B,gBAAAb,OAAA,cAACC,OAAAA;IAAIE,WAAU;KACb,gBAAAH,OAAA,cAACc,MAAMT,MAAI,MACT,gBAAAL,OAAA,cAACc,MAAMC,WAAS;IACd3C,MAAK;IACL4C,KAAK;IACLC,KAAK;IACLC,aAAa;IACbZ,YAAW;IACXa,OAAO5D;IACP6D,UAAU,CAACC,OAAO7D,SAAS8D,SAASD,GAAGE,OAAOJ,KAAK,CAAA;SAM3D,gBAAAnB,OAAA,cAACwB,aAAAA;IAAYC,OAAO7E;IAAaqC,SAASvB,KAAKuB;IAASyB,OAAM;IAAeC,SAASf;MACtF,gBAAAI,OAAA,cAACwB,aAAAA;IAAYC,OAAOxE;IAAcgC,SAASvB,KAAKuB;IAASyB,OAAM;IAAgBC,SAASf;MACxF,gBAAAI,OAAA,cAACwB,aAAAA;IAAYC,OAAO1D,QAAQ0D;IAAOxC,SAASvB,KAAKuB;IAASyB,OAAM;IAAUC,SAASf;MAEnF,gBAAAI,OAAA,cAAC0B,mBAAAA;IAAkBpB,YAAW;IAAeqB,UAAS;KACnDC,KAAKC,UAAU;IAAErF;IAAO,GAAGkB;EAAK,GAAGoE,gBAAgB;IAAEC,UAAU;EAAK,CAAA,GAAI,CAAA,CAAA,CAAA;AAIjF;;;AI7GA,IAAA,yBAAeC;",
|
|
6
|
-
"names": ["React", "useCallback", "useMemo", "useState", "ComputeGraph", "DocumentType", "SheetType", "DiagramType", "useClient", "getTypename", "IconButton", "Input", "Toolbar", "useAsyncEffect", "SyntaxHighlighter", "Testing", "jsonKeyReplacer", "sortKeys", "addressToA1Notation", "ComputeGraph", "ComputeGraphModel", "DEFAULT_OUTPUT", "NODE_INPUT", "NODE_OUTPUT", "ObjectId", "DXN", "SpaceId", "create", "makeRef", "DocumentType", "createSheet", "SheetType", "CanvasType", "DiagramType", "faker", "Filter", "TableType", "createView", "TextType", "createAsyncGenerator", "range", "generator", "faker", "staticGenerators", "Map", "DocumentType", "typename", "space", "n", "cb", "objects", "range", "map", "db", "add", "create", "name", "commerce", "productName", "content", "makeRef", "TextType", "lorem", "sentences", "threads", "DiagramType", "obj", "canvas", "CanvasType", "SheetType", "cells", "year", "Date", "getFullYear", "cols", "rows", "col", "row", "cell", "addressToA1Notation", "value", "from", "to", "Math", "floor", "random", "createSheet", "ComputeGraph", "model", "ComputeGraphModel", "builder", "createNode", "id", "type", "NODE_INPUT", "DXN", "kind", "QUEUE", "SpaceId", "ObjectId", "toString", "NODE_OUTPUT", "createEdge", "node", "property", "DEFAULT_OUTPUT", "root", "createGenerator", "schema", "schemaRegistry", "query", "firstOrUndefined", "register", "generate", "createAsyncGenerator", "getSchemaSnapshot", "createObjects", "tables", "Filter", "TableType", "run", "table", "find", "view", "target", "split", "pop", "createView", "jsonSchema", "React", "IconButton", "SchemaTable", "types", "objects", "label", "onClick", "div", "className", "map", "type", "key", "typename", "IconButton", "variant", "icon", "iconOnly", "EmailTriggerOutput", "NODE_INPUT", "AST", "ObjectId", "S", "toJsonSchema", "FunctionTrigger", "TriggerKind", "invariant", "DXN", "SpaceId", "create", "makeRef", "Filter", "createAppend", "createChat", "createComputeGraph", "createConstant", "createGpt", "createQueue", "createTemplate", "createText", "createTrigger", "CanvasBoardType", "CanvasGraphModel", "pointMultiply", "pointsToRect", "rectToPoints", "TableType", "range", "PresetName", "presets", "schemas", "types", "Object", "values", "map", "name", "typename", "items", "space", "n", "cb", "objects", "canvasModel", "functionTrigger", "builder", "call", "gpt", "createNode", "position", "x", "y", "triggerShape", "triggerKind", "Webhook", "trigger", "text", "width", "height", "queueId", "setupQueue", "append", "createEdge", "source", "id", "target", "input", "output", "computeModel", "attachTrigger", "addToSpace", "results", "db", "query", "schema", "runSync", "emailTable", "find", "r", "object", "view", "type", "endsWith", "template", "valueType", "rawPosition", "centerX", "centerY", "templateContent", "Email", "tableId", "value", "fromLocalObjectId", "toString", "appendToTable", "properties", "getPropertySignatures", "ast", "i", "length", "propName", "push", "templateComputeNode", "nodes", "node", "join", "inputSchema", "chat", "systemPrompt", "idPosition", "queuePosition", "appendToQueue", "extendedSchema", "extend", "Struct", "String", "canvas", "compute", "add", "computeGraph", "root", "layout", "graph", "args", "kind", "QUEUE", "random", "queue", "function", "meta", "inputNode", "computeNodeId", "center", "size", "rect", "snap", "undefined", "SpaceGenerator", "space", "onCreateObjects", "client", "useClient", "staticTypes", "DocumentType", "DiagramType", "SheetType", "ComputeGraph", "mutableTypes", "Testing", "OrgType", "ProjectType", "ContactType", "EmailType", "count", "setCount", "useState", "info", "setInfo", "typeMap", "useMemo", "addTypes", "presets", "schemas", "mutableGenerators", "Map", "map", "type", "typename", "createGenerator", "staticGenerators", "items", "updateInfo", "echoSchema", "db", "schemaRegistry", "query", "run", "staticSchema", "graph", "objects", "objectMap", "sortKeys", "reduce", "obj", "getTypename", "schema", "static", "length", "mutable", "useAsyncEffect", "handleCreateData", "useCallback", "constructor", "get", "React", "div", "role", "className", "Toolbar", "Root", "classNames", "IconButton", "icon", "iconOnly", "label", "onClick", "Separator", "variant", "Input", "TextInput", "min", "max", "placeholder", "value", "onChange", "ev", "parseInt", "target", "SchemaTable", "types", "SyntaxHighlighter", "language", "JSON", "stringify", "jsonKeyReplacer", "truncate", "SpaceGenerator"]
|
|
7
|
-
}
|
|
File without changes
|