@dxos/react-ui-canvas-compute 0.8.4-main.67995b8 → 0.8.4-main.72ec0f3
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 +223 -197
- package/dist/lib/browser/index.mjs.map +4 -4
- package/dist/lib/browser/meta.json +1 -1
- package/dist/lib/node-esm/index.mjs +223 -197
- package/dist/lib/node-esm/index.mjs.map +4 -4
- package/dist/lib/node-esm/meta.json +1 -1
- package/dist/types/src/compute.stories.d.ts +12 -5
- package/dist/types/src/compute.stories.d.ts.map +1 -1
- package/dist/types/src/graph/controller.d.ts +12 -29
- package/dist/types/src/graph/controller.d.ts.map +1 -1
- package/dist/types/src/graph/node-defs.d.ts.map +1 -1
- package/dist/types/src/hooks/useComputeGraphController.d.ts +2 -2
- package/dist/types/src/hooks/useComputeGraphController.d.ts.map +1 -1
- package/dist/types/src/hooks/useComputeNodeState.d.ts +2 -2
- package/dist/types/src/hooks/useComputeNodeState.d.ts.map +1 -1
- package/dist/types/src/hooks/useGraphMonitor.d.ts +1 -1
- package/dist/types/src/hooks/useGraphMonitor.d.ts.map +1 -1
- package/dist/types/src/json.test.d.ts +1 -1
- package/dist/types/src/json.test.d.ts.map +1 -1
- package/dist/types/src/shapes/Append.d.ts +1 -1
- package/dist/types/src/shapes/Append.d.ts.map +1 -1
- package/dist/types/src/shapes/Array.d.ts +1 -1
- package/dist/types/src/shapes/Array.d.ts.map +1 -1
- package/dist/types/src/shapes/Audio.d.ts +1 -1
- package/dist/types/src/shapes/Audio.d.ts.map +1 -1
- package/dist/types/src/shapes/Beacon.d.ts +1 -1
- package/dist/types/src/shapes/Beacon.d.ts.map +1 -1
- package/dist/types/src/shapes/Boolean.d.ts +1 -1
- package/dist/types/src/shapes/Boolean.d.ts.map +1 -1
- package/dist/types/src/shapes/Chat.d.ts +1 -1
- package/dist/types/src/shapes/Chat.d.ts.map +1 -1
- package/dist/types/src/shapes/Constant.d.ts +1 -1
- package/dist/types/src/shapes/Constant.d.ts.map +1 -1
- package/dist/types/src/shapes/Database.d.ts +1 -1
- package/dist/types/src/shapes/Database.d.ts.map +1 -1
- package/dist/types/src/shapes/Function.d.ts +1 -1
- package/dist/types/src/shapes/Function.d.ts.map +1 -1
- package/dist/types/src/shapes/Gpt.d.ts +1 -1
- package/dist/types/src/shapes/Gpt.d.ts.map +1 -1
- package/dist/types/src/shapes/GptRealtime.d.ts +1 -1
- package/dist/types/src/shapes/GptRealtime.d.ts.map +1 -1
- package/dist/types/src/shapes/Json.d.ts +1 -1
- package/dist/types/src/shapes/Json.d.ts.map +1 -1
- package/dist/types/src/shapes/Logic.d.ts +1 -1
- package/dist/types/src/shapes/Logic.d.ts.map +1 -1
- package/dist/types/src/shapes/Queue.d.ts +1 -1
- package/dist/types/src/shapes/Queue.d.ts.map +1 -1
- package/dist/types/src/shapes/RNG.d.ts +1 -1
- package/dist/types/src/shapes/RNG.d.ts.map +1 -1
- package/dist/types/src/shapes/Scope.d.ts +1 -1
- package/dist/types/src/shapes/Scope.d.ts.map +1 -1
- package/dist/types/src/shapes/Surface.d.ts +1 -1
- package/dist/types/src/shapes/Surface.d.ts.map +1 -1
- package/dist/types/src/shapes/Switch.d.ts +1 -1
- package/dist/types/src/shapes/Switch.d.ts.map +1 -1
- package/dist/types/src/shapes/Table.d.ts +1 -1
- package/dist/types/src/shapes/Table.d.ts.map +1 -1
- package/dist/types/src/shapes/Template.d.ts +1 -1
- package/dist/types/src/shapes/Template.d.ts.map +1 -1
- package/dist/types/src/shapes/Text.d.ts +1 -1
- package/dist/types/src/shapes/Text.d.ts.map +1 -1
- package/dist/types/src/shapes/TextToImage.d.ts +1 -1
- package/dist/types/src/shapes/TextToImage.d.ts.map +1 -1
- package/dist/types/src/shapes/Thread.d.ts +1 -1
- package/dist/types/src/shapes/Thread.d.ts.map +1 -1
- package/dist/types/src/shapes/Trigger.d.ts +4 -33
- package/dist/types/src/shapes/Trigger.d.ts.map +1 -1
- package/dist/types/src/shapes/common/Box.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/defs.d.ts +2 -1
- package/dist/types/src/shapes/defs.d.ts.map +1 -1
- package/dist/types/src/testing/circuits.d.ts +1 -1
- package/dist/types/src/testing/circuits.d.ts.map +1 -1
- package/dist/types/tsconfig.tsbuildinfo +1 -1
- package/package.json +54 -51
- package/src/compute-layout.ts +1 -1
- package/src/compute.stories.tsx +19 -18
- package/src/graph/controller.ts +21 -9
- package/src/graph/node-defs.ts +4 -4
- package/src/hooks/useComputeGraphController.ts +2 -2
- package/src/hooks/useComputeNodeState.ts +7 -5
- package/src/hooks/useGraphMonitor.ts +2 -2
- package/src/json.test.ts +1 -1
- package/src/registry.ts +2 -2
- package/src/schema.test.ts +4 -4
- package/src/shapes/Append.tsx +3 -3
- package/src/shapes/Array.tsx +3 -3
- package/src/shapes/Audio.tsx +5 -4
- package/src/shapes/Beacon.tsx +5 -4
- package/src/shapes/Boolean.tsx +5 -5
- package/src/shapes/Chat.tsx +4 -3
- package/src/shapes/Constant.tsx +4 -3
- package/src/shapes/Database.tsx +2 -2
- package/src/shapes/Function.tsx +10 -9
- package/src/shapes/Gpt.tsx +8 -6
- package/src/shapes/GptRealtime.tsx +3 -3
- package/src/shapes/Json.tsx +4 -3
- package/src/shapes/Logic.tsx +3 -3
- package/src/shapes/Queue.tsx +6 -5
- package/src/shapes/RNG.tsx +9 -4
- package/src/shapes/Scope.tsx +6 -5
- package/src/shapes/Surface.tsx +10 -5
- package/src/shapes/Switch.tsx +5 -4
- package/src/shapes/Table.tsx +6 -6
- package/src/shapes/Template.tsx +6 -5
- package/src/shapes/Text.tsx +5 -4
- package/src/shapes/TextToImage.tsx +2 -2
- package/src/shapes/Thread.tsx +8 -8
- package/src/shapes/Trigger.tsx +42 -54
- package/src/shapes/common/Box.tsx +6 -6
- package/src/shapes/common/FunctionBody.tsx +5 -4
- package/src/shapes/common/TypeSelect.tsx +1 -1
- package/src/shapes/defs.ts +3 -2
- package/src/testing/circuits.ts +2 -2
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@dxos/react-ui-canvas-compute",
|
|
3
|
-
"version": "0.8.4-main.
|
|
3
|
+
"version": "0.8.4-main.72ec0f3",
|
|
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",
|
|
@@ -9,10 +9,10 @@
|
|
|
9
9
|
"type": "module",
|
|
10
10
|
"exports": {
|
|
11
11
|
".": {
|
|
12
|
+
"source": "./src/index.ts",
|
|
12
13
|
"types": "./dist/types/src/index.d.ts",
|
|
13
14
|
"browser": "./dist/lib/browser/index.mjs",
|
|
14
|
-
"node": "./dist/lib/node-esm/index.mjs"
|
|
15
|
-
"source": "./src/index.ts"
|
|
15
|
+
"node": "./dist/lib/node-esm/index.mjs"
|
|
16
16
|
}
|
|
17
17
|
},
|
|
18
18
|
"types": "dist/types/src/index.d.ts",
|
|
@@ -26,63 +26,66 @@
|
|
|
26
26
|
"dependencies": {
|
|
27
27
|
"@antv/graphlib": "^2.0.4",
|
|
28
28
|
"@antv/layout": "^1.2.13",
|
|
29
|
-
"@effect/platform": "0.
|
|
29
|
+
"@effect/platform": "0.92.1",
|
|
30
30
|
"@preact-signals/safe-react": "^0.9.0",
|
|
31
31
|
"chess.js": "^1.0.0",
|
|
32
|
-
"@dxos/ai": "0.8.4-main.
|
|
33
|
-
"@dxos/app-framework": "0.8.4-main.
|
|
34
|
-
"@dxos/
|
|
35
|
-
"@dxos/
|
|
36
|
-
"@dxos/blueprints": "0.8.4-main.
|
|
37
|
-
"@dxos/conductor": "0.8.4-main.
|
|
38
|
-
"@dxos/
|
|
39
|
-
"@dxos/debug": "0.8.4-main.
|
|
40
|
-
"@dxos/
|
|
41
|
-
"@dxos/
|
|
42
|
-
"@dxos/functions": "0.8.4-main.
|
|
43
|
-
"@dxos/
|
|
44
|
-
"@dxos/invariant": "0.8.4-main.
|
|
45
|
-
"@dxos/
|
|
46
|
-
"@dxos/
|
|
47
|
-
"@dxos/
|
|
48
|
-
"@dxos/
|
|
49
|
-
"@dxos/react-
|
|
50
|
-
"@dxos/react-
|
|
51
|
-
"@dxos/react-ui-
|
|
52
|
-
"@dxos/react-ui-editor": "0.8.4-main.
|
|
53
|
-
"@dxos/react-ui-form": "0.8.4-main.
|
|
54
|
-
"@dxos/react-ui-canvas
|
|
55
|
-
"@dxos/react-ui-sfx": "0.8.4-main.
|
|
56
|
-
"@dxos/react-ui-
|
|
57
|
-
"@dxos/schema": "0.8.4-main.
|
|
58
|
-
"@dxos/react-ui-
|
|
59
|
-
"@dxos/
|
|
32
|
+
"@dxos/ai": "0.8.4-main.72ec0f3",
|
|
33
|
+
"@dxos/app-framework": "0.8.4-main.72ec0f3",
|
|
34
|
+
"@dxos/async": "0.8.4-main.72ec0f3",
|
|
35
|
+
"@dxos/assistant": "0.8.4-main.72ec0f3",
|
|
36
|
+
"@dxos/blueprints": "0.8.4-main.72ec0f3",
|
|
37
|
+
"@dxos/conductor": "0.8.4-main.72ec0f3",
|
|
38
|
+
"@dxos/echo": "0.8.4-main.72ec0f3",
|
|
39
|
+
"@dxos/debug": "0.8.4-main.72ec0f3",
|
|
40
|
+
"@dxos/edge-client": "0.8.4-main.72ec0f3",
|
|
41
|
+
"@dxos/context": "0.8.4-main.72ec0f3",
|
|
42
|
+
"@dxos/functions": "0.8.4-main.72ec0f3",
|
|
43
|
+
"@dxos/functions-runtime": "0.8.4-main.72ec0f3",
|
|
44
|
+
"@dxos/invariant": "0.8.4-main.72ec0f3",
|
|
45
|
+
"@dxos/graph": "0.8.4-main.72ec0f3",
|
|
46
|
+
"@dxos/keys": "0.8.4-main.72ec0f3",
|
|
47
|
+
"@dxos/live-object": "0.8.4-main.72ec0f3",
|
|
48
|
+
"@dxos/log": "0.8.4-main.72ec0f3",
|
|
49
|
+
"@dxos/react-client": "0.8.4-main.72ec0f3",
|
|
50
|
+
"@dxos/react-edge-client": "0.8.4-main.72ec0f3",
|
|
51
|
+
"@dxos/react-ui-attention": "0.8.4-main.72ec0f3",
|
|
52
|
+
"@dxos/react-ui-editor": "0.8.4-main.72ec0f3",
|
|
53
|
+
"@dxos/react-ui-form": "0.8.4-main.72ec0f3",
|
|
54
|
+
"@dxos/react-ui-canvas": "0.8.4-main.72ec0f3",
|
|
55
|
+
"@dxos/react-ui-sfx": "0.8.4-main.72ec0f3",
|
|
56
|
+
"@dxos/react-ui-canvas-editor": "0.8.4-main.72ec0f3",
|
|
57
|
+
"@dxos/schema": "0.8.4-main.72ec0f3",
|
|
58
|
+
"@dxos/react-ui-stack": "0.8.4-main.72ec0f3",
|
|
59
|
+
"@dxos/react-ui-syntax-highlighter": "0.8.4-main.72ec0f3",
|
|
60
|
+
"@dxos/util": "0.8.4-main.72ec0f3",
|
|
61
|
+
"@dxos/types": "0.8.4-main.72ec0f3"
|
|
60
62
|
},
|
|
61
63
|
"devDependencies": {
|
|
62
|
-
"@effect/ai": "0.
|
|
64
|
+
"@effect/ai": "0.29.1",
|
|
65
|
+
"@effect/experimental": "0.56.0",
|
|
63
66
|
"@types/lodash.defaultsdeep": "^4.6.6",
|
|
64
|
-
"@types/react": "~
|
|
65
|
-
"@types/react-dom": "~
|
|
66
|
-
"effect": "3.
|
|
67
|
+
"@types/react": "~19.2.2",
|
|
68
|
+
"@types/react-dom": "~19.2.2",
|
|
69
|
+
"effect": "3.18.3",
|
|
67
70
|
"lodash.defaultsdeep": "^4.6.1",
|
|
68
|
-
"react": "~
|
|
69
|
-
"react-dom": "~
|
|
70
|
-
"vite": "
|
|
71
|
-
"@dxos/app-framework": "0.8.4-main.
|
|
72
|
-
"@dxos/assistant-
|
|
73
|
-
"@dxos/compute": "0.8.4-main.
|
|
74
|
-
"@dxos/echo-signals": "0.8.4-main.
|
|
75
|
-
"@dxos/
|
|
76
|
-
"@dxos/
|
|
77
|
-
"@dxos/
|
|
78
|
-
"@dxos/
|
|
71
|
+
"react": "~19.2.0",
|
|
72
|
+
"react-dom": "~19.2.0",
|
|
73
|
+
"vite": "7.1.9",
|
|
74
|
+
"@dxos/app-framework": "0.8.4-main.72ec0f3",
|
|
75
|
+
"@dxos/assistant-toolkit": "0.8.4-main.72ec0f3",
|
|
76
|
+
"@dxos/compute": "0.8.4-main.72ec0f3",
|
|
77
|
+
"@dxos/echo-signals": "0.8.4-main.72ec0f3",
|
|
78
|
+
"@dxos/react-ui": "0.8.4-main.72ec0f3",
|
|
79
|
+
"@dxos/random": "0.8.4-main.72ec0f3",
|
|
80
|
+
"@dxos/react-ui-theme": "0.8.4-main.72ec0f3",
|
|
81
|
+
"@dxos/storybook-utils": "0.8.4-main.72ec0f3"
|
|
79
82
|
},
|
|
80
83
|
"peerDependencies": {
|
|
81
84
|
"effect": "^3.13.3",
|
|
82
|
-
"react": "
|
|
83
|
-
"react-dom": "
|
|
84
|
-
"@dxos/react-ui": "0.8.4-main.
|
|
85
|
-
"@dxos/react-ui-theme": "0.8.4-main.
|
|
85
|
+
"react": "^19.0.0",
|
|
86
|
+
"react-dom": "^19.0.0",
|
|
87
|
+
"@dxos/react-ui": "0.8.4-main.72ec0f3",
|
|
88
|
+
"@dxos/react-ui-theme": "0.8.4-main.72ec0f3"
|
|
86
89
|
},
|
|
87
90
|
"publishConfig": {
|
|
88
91
|
"access": "public"
|
package/src/compute-layout.ts
CHANGED
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
//
|
|
4
4
|
|
|
5
5
|
import { DefaultInput, DefaultOutput } from '@dxos/conductor';
|
|
6
|
-
import { toEffectSchema } from '@dxos/echo
|
|
6
|
+
import { toEffectSchema } from '@dxos/echo/internal';
|
|
7
7
|
import { type Anchor, ShapeLayout, type ShapeRegistry } from '@dxos/react-ui-canvas-editor';
|
|
8
8
|
|
|
9
9
|
import { type ComputeGraphController } from './graph';
|
package/src/compute.stories.tsx
CHANGED
|
@@ -2,17 +2,16 @@
|
|
|
2
2
|
// Copyright 2024 DXOS.org
|
|
3
3
|
//
|
|
4
4
|
|
|
5
|
-
import '@
|
|
6
|
-
|
|
7
|
-
import type { Meta, StoryObj } from '@storybook/react-vite';
|
|
5
|
+
import { type Meta, type StoryObj } from '@storybook/react-vite';
|
|
8
6
|
import React, { type PropsWithChildren, useEffect, useMemo, useRef, useState } from 'react';
|
|
9
7
|
|
|
10
8
|
import { withPluginManager } from '@dxos/app-framework/testing';
|
|
11
|
-
import { capabilities } from '@dxos/assistant-
|
|
9
|
+
import { capabilities } from '@dxos/assistant-toolkit';
|
|
12
10
|
import { type ComputeGraphModel, type ComputeNode, type GraphDiagnostic } from '@dxos/conductor';
|
|
13
|
-
import { ServiceContainer } from '@dxos/functions';
|
|
11
|
+
import { ServiceContainer } from '@dxos/functions-runtime';
|
|
14
12
|
import { withClientProvider } from '@dxos/react-client/testing';
|
|
15
13
|
import { Select, Toolbar } from '@dxos/react-ui';
|
|
14
|
+
import { withTheme } from '@dxos/react-ui/testing';
|
|
16
15
|
import { withAttention } from '@dxos/react-ui-attention/testing';
|
|
17
16
|
import {
|
|
18
17
|
CanvasGraphModel,
|
|
@@ -23,7 +22,6 @@ import {
|
|
|
23
22
|
} from '@dxos/react-ui-canvas-editor';
|
|
24
23
|
import { Container, useSelection } from '@dxos/react-ui-canvas-editor/testing';
|
|
25
24
|
import { JsonFilter } from '@dxos/react-ui-syntax-highlighter';
|
|
26
|
-
import { withLayout, withTheme } from '@dxos/storybook-utils';
|
|
27
25
|
|
|
28
26
|
import { DiagnosticOverlay } from './components';
|
|
29
27
|
import { ComputeShapeLayout } from './compute-layout';
|
|
@@ -37,8 +35,8 @@ import {
|
|
|
37
35
|
createBasicCircuit,
|
|
38
36
|
createComputeGraphController,
|
|
39
37
|
createControlCircuit,
|
|
40
|
-
createGptCircuit,
|
|
41
38
|
createGPTRealtimeCircuit,
|
|
39
|
+
createGptCircuit,
|
|
42
40
|
createLogicCircuit,
|
|
43
41
|
createTemplateCircuit,
|
|
44
42
|
createTransformCircuit,
|
|
@@ -121,7 +119,7 @@ const DefaultStory = ({
|
|
|
121
119
|
}
|
|
122
120
|
|
|
123
121
|
return (
|
|
124
|
-
<div className='grid grid-cols-[1fr,360px]
|
|
122
|
+
<div className='grid grid-cols-[1fr,360px] is-full bs-full'>
|
|
125
123
|
<ComputeContext.Provider value={{ controller }}>
|
|
126
124
|
<Container id={id} classNames={['flex grow overflow-hidden', !sidebar && 'col-span-2']}>
|
|
127
125
|
<Editor.Root<ComputeShape>
|
|
@@ -143,8 +141,8 @@ const DefaultStory = ({
|
|
|
143
141
|
</ComputeContext.Provider>
|
|
144
142
|
|
|
145
143
|
{sidebar && (
|
|
146
|
-
<Container id='sidebar' classNames='flex flex-col
|
|
147
|
-
<Toolbar.Root
|
|
144
|
+
<Container id='sidebar' classNames='flex flex-col bs-full overflow-hidden'>
|
|
145
|
+
<Toolbar.Root>
|
|
148
146
|
<Select.Root value={sidebar} onValueChange={(value) => setSidebar(value as RenderProps['sidebar'])}>
|
|
149
147
|
<Select.TriggerButton classNames='is-full'>{sidebar}</Select.TriggerButton>
|
|
150
148
|
<Select.Portal>
|
|
@@ -156,12 +154,13 @@ const DefaultStory = ({
|
|
|
156
154
|
</Select.Item>
|
|
157
155
|
))}
|
|
158
156
|
</Select.Viewport>
|
|
157
|
+
<Select.Arrow />
|
|
159
158
|
</Select.Content>
|
|
160
159
|
</Select.Portal>
|
|
161
160
|
</Select.Root>
|
|
162
161
|
</Toolbar.Root>
|
|
163
162
|
|
|
164
|
-
<div className='flex flex-col
|
|
163
|
+
<div className='flex flex-col bs-full overflow-hidden divide-y divider-separator'>
|
|
165
164
|
{sidebar === 'selected' && selected && (
|
|
166
165
|
<div>Form</div>
|
|
167
166
|
// <Form<ComputeNode> schema={FormSchema} values={getComputeNode(selected.id) ?? {}} Custom={{}} />
|
|
@@ -175,22 +174,24 @@ const DefaultStory = ({
|
|
|
175
174
|
);
|
|
176
175
|
};
|
|
177
176
|
|
|
178
|
-
const meta
|
|
177
|
+
const meta = {
|
|
179
178
|
title: 'ui/react-ui-canvas-compute/compute',
|
|
180
|
-
component: Editor.Root,
|
|
179
|
+
component: Editor.Root as any,
|
|
181
180
|
render: DefaultStory,
|
|
182
181
|
decorators: [
|
|
183
182
|
withTheme,
|
|
184
183
|
withAttention,
|
|
185
184
|
withClientProvider({ createIdentity: true, createSpace: true }),
|
|
186
|
-
withLayout({ fullscreen: true }),
|
|
187
185
|
withPluginManager({ capabilities }),
|
|
188
186
|
],
|
|
189
|
-
|
|
187
|
+
parameters: {
|
|
188
|
+
layout: 'fullscreen',
|
|
189
|
+
},
|
|
190
|
+
} satisfies Meta<typeof DefaultStory>;
|
|
190
191
|
|
|
191
192
|
export default meta;
|
|
192
193
|
|
|
193
|
-
type Story = StoryObj<
|
|
194
|
+
type Story = StoryObj<typeof meta>;
|
|
194
195
|
|
|
195
196
|
export const Default: Story = {
|
|
196
197
|
args: {
|
|
@@ -289,7 +290,7 @@ export const Plugins: Story = {
|
|
|
289
290
|
...createComputeGraphController(
|
|
290
291
|
createGptCircuit({ history: true, image: true, artifact: true }),
|
|
291
292
|
new ServiceContainer().setServices({
|
|
292
|
-
// ai: AiService.make(new Edge AiServiceClient({ endpoint:
|
|
293
|
+
// ai: AiService.make(new Edge AiServiceClient({ endpoint: SERVICES_CONFIG.local.ai.server })),
|
|
293
294
|
}),
|
|
294
295
|
),
|
|
295
296
|
},
|
|
@@ -305,7 +306,7 @@ export const Artifact: Story = {
|
|
|
305
306
|
...createComputeGraphController(
|
|
306
307
|
createArtifactCircuit(),
|
|
307
308
|
new ServiceContainer().setServices({
|
|
308
|
-
// ai: AiService.make(new Edge AiServiceClient({ endpoint:
|
|
309
|
+
// ai: AiService.make(new Edge AiServiceClient({ endpoint: SERVICES_CONFIG.local.ai.server })),
|
|
309
310
|
}),
|
|
310
311
|
),
|
|
311
312
|
},
|
package/src/graph/controller.ts
CHANGED
|
@@ -2,15 +2,18 @@
|
|
|
2
2
|
// Copyright 2024 DXOS.org
|
|
3
3
|
//
|
|
4
4
|
|
|
5
|
-
import
|
|
5
|
+
import type * as Context from 'effect/Context';
|
|
6
|
+
import * as Effect from 'effect/Effect';
|
|
7
|
+
import * as Either from 'effect/Either';
|
|
8
|
+
import * as Exit from 'effect/Exit';
|
|
9
|
+
import * as Scope from 'effect/Scope';
|
|
6
10
|
|
|
7
|
-
import { type ImageContentBlock } from '@dxos/ai';
|
|
8
11
|
import { Event, synchronized } from '@dxos/async';
|
|
9
12
|
import {
|
|
10
13
|
type ComputeEdge,
|
|
11
14
|
type ComputeGraphModel,
|
|
12
|
-
type ComputeMeta,
|
|
13
15
|
type ComputeNode,
|
|
16
|
+
type ComputeNodeMeta,
|
|
14
17
|
type GptInput,
|
|
15
18
|
type GptOutput,
|
|
16
19
|
type GraphDiagnostic,
|
|
@@ -19,15 +22,17 @@ import {
|
|
|
19
22
|
isNotExecuted,
|
|
20
23
|
} from '@dxos/conductor';
|
|
21
24
|
import { Resource } from '@dxos/context';
|
|
22
|
-
import { type
|
|
23
|
-
import { type ServiceContainer } from '@dxos/functions';
|
|
25
|
+
import { type ComputeEventLogger, type ComputeEventPayload } from '@dxos/functions';
|
|
26
|
+
import { type ServiceContainer } from '@dxos/functions-runtime';
|
|
24
27
|
import { log } from '@dxos/log';
|
|
25
28
|
import { type CanvasGraphModel } from '@dxos/react-ui-canvas-editor';
|
|
29
|
+
import { type ContentBlock } from '@dxos/types';
|
|
26
30
|
|
|
27
|
-
import { resolveComputeNode } from './node-defs';
|
|
28
31
|
import { createComputeGraph } from '../hooks';
|
|
29
32
|
import { type ComputeShape } from '../shapes';
|
|
30
33
|
|
|
34
|
+
import { resolveComputeNode } from './node-defs';
|
|
35
|
+
|
|
31
36
|
// TODO(burdon): API package for conductor.
|
|
32
37
|
export const InvalidStateError = Error;
|
|
33
38
|
|
|
@@ -42,7 +47,7 @@ export interface GptExecutor {
|
|
|
42
47
|
invoke: FunctionCallback<GptInput, GptOutput>;
|
|
43
48
|
|
|
44
49
|
// TODO(dmaretskyi): A hack to get image artifacts working. Rework into querying images from the ai-service store.
|
|
45
|
-
imageCache: Map<string,
|
|
50
|
+
imageCache: Map<string, ContentBlock.Image>;
|
|
46
51
|
}
|
|
47
52
|
|
|
48
53
|
export type RuntimeValue =
|
|
@@ -153,7 +158,14 @@ export class ComputeGraphController extends Resource {
|
|
|
153
158
|
/**
|
|
154
159
|
* Inputs and outputs for all nodes.
|
|
155
160
|
*/
|
|
156
|
-
get state()
|
|
161
|
+
get state(): Record<
|
|
162
|
+
string,
|
|
163
|
+
{
|
|
164
|
+
node: ComputeNode;
|
|
165
|
+
input: Record<string, RuntimeValue>;
|
|
166
|
+
output: Record<string, RuntimeValue>;
|
|
167
|
+
}
|
|
168
|
+
> {
|
|
157
169
|
const ids = [...new Set([...Object.keys(this._runtimeStateInputs), ...Object.keys(this._runtimeStateOutputs)])];
|
|
158
170
|
return Object.fromEntries(
|
|
159
171
|
ids.map((id) => [
|
|
@@ -200,7 +212,7 @@ export class ComputeGraphController extends Resource {
|
|
|
200
212
|
});
|
|
201
213
|
}
|
|
202
214
|
|
|
203
|
-
async getMeta(node: ComputeNode): Promise<
|
|
215
|
+
async getMeta(node: ComputeNode): Promise<ComputeNodeMeta> {
|
|
204
216
|
const { meta } = await resolveComputeNode(node);
|
|
205
217
|
return meta;
|
|
206
218
|
}
|
package/src/graph/node-defs.ts
CHANGED
|
@@ -3,16 +3,16 @@
|
|
|
3
3
|
//
|
|
4
4
|
|
|
5
5
|
import {
|
|
6
|
-
NODE_INPUT,
|
|
7
|
-
NODE_OUTPUT,
|
|
8
6
|
type ComputeNode,
|
|
9
7
|
type Executable,
|
|
8
|
+
NODE_INPUT,
|
|
9
|
+
NODE_OUTPUT,
|
|
10
10
|
type NodeType,
|
|
11
|
-
registry,
|
|
12
11
|
getTemplateInputSchema,
|
|
12
|
+
registry,
|
|
13
13
|
} from '@dxos/conductor';
|
|
14
14
|
import { raise } from '@dxos/debug';
|
|
15
|
-
import { ObjectId, toJsonSchema } from '@dxos/echo
|
|
15
|
+
import { ObjectId, toJsonSchema } from '@dxos/echo/internal';
|
|
16
16
|
import { invariant } from '@dxos/invariant';
|
|
17
17
|
|
|
18
18
|
import { type ComputeShape, type ConstantShape, type TemplateShape } from '../shapes';
|
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
import { type RefObject, useEffect, useState } from 'react';
|
|
6
6
|
|
|
7
7
|
import { type CleanupFn } from '@dxos/async';
|
|
8
|
-
import { type
|
|
8
|
+
import { type EditorController, type EditorRootProps } from '@dxos/react-ui-canvas-editor';
|
|
9
9
|
|
|
10
10
|
import { type ComputeGraphController } from '../graph';
|
|
11
11
|
import { type ComputeShape } from '../shapes';
|
|
@@ -21,7 +21,7 @@ const combine = (...cbs: CleanupFn[]) => {
|
|
|
21
21
|
|
|
22
22
|
export type UseComputeGraphControllerOptions = Pick<EditorRootProps<ComputeShape>, 'graph'> & {
|
|
23
23
|
controller: ComputeGraphController | null;
|
|
24
|
-
editorRef: RefObject<EditorController>;
|
|
24
|
+
editorRef: RefObject<EditorController | null>;
|
|
25
25
|
};
|
|
26
26
|
|
|
27
27
|
export const useComputeGraphController = ({ controller, graph, editorRef }: UseComputeGraphControllerOptions) => {
|
|
@@ -2,20 +2,21 @@
|
|
|
2
2
|
// Copyright 2025 DXOS.org
|
|
3
3
|
//
|
|
4
4
|
|
|
5
|
-
import
|
|
5
|
+
import * as Schema from 'effect/Schema';
|
|
6
6
|
import { useCallback, useEffect, useState } from 'react';
|
|
7
7
|
|
|
8
|
-
import type { ComputeNode,
|
|
8
|
+
import type { ComputeNode, ComputeNodeMeta } from '@dxos/conductor';
|
|
9
9
|
import type { ComputeEventPayload } from '@dxos/functions';
|
|
10
10
|
import { invariant } from '@dxos/invariant';
|
|
11
11
|
|
|
12
|
-
import { useComputeContext } from './compute-context';
|
|
13
12
|
import { type RuntimeValue } from '../graph';
|
|
14
13
|
import { type ComputeShape } from '../shapes';
|
|
15
14
|
|
|
15
|
+
import { useComputeContext } from './compute-context';
|
|
16
|
+
|
|
16
17
|
export type ComputeNodeState = {
|
|
17
18
|
node: ComputeNode;
|
|
18
|
-
meta:
|
|
19
|
+
meta: ComputeNodeMeta;
|
|
19
20
|
runtime: {
|
|
20
21
|
inputs: Record<string, RuntimeValue>;
|
|
21
22
|
outputs: Record<string, RuntimeValue>;
|
|
@@ -32,7 +33,7 @@ export const useComputeNodeState = (shape: ComputeShape): ComputeNodeState => {
|
|
|
32
33
|
const { controller } = useComputeContext();
|
|
33
34
|
invariant(controller);
|
|
34
35
|
|
|
35
|
-
const [meta, setMeta] = useState<
|
|
36
|
+
const [meta, setMeta] = useState<ComputeNodeMeta>();
|
|
36
37
|
useEffect(() => {
|
|
37
38
|
let disposed = false;
|
|
38
39
|
queueMicrotask(async () => {
|
|
@@ -42,6 +43,7 @@ export const useComputeNodeState = (shape: ComputeShape): ComputeNodeState => {
|
|
|
42
43
|
if (disposed) {
|
|
43
44
|
return;
|
|
44
45
|
}
|
|
46
|
+
|
|
45
47
|
setMeta(meta);
|
|
46
48
|
});
|
|
47
49
|
|
|
@@ -5,10 +5,10 @@
|
|
|
5
5
|
import { useMemo } from 'react';
|
|
6
6
|
|
|
7
7
|
import { type ComputeEdge, ComputeGraphModel, type ComputeNode, DEFAULT_INPUT, DEFAULT_OUTPUT } from '@dxos/conductor';
|
|
8
|
-
import { ObjectId, Ref } from '@dxos/echo
|
|
8
|
+
import { ObjectId, Ref } from '@dxos/echo/internal';
|
|
9
9
|
import { invariant } from '@dxos/invariant';
|
|
10
10
|
import { getSpace } from '@dxos/react-client/echo';
|
|
11
|
-
import { type
|
|
11
|
+
import { type CanvasGraphModel, type Connection, type GraphMonitor } from '@dxos/react-ui-canvas-editor';
|
|
12
12
|
import { isNonNullable } from '@dxos/util';
|
|
13
13
|
|
|
14
14
|
import { createComputeNode, isValidComputeNode } from '../graph';
|
package/src/json.test.ts
CHANGED
package/src/registry.ts
CHANGED
package/src/schema.test.ts
CHANGED
|
@@ -2,22 +2,22 @@
|
|
|
2
2
|
// Copyright 2024 DXOS.org
|
|
3
3
|
//
|
|
4
4
|
|
|
5
|
-
import
|
|
5
|
+
import * as Schema from 'effect/Schema';
|
|
6
6
|
import { describe, test } from 'vitest';
|
|
7
7
|
|
|
8
|
-
import { live } from '@dxos/
|
|
8
|
+
import { live } from '@dxos/echo/internal';
|
|
9
9
|
import { BaseGraphNode, Graph } from '@dxos/graph';
|
|
10
10
|
import {
|
|
11
11
|
Polygon,
|
|
12
|
+
Shape,
|
|
12
13
|
createEllipse,
|
|
13
14
|
createPath,
|
|
14
15
|
createRectangle,
|
|
15
16
|
isPath,
|
|
16
17
|
isPolygon,
|
|
17
|
-
Shape,
|
|
18
18
|
} from '@dxos/react-ui-canvas-editor';
|
|
19
19
|
|
|
20
|
-
import {
|
|
20
|
+
import { ComputeShape, createFunction, createSwitch } from './shapes';
|
|
21
21
|
|
|
22
22
|
describe('compute', () => {
|
|
23
23
|
test('model', ({ expect }) => {
|
package/src/shapes/Append.tsx
CHANGED
|
@@ -2,14 +2,14 @@
|
|
|
2
2
|
// Copyright 2024 DXOS.org
|
|
3
3
|
//
|
|
4
4
|
|
|
5
|
-
import
|
|
5
|
+
import * as Schema from 'effect/Schema';
|
|
6
6
|
import React from 'react';
|
|
7
7
|
|
|
8
8
|
import { AppendInput } from '@dxos/conductor';
|
|
9
9
|
import { type ShapeComponentProps, type ShapeDef } from '@dxos/react-ui-canvas-editor';
|
|
10
10
|
|
|
11
|
-
import {
|
|
12
|
-
import { ComputeShape,
|
|
11
|
+
import { FunctionBody, createFunctionAnchors, getHeight } from './common';
|
|
12
|
+
import { ComputeShape, type CreateShapeProps, createShape } from './defs';
|
|
13
13
|
|
|
14
14
|
export const AppendShape = Schema.extend(
|
|
15
15
|
ComputeShape,
|
package/src/shapes/Array.tsx
CHANGED
|
@@ -2,14 +2,14 @@
|
|
|
2
2
|
// Copyright 2024 DXOS.org
|
|
3
3
|
//
|
|
4
4
|
|
|
5
|
-
import
|
|
5
|
+
import * as Schema from 'effect/Schema';
|
|
6
6
|
import React from 'react';
|
|
7
7
|
|
|
8
8
|
import { ReducerInput, ReducerOutput } from '@dxos/conductor';
|
|
9
9
|
import { type ShapeComponentProps, type ShapeDef } from '@dxos/react-ui-canvas-editor';
|
|
10
10
|
|
|
11
|
-
import {
|
|
12
|
-
import { ComputeShape,
|
|
11
|
+
import { FunctionBody, createFunctionAnchors, getHeight } from './common';
|
|
12
|
+
import { ComputeShape, type CreateShapeProps, createShape } from './defs';
|
|
13
13
|
|
|
14
14
|
//
|
|
15
15
|
// Data
|
package/src/shapes/Audio.tsx
CHANGED
|
@@ -2,15 +2,16 @@
|
|
|
2
2
|
// Copyright 2024 DXOS.org
|
|
3
3
|
//
|
|
4
4
|
|
|
5
|
-
import
|
|
5
|
+
import * as Schema from 'effect/Schema';
|
|
6
6
|
import React, { useEffect, useState } from 'react';
|
|
7
7
|
|
|
8
8
|
import { Icon } from '@dxos/react-ui';
|
|
9
|
-
import {
|
|
9
|
+
import { type ShapeComponentProps, type ShapeDef, createAnchorMap } from '@dxos/react-ui-canvas-editor';
|
|
10
10
|
|
|
11
|
-
import { ComputeShape, createAnchorId, createShape, type CreateShapeProps } from './defs';
|
|
12
11
|
import { useComputeNodeState } from '../hooks';
|
|
13
12
|
|
|
13
|
+
import { ComputeShape, type CreateShapeProps, createAnchorId, createShape } from './defs';
|
|
14
|
+
|
|
14
15
|
export const AudioShape = Schema.extend(
|
|
15
16
|
ComputeShape,
|
|
16
17
|
Schema.Struct({
|
|
@@ -34,7 +35,7 @@ export const AudioComponent = ({ shape }: ShapeComponentProps<AudioShape>) => {
|
|
|
34
35
|
|
|
35
36
|
// https://docs.pmnd.rs/react-three-fiber/api/canvas#render-props
|
|
36
37
|
return (
|
|
37
|
-
<div className='flex
|
|
38
|
+
<div className='flex is-full justify-center items-center'>
|
|
38
39
|
<Icon
|
|
39
40
|
icon={active ? 'ph--microphone--regular' : 'ph--microphone-slash--regular'}
|
|
40
41
|
classNames={['transition opacity-20 duration-1000', active && 'opacity-100 text-red-500']}
|
package/src/shapes/Beacon.tsx
CHANGED
|
@@ -2,16 +2,17 @@
|
|
|
2
2
|
// Copyright 2024 DXOS.org
|
|
3
3
|
//
|
|
4
4
|
|
|
5
|
-
import
|
|
5
|
+
import * as Schema from 'effect/Schema';
|
|
6
6
|
import React from 'react';
|
|
7
7
|
|
|
8
8
|
import { DEFAULT_INPUT, isTruthy } from '@dxos/conductor';
|
|
9
9
|
import { Icon } from '@dxos/react-ui';
|
|
10
|
-
import {
|
|
10
|
+
import { type ShapeComponentProps, type ShapeDef, createAnchorMap } from '@dxos/react-ui-canvas-editor';
|
|
11
11
|
|
|
12
|
-
import { ComputeShape, createAnchorId, createShape, type CreateShapeProps } from './defs';
|
|
13
12
|
import { useComputeNodeState } from '../hooks';
|
|
14
13
|
|
|
14
|
+
import { ComputeShape, type CreateShapeProps, createAnchorId, createShape } from './defs';
|
|
15
|
+
|
|
15
16
|
export const BeaconShape = Schema.extend(
|
|
16
17
|
ComputeShape,
|
|
17
18
|
Schema.Struct({
|
|
@@ -32,7 +33,7 @@ export const BeaconComponent = ({ shape }: ShapeComponentProps<BeaconShape>) =>
|
|
|
32
33
|
const value = input?.type === 'executed' ? input.value : false;
|
|
33
34
|
|
|
34
35
|
return (
|
|
35
|
-
<div className='flex
|
|
36
|
+
<div className='flex is-full justify-center items-center'>
|
|
36
37
|
<Icon
|
|
37
38
|
icon='ph--sun--regular'
|
|
38
39
|
classNames={['transition opacity-20 duration-1000', isTruthy(value) && 'opacity-100 text-yellow-500']}
|
package/src/shapes/Boolean.tsx
CHANGED
|
@@ -2,13 +2,13 @@
|
|
|
2
2
|
// Copyright 2024 DXOS.org
|
|
3
3
|
//
|
|
4
4
|
|
|
5
|
-
import
|
|
5
|
+
import * as Schema from 'effect/Schema';
|
|
6
6
|
import React, { type FC } from 'react';
|
|
7
7
|
|
|
8
|
-
import {
|
|
8
|
+
import { type ShapeDef, getAnchorPoints } from '@dxos/react-ui-canvas-editor';
|
|
9
9
|
import { createAnchors } from '@dxos/react-ui-canvas-editor';
|
|
10
10
|
|
|
11
|
-
import { ComputeShape, createAnchorId, createShape
|
|
11
|
+
import { ComputeShape, type CreateShapeProps, createAnchorId, createShape } from './defs';
|
|
12
12
|
|
|
13
13
|
//
|
|
14
14
|
// Gate utils.
|
|
@@ -57,7 +57,7 @@ const defineShape = <S extends GateShape>({
|
|
|
57
57
|
// Be careful not to name component factories with a capital letter.
|
|
58
58
|
component: () => {
|
|
59
59
|
return (
|
|
60
|
-
<div className='flex
|
|
60
|
+
<div className='flex is-full justify-center items-center'>
|
|
61
61
|
<Symbol />
|
|
62
62
|
</div>
|
|
63
63
|
);
|
|
@@ -95,7 +95,7 @@ const createSymbol =
|
|
|
95
95
|
const paths = pathConstructor({ startX, endX, height });
|
|
96
96
|
|
|
97
97
|
return (
|
|
98
|
-
<svg viewBox={`0 0 ${width} ${height}`} className='
|
|
98
|
+
<svg viewBox={`0 0 ${width} ${height}`} className='is-full bs-full'>
|
|
99
99
|
{/* Input line. */}
|
|
100
100
|
{getAnchorPoints({ x: 0, y: centerY }, inputs).map(({ x, y }, i) => (
|
|
101
101
|
<line key={i} x1={x} y1={y} x2={startX * 1.3} y2={y} strokeWidth={strokeWidth} className={className} />
|
package/src/shapes/Chat.tsx
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
// Copyright 2024 DXOS.org
|
|
3
3
|
//
|
|
4
4
|
|
|
5
|
-
import
|
|
5
|
+
import * as Schema from 'effect/Schema';
|
|
6
6
|
import React, { useRef } from 'react';
|
|
7
7
|
|
|
8
8
|
import { DEFAULT_OUTPUT } from '@dxos/conductor';
|
|
@@ -15,10 +15,11 @@ import {
|
|
|
15
15
|
} from '@dxos/react-ui-canvas-editor';
|
|
16
16
|
import { createAnchorMap } from '@dxos/react-ui-canvas-editor';
|
|
17
17
|
|
|
18
|
-
import { Box } from './common';
|
|
19
|
-
import { ComputeShape, createAnchorId, createShape, type CreateShapeProps } from './defs';
|
|
20
18
|
import { useComputeNodeState } from '../hooks';
|
|
21
19
|
|
|
20
|
+
import { Box } from './common';
|
|
21
|
+
import { ComputeShape, type CreateShapeProps, createAnchorId, createShape } from './defs';
|
|
22
|
+
|
|
22
23
|
//
|
|
23
24
|
// Data
|
|
24
25
|
//
|