@dxos/plugin-conductor 0.8.4-main.72ec0f3 → 0.8.4-main.7996785055
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/README.md +7 -3
- package/dist/lib/browser/CanvasContainer-GJPWWILJ.mjs +89 -0
- package/dist/lib/browser/CanvasContainer-GJPWWILJ.mjs.map +7 -0
- package/dist/lib/browser/{chunk-PYKBZYTF.mjs → chunk-KT4H3LKG.mjs} +2 -2
- package/dist/lib/browser/chunk-KT4H3LKG.mjs.map +7 -0
- package/dist/lib/browser/index.mjs +44 -61
- package/dist/lib/browser/index.mjs.map +4 -4
- package/dist/lib/browser/meta.json +1 -1
- package/dist/lib/browser/react-surface-2SF3FOWK.mjs +33 -0
- package/dist/lib/browser/react-surface-2SF3FOWK.mjs.map +7 -0
- package/dist/lib/node-esm/CanvasContainer-OGY2XHPA.mjs +91 -0
- package/dist/lib/node-esm/CanvasContainer-OGY2XHPA.mjs.map +7 -0
- package/dist/lib/node-esm/{chunk-LNIMDWHI.mjs → chunk-M5HHMQTV.mjs} +2 -2
- package/dist/lib/node-esm/chunk-M5HHMQTV.mjs.map +7 -0
- package/dist/lib/node-esm/index.mjs +44 -61
- package/dist/lib/node-esm/index.mjs.map +4 -4
- package/dist/lib/node-esm/meta.json +1 -1
- package/dist/lib/node-esm/react-surface-3UKD5UMM.mjs +34 -0
- package/dist/lib/node-esm/react-surface-3UKD5UMM.mjs.map +7 -0
- package/dist/types/src/ConductorPlugin.d.ts +2 -1
- package/dist/types/src/ConductorPlugin.d.ts.map +1 -1
- package/dist/types/src/capabilities/index.d.ts +1 -2
- package/dist/types/src/capabilities/index.d.ts.map +1 -1
- package/dist/types/src/capabilities/react-surface/index.d.ts +3 -0
- package/dist/types/src/capabilities/react-surface/index.d.ts.map +1 -0
- package/dist/types/src/capabilities/react-surface/react-surface.d.ts +5 -0
- package/dist/types/src/capabilities/react-surface/react-surface.d.ts.map +1 -0
- package/dist/types/src/components/index.d.ts +0 -4
- package/dist/types/src/components/index.d.ts.map +1 -1
- package/dist/types/src/containers/CanvasContainer/CanvasContainer.d.ts +6 -0
- package/dist/types/src/containers/CanvasContainer/CanvasContainer.d.ts.map +1 -0
- package/dist/types/src/containers/CanvasContainer/index.d.ts +3 -0
- package/dist/types/src/containers/CanvasContainer/index.d.ts.map +1 -0
- package/dist/types/src/containers/index.d.ts +3 -0
- package/dist/types/src/containers/index.d.ts.map +1 -0
- package/dist/types/src/meta.d.ts +2 -2
- package/dist/types/src/meta.d.ts.map +1 -1
- package/dist/types/src/translations.d.ts +4 -2
- package/dist/types/src/translations.d.ts.map +1 -1
- package/dist/types/src/types/index.d.ts +0 -1
- package/dist/types/src/types/index.d.ts.map +1 -1
- package/dist/types/tsconfig.tsbuildinfo +1 -1
- package/package.json +42 -49
- package/src/ConductorPlugin.tsx +35 -53
- package/src/capabilities/index.ts +1 -4
- package/src/capabilities/react-surface/index.ts +7 -0
- package/src/capabilities/react-surface/react-surface.tsx +29 -0
- package/src/components/index.ts +1 -5
- package/src/{components → containers/CanvasContainer}/CanvasContainer.tsx +46 -45
- package/src/containers/CanvasContainer/index.ts +7 -0
- package/src/containers/index.ts +7 -0
- package/src/meta.ts +3 -3
- package/src/translations.ts +4 -2
- package/src/types/index.ts +0 -2
- package/dist/lib/browser/CanvasContainer-RJPQZ63D.mjs +0 -96
- package/dist/lib/browser/CanvasContainer-RJPQZ63D.mjs.map +0 -7
- package/dist/lib/browser/chunk-POMULF74.mjs +0 -25
- package/dist/lib/browser/chunk-POMULF74.mjs.map +0 -7
- package/dist/lib/browser/chunk-PYKBZYTF.mjs.map +0 -7
- package/dist/lib/browser/intent-resolver-GJHGNHRE.mjs +0 -34
- package/dist/lib/browser/intent-resolver-GJHGNHRE.mjs.map +0 -7
- package/dist/lib/browser/react-surface-3XDCWHZE.mjs +0 -31
- package/dist/lib/browser/react-surface-3XDCWHZE.mjs.map +0 -7
- package/dist/lib/browser/types/index.mjs +0 -8
- package/dist/lib/browser/types/index.mjs.map +0 -7
- package/dist/lib/node-esm/CanvasContainer-T73T6ENQ.mjs +0 -98
- package/dist/lib/node-esm/CanvasContainer-T73T6ENQ.mjs.map +0 -7
- package/dist/lib/node-esm/chunk-LNIMDWHI.mjs.map +0 -7
- package/dist/lib/node-esm/chunk-OKCDSUHC.mjs +0 -26
- package/dist/lib/node-esm/chunk-OKCDSUHC.mjs.map +0 -7
- package/dist/lib/node-esm/intent-resolver-KRUQLZD7.mjs +0 -35
- package/dist/lib/node-esm/intent-resolver-KRUQLZD7.mjs.map +0 -7
- package/dist/lib/node-esm/react-surface-ZORMVPKH.mjs +0 -32
- package/dist/lib/node-esm/react-surface-ZORMVPKH.mjs.map +0 -7
- package/dist/lib/node-esm/types/index.mjs +0 -9
- package/dist/lib/node-esm/types/index.mjs.map +0 -7
- package/dist/types/src/capabilities/intent-resolver.d.ts +0 -4
- package/dist/types/src/capabilities/intent-resolver.d.ts.map +0 -1
- package/dist/types/src/capabilities/react-surface.d.ts +0 -4
- package/dist/types/src/capabilities/react-surface.d.ts.map +0 -1
- package/dist/types/src/components/CanvasContainer.d.ts +0 -8
- package/dist/types/src/components/CanvasContainer.d.ts.map +0 -1
- package/dist/types/src/types/schema.d.ts +0 -18
- package/dist/types/src/types/schema.d.ts.map +0 -1
- package/src/capabilities/intent-resolver.ts +0 -27
- package/src/capabilities/react-surface.tsx +0 -23
- package/src/types/schema.ts +0 -20
package/package.json
CHANGED
|
@@ -1,9 +1,13 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@dxos/plugin-conductor",
|
|
3
|
-
"version": "0.8.4-main.
|
|
3
|
+
"version": "0.8.4-main.7996785055",
|
|
4
4
|
"description": "Composer plugin for conductor.",
|
|
5
5
|
"homepage": "https://dxos.org",
|
|
6
6
|
"bugs": "https://github.com/dxos/dxos/issues",
|
|
7
|
+
"repository": {
|
|
8
|
+
"type": "git",
|
|
9
|
+
"url": "https://github.com/dxos/dxos"
|
|
10
|
+
},
|
|
7
11
|
"license": "MIT",
|
|
8
12
|
"author": "DXOS.org",
|
|
9
13
|
"sideEffects": true,
|
|
@@ -11,67 +15,56 @@
|
|
|
11
15
|
"exports": {
|
|
12
16
|
".": {
|
|
13
17
|
"source": "./src/index.ts",
|
|
14
|
-
"types": "./dist/types/src/index.d.ts",
|
|
15
18
|
"browser": "./dist/lib/browser/index.mjs",
|
|
16
|
-
"node": "./dist/lib/node-esm/index.mjs"
|
|
17
|
-
|
|
18
|
-
"./types": {
|
|
19
|
-
"source": "./src/types/index.ts",
|
|
20
|
-
"types": "./dist/types/src/types/index.d.ts",
|
|
21
|
-
"browser": "./dist/lib/browser/types/index.mjs",
|
|
22
|
-
"node": "./dist/lib/node-esm/types/index.mjs"
|
|
19
|
+
"node": "./dist/lib/node-esm/index.mjs",
|
|
20
|
+
"types": "./dist/types/src/index.d.ts"
|
|
23
21
|
}
|
|
24
22
|
},
|
|
25
23
|
"types": "dist/types/src/index.d.ts",
|
|
26
|
-
"typesVersions": {
|
|
27
|
-
"*": {
|
|
28
|
-
"types": [
|
|
29
|
-
"dist/types/src/types/index.d.ts"
|
|
30
|
-
]
|
|
31
|
-
}
|
|
32
|
-
},
|
|
33
24
|
"files": [
|
|
34
25
|
"dist",
|
|
35
26
|
"src"
|
|
36
27
|
],
|
|
37
28
|
"dependencies": {
|
|
38
|
-
"
|
|
39
|
-
"
|
|
40
|
-
"@dxos/
|
|
41
|
-
"@dxos/
|
|
42
|
-
"@dxos/
|
|
43
|
-
"@dxos/debug": "0.8.4-main.
|
|
44
|
-
"@dxos/
|
|
45
|
-
"@dxos/
|
|
46
|
-
"@dxos/functions-runtime": "0.8.4-main.
|
|
47
|
-
"@dxos/
|
|
48
|
-
"@dxos/
|
|
49
|
-
"@dxos/
|
|
50
|
-
"@dxos/
|
|
51
|
-
"@dxos/plugin-
|
|
52
|
-
"@dxos/
|
|
53
|
-
"@dxos/react-ui-canvas-editor": "0.8.4-main.
|
|
54
|
-
"@dxos/react-ui-
|
|
55
|
-
"@dxos/
|
|
56
|
-
"@dxos/react-ui-
|
|
57
|
-
"@dxos/
|
|
29
|
+
"effect": "3.20.0",
|
|
30
|
+
"@dxos/ai": "0.8.4-main.7996785055",
|
|
31
|
+
"@dxos/app-framework": "0.8.4-main.7996785055",
|
|
32
|
+
"@dxos/assistant": "0.8.4-main.7996785055",
|
|
33
|
+
"@dxos/app-toolkit": "0.8.4-main.7996785055",
|
|
34
|
+
"@dxos/debug": "0.8.4-main.7996785055",
|
|
35
|
+
"@dxos/functions": "0.8.4-main.7996785055",
|
|
36
|
+
"@dxos/edge-client": "0.8.4-main.7996785055",
|
|
37
|
+
"@dxos/functions-runtime": "0.8.4-main.7996785055",
|
|
38
|
+
"@dxos/conductor": "0.8.4-main.7996785055",
|
|
39
|
+
"@dxos/log": "0.8.4-main.7996785055",
|
|
40
|
+
"@dxos/operation": "0.8.4-main.7996785055",
|
|
41
|
+
"@dxos/plugin-automation": "0.8.4-main.7996785055",
|
|
42
|
+
"@dxos/plugin-client": "0.8.4-main.7996785055",
|
|
43
|
+
"@dxos/plugin-space": "0.8.4-main.7996785055",
|
|
44
|
+
"@dxos/react-ui-canvas-editor": "0.8.4-main.7996785055",
|
|
45
|
+
"@dxos/react-ui-canvas-compute": "0.8.4-main.7996785055",
|
|
46
|
+
"@dxos/react-ui-mosaic": "0.8.4-main.7996785055",
|
|
47
|
+
"@dxos/react-ui-stack": "0.8.4-main.7996785055",
|
|
48
|
+
"@dxos/react-client": "0.8.4-main.7996785055",
|
|
49
|
+
"@dxos/util": "0.8.4-main.7996785055",
|
|
50
|
+
"@dxos/echo": "0.8.4-main.7996785055"
|
|
58
51
|
},
|
|
59
52
|
"devDependencies": {
|
|
60
|
-
"@types/react": "~19.2.
|
|
61
|
-
"@types/react-dom": "~19.2.
|
|
62
|
-
"react": "~19.2.
|
|
63
|
-
"react-dom": "~19.2.
|
|
64
|
-
"vite": "7.1.
|
|
65
|
-
"@dxos/react-ui": "0.8.4-main.
|
|
66
|
-
"@dxos/
|
|
67
|
-
"@dxos/
|
|
53
|
+
"@types/react": "~19.2.7",
|
|
54
|
+
"@types/react-dom": "~19.2.3",
|
|
55
|
+
"react": "~19.2.3",
|
|
56
|
+
"react-dom": "~19.2.3",
|
|
57
|
+
"vite": "^7.1.11",
|
|
58
|
+
"@dxos/react-ui": "0.8.4-main.7996785055",
|
|
59
|
+
"@dxos/storybook-utils": "0.8.4-main.7996785055",
|
|
60
|
+
"@dxos/ui-theme": "0.8.4-main.7996785055"
|
|
68
61
|
},
|
|
69
62
|
"peerDependencies": {
|
|
70
|
-
"effect": "
|
|
71
|
-
"react": "
|
|
72
|
-
"react-dom": "
|
|
73
|
-
"@dxos/react-ui": "0.8.4-main.
|
|
74
|
-
"@dxos/
|
|
63
|
+
"effect": "3.20.0",
|
|
64
|
+
"react": "~19.2.3",
|
|
65
|
+
"react-dom": "~19.2.3",
|
|
66
|
+
"@dxos/react-ui": "0.8.4-main.7996785055",
|
|
67
|
+
"@dxos/ui-theme": "0.8.4-main.7996785055"
|
|
75
68
|
},
|
|
76
69
|
"publishConfig": {
|
|
77
70
|
"access": "public"
|
package/src/ConductorPlugin.tsx
CHANGED
|
@@ -2,62 +2,44 @@
|
|
|
2
2
|
// Copyright 2023 DXOS.org
|
|
3
3
|
//
|
|
4
4
|
|
|
5
|
-
import
|
|
5
|
+
import * as Effect from 'effect/Effect';
|
|
6
|
+
import * as Option from 'effect/Option';
|
|
7
|
+
|
|
8
|
+
import { Plugin } from '@dxos/app-framework';
|
|
9
|
+
import { AppPlugin } from '@dxos/app-toolkit';
|
|
10
|
+
import { Annotation } from '@dxos/echo';
|
|
6
11
|
import { ComputeGraph } from '@dxos/conductor';
|
|
7
|
-
import {
|
|
8
|
-
import {
|
|
9
|
-
import {
|
|
10
|
-
import {
|
|
11
|
-
import { CanvasBoardType } from '@dxos/react-ui-canvas-editor';
|
|
12
|
+
import { Operation } from '@dxos/operation';
|
|
13
|
+
import { type CreateObject } from '@dxos/plugin-space/types';
|
|
14
|
+
import { SpaceOperation } from '@dxos/plugin-space/operations';
|
|
15
|
+
import { CanvasBoard } from '@dxos/react-ui-canvas-editor';
|
|
12
16
|
|
|
13
|
-
import {
|
|
17
|
+
import { ReactSurface } from './capabilities';
|
|
14
18
|
import { meta } from './meta';
|
|
15
19
|
import { translations } from './translations';
|
|
16
|
-
import { ConductorAction } from './types';
|
|
17
20
|
|
|
18
|
-
export const ConductorPlugin =
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
id: `${meta.id}/module/object-form`,
|
|
38
|
-
activatesOn: ClientEvents.SetupSchema,
|
|
39
|
-
activate: () =>
|
|
40
|
-
contributes(
|
|
41
|
-
SpaceCapabilities.ObjectForm,
|
|
42
|
-
defineObjectForm({
|
|
43
|
-
objectSchema: CanvasBoardType,
|
|
44
|
-
getIntent: () => createIntent(ConductorAction.Create),
|
|
45
|
-
}),
|
|
46
|
-
),
|
|
47
|
-
}),
|
|
48
|
-
defineModule({
|
|
49
|
-
id: `${meta.id}/module/schema`,
|
|
50
|
-
activatesOn: ClientEvents.SetupSchema,
|
|
51
|
-
activate: () => contributes(ClientCapabilities.Schema, [ComputeGraph, Trigger.Trigger]),
|
|
52
|
-
}),
|
|
53
|
-
defineModule({
|
|
54
|
-
id: `${meta.id}/module/react-surface`,
|
|
55
|
-
activatesOn: Events.SetupReactSurface,
|
|
56
|
-
activate: ReactSurface,
|
|
57
|
-
}),
|
|
58
|
-
defineModule({
|
|
59
|
-
id: `${meta.id}/module/intent-resolver`,
|
|
60
|
-
activatesOn: Events.SetupIntentResolver,
|
|
61
|
-
activate: IntentResolver,
|
|
21
|
+
export const ConductorPlugin = Plugin.define(meta).pipe(
|
|
22
|
+
AppPlugin.addMetadataModule({
|
|
23
|
+
metadata: {
|
|
24
|
+
id: CanvasBoard.CanvasBoard.typename,
|
|
25
|
+
metadata: {
|
|
26
|
+
icon: Annotation.IconAnnotation.get(CanvasBoard.CanvasBoard).pipe(Option.getOrThrow).icon,
|
|
27
|
+
iconHue: Annotation.IconAnnotation.get(CanvasBoard.CanvasBoard).pipe(Option.getOrThrow).hue ?? 'white',
|
|
28
|
+
createObject: ((props, options) =>
|
|
29
|
+
Effect.gen(function* () {
|
|
30
|
+
const object = CanvasBoard.make(props);
|
|
31
|
+
return yield* Operation.invoke(SpaceOperation.AddObject, {
|
|
32
|
+
object,
|
|
33
|
+
target: options.target,
|
|
34
|
+
hidden: true,
|
|
35
|
+
targetNodeId: options.targetNodeId,
|
|
36
|
+
});
|
|
37
|
+
})) satisfies CreateObject,
|
|
38
|
+
},
|
|
39
|
+
},
|
|
62
40
|
}),
|
|
63
|
-
])
|
|
41
|
+
AppPlugin.addSchemaModule({ schema: [CanvasBoard.CanvasBoard, ComputeGraph] }),
|
|
42
|
+
AppPlugin.addSurfaceModule({ activate: ReactSurface }),
|
|
43
|
+
AppPlugin.addTranslationsModule({ translations }),
|
|
44
|
+
Plugin.make,
|
|
45
|
+
);
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
//
|
|
2
|
+
// Copyright 2025 DXOS.org
|
|
3
|
+
//
|
|
4
|
+
|
|
5
|
+
import * as Effect from 'effect/Effect';
|
|
6
|
+
import React from 'react';
|
|
7
|
+
|
|
8
|
+
import { Capabilities, Capability } from '@dxos/app-framework';
|
|
9
|
+
import { Surface } from '@dxos/app-framework/ui';
|
|
10
|
+
import { Obj } from '@dxos/echo';
|
|
11
|
+
import { CanvasBoard } from '@dxos/react-ui-canvas-editor';
|
|
12
|
+
|
|
13
|
+
import { CanvasContainer } from '../../containers';
|
|
14
|
+
import { meta } from '../../meta';
|
|
15
|
+
|
|
16
|
+
export default Capability.makeModule(() =>
|
|
17
|
+
Effect.succeed(
|
|
18
|
+
Capability.contributes(
|
|
19
|
+
Capabilities.ReactSurface,
|
|
20
|
+
Surface.create({
|
|
21
|
+
id: meta.id,
|
|
22
|
+
role: ['article', 'section'],
|
|
23
|
+
filter: (data): data is { subject: CanvasBoard.CanvasBoard } =>
|
|
24
|
+
Obj.instanceOf(CanvasBoard.CanvasBoard, data.subject),
|
|
25
|
+
component: ({ data, role }) => <CanvasContainer role={role} subject={data.subject} />,
|
|
26
|
+
}),
|
|
27
|
+
),
|
|
28
|
+
),
|
|
29
|
+
);
|
package/src/components/index.ts
CHANGED
|
@@ -2,15 +2,15 @@
|
|
|
2
2
|
// Copyright 2024 DXOS.org
|
|
3
3
|
//
|
|
4
4
|
|
|
5
|
-
import React, { useEffect, useMemo, useRef } from 'react';
|
|
5
|
+
import React, { Fragment, useEffect, useMemo, useRef } from 'react';
|
|
6
6
|
|
|
7
|
-
import {
|
|
7
|
+
import { useCapability } from '@dxos/app-framework/ui';
|
|
8
|
+
import { type SurfaceComponentProps } from '@dxos/app-toolkit/ui';
|
|
8
9
|
import { ComputeGraphModel } from '@dxos/conductor';
|
|
9
10
|
import { Obj } from '@dxos/echo';
|
|
10
|
-
import {
|
|
11
|
-
import {
|
|
12
|
-
import {
|
|
13
|
-
import { type Space, getSpace } from '@dxos/react-client/echo';
|
|
11
|
+
import { AutomationCapabilities } from '@dxos/plugin-automation';
|
|
12
|
+
import { useObject } from '@dxos/react-client/echo';
|
|
13
|
+
import { Flex, type FlexProps } from '@dxos/react-ui';
|
|
14
14
|
import {
|
|
15
15
|
ComputeContext,
|
|
16
16
|
ComputeGraphController,
|
|
@@ -21,51 +21,23 @@ import {
|
|
|
21
21
|
useGraphMonitor,
|
|
22
22
|
} from '@dxos/react-ui-canvas-compute';
|
|
23
23
|
import {
|
|
24
|
-
type
|
|
24
|
+
type CanvasBoard,
|
|
25
25
|
CanvasGraphModel,
|
|
26
26
|
Editor,
|
|
27
27
|
type EditorController,
|
|
28
28
|
KeyboardContainer,
|
|
29
29
|
ShapeRegistry,
|
|
30
30
|
} from '@dxos/react-ui-canvas-editor';
|
|
31
|
-
import { StackItem } from '@dxos/react-ui-stack';
|
|
32
31
|
|
|
33
|
-
|
|
34
|
-
return new ServiceContainer().setServices({
|
|
35
|
-
database: space == null ? undefined : DatabaseService.make(space.db),
|
|
36
|
-
queues: space == null ? undefined : QueueService.make(space.queues, undefined),
|
|
37
|
-
});
|
|
38
|
-
};
|
|
39
|
-
|
|
40
|
-
const useGraphController = (canvas: CanvasBoardType) => {
|
|
41
|
-
const config = useConfig();
|
|
42
|
-
const space = getSpace(canvas);
|
|
43
|
-
const controller = useMemo(() => {
|
|
44
|
-
if (!canvas.computeGraph?.target) {
|
|
45
|
-
return null;
|
|
46
|
-
}
|
|
47
|
-
const model = new ComputeGraphModel(canvas.computeGraph?.target);
|
|
48
|
-
const controller = new ComputeGraphController(createServices(config, space), model);
|
|
49
|
-
return controller;
|
|
50
|
-
}, [canvas.computeGraph?.target, space]);
|
|
51
|
-
|
|
52
|
-
useEffect(() => {
|
|
53
|
-
if (!controller) {
|
|
54
|
-
return;
|
|
55
|
-
}
|
|
32
|
+
export type CanvasContainerProps = SurfaceComponentProps<CanvasBoard.CanvasBoard>;
|
|
56
33
|
|
|
57
|
-
|
|
58
|
-
return () => {
|
|
59
|
-
void controller.close();
|
|
60
|
-
};
|
|
61
|
-
}, [controller]);
|
|
62
|
-
|
|
63
|
-
return controller;
|
|
64
|
-
};
|
|
65
|
-
|
|
66
|
-
export const CanvasContainer = ({ canvas, role }: { canvas: CanvasBoardType; role: string }) => {
|
|
34
|
+
export const CanvasContainer = ({ role, subject: canvas }: CanvasContainerProps) => {
|
|
67
35
|
const id = Obj.getDXN(canvas as any).toString();
|
|
68
|
-
|
|
36
|
+
useObject(canvas);
|
|
37
|
+
const graph = useMemo(
|
|
38
|
+
() => CanvasGraphModel.create<ComputeShape>(canvas.layout, (fn) => Obj.change(canvas, fn)),
|
|
39
|
+
[canvas],
|
|
40
|
+
);
|
|
69
41
|
const controller = useGraphController(canvas);
|
|
70
42
|
const graphMonitor = useGraphMonitor(controller?.graph);
|
|
71
43
|
const registry = useMemo(() => new ShapeRegistry(computeShapes), []);
|
|
@@ -82,9 +54,11 @@ export const CanvasContainer = ({ canvas, role }: { canvas: CanvasBoardType; rol
|
|
|
82
54
|
return;
|
|
83
55
|
}
|
|
84
56
|
|
|
57
|
+
const Root = role === 'section' ? Container : Fragment;
|
|
58
|
+
|
|
85
59
|
return (
|
|
86
60
|
<ComputeContext.Provider value={{ controller }}>
|
|
87
|
-
<
|
|
61
|
+
<Root>
|
|
88
62
|
<KeyboardContainer id={id}>
|
|
89
63
|
<Editor.Root
|
|
90
64
|
id={id}
|
|
@@ -98,9 +72,36 @@ export const CanvasContainer = ({ canvas, role }: { canvas: CanvasBoardType; rol
|
|
|
98
72
|
<Editor.UI showTools />
|
|
99
73
|
</Editor.Root>
|
|
100
74
|
</KeyboardContainer>
|
|
101
|
-
</
|
|
75
|
+
</Root>
|
|
102
76
|
</ComputeContext.Provider>
|
|
103
77
|
);
|
|
104
78
|
};
|
|
105
79
|
|
|
106
|
-
|
|
80
|
+
const Container = (props: FlexProps) => <Flex {...props} classNames='aspect-square' />;
|
|
81
|
+
|
|
82
|
+
const useGraphController = (canvas: CanvasBoard.CanvasBoard) => {
|
|
83
|
+
const db = Obj.getDatabase(canvas);
|
|
84
|
+
const runtime = useCapability(AutomationCapabilities.ComputeRuntime);
|
|
85
|
+
const [computeGraph] = useObject(canvas.computeGraph);
|
|
86
|
+
const controller = useMemo(() => {
|
|
87
|
+
if (!canvas.computeGraph?.target || !db) {
|
|
88
|
+
return null;
|
|
89
|
+
}
|
|
90
|
+
const model = new ComputeGraphModel(canvas.computeGraph?.target);
|
|
91
|
+
const controller = new ComputeGraphController(runtime.getRuntime(db.spaceId), model);
|
|
92
|
+
return controller;
|
|
93
|
+
}, [computeGraph, db]);
|
|
94
|
+
|
|
95
|
+
useEffect(() => {
|
|
96
|
+
if (!controller) {
|
|
97
|
+
return;
|
|
98
|
+
}
|
|
99
|
+
|
|
100
|
+
void controller.open();
|
|
101
|
+
return () => {
|
|
102
|
+
void controller.close();
|
|
103
|
+
};
|
|
104
|
+
}, [controller]);
|
|
105
|
+
|
|
106
|
+
return controller;
|
|
107
|
+
};
|
package/src/meta.ts
CHANGED
|
@@ -2,11 +2,11 @@
|
|
|
2
2
|
// Copyright 2023 DXOS.org
|
|
3
3
|
//
|
|
4
4
|
|
|
5
|
-
import { type
|
|
5
|
+
import { type Plugin } from '@dxos/app-framework';
|
|
6
6
|
import { trim } from '@dxos/util';
|
|
7
7
|
|
|
8
|
-
export const meta:
|
|
9
|
-
id: 'dxos.
|
|
8
|
+
export const meta: Plugin.Meta = {
|
|
9
|
+
id: 'org.dxos.plugin.conductor',
|
|
10
10
|
name: 'Conductor',
|
|
11
11
|
description: trim`
|
|
12
12
|
Visual workflow builder using node-based compute graphs to orchestrate complex AI agent pipelines.
|
package/src/translations.ts
CHANGED
|
@@ -3,21 +3,23 @@
|
|
|
3
3
|
//
|
|
4
4
|
|
|
5
5
|
import { type Resource } from '@dxos/react-ui';
|
|
6
|
-
import {
|
|
6
|
+
import { CanvasBoard } from '@dxos/react-ui-canvas-editor';
|
|
7
7
|
|
|
8
8
|
import { meta } from './meta';
|
|
9
9
|
|
|
10
10
|
export const translations = [
|
|
11
11
|
{
|
|
12
12
|
'en-US': {
|
|
13
|
-
[
|
|
13
|
+
[CanvasBoard.CanvasBoard.typename]: {
|
|
14
14
|
'typename label': 'Circuit',
|
|
15
15
|
'typename label_zero': 'Circuits',
|
|
16
16
|
'typename label_one': 'Circuit',
|
|
17
17
|
'typename label_other': 'Circuits',
|
|
18
18
|
'object name placeholder': 'New circuit',
|
|
19
|
+
'add object label': 'Add circuit',
|
|
19
20
|
'rename object label': 'Rename circuit',
|
|
20
21
|
'delete object label': 'Delete circuit',
|
|
22
|
+
'object deleted label': 'Circuit deleted',
|
|
21
23
|
},
|
|
22
24
|
[meta.id]: {
|
|
23
25
|
'plugin name': 'Conductor',
|
package/src/types/index.ts
CHANGED
|
@@ -1,96 +0,0 @@
|
|
|
1
|
-
// src/components/CanvasContainer.tsx
|
|
2
|
-
import { useSignals as _useSignals } from "@preact-signals/safe-react/tracking";
|
|
3
|
-
import React, { useEffect, useMemo, useRef } from "react";
|
|
4
|
-
import { ComputeGraphModel } from "@dxos/conductor";
|
|
5
|
-
import { Obj } from "@dxos/echo";
|
|
6
|
-
import { DatabaseService, QueueService } from "@dxos/functions";
|
|
7
|
-
import { ServiceContainer } from "@dxos/functions-runtime";
|
|
8
|
-
import { useConfig } from "@dxos/react-client";
|
|
9
|
-
import { getSpace } from "@dxos/react-client/echo";
|
|
10
|
-
import { ComputeContext, ComputeGraphController, ComputeShapeLayout, computeShapes, useComputeGraphController, useGraphMonitor } from "@dxos/react-ui-canvas-compute";
|
|
11
|
-
import { CanvasGraphModel, Editor, KeyboardContainer, ShapeRegistry } from "@dxos/react-ui-canvas-editor";
|
|
12
|
-
import { StackItem } from "@dxos/react-ui-stack";
|
|
13
|
-
var createServices = (config, space) => {
|
|
14
|
-
return new ServiceContainer().setServices({
|
|
15
|
-
database: space == null ? void 0 : DatabaseService.make(space.db),
|
|
16
|
-
queues: space == null ? void 0 : QueueService.make(space.queues, void 0)
|
|
17
|
-
});
|
|
18
|
-
};
|
|
19
|
-
var useGraphController = (canvas) => {
|
|
20
|
-
const config = useConfig();
|
|
21
|
-
const space = getSpace(canvas);
|
|
22
|
-
const controller = useMemo(() => {
|
|
23
|
-
if (!canvas.computeGraph?.target) {
|
|
24
|
-
return null;
|
|
25
|
-
}
|
|
26
|
-
const model = new ComputeGraphModel(canvas.computeGraph?.target);
|
|
27
|
-
const controller2 = new ComputeGraphController(createServices(config, space), model);
|
|
28
|
-
return controller2;
|
|
29
|
-
}, [
|
|
30
|
-
canvas.computeGraph?.target,
|
|
31
|
-
space
|
|
32
|
-
]);
|
|
33
|
-
useEffect(() => {
|
|
34
|
-
if (!controller) {
|
|
35
|
-
return;
|
|
36
|
-
}
|
|
37
|
-
void controller.open();
|
|
38
|
-
return () => {
|
|
39
|
-
void controller.close();
|
|
40
|
-
};
|
|
41
|
-
}, [
|
|
42
|
-
controller
|
|
43
|
-
]);
|
|
44
|
-
return controller;
|
|
45
|
-
};
|
|
46
|
-
var CanvasContainer = ({ canvas, role }) => {
|
|
47
|
-
var _effect = _useSignals();
|
|
48
|
-
try {
|
|
49
|
-
const id = Obj.getDXN(canvas).toString();
|
|
50
|
-
const graph = useMemo(() => CanvasGraphModel.create(canvas.layout), [
|
|
51
|
-
canvas.layout
|
|
52
|
-
]);
|
|
53
|
-
const controller = useGraphController(canvas);
|
|
54
|
-
const graphMonitor = useGraphMonitor(controller?.graph);
|
|
55
|
-
const registry = useMemo(() => new ShapeRegistry(computeShapes), []);
|
|
56
|
-
const editorRef = useRef(null);
|
|
57
|
-
useComputeGraphController({
|
|
58
|
-
controller,
|
|
59
|
-
graph,
|
|
60
|
-
editorRef
|
|
61
|
-
});
|
|
62
|
-
const layout = useMemo(() => controller && registry ? new ComputeShapeLayout(controller, registry) : void 0, [
|
|
63
|
-
controller,
|
|
64
|
-
registry
|
|
65
|
-
]);
|
|
66
|
-
if (!controller) {
|
|
67
|
-
return;
|
|
68
|
-
}
|
|
69
|
-
return /* @__PURE__ */ React.createElement(ComputeContext.Provider, {
|
|
70
|
-
value: {
|
|
71
|
-
controller
|
|
72
|
-
}
|
|
73
|
-
}, /* @__PURE__ */ React.createElement(StackItem.Content, {
|
|
74
|
-
size: role === "section" ? "square" : "intrinsic"
|
|
75
|
-
}, /* @__PURE__ */ React.createElement(KeyboardContainer, {
|
|
76
|
-
id
|
|
77
|
-
}, /* @__PURE__ */ React.createElement(Editor.Root, {
|
|
78
|
-
id,
|
|
79
|
-
ref: editorRef,
|
|
80
|
-
graph,
|
|
81
|
-
graphMonitor,
|
|
82
|
-
registry,
|
|
83
|
-
layout
|
|
84
|
-
}, /* @__PURE__ */ React.createElement(Editor.Canvas, null), /* @__PURE__ */ React.createElement(Editor.UI, {
|
|
85
|
-
showTools: true
|
|
86
|
-
})))));
|
|
87
|
-
} finally {
|
|
88
|
-
_effect.f();
|
|
89
|
-
}
|
|
90
|
-
};
|
|
91
|
-
var CanvasContainer_default = CanvasContainer;
|
|
92
|
-
export {
|
|
93
|
-
CanvasContainer,
|
|
94
|
-
CanvasContainer_default as default
|
|
95
|
-
};
|
|
96
|
-
//# sourceMappingURL=CanvasContainer-RJPQZ63D.mjs.map
|
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"version": 3,
|
|
3
|
-
"sources": ["../../../src/components/CanvasContainer.tsx"],
|
|
4
|
-
"sourcesContent": ["//\n// Copyright 2024 DXOS.org\n//\n\nimport React, { useEffect, useMemo, useRef } from 'react';\n\nimport { type Config } from '@dxos/client';\nimport { ComputeGraphModel } from '@dxos/conductor';\nimport { Obj } from '@dxos/echo';\nimport { DatabaseService, QueueService } from '@dxos/functions';\nimport { ServiceContainer } from '@dxos/functions-runtime';\nimport { useConfig } from '@dxos/react-client';\nimport { type Space, getSpace } from '@dxos/react-client/echo';\nimport {\n ComputeContext,\n ComputeGraphController,\n type ComputeShape,\n ComputeShapeLayout,\n computeShapes,\n useComputeGraphController,\n useGraphMonitor,\n} from '@dxos/react-ui-canvas-compute';\nimport {\n type CanvasBoardType,\n CanvasGraphModel,\n Editor,\n type EditorController,\n KeyboardContainer,\n ShapeRegistry,\n} from '@dxos/react-ui-canvas-editor';\nimport { StackItem } from '@dxos/react-ui-stack';\n\nconst createServices = (config: Config, space?: Space): ServiceContainer => {\n return new ServiceContainer().setServices({\n database: space == null ? undefined : DatabaseService.make(space.db),\n queues: space == null ? undefined : QueueService.make(space.queues, undefined),\n });\n};\n\nconst useGraphController = (canvas: CanvasBoardType) => {\n const config = useConfig();\n const space = getSpace(canvas);\n const controller = useMemo(() => {\n if (!canvas.computeGraph?.target) {\n return null;\n }\n const model = new ComputeGraphModel(canvas.computeGraph?.target);\n const controller = new ComputeGraphController(createServices(config, space), model);\n return controller;\n }, [canvas.computeGraph?.target, space]);\n\n useEffect(() => {\n if (!controller) {\n return;\n }\n\n void controller.open();\n return () => {\n void controller.close();\n };\n }, [controller]);\n\n return controller;\n};\n\nexport const CanvasContainer = ({ canvas, role }: { canvas: CanvasBoardType; role: string }) => {\n const id = Obj.getDXN(canvas as any).toString();\n const graph = useMemo(() => CanvasGraphModel.create<ComputeShape>(canvas.layout), [canvas.layout]);\n const controller = useGraphController(canvas);\n const graphMonitor = useGraphMonitor(controller?.graph);\n const registry = useMemo(() => new ShapeRegistry(computeShapes), []);\n const editorRef = useRef<EditorController>(null);\n useComputeGraphController({ controller, graph, editorRef });\n\n // Layout.\n const layout = useMemo(\n () => (controller && registry ? new ComputeShapeLayout(controller, registry) : undefined),\n [controller, registry],\n );\n\n if (!controller) {\n return;\n }\n\n return (\n <ComputeContext.Provider value={{ controller }}>\n <StackItem.Content size={role === 'section' ? 'square' : 'intrinsic'}>\n <KeyboardContainer id={id}>\n <Editor.Root\n id={id}\n ref={editorRef}\n graph={graph}\n graphMonitor={graphMonitor as any}\n registry={registry}\n layout={layout}\n >\n <Editor.Canvas />\n <Editor.UI showTools />\n </Editor.Root>\n </KeyboardContainer>\n </StackItem.Content>\n </ComputeContext.Provider>\n );\n};\n\nexport default CanvasContainer;\n"],
|
|
5
|
-
"mappings": ";;AAIA,OAAOA,SAASC,WAAWC,SAASC,cAAc;AAGlD,SAASC,yBAAyB;AAClC,SAASC,WAAW;AACpB,SAASC,iBAAiBC,oBAAoB;AAC9C,SAASC,wBAAwB;AACjC,SAASC,iBAAiB;AAC1B,SAAqBC,gBAAgB;AACrC,SACEC,gBACAC,wBAEAC,oBACAC,eACAC,2BACAC,uBACK;AACP,SAEEC,kBACAC,QAEAC,mBACAC,qBACK;AACP,SAASC,iBAAiB;AAE1B,IAAMC,iBAAiB,CAACC,QAAgBC,UAAAA;AACtC,SAAO,IAAIC,iBAAAA,EAAmBC,YAAY;IACxCC,UAAUH,SAAS,OAAOI,SAAYC,gBAAgBC,KAAKN,MAAMO,EAAE;IACnEC,QAAQR,SAAS,OAAOI,SAAYK,aAAaH,KAAKN,MAAMQ,QAAQJ,MAAAA;EACtE,CAAA;AACF;AAEA,IAAMM,qBAAqB,CAACC,WAAAA;AAC1B,QAAMZ,SAASa,UAAAA;AACf,QAAMZ,QAAQa,SAASF,MAAAA;AACvB,QAAMG,aAAaC,QAAQ,MAAA;AACzB,QAAI,CAACJ,OAAOK,cAAcC,QAAQ;AAChC,aAAO;IACT;AACA,UAAMC,QAAQ,IAAIC,kBAAkBR,OAAOK,cAAcC,MAAAA;AACzD,UAAMH,cAAa,IAAIM,uBAAuBtB,eAAeC,QAAQC,KAAAA,GAAQkB,KAAAA;AAC7E,WAAOJ;EACT,GAAG;IAACH,OAAOK,cAAcC;IAAQjB;GAAM;AAEvCqB,YAAU,MAAA;AACR,QAAI,CAACP,YAAY;AACf;IACF;AAEA,SAAKA,WAAWQ,KAAI;AACpB,WAAO,MAAA;AACL,WAAKR,WAAWS,MAAK;IACvB;EACF,GAAG;IAACT;GAAW;AAEf,SAAOA;AACT;AAEO,IAAMU,kBAAkB,CAAC,EAAEb,QAAQc,KAAI,MAA6C;;;AACzF,UAAMC,KAAKC,IAAIC,OAAOjB,MAAAA,EAAekB,SAAQ;AAC7C,UAAMC,QAAQf,QAAQ,MAAMgB,iBAAiBC,OAAqBrB,OAAOsB,MAAM,GAAG;MAACtB,OAAOsB;KAAO;AACjG,UAAMnB,aAAaJ,mBAAmBC,MAAAA;AACtC,UAAMuB,eAAeC,gBAAgBrB,YAAYgB,KAAAA;AACjD,UAAMM,WAAWrB,QAAQ,MAAM,IAAIsB,cAAcC,aAAAA,GAAgB,CAAA,CAAE;AACnE,UAAMC,YAAYC,OAAyB,IAAA;AAC3CC,8BAA0B;MAAE3B;MAAYgB;MAAOS;IAAU,CAAA;AAGzD,UAAMN,SAASlB,QACb,MAAOD,cAAcsB,WAAW,IAAIM,mBAAmB5B,YAAYsB,QAAAA,IAAYhC,QAC/E;MAACU;MAAYsB;KAAS;AAGxB,QAAI,CAACtB,YAAY;AACf;IACF;AAEA,WACE,sBAAA,cAAC6B,eAAeC,UAAQ;MAACC,OAAO;QAAE/B;MAAW;OAC3C,sBAAA,cAACgC,UAAUC,SAAO;MAACC,MAAMvB,SAAS,YAAY,WAAW;OACvD,sBAAA,cAACwB,mBAAAA;MAAkBvB;OACjB,sBAAA,cAACwB,OAAOC,MAAI;MACVzB;MACA0B,KAAKb;MACLT;MACAI;MACAE;MACAH;OAEA,sBAAA,cAACiB,OAAOG,QAAM,IAAA,GACd,sBAAA,cAACH,OAAOI,IAAE;MAACC,WAAAA;;;;;AAMvB;AAEA,IAAA,0BAAe/B;",
|
|
6
|
-
"names": ["React", "useEffect", "useMemo", "useRef", "ComputeGraphModel", "Obj", "DatabaseService", "QueueService", "ServiceContainer", "useConfig", "getSpace", "ComputeContext", "ComputeGraphController", "ComputeShapeLayout", "computeShapes", "useComputeGraphController", "useGraphMonitor", "CanvasGraphModel", "Editor", "KeyboardContainer", "ShapeRegistry", "StackItem", "createServices", "config", "space", "ServiceContainer", "setServices", "database", "undefined", "DatabaseService", "make", "db", "queues", "QueueService", "useGraphController", "canvas", "useConfig", "getSpace", "controller", "useMemo", "computeGraph", "target", "model", "ComputeGraphModel", "ComputeGraphController", "useEffect", "open", "close", "CanvasContainer", "role", "id", "Obj", "getDXN", "toString", "graph", "CanvasGraphModel", "create", "layout", "graphMonitor", "useGraphMonitor", "registry", "ShapeRegistry", "computeShapes", "editorRef", "useRef", "useComputeGraphController", "ComputeShapeLayout", "ComputeContext", "Provider", "value", "StackItem", "Content", "size", "KeyboardContainer", "Editor", "Root", "ref", "Canvas", "UI", "showTools"]
|
|
7
|
-
}
|
|
@@ -1,25 +0,0 @@
|
|
|
1
|
-
import {
|
|
2
|
-
meta
|
|
3
|
-
} from "./chunk-PYKBZYTF.mjs";
|
|
4
|
-
|
|
5
|
-
// src/types/schema.ts
|
|
6
|
-
import * as Schema from "effect/Schema";
|
|
7
|
-
import { CanvasBoardType } from "@dxos/react-ui-canvas-editor";
|
|
8
|
-
(function(ConductorAction2) {
|
|
9
|
-
class Create extends Schema.TaggedClass()(`${meta.id}/action/create`, {
|
|
10
|
-
input: Schema.Struct({
|
|
11
|
-
name: Schema.optional(Schema.String)
|
|
12
|
-
}),
|
|
13
|
-
output: Schema.Struct({
|
|
14
|
-
object: CanvasBoardType
|
|
15
|
-
})
|
|
16
|
-
}) {
|
|
17
|
-
}
|
|
18
|
-
ConductorAction2.Create = Create;
|
|
19
|
-
})(ConductorAction || (ConductorAction = {}));
|
|
20
|
-
var ConductorAction;
|
|
21
|
-
|
|
22
|
-
export {
|
|
23
|
-
ConductorAction
|
|
24
|
-
};
|
|
25
|
-
//# sourceMappingURL=chunk-POMULF74.mjs.map
|
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"version": 3,
|
|
3
|
-
"sources": ["../../../src/types/schema.ts"],
|
|
4
|
-
"sourcesContent": ["//\n// Copyright 2023 DXOS.org\n//\n\nimport * as Schema from 'effect/Schema';\n\nimport { CanvasBoardType } from '@dxos/react-ui-canvas-editor';\n\nimport { meta } from '../meta';\n\nexport namespace ConductorAction {\n export class Create extends Schema.TaggedClass<Create>()(`${meta.id}/action/create`, {\n input: Schema.Struct({\n name: Schema.optional(Schema.String),\n }),\n output: Schema.Struct({\n object: CanvasBoardType,\n }),\n }) {}\n}\n"],
|
|
5
|
-
"mappings": ";;;;;AAIA,YAAYA,YAAY;AAExB,SAASC,uBAAuB;UAIfC,kBAAAA;EACR,MAAMC,eAAsBC,mBAAW,EAAW,GAAGC,KAAKC,EAAE,kBAAkB;IACnFC,OAAcC,cAAO;MACnBC,MAAaC,gBAAgBC,aAAM;IACrC,CAAA;IACAC,QAAeJ,cAAO;MACpBK,QAAQC;IACV,CAAA;EACF,CAAA,EAAA;EAAI;mBAPSX,SAAAA;AAQf,GATiBD,oBAAAA,kBAAAA,CAAAA,EAAAA;;",
|
|
6
|
-
"names": ["Schema", "CanvasBoardType", "ConductorAction", "Create", "TaggedClass", "meta", "id", "input", "Struct", "name", "optional", "String", "output", "object", "CanvasBoardType"]
|
|
7
|
-
}
|
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"version": 3,
|
|
3
|
-
"sources": ["../../../src/meta.ts"],
|
|
4
|
-
"sourcesContent": ["//\n// Copyright 2023 DXOS.org\n//\n\nimport { type PluginMeta } from '@dxos/app-framework';\nimport { trim } from '@dxos/util';\n\nexport const meta: PluginMeta = {\n id: 'dxos.org/plugin/conductor',\n name: 'Conductor',\n description: trim`\n Visual workflow builder using node-based compute graphs to orchestrate complex AI agent pipelines.\n Connect data sources, transformations, and AI models in a drag-and-drop interface for advanced automation.\n `,\n icon: 'ph--infinity--regular',\n iconHue: 'sky',\n source: 'https://github.com/dxos/dxos/tree/main/packages/plugins/plugin-conductor',\n tags: ['labs'],\n screenshots: ['https://dxos.network/plugin-details-canvas-dark.png'],\n};\n"],
|
|
5
|
-
"mappings": ";AAKA,SAASA,YAAY;AAEd,IAAMC,OAAmB;EAC9BC,IAAI;EACJC,MAAM;EACNC,aAAaC;;;;EAIbC,MAAM;EACNC,SAAS;EACTC,QAAQ;EACRC,MAAM;IAAC;;EACPC,aAAa;IAAC;;AAChB;",
|
|
6
|
-
"names": ["trim", "meta", "id", "name", "description", "trim", "icon", "iconHue", "source", "tags", "screenshots"]
|
|
7
|
-
}
|