@dxos/react-ui-canvas-compute 0.8.0 → 0.8.1-main.013e445
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/index.mjs +85 -34
- package/dist/lib/browser/index.mjs.map +4 -4
- package/dist/lib/browser/meta.json +1 -1
- package/dist/lib/node/index.cjs +234 -184
- package/dist/lib/node/index.cjs.map +4 -4
- package/dist/lib/node/meta.json +1 -1
- package/dist/lib/node-esm/index.mjs +85 -34
- package/dist/lib/node-esm/index.mjs.map +4 -4
- package/dist/lib/node-esm/meta.json +1 -1
- package/dist/types/src/components/DiagnosticOverlay.d.ts +2 -1
- package/dist/types/src/components/DiagnosticOverlay.d.ts.map +1 -1
- package/dist/types/src/compute.stories.d.ts +2 -1
- package/dist/types/src/compute.stories.d.ts.map +1 -1
- package/dist/types/src/graph/controller.d.ts +14 -13
- package/dist/types/src/graph/controller.d.ts.map +1 -1
- package/dist/types/src/hooks/index.d.ts +1 -0
- package/dist/types/src/hooks/index.d.ts.map +1 -1
- package/dist/types/src/hooks/useComputeGraphController.d.ts +10 -0
- package/dist/types/src/hooks/useComputeGraphController.d.ts.map +1 -0
- package/dist/types/src/shapes/Append.d.ts +2 -1
- package/dist/types/src/shapes/Append.d.ts.map +1 -1
- package/dist/types/src/shapes/Array.d.ts +2 -1
- package/dist/types/src/shapes/Array.d.ts.map +1 -1
- package/dist/types/src/shapes/Audio.d.ts +2 -1
- package/dist/types/src/shapes/Audio.d.ts.map +1 -1
- package/dist/types/src/shapes/Beacon.d.ts +2 -1
- package/dist/types/src/shapes/Beacon.d.ts.map +1 -1
- package/dist/types/src/shapes/Boolean.d.ts.map +1 -1
- package/dist/types/src/shapes/Chat.d.ts +2 -1
- package/dist/types/src/shapes/Chat.d.ts.map +1 -1
- package/dist/types/src/shapes/Constant.d.ts +2 -1
- package/dist/types/src/shapes/Constant.d.ts.map +1 -1
- package/dist/types/src/shapes/Database.d.ts +2 -1
- package/dist/types/src/shapes/Database.d.ts.map +1 -1
- package/dist/types/src/shapes/Function.d.ts.map +1 -1
- package/dist/types/src/shapes/Gpt.d.ts +2 -1
- package/dist/types/src/shapes/Gpt.d.ts.map +1 -1
- package/dist/types/src/shapes/GptRealtime.d.ts +2 -1
- package/dist/types/src/shapes/GptRealtime.d.ts.map +1 -1
- package/dist/types/src/shapes/Json.d.ts +3 -2
- package/dist/types/src/shapes/Json.d.ts.map +1 -1
- package/dist/types/src/shapes/Logic.d.ts +3 -2
- package/dist/types/src/shapes/Logic.d.ts.map +1 -1
- package/dist/types/src/shapes/Queue.d.ts +3 -2
- package/dist/types/src/shapes/Queue.d.ts.map +1 -1
- package/dist/types/src/shapes/RNG.d.ts +2 -1
- package/dist/types/src/shapes/RNG.d.ts.map +1 -1
- package/dist/types/src/shapes/Scope.d.ts +2 -1
- package/dist/types/src/shapes/Scope.d.ts.map +1 -1
- package/dist/types/src/shapes/Surface.d.ts +2 -1
- package/dist/types/src/shapes/Surface.d.ts.map +1 -1
- package/dist/types/src/shapes/Switch.d.ts +2 -1
- package/dist/types/src/shapes/Switch.d.ts.map +1 -1
- package/dist/types/src/shapes/Table.d.ts +2 -1
- package/dist/types/src/shapes/Table.d.ts.map +1 -1
- package/dist/types/src/shapes/Template.d.ts.map +1 -1
- package/dist/types/src/shapes/Text.d.ts +2 -1
- package/dist/types/src/shapes/Text.d.ts.map +1 -1
- package/dist/types/src/shapes/TextToImage.d.ts +2 -1
- package/dist/types/src/shapes/TextToImage.d.ts.map +1 -1
- package/dist/types/src/shapes/Thread.d.ts +3 -2
- package/dist/types/src/shapes/Thread.d.ts.map +1 -1
- package/dist/types/src/shapes/Trigger.d.ts +4 -3
- package/dist/types/src/shapes/Trigger.d.ts.map +1 -1
- package/dist/types/src/shapes/common/FunctionBody.d.ts +1 -1
- package/dist/types/src/shapes/common/FunctionBody.d.ts.map +1 -1
- package/dist/types/src/shapes/common/TypeSelect.d.ts +2 -1
- package/dist/types/src/shapes/common/TypeSelect.d.ts.map +1 -1
- package/dist/types/src/shapes/defs.d.ts +1 -1
- package/dist/types/src/shapes/defs.d.ts.map +1 -1
- package/dist/types/src/testing/circuits.d.ts +20 -3
- package/dist/types/src/testing/circuits.d.ts.map +1 -1
- package/package.json +40 -41
- package/src/compute.stories.tsx +20 -51
- package/src/hooks/index.ts +1 -0
- package/src/hooks/useComputeGraphController.ts +65 -0
- package/src/shapes/Function.tsx +3 -3
- package/src/shapes/Trigger.tsx +1 -1
- package/src/shapes/defs.ts +1 -1
- package/src/testing/circuits.ts +12 -5
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@dxos/react-ui-canvas-compute",
|
|
3
|
-
"version": "0.8.
|
|
3
|
+
"version": "0.8.1-main.013e445",
|
|
4
4
|
"description": "A compute graph extension for the canvas editor component.",
|
|
5
5
|
"homepage": "https://dxos.org",
|
|
6
6
|
"bugs": "https://github.com/dxos/dxos/issues",
|
|
@@ -24,33 +24,33 @@
|
|
|
24
24
|
"@antv/layout": "^1.2.13",
|
|
25
25
|
"@effect/platform": "0.75.1",
|
|
26
26
|
"chess.js": "^1.0.0",
|
|
27
|
-
"@dxos/app-framework": "0.8.
|
|
28
|
-
"@dxos/assistant": "0.8.
|
|
29
|
-
"@dxos/
|
|
30
|
-
"@dxos/
|
|
31
|
-
"@dxos/
|
|
32
|
-
"@dxos/
|
|
33
|
-
"@dxos/debug": "0.8.
|
|
34
|
-
"@dxos/echo-schema": "0.8.
|
|
35
|
-
"@dxos/edge-client": "0.8.
|
|
36
|
-
"@dxos/functions": "0.8.
|
|
37
|
-
"@dxos/
|
|
38
|
-
"@dxos/
|
|
39
|
-
"@dxos/keys": "0.8.
|
|
40
|
-
"@dxos/live-object": "0.8.
|
|
41
|
-
"@dxos/log": "0.8.
|
|
42
|
-
"@dxos/react-client": "0.8.
|
|
43
|
-
"@dxos/react-edge-client": "0.8.
|
|
44
|
-
"@dxos/react-ui-canvas": "0.8.
|
|
45
|
-
"@dxos/react-ui-
|
|
46
|
-
"@dxos/react-ui-editor": "0.8.
|
|
47
|
-
"@dxos/react-ui-
|
|
48
|
-
"@dxos/react-ui-
|
|
49
|
-
"@dxos/react-ui-sfx": "0.8.
|
|
50
|
-
"@dxos/react-ui-stack": "0.8.
|
|
51
|
-
"@dxos/
|
|
52
|
-
"@dxos/
|
|
53
|
-
"@dxos/util": "0.8.
|
|
27
|
+
"@dxos/app-framework": "0.8.1-main.013e445",
|
|
28
|
+
"@dxos/assistant": "0.8.1-main.013e445",
|
|
29
|
+
"@dxos/async": "0.8.1-main.013e445",
|
|
30
|
+
"@dxos/artifact": "0.8.1-main.013e445",
|
|
31
|
+
"@dxos/conductor": "0.8.1-main.013e445",
|
|
32
|
+
"@dxos/context": "0.8.1-main.013e445",
|
|
33
|
+
"@dxos/debug": "0.8.1-main.013e445",
|
|
34
|
+
"@dxos/echo-schema": "0.8.1-main.013e445",
|
|
35
|
+
"@dxos/edge-client": "0.8.1-main.013e445",
|
|
36
|
+
"@dxos/functions": "0.8.1-main.013e445",
|
|
37
|
+
"@dxos/graph": "0.8.1-main.013e445",
|
|
38
|
+
"@dxos/invariant": "0.8.1-main.013e445",
|
|
39
|
+
"@dxos/keys": "0.8.1-main.013e445",
|
|
40
|
+
"@dxos/live-object": "0.8.1-main.013e445",
|
|
41
|
+
"@dxos/log": "0.8.1-main.013e445",
|
|
42
|
+
"@dxos/react-client": "0.8.1-main.013e445",
|
|
43
|
+
"@dxos/react-edge-client": "0.8.1-main.013e445",
|
|
44
|
+
"@dxos/react-ui-canvas": "0.8.1-main.013e445",
|
|
45
|
+
"@dxos/react-ui-attention": "0.8.1-main.013e445",
|
|
46
|
+
"@dxos/react-ui-canvas-editor": "0.8.1-main.013e445",
|
|
47
|
+
"@dxos/react-ui-form": "0.8.1-main.013e445",
|
|
48
|
+
"@dxos/react-ui-editor": "0.8.1-main.013e445",
|
|
49
|
+
"@dxos/react-ui-sfx": "0.8.1-main.013e445",
|
|
50
|
+
"@dxos/react-ui-stack": "0.8.1-main.013e445",
|
|
51
|
+
"@dxos/react-ui-syntax-highlighter": "0.8.1-main.013e445",
|
|
52
|
+
"@dxos/schema": "0.8.1-main.013e445",
|
|
53
|
+
"@dxos/util": "0.8.1-main.013e445"
|
|
54
54
|
},
|
|
55
55
|
"devDependencies": {
|
|
56
56
|
"@effect/ai": "0.8.0",
|
|
@@ -58,27 +58,26 @@
|
|
|
58
58
|
"@types/lodash.defaultsdeep": "^4.6.6",
|
|
59
59
|
"@types/react": "~18.2.0",
|
|
60
60
|
"@types/react-dom": "~18.2.0",
|
|
61
|
-
"effect": "
|
|
61
|
+
"effect": "3.13.3",
|
|
62
62
|
"lodash.defaultsdeep": "^4.6.1",
|
|
63
63
|
"react": "~18.2.0",
|
|
64
64
|
"react-dom": "~18.2.0",
|
|
65
65
|
"vite": "5.4.7",
|
|
66
|
-
"@dxos/app-framework": "0.8.
|
|
67
|
-
"@dxos/artifact-testing": "0.8.
|
|
68
|
-
"@dxos/
|
|
69
|
-
"@dxos/
|
|
70
|
-
"@dxos/
|
|
71
|
-
"@dxos/react-ui
|
|
72
|
-
"@dxos/
|
|
73
|
-
"@dxos/
|
|
66
|
+
"@dxos/app-framework": "0.8.1-main.013e445",
|
|
67
|
+
"@dxos/artifact-testing": "0.8.1-main.013e445",
|
|
68
|
+
"@dxos/compute": "0.8.1-main.013e445",
|
|
69
|
+
"@dxos/echo-signals": "0.8.1-main.013e445",
|
|
70
|
+
"@dxos/random": "0.8.1-main.013e445",
|
|
71
|
+
"@dxos/react-ui": "0.8.1-main.013e445",
|
|
72
|
+
"@dxos/react-ui-theme": "0.8.1-main.013e445",
|
|
73
|
+
"@dxos/storybook-utils": "0.8.1-main.013e445"
|
|
74
74
|
},
|
|
75
75
|
"peerDependencies": {
|
|
76
|
-
"
|
|
77
|
-
"effect": "^3.12.3",
|
|
76
|
+
"effect": "3.13.3",
|
|
78
77
|
"react": "~18.2.0",
|
|
79
78
|
"react-dom": "~18.2.0",
|
|
80
|
-
"@dxos/react-ui
|
|
81
|
-
"@dxos/react-ui": "0.8.
|
|
79
|
+
"@dxos/react-ui": "0.8.1-main.013e445",
|
|
80
|
+
"@dxos/react-ui-theme": "0.8.1-main.013e445"
|
|
82
81
|
},
|
|
83
82
|
"publishConfig": {
|
|
84
83
|
"access": "public"
|
package/src/compute.stories.tsx
CHANGED
|
@@ -9,8 +9,8 @@ import React, { type PropsWithChildren, useEffect, useMemo, useRef, useState } f
|
|
|
9
9
|
|
|
10
10
|
import { withPluginManager } from '@dxos/app-framework/testing';
|
|
11
11
|
import { capabilities, createEdgeServices } from '@dxos/artifact-testing';
|
|
12
|
-
import {
|
|
13
|
-
import { type ComputeGraphModel, type ComputeNode, type GraphDiagnostic } from '@dxos/conductor';
|
|
12
|
+
import { createTestOllamaClient } from '@dxos/assistant/testing';
|
|
13
|
+
import { EdgeGpt, type ComputeGraphModel, type ComputeNode, type GraphDiagnostic } from '@dxos/conductor';
|
|
14
14
|
import { withClientProvider } from '@dxos/react-client/testing';
|
|
15
15
|
import { Select, Toolbar } from '@dxos/react-ui';
|
|
16
16
|
import { withAttention } from '@dxos/react-ui-attention/testing';
|
|
@@ -22,7 +22,7 @@ import { withLayout, withTheme } from '@dxos/storybook-utils';
|
|
|
22
22
|
import { DiagnosticOverlay } from './components';
|
|
23
23
|
import { ComputeShapeLayout } from './compute-layout';
|
|
24
24
|
import { type ComputeGraphController } from './graph';
|
|
25
|
-
import { ComputeContext, useGraphMonitor } from './hooks';
|
|
25
|
+
import { ComputeContext, useComputeGraphController, useGraphMonitor } from './hooks';
|
|
26
26
|
import { computeShapes } from './registry';
|
|
27
27
|
import { type ComputeShape } from './shapes';
|
|
28
28
|
import {
|
|
@@ -42,35 +42,24 @@ import {
|
|
|
42
42
|
|
|
43
43
|
const sidebarTypes: NonNullable<RenderProps['sidebar']>[] = ['canvas', 'compute', 'controller', 'selected'] as const;
|
|
44
44
|
|
|
45
|
-
// TODO(burdon): Move to async/context?
|
|
46
|
-
const combine = (...cbs: UnsubscribeCallback[]) => {
|
|
47
|
-
return () => {
|
|
48
|
-
for (const cb of cbs) {
|
|
49
|
-
cb();
|
|
50
|
-
}
|
|
51
|
-
};
|
|
52
|
-
};
|
|
53
|
-
|
|
54
45
|
type RenderProps = EditorRootProps<ComputeShape> &
|
|
55
46
|
PropsWithChildren<{
|
|
56
47
|
init?: boolean;
|
|
57
48
|
sidebar?: 'canvas' | 'compute' | 'controller' | 'selected';
|
|
58
49
|
computeGraph?: ComputeGraphModel;
|
|
59
|
-
controller?: ComputeGraphController;
|
|
50
|
+
controller?: ComputeGraphController | null;
|
|
60
51
|
}>;
|
|
61
52
|
|
|
62
53
|
const Render = ({
|
|
63
54
|
id = 'test',
|
|
64
55
|
children,
|
|
65
56
|
graph,
|
|
66
|
-
controller,
|
|
57
|
+
controller = null,
|
|
67
58
|
init,
|
|
68
59
|
sidebar: _sidebar,
|
|
69
60
|
registry,
|
|
70
61
|
...props
|
|
71
62
|
}: RenderProps) => {
|
|
72
|
-
const [, forceUpdate] = useState({});
|
|
73
|
-
|
|
74
63
|
const editorRef = useRef<EditorController>(null);
|
|
75
64
|
|
|
76
65
|
// Selection.
|
|
@@ -101,41 +90,7 @@ const Render = ({
|
|
|
101
90
|
}, [graph, controller, sidebar, selected]);
|
|
102
91
|
|
|
103
92
|
// Controller.
|
|
104
|
-
|
|
105
|
-
if (!controller || !graph) {
|
|
106
|
-
return;
|
|
107
|
-
}
|
|
108
|
-
|
|
109
|
-
void controller.open();
|
|
110
|
-
const off = combine(
|
|
111
|
-
controller.update.on(() => {
|
|
112
|
-
void editorRef.current?.update();
|
|
113
|
-
forceUpdate({});
|
|
114
|
-
}),
|
|
115
|
-
|
|
116
|
-
// TODO(burdon): Every node is called on every update.
|
|
117
|
-
controller.output.on(({ nodeId, property, value }) => {
|
|
118
|
-
if (value.type === 'not-executed') {
|
|
119
|
-
// If the node didn't execute, don't trigger.
|
|
120
|
-
return;
|
|
121
|
-
}
|
|
122
|
-
|
|
123
|
-
const edge = graph.edges.find((edge) => {
|
|
124
|
-
const source = graph.getNode(edge.source);
|
|
125
|
-
return (source as ComputeShape).node === nodeId && edge.output === property;
|
|
126
|
-
});
|
|
127
|
-
|
|
128
|
-
if (edge) {
|
|
129
|
-
void editorRef.current?.action?.({ type: 'trigger', edges: [edge] });
|
|
130
|
-
}
|
|
131
|
-
}),
|
|
132
|
-
);
|
|
133
|
-
|
|
134
|
-
return () => {
|
|
135
|
-
void controller.close();
|
|
136
|
-
off();
|
|
137
|
-
};
|
|
138
|
-
}, [graph, controller]);
|
|
93
|
+
useComputeGraphController({ controller, graph, editorRef });
|
|
139
94
|
|
|
140
95
|
// Sync monitor.
|
|
141
96
|
const graphMonitor = useGraphMonitor(controller?.graph);
|
|
@@ -343,6 +298,20 @@ export const Artifact: Story = {
|
|
|
343
298
|
},
|
|
344
299
|
};
|
|
345
300
|
|
|
301
|
+
export const ImageGen: Story = {
|
|
302
|
+
args: {
|
|
303
|
+
// debug: true,
|
|
304
|
+
showGrid: false,
|
|
305
|
+
snapToGrid: false,
|
|
306
|
+
// sidebar: 'json',
|
|
307
|
+
sidebar: 'controller',
|
|
308
|
+
registry: new ShapeRegistry(computeShapes),
|
|
309
|
+
...createComputeGraphController(createGptCircuit({ image: true, artifact: true }), {
|
|
310
|
+
gpt: new EdgeGpt(createTestOllamaClient()),
|
|
311
|
+
}),
|
|
312
|
+
},
|
|
313
|
+
};
|
|
314
|
+
|
|
346
315
|
export const Audio: Story = {
|
|
347
316
|
args: {
|
|
348
317
|
// debug: true,
|
package/src/hooks/index.ts
CHANGED
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
//
|
|
2
|
+
// Copyright 2025 DXOS.org
|
|
3
|
+
//
|
|
4
|
+
|
|
5
|
+
import { type RefObject, useEffect, useState } from 'react';
|
|
6
|
+
|
|
7
|
+
import { type UnsubscribeCallback } from '@dxos/async';
|
|
8
|
+
import { type EditorRootProps, type EditorController } from '@dxos/react-ui-canvas-editor';
|
|
9
|
+
|
|
10
|
+
import { type ComputeGraphController } from '../graph';
|
|
11
|
+
import { type ComputeShape } from '../shapes';
|
|
12
|
+
|
|
13
|
+
// TODO(burdon): Move to async/context?
|
|
14
|
+
const combine = (...cbs: UnsubscribeCallback[]) => {
|
|
15
|
+
return () => {
|
|
16
|
+
for (const cb of cbs) {
|
|
17
|
+
cb();
|
|
18
|
+
}
|
|
19
|
+
};
|
|
20
|
+
};
|
|
21
|
+
|
|
22
|
+
export type UseComputeGraphControllerOptions = Pick<EditorRootProps<ComputeShape>, 'graph'> & {
|
|
23
|
+
controller: ComputeGraphController | null;
|
|
24
|
+
editorRef: RefObject<EditorController>;
|
|
25
|
+
};
|
|
26
|
+
|
|
27
|
+
export const useComputeGraphController = ({ controller, graph, editorRef }: UseComputeGraphControllerOptions) => {
|
|
28
|
+
const [, forceUpdate] = useState({});
|
|
29
|
+
|
|
30
|
+
useEffect(() => {
|
|
31
|
+
if (!controller || !graph) {
|
|
32
|
+
return;
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
void controller.open();
|
|
36
|
+
const off = combine(
|
|
37
|
+
controller.update.on(() => {
|
|
38
|
+
void editorRef.current?.update();
|
|
39
|
+
forceUpdate({});
|
|
40
|
+
}),
|
|
41
|
+
|
|
42
|
+
// TODO(burdon): Every node is called on every update.
|
|
43
|
+
controller.output.on(({ nodeId, property, value }) => {
|
|
44
|
+
if (value.type === 'not-executed') {
|
|
45
|
+
// If the node didn't execute, don't trigger.
|
|
46
|
+
return;
|
|
47
|
+
}
|
|
48
|
+
|
|
49
|
+
const edge = graph.edges.find((edge) => {
|
|
50
|
+
const source = graph.getNode(edge.source);
|
|
51
|
+
return (source as ComputeShape).node === nodeId && edge.output === property;
|
|
52
|
+
});
|
|
53
|
+
|
|
54
|
+
if (edge) {
|
|
55
|
+
void editorRef.current?.action?.({ type: 'trigger', edges: [edge] });
|
|
56
|
+
}
|
|
57
|
+
}),
|
|
58
|
+
);
|
|
59
|
+
|
|
60
|
+
return () => {
|
|
61
|
+
void controller.close();
|
|
62
|
+
off();
|
|
63
|
+
};
|
|
64
|
+
}, [graph, controller]);
|
|
65
|
+
};
|
package/src/shapes/Function.tsx
CHANGED
|
@@ -5,8 +5,8 @@
|
|
|
5
5
|
import React, { useCallback, useRef } from 'react';
|
|
6
6
|
|
|
7
7
|
import { AnyOutput, FunctionInput } from '@dxos/conductor';
|
|
8
|
-
import { getSnapshot, S } from '@dxos/echo-schema';
|
|
9
|
-
import { FunctionType, ScriptType } from '@dxos/functions';
|
|
8
|
+
import { getSnapshot, isInstanceOf, S } from '@dxos/echo-schema';
|
|
9
|
+
import { FunctionType, ScriptType } from '@dxos/functions/types';
|
|
10
10
|
import { useClient } from '@dxos/react-client';
|
|
11
11
|
import { Filter, makeRef, parseId } from '@dxos/react-client/echo';
|
|
12
12
|
import {
|
|
@@ -56,7 +56,7 @@ const TextInputComponent = ({ shape, title, ...props }: TextInputComponentProps)
|
|
|
56
56
|
|
|
57
57
|
const space = client.spaces.get(spaceId);
|
|
58
58
|
const object = space?.db.getObjectById(objectId);
|
|
59
|
-
if (!space || !(object
|
|
59
|
+
if (!space || !isInstanceOf(ScriptType, object)) {
|
|
60
60
|
return;
|
|
61
61
|
}
|
|
62
62
|
|
package/src/shapes/Trigger.tsx
CHANGED
|
@@ -22,7 +22,7 @@ import {
|
|
|
22
22
|
TriggerKind,
|
|
23
23
|
type TriggerType,
|
|
24
24
|
type WebhookTrigger,
|
|
25
|
-
} from '@dxos/functions';
|
|
25
|
+
} from '@dxos/functions/types';
|
|
26
26
|
import { DXN, SpaceId } from '@dxos/keys';
|
|
27
27
|
import { create, makeRef, useSpace } from '@dxos/react-client/echo';
|
|
28
28
|
import { Select, type SelectRootProps } from '@dxos/react-ui';
|
package/src/shapes/defs.ts
CHANGED
package/src/testing/circuits.ts
CHANGED
|
@@ -37,7 +37,10 @@ import {
|
|
|
37
37
|
createTemplate,
|
|
38
38
|
} from '../shapes';
|
|
39
39
|
|
|
40
|
-
export const createComputeGraphController = (
|
|
40
|
+
export const createComputeGraphController = (
|
|
41
|
+
graph = CanvasGraphModel.create<ComputeShape>(),
|
|
42
|
+
services?: Partial<Services>,
|
|
43
|
+
) => {
|
|
41
44
|
const computeGraph = createComputeGraph(graph);
|
|
42
45
|
const controller = new ComputeGraphController(computeGraph);
|
|
43
46
|
controller.setServices(services ?? {});
|
|
@@ -228,6 +231,7 @@ export const createGptCircuit = (options: {
|
|
|
228
231
|
image?: boolean;
|
|
229
232
|
history?: boolean;
|
|
230
233
|
artifact?: boolean;
|
|
234
|
+
instructions?: boolean;
|
|
231
235
|
}) => {
|
|
232
236
|
const model = CanvasGraphModel.create<ComputeShape>();
|
|
233
237
|
model.builder.call((builder) => {
|
|
@@ -255,18 +259,21 @@ export const createGptCircuit = (options: {
|
|
|
255
259
|
.createEdge({ source: gpt.id, target: append.id, output: 'messages', input: 'items' });
|
|
256
260
|
}
|
|
257
261
|
|
|
258
|
-
if (options.
|
|
262
|
+
if (options.instructions) {
|
|
259
263
|
const prompt = model.createNode(
|
|
260
264
|
createTemplate({
|
|
261
265
|
text: createSystemPrompt(),
|
|
262
266
|
...position({ x: -18, y: -12, width: 8, height: 10 }),
|
|
263
267
|
}),
|
|
264
268
|
);
|
|
269
|
+
|
|
270
|
+
builder.createEdge({ source: prompt.id, target: gpt.id, input: 'systemPrompt' });
|
|
271
|
+
}
|
|
272
|
+
|
|
273
|
+
if (options.artifact) {
|
|
265
274
|
const artifact = model.createNode(createSurface(position({ x: 17, y: -10, width: 14, height: 14 })));
|
|
266
275
|
|
|
267
|
-
builder
|
|
268
|
-
.createEdge({ source: prompt.id, target: gpt.id, input: 'systemPrompt' })
|
|
269
|
-
.createEdge({ source: gpt.id, target: artifact.id, output: 'artifact' });
|
|
276
|
+
builder.createEdge({ source: gpt.id, target: artifact.id, output: 'artifact' });
|
|
270
277
|
}
|
|
271
278
|
|
|
272
279
|
if (options.cot) {
|