@dxos/plugin-conductor 0.8.4-main.c1de068 → 0.8.4-main.c85a9c8dae
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- 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-GV4DJFU6.mjs +24 -0
- package/dist/lib/browser/chunk-GV4DJFU6.mjs.map +7 -0
- package/dist/lib/browser/index.mjs +32 -62
- package/dist/lib/browser/index.mjs.map +4 -4
- package/dist/lib/browser/meta.json +1 -1
- package/dist/lib/browser/react-surface-RLG5OIZN.mjs +33 -0
- package/dist/lib/browser/react-surface-RLG5OIZN.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-DILME6SD.mjs +26 -0
- package/dist/lib/node-esm/chunk-DILME6SD.mjs.map +7 -0
- package/dist/lib/node-esm/index.mjs +32 -62
- 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-OJ6WPD4B.mjs +34 -0
- package/dist/lib/node-esm/react-surface-OJ6WPD4B.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 -3
- package/dist/types/src/meta.d.ts.map +1 -1
- package/dist/types/src/translations.d.ts +3 -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 +43 -47
- package/src/ConductorPlugin.tsx +24 -54
- 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 +48 -51
- package/src/containers/CanvasContainer/index.ts +7 -0
- package/src/containers/index.ts +7 -0
- package/src/meta.ts +9 -7
- package/src/translations.ts +3 -2
- package/src/types/index.ts +0 -2
- package/dist/lib/browser/CanvasContainer-ZH5SFXCO.mjs +0 -97
- package/dist/lib/browser/CanvasContainer-ZH5SFXCO.mjs.map +0 -7
- package/dist/lib/browser/chunk-3AGZDOYQ.mjs +0 -21
- package/dist/lib/browser/chunk-3AGZDOYQ.mjs.map +0 -7
- package/dist/lib/browser/chunk-IFYNDE3Z.mjs +0 -25
- package/dist/lib/browser/chunk-IFYNDE3Z.mjs.map +0 -7
- package/dist/lib/browser/intent-resolver-7OILSFLQ.mjs +0 -34
- package/dist/lib/browser/intent-resolver-7OILSFLQ.mjs.map +0 -7
- package/dist/lib/browser/react-surface-EDDAESDD.mjs +0 -31
- package/dist/lib/browser/react-surface-EDDAESDD.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-T5LXU3YB.mjs +0 -99
- package/dist/lib/node-esm/CanvasContainer-T5LXU3YB.mjs.map +0 -7
- package/dist/lib/node-esm/chunk-ELHUFMCW.mjs +0 -26
- package/dist/lib/node-esm/chunk-ELHUFMCW.mjs.map +0 -7
- package/dist/lib/node-esm/chunk-TL52TWDT.mjs +0 -23
- package/dist/lib/node-esm/chunk-TL52TWDT.mjs.map +0 -7
- package/dist/lib/node-esm/intent-resolver-U3TIHMS2.mjs +0 -35
- package/dist/lib/node-esm/intent-resolver-U3TIHMS2.mjs.map +0 -7
- package/dist/lib/node-esm/react-surface-UFIHQSHX.mjs +0 -32
- package/dist/lib/node-esm/react-surface-UFIHQSHX.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/README.md
CHANGED
|
@@ -28,10 +28,10 @@ The system is built on `@dxos/graph` as the core abstraction layer Canvas visual
|
|
|
28
28
|
- ComputeNode state changes are Effect signals
|
|
29
29
|
- Canvas React components automatically update based on these signals
|
|
30
30
|
|
|
31
|
-
|
|
32
31
|
## Development
|
|
33
32
|
|
|
34
33
|
### Phase 1: Basic editor
|
|
34
|
+
|
|
35
35
|
- [x] Canvas with pan and zoom (`@dxos/react-canvaas`).
|
|
36
36
|
- [x] General graph data structure (`@dxos/graph`).
|
|
37
37
|
- [x] Radix-style Editor component, with Canvas, Grid and Toolbar.
|
|
@@ -47,7 +47,8 @@ The system is built on `@dxos/graph` as the core abstraction layer Canvas visual
|
|
|
47
47
|
- [ ] Undo/redo (history).
|
|
48
48
|
- [ ] Snap to edges or center? (currently center).
|
|
49
49
|
|
|
50
|
-
### Phase 2:
|
|
50
|
+
### Phase 2:
|
|
51
|
+
|
|
51
52
|
- [x] FunctionShape components with properties and anchor points. Add/delete and Play buttons.
|
|
52
53
|
- [x] Shape registry.
|
|
53
54
|
- [x] Custom frames.
|
|
@@ -77,9 +78,11 @@ The system is built on `@dxos/graph` as the core abstraction layer Canvas visual
|
|
|
77
78
|
- [x] GPT (with prompt and base prompt inputs).
|
|
78
79
|
|
|
79
80
|
### Phase 4:
|
|
80
|
-
|
|
81
|
+
|
|
82
|
+
- [ ] Group/collapse nodes; hierarchical graph editor.
|
|
81
83
|
|
|
82
84
|
### Technical Debt
|
|
85
|
+
|
|
83
86
|
- [x] `AttentionContainer` (and key management).
|
|
84
87
|
- [ ] Factor out common Toolbar pattern (with state observers).
|
|
85
88
|
- [ ] Reconcile Graph with framework (ECHO, app-graph, etc.)
|
|
@@ -87,4 +90,5 @@ The system is built on `@dxos/graph` as the core abstraction layer Canvas visual
|
|
|
87
90
|
- [ ] TypedObject and schema id property.
|
|
88
91
|
|
|
89
92
|
### Design Issues
|
|
93
|
+
|
|
90
94
|
- [ ] Represent all compute node properties as inputs? (e.g., trigger).
|
|
@@ -0,0 +1,89 @@
|
|
|
1
|
+
// src/containers/CanvasContainer/CanvasContainer.tsx
|
|
2
|
+
import React, { Fragment, useEffect, useMemo, useRef } from "react";
|
|
3
|
+
import { useCapability } from "@dxos/app-framework/ui";
|
|
4
|
+
import { ComputeGraphModel } from "@dxos/conductor";
|
|
5
|
+
import { Obj } from "@dxos/echo";
|
|
6
|
+
import { AutomationCapabilities } from "@dxos/plugin-automation";
|
|
7
|
+
import { useObject } from "@dxos/react-client/echo";
|
|
8
|
+
import { Flex } from "@dxos/react-ui";
|
|
9
|
+
import { ComputeContext, ComputeGraphController, ComputeShapeLayout, computeShapes, useComputeGraphController, useGraphMonitor } from "@dxos/react-ui-canvas-compute";
|
|
10
|
+
import { CanvasGraphModel, Editor, KeyboardContainer, ShapeRegistry } from "@dxos/react-ui-canvas-editor";
|
|
11
|
+
var CanvasContainer = ({ role, subject: canvas }) => {
|
|
12
|
+
const id = Obj.getDXN(canvas).toString();
|
|
13
|
+
useObject(canvas);
|
|
14
|
+
const graph = useMemo(() => CanvasGraphModel.create(canvas.layout, (fn) => Obj.change(canvas, fn)), [
|
|
15
|
+
canvas
|
|
16
|
+
]);
|
|
17
|
+
const controller = useGraphController(canvas);
|
|
18
|
+
const graphMonitor = useGraphMonitor(controller?.graph);
|
|
19
|
+
const registry = useMemo(() => new ShapeRegistry(computeShapes), []);
|
|
20
|
+
const editorRef = useRef(null);
|
|
21
|
+
useComputeGraphController({
|
|
22
|
+
controller,
|
|
23
|
+
graph,
|
|
24
|
+
editorRef
|
|
25
|
+
});
|
|
26
|
+
const layout = useMemo(() => controller && registry ? new ComputeShapeLayout(controller, registry) : void 0, [
|
|
27
|
+
controller,
|
|
28
|
+
registry
|
|
29
|
+
]);
|
|
30
|
+
if (!controller) {
|
|
31
|
+
return;
|
|
32
|
+
}
|
|
33
|
+
const Root = role === "section" ? Container : Fragment;
|
|
34
|
+
return /* @__PURE__ */ React.createElement(ComputeContext.Provider, {
|
|
35
|
+
value: {
|
|
36
|
+
controller
|
|
37
|
+
}
|
|
38
|
+
}, /* @__PURE__ */ React.createElement(Root, null, /* @__PURE__ */ React.createElement(KeyboardContainer, {
|
|
39
|
+
id
|
|
40
|
+
}, /* @__PURE__ */ React.createElement(Editor.Root, {
|
|
41
|
+
id,
|
|
42
|
+
ref: editorRef,
|
|
43
|
+
graph,
|
|
44
|
+
graphMonitor,
|
|
45
|
+
registry,
|
|
46
|
+
layout
|
|
47
|
+
}, /* @__PURE__ */ React.createElement(Editor.Canvas, null), /* @__PURE__ */ React.createElement(Editor.UI, {
|
|
48
|
+
showTools: true
|
|
49
|
+
})))));
|
|
50
|
+
};
|
|
51
|
+
var Container = (props) => /* @__PURE__ */ React.createElement(Flex, {
|
|
52
|
+
...props,
|
|
53
|
+
classNames: "aspect-square"
|
|
54
|
+
});
|
|
55
|
+
var useGraphController = (canvas) => {
|
|
56
|
+
const db = Obj.getDatabase(canvas);
|
|
57
|
+
const runtime = useCapability(AutomationCapabilities.ComputeRuntime);
|
|
58
|
+
const [computeGraph] = useObject(canvas.computeGraph);
|
|
59
|
+
const controller = useMemo(() => {
|
|
60
|
+
if (!canvas.computeGraph?.target || !db) {
|
|
61
|
+
return null;
|
|
62
|
+
}
|
|
63
|
+
const model = new ComputeGraphModel(canvas.computeGraph?.target);
|
|
64
|
+
const controller2 = new ComputeGraphController(runtime.getRuntime(db.spaceId), model);
|
|
65
|
+
return controller2;
|
|
66
|
+
}, [
|
|
67
|
+
computeGraph,
|
|
68
|
+
db
|
|
69
|
+
]);
|
|
70
|
+
useEffect(() => {
|
|
71
|
+
if (!controller) {
|
|
72
|
+
return;
|
|
73
|
+
}
|
|
74
|
+
void controller.open();
|
|
75
|
+
return () => {
|
|
76
|
+
void controller.close();
|
|
77
|
+
};
|
|
78
|
+
}, [
|
|
79
|
+
controller
|
|
80
|
+
]);
|
|
81
|
+
return controller;
|
|
82
|
+
};
|
|
83
|
+
|
|
84
|
+
// src/containers/CanvasContainer/index.ts
|
|
85
|
+
var CanvasContainer_default = CanvasContainer;
|
|
86
|
+
export {
|
|
87
|
+
CanvasContainer_default as default
|
|
88
|
+
};
|
|
89
|
+
//# sourceMappingURL=CanvasContainer-GJPWWILJ.mjs.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../../src/containers/CanvasContainer/CanvasContainer.tsx", "../../../src/containers/CanvasContainer/index.ts"],
|
|
4
|
+
"sourcesContent": ["//\n// Copyright 2024 DXOS.org\n//\n\nimport React, { Fragment, useEffect, useMemo, useRef } from 'react';\n\nimport { useCapability } from '@dxos/app-framework/ui';\nimport { type SurfaceComponentProps } from '@dxos/app-toolkit/ui';\nimport { ComputeGraphModel } from '@dxos/conductor';\nimport { Obj } from '@dxos/echo';\nimport { AutomationCapabilities } from '@dxos/plugin-automation';\nimport { useObject } from '@dxos/react-client/echo';\nimport { Flex, type FlexProps } from '@dxos/react-ui';\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 CanvasBoard,\n CanvasGraphModel,\n Editor,\n type EditorController,\n KeyboardContainer,\n ShapeRegistry,\n} from '@dxos/react-ui-canvas-editor';\n\nexport type CanvasContainerProps = SurfaceComponentProps<CanvasBoard.CanvasBoard>;\n\nexport const CanvasContainer = ({ role, subject: canvas }: CanvasContainerProps) => {\n const id = Obj.getDXN(canvas as any).toString();\n useObject(canvas);\n const graph = useMemo(\n () => CanvasGraphModel.create<ComputeShape>(canvas.layout, (fn) => Obj.change(canvas, fn)),\n [canvas],\n );\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 const Root = role === 'section' ? Container : Fragment;\n\n return (\n <ComputeContext.Provider value={{ controller }}>\n <Root>\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 </Root>\n </ComputeContext.Provider>\n );\n};\n\nconst Container = (props: FlexProps) => <Flex {...props} classNames='aspect-square' />;\n\nconst useGraphController = (canvas: CanvasBoard.CanvasBoard) => {\n const db = Obj.getDatabase(canvas);\n const runtime = useCapability(AutomationCapabilities.ComputeRuntime);\n const [computeGraph] = useObject(canvas.computeGraph);\n const controller = useMemo(() => {\n if (!canvas.computeGraph?.target || !db) {\n return null;\n }\n const model = new ComputeGraphModel(canvas.computeGraph?.target);\n const controller = new ComputeGraphController(runtime.getRuntime(db.spaceId), model);\n return controller;\n }, [computeGraph, db]);\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", "//\n// Copyright 2024 DXOS.org\n//\n\nimport { CanvasContainer } from './CanvasContainer';\n\nexport default CanvasContainer;\n"],
|
|
5
|
+
"mappings": ";AAIA,OAAOA,SAASC,UAAUC,WAAWC,SAASC,cAAc;AAE5D,SAASC,qBAAqB;AAE9B,SAASC,yBAAyB;AAClC,SAASC,WAAW;AACpB,SAASC,8BAA8B;AACvC,SAASC,iBAAiB;AAC1B,SAASC,YAA4B;AACrC,SACEC,gBACAC,wBAEAC,oBACAC,eACAC,2BACAC,uBACK;AACP,SAEEC,kBACAC,QAEAC,mBACAC,qBACK;AAIA,IAAMC,kBAAkB,CAAC,EAAEC,MAAMC,SAASC,OAAM,MAAwB;AAC7E,QAAMC,KAAKC,IAAIC,OAAOH,MAAAA,EAAeI,SAAQ;AAC7CC,YAAUL,MAAAA;AACV,QAAMM,QAAQC,QACZ,MAAMC,iBAAiBC,OAAqBT,OAAOU,QAAQ,CAACC,OAAOT,IAAIU,OAAOZ,QAAQW,EAAAA,CAAAA,GACtF;IAACX;GAAO;AAEV,QAAMa,aAAaC,mBAAmBd,MAAAA;AACtC,QAAMe,eAAeC,gBAAgBH,YAAYP,KAAAA;AACjD,QAAMW,WAAWV,QAAQ,MAAM,IAAIW,cAAcC,aAAAA,GAAgB,CAAA,CAAE;AACnE,QAAMC,YAAYC,OAAyB,IAAA;AAC3CC,4BAA0B;IAAET;IAAYP;IAAOc;EAAU,CAAA;AAGzD,QAAMV,SAASH,QACb,MAAOM,cAAcI,WAAW,IAAIM,mBAAmBV,YAAYI,QAAAA,IAAYO,QAC/E;IAACX;IAAYI;GAAS;AAGxB,MAAI,CAACJ,YAAY;AACf;EACF;AAEA,QAAMY,OAAO3B,SAAS,YAAY4B,YAAYC;AAE9C,SACE,sBAAA,cAACC,eAAeC,UAAQ;IAACC,OAAO;MAAEjB;IAAW;KAC3C,sBAAA,cAACY,MAAAA,MACC,sBAAA,cAACM,mBAAAA;IAAkB9B;KACjB,sBAAA,cAAC+B,OAAOP,MAAI;IACVxB;IACAgC,KAAKb;IACLd;IACAS;IACAE;IACAP;KAEA,sBAAA,cAACsB,OAAOE,QAAM,IAAA,GACd,sBAAA,cAACF,OAAOG,IAAE;IAACC,WAAAA;;AAMvB;AAEA,IAAMV,YAAY,CAACW,UAAqB,sBAAA,cAACC,MAAAA;EAAM,GAAGD;EAAOE,YAAW;;AAEpE,IAAMzB,qBAAqB,CAACd,WAAAA;AAC1B,QAAMwC,KAAKtC,IAAIuC,YAAYzC,MAAAA;AAC3B,QAAM0C,UAAUC,cAAcC,uBAAuBC,cAAc;AACnE,QAAM,CAACC,YAAAA,IAAgBzC,UAAUL,OAAO8C,YAAY;AACpD,QAAMjC,aAAaN,QAAQ,MAAA;AACzB,QAAI,CAACP,OAAO8C,cAAcC,UAAU,CAACP,IAAI;AACvC,aAAO;IACT;AACA,UAAMQ,QAAQ,IAAIC,kBAAkBjD,OAAO8C,cAAcC,MAAAA;AACzD,UAAMlC,cAAa,IAAIqC,uBAAuBR,QAAQS,WAAWX,GAAGY,OAAO,GAAGJ,KAAAA;AAC9E,WAAOnC;EACT,GAAG;IAACiC;IAAcN;GAAG;AAErBa,YAAU,MAAA;AACR,QAAI,CAACxC,YAAY;AACf;IACF;AAEA,SAAKA,WAAWyC,KAAI;AACpB,WAAO,MAAA;AACL,WAAKzC,WAAW0C,MAAK;IACvB;EACF,GAAG;IAAC1C;GAAW;AAEf,SAAOA;AACT;;;ACpGA,IAAA,0BAAe2C;",
|
|
6
|
+
"names": ["React", "Fragment", "useEffect", "useMemo", "useRef", "useCapability", "ComputeGraphModel", "Obj", "AutomationCapabilities", "useObject", "Flex", "ComputeContext", "ComputeGraphController", "ComputeShapeLayout", "computeShapes", "useComputeGraphController", "useGraphMonitor", "CanvasGraphModel", "Editor", "KeyboardContainer", "ShapeRegistry", "CanvasContainer", "role", "subject", "canvas", "id", "Obj", "getDXN", "toString", "useObject", "graph", "useMemo", "CanvasGraphModel", "create", "layout", "fn", "change", "controller", "useGraphController", "graphMonitor", "useGraphMonitor", "registry", "ShapeRegistry", "computeShapes", "editorRef", "useRef", "useComputeGraphController", "ComputeShapeLayout", "undefined", "Root", "Container", "Fragment", "ComputeContext", "Provider", "value", "KeyboardContainer", "Editor", "ref", "Canvas", "UI", "showTools", "props", "Flex", "classNames", "db", "getDatabase", "runtime", "useCapability", "AutomationCapabilities", "ComputeRuntime", "computeGraph", "target", "model", "ComputeGraphModel", "ComputeGraphController", "getRuntime", "spaceId", "useEffect", "open", "close", "CanvasContainer"]
|
|
7
|
+
}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
// src/meta.ts
|
|
2
|
+
import { trim } from "@dxos/util";
|
|
3
|
+
var meta = {
|
|
4
|
+
id: "dxos.org/plugin/conductor",
|
|
5
|
+
name: "Conductor",
|
|
6
|
+
description: trim`
|
|
7
|
+
Visual workflow builder using node-based compute graphs to orchestrate complex AI agent pipelines.
|
|
8
|
+
Connect data sources, transformations, and AI models in a drag-and-drop interface for advanced automation.
|
|
9
|
+
`,
|
|
10
|
+
icon: "ph--infinity--regular",
|
|
11
|
+
iconHue: "sky",
|
|
12
|
+
source: "https://github.com/dxos/dxos/tree/main/packages/plugins/plugin-conductor",
|
|
13
|
+
tags: [
|
|
14
|
+
"labs"
|
|
15
|
+
],
|
|
16
|
+
screenshots: [
|
|
17
|
+
"https://dxos.network/plugin-details-canvas-dark.png"
|
|
18
|
+
]
|
|
19
|
+
};
|
|
20
|
+
|
|
21
|
+
export {
|
|
22
|
+
meta
|
|
23
|
+
};
|
|
24
|
+
//# sourceMappingURL=chunk-GV4DJFU6.mjs.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../../src/meta.ts"],
|
|
4
|
+
"sourcesContent": ["//\n// Copyright 2023 DXOS.org\n//\n\nimport { type Plugin } from '@dxos/app-framework';\nimport { trim } from '@dxos/util';\n\nexport const meta: Plugin.Meta = {\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,OAAoB;EAC/BC,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
|
+
}
|
|
@@ -1,38 +1,32 @@
|
|
|
1
1
|
import {
|
|
2
|
-
ConductorAction
|
|
3
|
-
} from "./chunk-IFYNDE3Z.mjs";
|
|
4
|
-
import {
|
|
5
|
-
CONDUCTOR_PLUGIN,
|
|
6
2
|
meta
|
|
7
|
-
} from "./chunk-
|
|
3
|
+
} from "./chunk-GV4DJFU6.mjs";
|
|
8
4
|
|
|
9
5
|
// src/ConductorPlugin.tsx
|
|
10
|
-
import
|
|
6
|
+
import * as Effect from "effect/Effect";
|
|
7
|
+
import { Plugin } from "@dxos/app-framework";
|
|
8
|
+
import { AppPlugin } from "@dxos/app-toolkit";
|
|
11
9
|
import { ComputeGraph } from "@dxos/conductor";
|
|
12
|
-
import {
|
|
13
|
-
import { ClientCapabilities, ClientEvents } from "@dxos/plugin-client";
|
|
14
|
-
import { SpaceCapabilities } from "@dxos/plugin-space";
|
|
15
|
-
import { defineObjectForm } from "@dxos/plugin-space/types";
|
|
16
|
-
import { CanvasBoardType as CanvasBoardType2 } from "@dxos/react-ui-canvas-editor";
|
|
10
|
+
import { CanvasBoard as CanvasBoard2 } from "@dxos/react-ui-canvas-editor";
|
|
17
11
|
|
|
18
|
-
// src/capabilities/index.ts
|
|
19
|
-
import {
|
|
20
|
-
var
|
|
21
|
-
var ReactSurface = lazy(() => import("./react-surface-EDDAESDD.mjs"));
|
|
12
|
+
// src/capabilities/react-surface/index.ts
|
|
13
|
+
import { Capability } from "@dxos/app-framework";
|
|
14
|
+
var ReactSurface = Capability.lazy("ReactSurface", () => import("./react-surface-RLG5OIZN.mjs"));
|
|
22
15
|
|
|
23
16
|
// src/translations.ts
|
|
24
|
-
import {
|
|
17
|
+
import { CanvasBoard } from "@dxos/react-ui-canvas-editor";
|
|
25
18
|
var translations = [
|
|
26
19
|
{
|
|
27
20
|
"en-US": {
|
|
28
|
-
[
|
|
21
|
+
[CanvasBoard.CanvasBoard.typename]: {
|
|
29
22
|
"typename label": "Circuit",
|
|
30
23
|
"typename label_zero": "Circuits",
|
|
31
24
|
"typename label_one": "Circuit",
|
|
32
25
|
"typename label_other": "Circuits",
|
|
33
26
|
"object name placeholder": "New circuit",
|
|
34
27
|
"rename object label": "Rename circuit",
|
|
35
|
-
"delete object label": "Delete circuit"
|
|
28
|
+
"delete object label": "Delete circuit",
|
|
29
|
+
"object deleted label": "Circuit deleted"
|
|
36
30
|
},
|
|
37
31
|
[meta.id]: {
|
|
38
32
|
"plugin name": "Conductor",
|
|
@@ -43,51 +37,27 @@ var translations = [
|
|
|
43
37
|
];
|
|
44
38
|
|
|
45
39
|
// src/ConductorPlugin.tsx
|
|
46
|
-
var ConductorPlugin = ()
|
|
47
|
-
|
|
48
|
-
id:
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
objectSchema: CanvasBoardType2,
|
|
67
|
-
getIntent: () => createIntent(ConductorAction.Create)
|
|
68
|
-
}))
|
|
69
|
-
}),
|
|
70
|
-
defineModule({
|
|
71
|
-
id: `${meta.id}/module/schema`,
|
|
72
|
-
activatesOn: ClientEvents.SetupSchema,
|
|
73
|
-
activate: () => contributes(ClientCapabilities.Schema, [
|
|
74
|
-
ComputeGraph,
|
|
75
|
-
FunctionTrigger
|
|
76
|
-
])
|
|
77
|
-
}),
|
|
78
|
-
defineModule({
|
|
79
|
-
id: `${meta.id}/module/react-surface`,
|
|
80
|
-
activatesOn: Events.SetupReactSurface,
|
|
81
|
-
activate: ReactSurface
|
|
82
|
-
}),
|
|
83
|
-
defineModule({
|
|
84
|
-
id: `${meta.id}/module/intent-resolver`,
|
|
85
|
-
activatesOn: Events.SetupIntentResolver,
|
|
86
|
-
activate: IntentResolver
|
|
87
|
-
})
|
|
88
|
-
]);
|
|
40
|
+
var ConductorPlugin = Plugin.define(meta).pipe(AppPlugin.addMetadataModule({
|
|
41
|
+
metadata: {
|
|
42
|
+
id: CanvasBoard2.CanvasBoard.typename,
|
|
43
|
+
metadata: {
|
|
44
|
+
icon: "ph--infinity--regular",
|
|
45
|
+
iconHue: "sky",
|
|
46
|
+
createObject: (props) => Effect.sync(() => CanvasBoard2.make(props)),
|
|
47
|
+
addToCollectionOnCreate: true
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
}), AppPlugin.addSchemaModule({
|
|
51
|
+
schema: [
|
|
52
|
+
CanvasBoard2.CanvasBoard,
|
|
53
|
+
ComputeGraph
|
|
54
|
+
]
|
|
55
|
+
}), AppPlugin.addSurfaceModule({
|
|
56
|
+
activate: ReactSurface
|
|
57
|
+
}), AppPlugin.addTranslationsModule({
|
|
58
|
+
translations
|
|
59
|
+
}), Plugin.make);
|
|
89
60
|
export {
|
|
90
|
-
CONDUCTOR_PLUGIN,
|
|
91
61
|
ConductorPlugin,
|
|
92
62
|
meta
|
|
93
63
|
};
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
|
-
"sources": ["../../../src/ConductorPlugin.tsx", "../../../src/capabilities/index.ts", "../../../src/translations.ts"],
|
|
4
|
-
"sourcesContent": ["//\n// Copyright 2023 DXOS.org\n//\n\nimport
|
|
5
|
-
"mappings": "
|
|
6
|
-
"names": ["
|
|
3
|
+
"sources": ["../../../src/ConductorPlugin.tsx", "../../../src/capabilities/react-surface/index.ts", "../../../src/translations.ts"],
|
|
4
|
+
"sourcesContent": ["//\n// Copyright 2023 DXOS.org\n//\n\nimport * as Effect from 'effect/Effect';\n\nimport { Plugin } from '@dxos/app-framework';\nimport { AppPlugin } from '@dxos/app-toolkit';\nimport { ComputeGraph } from '@dxos/conductor';\nimport { type CreateObject } from '@dxos/plugin-space/types';\nimport { CanvasBoard } from '@dxos/react-ui-canvas-editor';\n\nimport { ReactSurface } from './capabilities';\nimport { meta } from './meta';\nimport { translations } from './translations';\n\nexport const ConductorPlugin = Plugin.define(meta).pipe(\n AppPlugin.addMetadataModule({\n metadata: {\n id: CanvasBoard.CanvasBoard.typename,\n metadata: {\n icon: 'ph--infinity--regular',\n iconHue: 'sky',\n createObject: ((props) => Effect.sync(() => CanvasBoard.make(props))) satisfies CreateObject,\n addToCollectionOnCreate: true,\n },\n },\n }),\n AppPlugin.addSchemaModule({ schema: [CanvasBoard.CanvasBoard, ComputeGraph] }),\n AppPlugin.addSurfaceModule({ activate: ReactSurface }),\n AppPlugin.addTranslationsModule({ translations }),\n Plugin.make,\n);\n", "//\n// Copyright 2025 DXOS.org\n//\n\nimport { Capability } from '@dxos/app-framework';\n\nexport const ReactSurface = Capability.lazy('ReactSurface', () => import('./react-surface'));\n", "//\n// Copyright 2023 DXOS.org\n//\n\nimport { type Resource } from '@dxos/react-ui';\nimport { CanvasBoard } from '@dxos/react-ui-canvas-editor';\n\nimport { meta } from './meta';\n\nexport const translations = [\n {\n 'en-US': {\n [CanvasBoard.CanvasBoard.typename]: {\n 'typename label': 'Circuit',\n 'typename label_zero': 'Circuits',\n 'typename label_one': 'Circuit',\n 'typename label_other': 'Circuits',\n 'object name placeholder': 'New circuit',\n 'rename object label': 'Rename circuit',\n 'delete object label': 'Delete circuit',\n 'object deleted label': 'Circuit deleted',\n },\n [meta.id]: {\n 'plugin name': 'Conductor',\n 'content placeholder': 'Enter text...',\n },\n },\n },\n] as const satisfies Resource[];\n"],
|
|
5
|
+
"mappings": ";;;;;AAIA,YAAYA,YAAY;AAExB,SAASC,cAAc;AACvB,SAASC,iBAAiB;AAC1B,SAASC,oBAAoB;AAE7B,SAASC,eAAAA,oBAAmB;;;ACN5B,SAASC,kBAAkB;AAEpB,IAAMC,eAAeC,WAAWC,KAAK,gBAAgB,MAAM,OAAO,8BAAA,CAAA;;;ACDzE,SAASC,mBAAmB;AAIrB,IAAMC,eAAe;EAC1B;IACE,SAAS;MACP,CAACC,YAAYA,YAAYC,QAAQ,GAAG;QAClC,kBAAkB;QAClB,uBAAuB;QACvB,sBAAsB;QACtB,wBAAwB;QACxB,2BAA2B;QAC3B,uBAAuB;QACvB,uBAAuB;QACvB,wBAAwB;MAC1B;MACA,CAACC,KAAKC,EAAE,GAAG;QACT,eAAe;QACf,uBAAuB;MACzB;IACF;EACF;;;;AFXK,IAAMC,kBAAkBC,OAAOC,OAAOC,IAAAA,EAAMC,KACjDC,UAAUC,kBAAkB;EAC1BC,UAAU;IACRC,IAAIC,aAAYA,YAAYC;IAC5BH,UAAU;MACRI,MAAM;MACNC,SAAS;MACTC,cAAe,CAACC,UAAiBC,YAAK,MAAMN,aAAYO,KAAKF,KAAAA,CAAAA;MAC7DG,yBAAyB;IAC3B;EACF;AACF,CAAA,GACAZ,UAAUa,gBAAgB;EAAEC,QAAQ;IAACV,aAAYA;IAAaW;;AAAc,CAAA,GAC5Ef,UAAUgB,iBAAiB;EAAEC,UAAUC;AAAa,CAAA,GACpDlB,UAAUmB,sBAAsB;EAAEC;AAAa,CAAA,GAC/CxB,OAAOe,IAAI;",
|
|
6
|
+
"names": ["Effect", "Plugin", "AppPlugin", "ComputeGraph", "CanvasBoard", "Capability", "ReactSurface", "Capability", "lazy", "CanvasBoard", "translations", "CanvasBoard", "typename", "meta", "id", "ConductorPlugin", "Plugin", "define", "meta", "pipe", "AppPlugin", "addMetadataModule", "metadata", "id", "CanvasBoard", "typename", "icon", "iconHue", "createObject", "props", "sync", "make", "addToCollectionOnCreate", "addSchemaModule", "schema", "ComputeGraph", "addSurfaceModule", "activate", "ReactSurface", "addTranslationsModule", "translations"]
|
|
7
7
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"inputs":{"src/
|
|
1
|
+
{"inputs":{"src/containers/CanvasContainer/CanvasContainer.tsx":{"bytes":11210,"imports":[{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/app-framework/ui","kind":"import-statement","external":true},{"path":"@dxos/conductor","kind":"import-statement","external":true},{"path":"@dxos/echo","kind":"import-statement","external":true},{"path":"@dxos/plugin-automation","kind":"import-statement","external":true},{"path":"@dxos/react-client/echo","kind":"import-statement","external":true},{"path":"@dxos/react-ui","kind":"import-statement","external":true},{"path":"@dxos/react-ui-canvas-compute","kind":"import-statement","external":true},{"path":"@dxos/react-ui-canvas-editor","kind":"import-statement","external":true}],"format":"esm"},"src/containers/CanvasContainer/index.ts":{"bytes":692,"imports":[{"path":"src/containers/CanvasContainer/CanvasContainer.tsx","kind":"import-statement","original":"./CanvasContainer"}],"format":"esm"},"src/containers/index.ts":{"bytes":819,"imports":[{"path":"react","kind":"import-statement","external":true},{"path":"src/containers/CanvasContainer/index.ts","kind":"dynamic-import","original":"./CanvasContainer"}],"format":"esm"},"src/meta.ts":{"bytes":2257,"imports":[{"path":"@dxos/util","kind":"import-statement","external":true}],"format":"esm"},"src/capabilities/react-surface/react-surface.tsx":{"bytes":3436,"imports":[{"path":"effect/Effect","kind":"import-statement","external":true},{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/app-framework","kind":"import-statement","external":true},{"path":"@dxos/app-framework/ui","kind":"import-statement","external":true},{"path":"@dxos/echo","kind":"import-statement","external":true},{"path":"@dxos/react-ui-canvas-editor","kind":"import-statement","external":true},{"path":"src/containers/index.ts","kind":"import-statement","original":"../../containers"},{"path":"src/meta.ts","kind":"import-statement","original":"../../meta"}],"format":"esm"},"src/capabilities/react-surface/index.ts":{"bytes":913,"imports":[{"path":"@dxos/app-framework","kind":"import-statement","external":true},{"path":"src/capabilities/react-surface/react-surface.tsx","kind":"dynamic-import","original":"./react-surface"}],"format":"esm"},"src/capabilities/index.ts":{"bytes":490,"imports":[{"path":"src/capabilities/react-surface/index.ts","kind":"import-statement","original":"./react-surface"}],"format":"esm"},"src/translations.ts":{"bytes":2754,"imports":[{"path":"@dxos/react-ui-canvas-editor","kind":"import-statement","external":true},{"path":"src/meta.ts","kind":"import-statement","original":"./meta"}],"format":"esm"},"src/ConductorPlugin.tsx":{"bytes":4119,"imports":[{"path":"effect/Effect","kind":"import-statement","external":true},{"path":"@dxos/app-framework","kind":"import-statement","external":true},{"path":"@dxos/app-toolkit","kind":"import-statement","external":true},{"path":"@dxos/conductor","kind":"import-statement","external":true},{"path":"@dxos/react-ui-canvas-editor","kind":"import-statement","external":true},{"path":"src/capabilities/index.ts","kind":"import-statement","original":"./capabilities"},{"path":"src/meta.ts","kind":"import-statement","original":"./meta"},{"path":"src/translations.ts","kind":"import-statement","original":"./translations"}],"format":"esm"},"src/index.ts":{"bytes":559,"imports":[{"path":"src/ConductorPlugin.tsx","kind":"import-statement","original":"./ConductorPlugin"},{"path":"src/meta.ts","kind":"import-statement","original":"./meta"}],"format":"esm"}},"outputs":{"dist/lib/browser/index.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":3708},"dist/lib/browser/index.mjs":{"imports":[{"path":"dist/lib/browser/chunk-GV4DJFU6.mjs","kind":"import-statement"},{"path":"effect/Effect","kind":"import-statement","external":true},{"path":"@dxos/app-framework","kind":"import-statement","external":true},{"path":"@dxos/app-toolkit","kind":"import-statement","external":true},{"path":"@dxos/conductor","kind":"import-statement","external":true},{"path":"@dxos/react-ui-canvas-editor","kind":"import-statement","external":true},{"path":"@dxos/app-framework","kind":"import-statement","external":true},{"path":"dist/lib/browser/react-surface-RLG5OIZN.mjs","kind":"dynamic-import"},{"path":"@dxos/react-ui-canvas-editor","kind":"import-statement","external":true}],"exports":["ConductorPlugin","meta"],"entryPoint":"src/index.ts","inputs":{"src/ConductorPlugin.tsx":{"bytesInOutput":813},"src/capabilities/react-surface/index.ts":{"bytesInOutput":148},"src/capabilities/index.ts":{"bytesInOutput":0},"src/translations.ts":{"bytesInOutput":639},"src/index.ts":{"bytesInOutput":0}},"bytes":1844},"dist/lib/browser/CanvasContainer-GJPWWILJ.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":6477},"dist/lib/browser/CanvasContainer-GJPWWILJ.mjs":{"imports":[{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/app-framework/ui","kind":"import-statement","external":true},{"path":"@dxos/conductor","kind":"import-statement","external":true},{"path":"@dxos/echo","kind":"import-statement","external":true},{"path":"@dxos/plugin-automation","kind":"import-statement","external":true},{"path":"@dxos/react-client/echo","kind":"import-statement","external":true},{"path":"@dxos/react-ui","kind":"import-statement","external":true},{"path":"@dxos/react-ui-canvas-compute","kind":"import-statement","external":true},{"path":"@dxos/react-ui-canvas-editor","kind":"import-statement","external":true}],"exports":["default"],"entryPoint":"src/containers/CanvasContainer/index.ts","inputs":{"src/containers/CanvasContainer/CanvasContainer.tsx":{"bytesInOutput":2782},"src/containers/CanvasContainer/index.ts":{"bytesInOutput":47}},"bytes":3030},"dist/lib/browser/react-surface-RLG5OIZN.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":2079},"dist/lib/browser/react-surface-RLG5OIZN.mjs":{"imports":[{"path":"dist/lib/browser/chunk-GV4DJFU6.mjs","kind":"import-statement"},{"path":"effect/Effect","kind":"import-statement","external":true},{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/app-framework","kind":"import-statement","external":true},{"path":"@dxos/app-framework/ui","kind":"import-statement","external":true},{"path":"@dxos/echo","kind":"import-statement","external":true},{"path":"@dxos/react-ui-canvas-editor","kind":"import-statement","external":true},{"path":"react","kind":"import-statement","external":true},{"path":"dist/lib/browser/CanvasContainer-GJPWWILJ.mjs","kind":"dynamic-import"}],"exports":["default"],"entryPoint":"src/capabilities/react-surface/react-surface.tsx","inputs":{"src/capabilities/react-surface/react-surface.tsx":{"bytesInOutput":684},"src/containers/index.ts":{"bytesInOutput":106}},"bytes":1070},"dist/lib/browser/chunk-GV4DJFU6.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":1067},"dist/lib/browser/chunk-GV4DJFU6.mjs":{"imports":[{"path":"@dxos/util","kind":"import-statement","external":true}],"exports":["meta"],"inputs":{"src/meta.ts":{"bytesInOutput":589}},"bytes":668}}}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
import {
|
|
2
|
+
meta
|
|
3
|
+
} from "./chunk-GV4DJFU6.mjs";
|
|
4
|
+
|
|
5
|
+
// src/capabilities/react-surface/react-surface.tsx
|
|
6
|
+
import * as Effect from "effect/Effect";
|
|
7
|
+
import React from "react";
|
|
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
|
+
// src/containers/index.ts
|
|
14
|
+
import { lazy } from "react";
|
|
15
|
+
var CanvasContainer = lazy(() => import("./CanvasContainer-GJPWWILJ.mjs"));
|
|
16
|
+
|
|
17
|
+
// src/capabilities/react-surface/react-surface.tsx
|
|
18
|
+
var react_surface_default = Capability.makeModule(() => Effect.succeed(Capability.contributes(Capabilities.ReactSurface, Surface.create({
|
|
19
|
+
id: meta.id,
|
|
20
|
+
role: [
|
|
21
|
+
"article",
|
|
22
|
+
"section"
|
|
23
|
+
],
|
|
24
|
+
filter: (data) => Obj.instanceOf(CanvasBoard.CanvasBoard, data.subject),
|
|
25
|
+
component: ({ data, role }) => /* @__PURE__ */ React.createElement(CanvasContainer, {
|
|
26
|
+
role,
|
|
27
|
+
subject: data.subject
|
|
28
|
+
})
|
|
29
|
+
}))));
|
|
30
|
+
export {
|
|
31
|
+
react_surface_default as default
|
|
32
|
+
};
|
|
33
|
+
//# sourceMappingURL=react-surface-RLG5OIZN.mjs.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../../src/capabilities/react-surface/react-surface.tsx", "../../../src/containers/index.ts"],
|
|
4
|
+
"sourcesContent": ["//\n// Copyright 2025 DXOS.org\n//\n\nimport * as Effect from 'effect/Effect';\nimport React from 'react';\n\nimport { Capabilities, Capability } from '@dxos/app-framework';\nimport { Surface } from '@dxos/app-framework/ui';\nimport { Obj } from '@dxos/echo';\nimport { CanvasBoard } from '@dxos/react-ui-canvas-editor';\n\nimport { CanvasContainer } from '../../containers';\nimport { meta } from '../../meta';\n\nexport default Capability.makeModule(() =>\n Effect.succeed(\n Capability.contributes(\n Capabilities.ReactSurface,\n Surface.create({\n id: meta.id,\n role: ['article', 'section'],\n filter: (data): data is { subject: CanvasBoard.CanvasBoard } =>\n Obj.instanceOf(CanvasBoard.CanvasBoard, data.subject),\n component: ({ data, role }) => <CanvasContainer role={role} subject={data.subject} />,\n }),\n ),\n ),\n);\n", "//\n// Copyright 2024 DXOS.org\n//\n\nimport { type ComponentType, lazy } from 'react';\n\nexport const CanvasContainer: ComponentType<any> = lazy(() => import('./CanvasContainer'));\n"],
|
|
5
|
+
"mappings": ";;;;;AAIA,YAAYA,YAAY;AACxB,OAAOC,WAAW;AAElB,SAASC,cAAcC,kBAAkB;AACzC,SAASC,eAAe;AACxB,SAASC,WAAW;AACpB,SAASC,mBAAmB;;;ACN5B,SAA6BC,YAAY;AAElC,IAAMC,kBAAsCC,KAAK,MAAM,OAAO,gCAAA,CAAA;;;ADSrE,IAAA,wBAAeC,WAAWC,WAAW,MAC5BC,eACLF,WAAWG,YACTC,aAAaC,cACbC,QAAQC,OAAO;EACbC,IAAIC,KAAKD;EACTE,MAAM;IAAC;IAAW;;EAClBC,QAAQ,CAACC,SACPC,IAAIC,WAAWC,YAAYA,aAAaH,KAAKI,OAAO;EACtDC,WAAW,CAAC,EAAEL,MAAMF,KAAI,MAAO,sBAAA,cAACQ,iBAAAA;IAAgBR;IAAYM,SAASJ,KAAKI;;AAC5E,CAAA,CAAA,CAAA,CAAA;",
|
|
6
|
+
"names": ["Effect", "React", "Capabilities", "Capability", "Surface", "Obj", "CanvasBoard", "lazy", "CanvasContainer", "lazy", "Capability", "makeModule", "succeed", "contributes", "Capabilities", "ReactSurface", "Surface", "create", "id", "meta", "role", "filter", "data", "Obj", "instanceOf", "CanvasBoard", "subject", "component", "CanvasContainer"]
|
|
7
|
+
}
|
|
@@ -0,0 +1,91 @@
|
|
|
1
|
+
import { createRequire } from 'node:module';const require = createRequire(import.meta.url);
|
|
2
|
+
|
|
3
|
+
// src/containers/CanvasContainer/CanvasContainer.tsx
|
|
4
|
+
import React, { Fragment, useEffect, useMemo, useRef } from "react";
|
|
5
|
+
import { useCapability } from "@dxos/app-framework/ui";
|
|
6
|
+
import { ComputeGraphModel } from "@dxos/conductor";
|
|
7
|
+
import { Obj } from "@dxos/echo";
|
|
8
|
+
import { AutomationCapabilities } from "@dxos/plugin-automation";
|
|
9
|
+
import { useObject } from "@dxos/react-client/echo";
|
|
10
|
+
import { Flex } from "@dxos/react-ui";
|
|
11
|
+
import { ComputeContext, ComputeGraphController, ComputeShapeLayout, computeShapes, useComputeGraphController, useGraphMonitor } from "@dxos/react-ui-canvas-compute";
|
|
12
|
+
import { CanvasGraphModel, Editor, KeyboardContainer, ShapeRegistry } from "@dxos/react-ui-canvas-editor";
|
|
13
|
+
var CanvasContainer = ({ role, subject: canvas }) => {
|
|
14
|
+
const id = Obj.getDXN(canvas).toString();
|
|
15
|
+
useObject(canvas);
|
|
16
|
+
const graph = useMemo(() => CanvasGraphModel.create(canvas.layout, (fn) => Obj.change(canvas, fn)), [
|
|
17
|
+
canvas
|
|
18
|
+
]);
|
|
19
|
+
const controller = useGraphController(canvas);
|
|
20
|
+
const graphMonitor = useGraphMonitor(controller?.graph);
|
|
21
|
+
const registry = useMemo(() => new ShapeRegistry(computeShapes), []);
|
|
22
|
+
const editorRef = useRef(null);
|
|
23
|
+
useComputeGraphController({
|
|
24
|
+
controller,
|
|
25
|
+
graph,
|
|
26
|
+
editorRef
|
|
27
|
+
});
|
|
28
|
+
const layout = useMemo(() => controller && registry ? new ComputeShapeLayout(controller, registry) : void 0, [
|
|
29
|
+
controller,
|
|
30
|
+
registry
|
|
31
|
+
]);
|
|
32
|
+
if (!controller) {
|
|
33
|
+
return;
|
|
34
|
+
}
|
|
35
|
+
const Root = role === "section" ? Container : Fragment;
|
|
36
|
+
return /* @__PURE__ */ React.createElement(ComputeContext.Provider, {
|
|
37
|
+
value: {
|
|
38
|
+
controller
|
|
39
|
+
}
|
|
40
|
+
}, /* @__PURE__ */ React.createElement(Root, null, /* @__PURE__ */ React.createElement(KeyboardContainer, {
|
|
41
|
+
id
|
|
42
|
+
}, /* @__PURE__ */ React.createElement(Editor.Root, {
|
|
43
|
+
id,
|
|
44
|
+
ref: editorRef,
|
|
45
|
+
graph,
|
|
46
|
+
graphMonitor,
|
|
47
|
+
registry,
|
|
48
|
+
layout
|
|
49
|
+
}, /* @__PURE__ */ React.createElement(Editor.Canvas, null), /* @__PURE__ */ React.createElement(Editor.UI, {
|
|
50
|
+
showTools: true
|
|
51
|
+
})))));
|
|
52
|
+
};
|
|
53
|
+
var Container = (props) => /* @__PURE__ */ React.createElement(Flex, {
|
|
54
|
+
...props,
|
|
55
|
+
classNames: "aspect-square"
|
|
56
|
+
});
|
|
57
|
+
var useGraphController = (canvas) => {
|
|
58
|
+
const db = Obj.getDatabase(canvas);
|
|
59
|
+
const runtime = useCapability(AutomationCapabilities.ComputeRuntime);
|
|
60
|
+
const [computeGraph] = useObject(canvas.computeGraph);
|
|
61
|
+
const controller = useMemo(() => {
|
|
62
|
+
if (!canvas.computeGraph?.target || !db) {
|
|
63
|
+
return null;
|
|
64
|
+
}
|
|
65
|
+
const model = new ComputeGraphModel(canvas.computeGraph?.target);
|
|
66
|
+
const controller2 = new ComputeGraphController(runtime.getRuntime(db.spaceId), model);
|
|
67
|
+
return controller2;
|
|
68
|
+
}, [
|
|
69
|
+
computeGraph,
|
|
70
|
+
db
|
|
71
|
+
]);
|
|
72
|
+
useEffect(() => {
|
|
73
|
+
if (!controller) {
|
|
74
|
+
return;
|
|
75
|
+
}
|
|
76
|
+
void controller.open();
|
|
77
|
+
return () => {
|
|
78
|
+
void controller.close();
|
|
79
|
+
};
|
|
80
|
+
}, [
|
|
81
|
+
controller
|
|
82
|
+
]);
|
|
83
|
+
return controller;
|
|
84
|
+
};
|
|
85
|
+
|
|
86
|
+
// src/containers/CanvasContainer/index.ts
|
|
87
|
+
var CanvasContainer_default = CanvasContainer;
|
|
88
|
+
export {
|
|
89
|
+
CanvasContainer_default as default
|
|
90
|
+
};
|
|
91
|
+
//# sourceMappingURL=CanvasContainer-OGY2XHPA.mjs.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../../src/containers/CanvasContainer/CanvasContainer.tsx", "../../../src/containers/CanvasContainer/index.ts"],
|
|
4
|
+
"sourcesContent": ["//\n// Copyright 2024 DXOS.org\n//\n\nimport React, { Fragment, useEffect, useMemo, useRef } from 'react';\n\nimport { useCapability } from '@dxos/app-framework/ui';\nimport { type SurfaceComponentProps } from '@dxos/app-toolkit/ui';\nimport { ComputeGraphModel } from '@dxos/conductor';\nimport { Obj } from '@dxos/echo';\nimport { AutomationCapabilities } from '@dxos/plugin-automation';\nimport { useObject } from '@dxos/react-client/echo';\nimport { Flex, type FlexProps } from '@dxos/react-ui';\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 CanvasBoard,\n CanvasGraphModel,\n Editor,\n type EditorController,\n KeyboardContainer,\n ShapeRegistry,\n} from '@dxos/react-ui-canvas-editor';\n\nexport type CanvasContainerProps = SurfaceComponentProps<CanvasBoard.CanvasBoard>;\n\nexport const CanvasContainer = ({ role, subject: canvas }: CanvasContainerProps) => {\n const id = Obj.getDXN(canvas as any).toString();\n useObject(canvas);\n const graph = useMemo(\n () => CanvasGraphModel.create<ComputeShape>(canvas.layout, (fn) => Obj.change(canvas, fn)),\n [canvas],\n );\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 const Root = role === 'section' ? Container : Fragment;\n\n return (\n <ComputeContext.Provider value={{ controller }}>\n <Root>\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 </Root>\n </ComputeContext.Provider>\n );\n};\n\nconst Container = (props: FlexProps) => <Flex {...props} classNames='aspect-square' />;\n\nconst useGraphController = (canvas: CanvasBoard.CanvasBoard) => {\n const db = Obj.getDatabase(canvas);\n const runtime = useCapability(AutomationCapabilities.ComputeRuntime);\n const [computeGraph] = useObject(canvas.computeGraph);\n const controller = useMemo(() => {\n if (!canvas.computeGraph?.target || !db) {\n return null;\n }\n const model = new ComputeGraphModel(canvas.computeGraph?.target);\n const controller = new ComputeGraphController(runtime.getRuntime(db.spaceId), model);\n return controller;\n }, [computeGraph, db]);\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", "//\n// Copyright 2024 DXOS.org\n//\n\nimport { CanvasContainer } from './CanvasContainer';\n\nexport default CanvasContainer;\n"],
|
|
5
|
+
"mappings": ";;;AAIA,OAAOA,SAASC,UAAUC,WAAWC,SAASC,cAAc;AAE5D,SAASC,qBAAqB;AAE9B,SAASC,yBAAyB;AAClC,SAASC,WAAW;AACpB,SAASC,8BAA8B;AACvC,SAASC,iBAAiB;AAC1B,SAASC,YAA4B;AACrC,SACEC,gBACAC,wBAEAC,oBACAC,eACAC,2BACAC,uBACK;AACP,SAEEC,kBACAC,QAEAC,mBACAC,qBACK;AAIA,IAAMC,kBAAkB,CAAC,EAAEC,MAAMC,SAASC,OAAM,MAAwB;AAC7E,QAAMC,KAAKC,IAAIC,OAAOH,MAAAA,EAAeI,SAAQ;AAC7CC,YAAUL,MAAAA;AACV,QAAMM,QAAQC,QACZ,MAAMC,iBAAiBC,OAAqBT,OAAOU,QAAQ,CAACC,OAAOT,IAAIU,OAAOZ,QAAQW,EAAAA,CAAAA,GACtF;IAACX;GAAO;AAEV,QAAMa,aAAaC,mBAAmBd,MAAAA;AACtC,QAAMe,eAAeC,gBAAgBH,YAAYP,KAAAA;AACjD,QAAMW,WAAWV,QAAQ,MAAM,IAAIW,cAAcC,aAAAA,GAAgB,CAAA,CAAE;AACnE,QAAMC,YAAYC,OAAyB,IAAA;AAC3CC,4BAA0B;IAAET;IAAYP;IAAOc;EAAU,CAAA;AAGzD,QAAMV,SAASH,QACb,MAAOM,cAAcI,WAAW,IAAIM,mBAAmBV,YAAYI,QAAAA,IAAYO,QAC/E;IAACX;IAAYI;GAAS;AAGxB,MAAI,CAACJ,YAAY;AACf;EACF;AAEA,QAAMY,OAAO3B,SAAS,YAAY4B,YAAYC;AAE9C,SACE,sBAAA,cAACC,eAAeC,UAAQ;IAACC,OAAO;MAAEjB;IAAW;KAC3C,sBAAA,cAACY,MAAAA,MACC,sBAAA,cAACM,mBAAAA;IAAkB9B;KACjB,sBAAA,cAAC+B,OAAOP,MAAI;IACVxB;IACAgC,KAAKb;IACLd;IACAS;IACAE;IACAP;KAEA,sBAAA,cAACsB,OAAOE,QAAM,IAAA,GACd,sBAAA,cAACF,OAAOG,IAAE;IAACC,WAAAA;;AAMvB;AAEA,IAAMV,YAAY,CAACW,UAAqB,sBAAA,cAACC,MAAAA;EAAM,GAAGD;EAAOE,YAAW;;AAEpE,IAAMzB,qBAAqB,CAACd,WAAAA;AAC1B,QAAMwC,KAAKtC,IAAIuC,YAAYzC,MAAAA;AAC3B,QAAM0C,UAAUC,cAAcC,uBAAuBC,cAAc;AACnE,QAAM,CAACC,YAAAA,IAAgBzC,UAAUL,OAAO8C,YAAY;AACpD,QAAMjC,aAAaN,QAAQ,MAAA;AACzB,QAAI,CAACP,OAAO8C,cAAcC,UAAU,CAACP,IAAI;AACvC,aAAO;IACT;AACA,UAAMQ,QAAQ,IAAIC,kBAAkBjD,OAAO8C,cAAcC,MAAAA;AACzD,UAAMlC,cAAa,IAAIqC,uBAAuBR,QAAQS,WAAWX,GAAGY,OAAO,GAAGJ,KAAAA;AAC9E,WAAOnC;EACT,GAAG;IAACiC;IAAcN;GAAG;AAErBa,YAAU,MAAA;AACR,QAAI,CAACxC,YAAY;AACf;IACF;AAEA,SAAKA,WAAWyC,KAAI;AACpB,WAAO,MAAA;AACL,WAAKzC,WAAW0C,MAAK;IACvB;EACF,GAAG;IAAC1C;GAAW;AAEf,SAAOA;AACT;;;ACpGA,IAAA,0BAAe2C;",
|
|
6
|
+
"names": ["React", "Fragment", "useEffect", "useMemo", "useRef", "useCapability", "ComputeGraphModel", "Obj", "AutomationCapabilities", "useObject", "Flex", "ComputeContext", "ComputeGraphController", "ComputeShapeLayout", "computeShapes", "useComputeGraphController", "useGraphMonitor", "CanvasGraphModel", "Editor", "KeyboardContainer", "ShapeRegistry", "CanvasContainer", "role", "subject", "canvas", "id", "Obj", "getDXN", "toString", "useObject", "graph", "useMemo", "CanvasGraphModel", "create", "layout", "fn", "change", "controller", "useGraphController", "graphMonitor", "useGraphMonitor", "registry", "ShapeRegistry", "computeShapes", "editorRef", "useRef", "useComputeGraphController", "ComputeShapeLayout", "undefined", "Root", "Container", "Fragment", "ComputeContext", "Provider", "value", "KeyboardContainer", "Editor", "ref", "Canvas", "UI", "showTools", "props", "Flex", "classNames", "db", "getDatabase", "runtime", "useCapability", "AutomationCapabilities", "ComputeRuntime", "computeGraph", "target", "model", "ComputeGraphModel", "ComputeGraphController", "getRuntime", "spaceId", "useEffect", "open", "close", "CanvasContainer"]
|
|
7
|
+
}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import { createRequire } from 'node:module';const require = createRequire(import.meta.url);
|
|
2
|
+
|
|
3
|
+
// src/meta.ts
|
|
4
|
+
import { trim } from "@dxos/util";
|
|
5
|
+
var meta = {
|
|
6
|
+
id: "dxos.org/plugin/conductor",
|
|
7
|
+
name: "Conductor",
|
|
8
|
+
description: trim`
|
|
9
|
+
Visual workflow builder using node-based compute graphs to orchestrate complex AI agent pipelines.
|
|
10
|
+
Connect data sources, transformations, and AI models in a drag-and-drop interface for advanced automation.
|
|
11
|
+
`,
|
|
12
|
+
icon: "ph--infinity--regular",
|
|
13
|
+
iconHue: "sky",
|
|
14
|
+
source: "https://github.com/dxos/dxos/tree/main/packages/plugins/plugin-conductor",
|
|
15
|
+
tags: [
|
|
16
|
+
"labs"
|
|
17
|
+
],
|
|
18
|
+
screenshots: [
|
|
19
|
+
"https://dxos.network/plugin-details-canvas-dark.png"
|
|
20
|
+
]
|
|
21
|
+
};
|
|
22
|
+
|
|
23
|
+
export {
|
|
24
|
+
meta
|
|
25
|
+
};
|
|
26
|
+
//# sourceMappingURL=chunk-DILME6SD.mjs.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../../src/meta.ts"],
|
|
4
|
+
"sourcesContent": ["//\n// Copyright 2023 DXOS.org\n//\n\nimport { type Plugin } from '@dxos/app-framework';\nimport { trim } from '@dxos/util';\n\nexport const meta: Plugin.Meta = {\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,OAAoB;EAC/BC,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
|
+
}
|