@dxos/plugin-conductor 0.8.3 → 0.8.4-main.1068cf700f

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.
Files changed (91) hide show
  1. package/dist/lib/browser/chunk-GV4DJFU6.mjs +24 -0
  2. package/dist/lib/browser/chunk-GV4DJFU6.mjs.map +7 -0
  3. package/dist/lib/browser/index.mjs +39 -68
  4. package/dist/lib/browser/index.mjs.map +4 -4
  5. package/dist/lib/browser/meta.json +1 -1
  6. package/dist/lib/browser/react-surface-FRVZG3LI.mjs +112 -0
  7. package/dist/lib/browser/react-surface-FRVZG3LI.mjs.map +7 -0
  8. package/dist/lib/node-esm/chunk-DILME6SD.mjs +26 -0
  9. package/dist/lib/node-esm/chunk-DILME6SD.mjs.map +7 -0
  10. package/dist/lib/node-esm/index.mjs +39 -68
  11. package/dist/lib/node-esm/index.mjs.map +4 -4
  12. package/dist/lib/node-esm/meta.json +1 -1
  13. package/dist/lib/node-esm/react-surface-S6UQA6XL.mjs +113 -0
  14. package/dist/lib/node-esm/react-surface-S6UQA6XL.mjs.map +7 -0
  15. package/dist/types/src/ConductorPlugin.d.ts +2 -1
  16. package/dist/types/src/ConductorPlugin.d.ts.map +1 -1
  17. package/dist/types/src/capabilities/index.d.ts +1 -2
  18. package/dist/types/src/capabilities/index.d.ts.map +1 -1
  19. package/dist/types/src/capabilities/react-surface/index.d.ts +3 -0
  20. package/dist/types/src/capabilities/react-surface/index.d.ts.map +1 -0
  21. package/dist/types/src/capabilities/react-surface/react-surface.d.ts +5 -0
  22. package/dist/types/src/capabilities/react-surface/react-surface.d.ts.map +1 -0
  23. package/dist/types/src/components/CanvasContainer.d.ts +4 -5
  24. package/dist/types/src/components/CanvasContainer.d.ts.map +1 -1
  25. package/dist/types/src/components/index.d.ts +1 -4
  26. package/dist/types/src/components/index.d.ts.map +1 -1
  27. package/dist/types/src/meta.d.ts +2 -3
  28. package/dist/types/src/meta.d.ts.map +1 -1
  29. package/dist/types/src/translations.d.ts +17 -23
  30. package/dist/types/src/translations.d.ts.map +1 -1
  31. package/dist/types/src/types/index.d.ts +1 -0
  32. package/dist/types/src/types/index.d.ts.map +1 -0
  33. package/dist/types/tsconfig.tsbuildinfo +1 -1
  34. package/package.json +43 -46
  35. package/src/ConductorPlugin.tsx +25 -55
  36. package/src/capabilities/index.ts +1 -4
  37. package/src/capabilities/react-surface/index.ts +7 -0
  38. package/src/capabilities/react-surface/react-surface.tsx +29 -0
  39. package/src/components/CanvasContainer.tsx +49 -48
  40. package/src/components/index.ts +1 -3
  41. package/src/meta.ts +9 -7
  42. package/src/translations.ts +10 -7
  43. package/src/types/index.ts +3 -0
  44. package/dist/lib/browser/CanvasContainer-IAWAWKZK.mjs +0 -98
  45. package/dist/lib/browser/CanvasContainer-IAWAWKZK.mjs.map +0 -7
  46. package/dist/lib/browser/chunk-4EJT5EIW.mjs +0 -26
  47. package/dist/lib/browser/chunk-4EJT5EIW.mjs.map +0 -7
  48. package/dist/lib/browser/chunk-B4FDW7Y7.mjs +0 -21
  49. package/dist/lib/browser/chunk-B4FDW7Y7.mjs.map +0 -7
  50. package/dist/lib/browser/intent-resolver-6YY3BXWS.mjs +0 -34
  51. package/dist/lib/browser/intent-resolver-6YY3BXWS.mjs.map +0 -7
  52. package/dist/lib/browser/react-surface-I4XNNFSF.mjs +0 -31
  53. package/dist/lib/browser/react-surface-I4XNNFSF.mjs.map +0 -7
  54. package/dist/lib/browser/types.mjs +0 -8
  55. package/dist/lib/browser/types.mjs.map +0 -7
  56. package/dist/lib/node/CanvasContainer-BORU64NX.cjs +0 -131
  57. package/dist/lib/node/CanvasContainer-BORU64NX.cjs.map +0 -7
  58. package/dist/lib/node/chunk-QBA2VGYG.cjs +0 -45
  59. package/dist/lib/node/chunk-QBA2VGYG.cjs.map +0 -7
  60. package/dist/lib/node/chunk-V22Y2ZJE.cjs +0 -44
  61. package/dist/lib/node/chunk-V22Y2ZJE.cjs.map +0 -7
  62. package/dist/lib/node/index.cjs +0 -116
  63. package/dist/lib/node/index.cjs.map +0 -7
  64. package/dist/lib/node/intent-resolver-LR2DNPAH.cjs +0 -50
  65. package/dist/lib/node/intent-resolver-LR2DNPAH.cjs.map +0 -7
  66. package/dist/lib/node/meta.json +0 -1
  67. package/dist/lib/node/react-surface-5UCYIK4Q.cjs +0 -53
  68. package/dist/lib/node/react-surface-5UCYIK4Q.cjs.map +0 -7
  69. package/dist/lib/node/types.cjs +0 -30
  70. package/dist/lib/node/types.cjs.map +0 -7
  71. package/dist/lib/node-esm/CanvasContainer-XFNPFWLN.mjs +0 -100
  72. package/dist/lib/node-esm/CanvasContainer-XFNPFWLN.mjs.map +0 -7
  73. package/dist/lib/node-esm/chunk-7644E2YF.mjs +0 -27
  74. package/dist/lib/node-esm/chunk-7644E2YF.mjs.map +0 -7
  75. package/dist/lib/node-esm/chunk-PYF2G3G4.mjs +0 -23
  76. package/dist/lib/node-esm/chunk-PYF2G3G4.mjs.map +0 -7
  77. package/dist/lib/node-esm/intent-resolver-OMXIT5KT.mjs +0 -35
  78. package/dist/lib/node-esm/intent-resolver-OMXIT5KT.mjs.map +0 -7
  79. package/dist/lib/node-esm/react-surface-WZFA32UY.mjs +0 -32
  80. package/dist/lib/node-esm/react-surface-WZFA32UY.mjs.map +0 -7
  81. package/dist/lib/node-esm/types.mjs +0 -9
  82. package/dist/lib/node-esm/types.mjs.map +0 -7
  83. package/dist/types/src/capabilities/intent-resolver.d.ts +0 -4
  84. package/dist/types/src/capabilities/intent-resolver.d.ts.map +0 -1
  85. package/dist/types/src/capabilities/react-surface.d.ts +0 -4
  86. package/dist/types/src/capabilities/react-surface.d.ts.map +0 -1
  87. package/dist/types/src/types.d.ts +0 -18
  88. package/dist/types/src/types.d.ts.map +0 -1
  89. package/src/capabilities/intent-resolver.ts +0 -27
  90. package/src/capabilities/react-surface.tsx +0 -23
  91. package/src/types.ts +0 -22
package/package.json CHANGED
@@ -1,73 +1,70 @@
1
1
  {
2
2
  "name": "@dxos/plugin-conductor",
3
- "version": "0.8.3",
3
+ "version": "0.8.4-main.1068cf700f",
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,
10
14
  "type": "module",
11
15
  "exports": {
12
16
  ".": {
13
- "types": "./dist/types/src/index.d.ts",
14
17
  "browser": "./dist/lib/browser/index.mjs",
15
- "node": "./dist/lib/node-esm/index.mjs"
16
- },
17
- "./types": {
18
- "types": "./dist/types/src/types/index.d.ts",
19
- "browser": "./dist/lib/browser/types/index.mjs",
20
- "node": "./dist/lib/node-esm/types/index.mjs"
18
+ "node": "./dist/lib/node-esm/index.mjs",
19
+ "source": "./src/index.ts",
20
+ "types": "./dist/types/src/index.d.ts"
21
21
  }
22
22
  },
23
23
  "types": "dist/types/src/index.d.ts",
24
- "typesVersions": {
25
- "*": {
26
- "types": [
27
- "dist/types/src/types/index.d.ts"
28
- ]
29
- }
30
- },
31
24
  "files": [
32
25
  "dist",
33
26
  "src"
34
27
  ],
35
28
  "dependencies": {
36
- "@preact-signals/safe-react": "^0.9.0",
37
- "effect": "3.14.21",
38
- "@dxos/ai": "0.8.3",
39
- "@dxos/app-framework": "0.8.3",
40
- "@dxos/assistant": "0.8.3",
41
- "@dxos/conductor": "0.8.3",
42
- "@dxos/echo": "0.8.3",
43
- "@dxos/edge-client": "0.8.3",
44
- "@dxos/functions": "0.8.3",
45
- "@dxos/live-object": "0.8.3",
46
- "@dxos/log": "0.8.3",
47
- "@dxos/plugin-client": "0.8.3",
48
- "@dxos/echo-schema": "0.8.3",
49
- "@dxos/plugin-space": "0.8.3",
50
- "@dxos/react-ui-canvas-compute": "0.8.3",
51
- "@dxos/react-client": "0.8.3",
52
- "@dxos/react-ui-canvas-editor": "0.8.3",
53
- "@dxos/react-ui-stack": "0.8.3"
29
+ "effect": "3.19.16",
30
+ "@dxos/app-framework": "0.8.4-main.1068cf700f",
31
+ "@dxos/app-toolkit": "0.8.4-main.1068cf700f",
32
+ "@dxos/assistant": "0.8.4-main.1068cf700f",
33
+ "@dxos/debug": "0.8.4-main.1068cf700f",
34
+ "@dxos/echo": "0.8.4-main.1068cf700f",
35
+ "@dxos/conductor": "0.8.4-main.1068cf700f",
36
+ "@dxos/edge-client": "0.8.4-main.1068cf700f",
37
+ "@dxos/ai": "0.8.4-main.1068cf700f",
38
+ "@dxos/functions": "0.8.4-main.1068cf700f",
39
+ "@dxos/functions-runtime": "0.8.4-main.1068cf700f",
40
+ "@dxos/log": "0.8.4-main.1068cf700f",
41
+ "@dxos/plugin-client": "0.8.4-main.1068cf700f",
42
+ "@dxos/react-client": "0.8.4-main.1068cf700f",
43
+ "@dxos/plugin-automation": "0.8.4-main.1068cf700f",
44
+ "@dxos/operation": "0.8.4-main.1068cf700f",
45
+ "@dxos/react-ui-canvas-compute": "0.8.4-main.1068cf700f",
46
+ "@dxos/react-ui-canvas-editor": "0.8.4-main.1068cf700f",
47
+ "@dxos/util": "0.8.4-main.1068cf700f",
48
+ "@dxos/react-ui-stack": "0.8.4-main.1068cf700f",
49
+ "@dxos/react-ui-mosaic": "0.8.4-main.1068cf700f",
50
+ "@dxos/plugin-space": "0.8.4-main.1068cf700f"
54
51
  },
55
52
  "devDependencies": {
56
- "@types/react": "~18.2.0",
57
- "@types/react-dom": "~18.2.0",
58
- "react": "~18.2.0",
59
- "react-dom": "~18.2.0",
60
- "vite": "5.4.7",
61
- "@dxos/react-ui": "0.8.3",
62
- "@dxos/react-ui-theme": "0.8.3",
63
- "@dxos/storybook-utils": "0.8.3"
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.9",
58
+ "@dxos/react-ui": "0.8.4-main.1068cf700f",
59
+ "@dxos/storybook-utils": "0.8.4-main.1068cf700f",
60
+ "@dxos/ui-theme": "0.8.4-main.1068cf700f"
64
61
  },
65
62
  "peerDependencies": {
66
- "effect": "^3.13.3",
67
- "react": "~18.2.0",
68
- "react-dom": "~18.2.0",
69
- "@dxos/react-ui": "0.8.3",
70
- "@dxos/react-ui-theme": "0.8.3"
63
+ "effect": "3.19.16",
64
+ "react": "~19.2.3",
65
+ "react-dom": "~19.2.3",
66
+ "@dxos/ui-theme": "0.8.4-main.1068cf700f",
67
+ "@dxos/react-ui": "0.8.4-main.1068cf700f"
71
68
  },
72
69
  "publishConfig": {
73
70
  "access": "public"
@@ -2,62 +2,32 @@
2
2
  // Copyright 2023 DXOS.org
3
3
  //
4
4
 
5
- import { Capabilities, contributes, createIntent, defineModule, definePlugin, Events } from '@dxos/app-framework';
5
+ import * as Effect from 'effect/Effect';
6
+
7
+ import { Plugin } from '@dxos/app-framework';
8
+ import { AppPlugin } from '@dxos/app-toolkit';
6
9
  import { ComputeGraph } from '@dxos/conductor';
7
- import { FunctionTrigger } from '@dxos/functions';
8
- import { ClientCapabilities, ClientEvents } from '@dxos/plugin-client';
9
- import { SpaceCapabilities } from '@dxos/plugin-space';
10
- import { defineObjectForm } from '@dxos/plugin-space/types';
11
- import { CanvasBoardType } from '@dxos/react-ui-canvas-editor';
10
+ import { type CreateObject } from '@dxos/plugin-space/types';
11
+ import { CanvasBoard } from '@dxos/react-ui-canvas-editor';
12
12
 
13
- import { IntentResolver, ReactSurface } from './capabilities';
13
+ import { ReactSurface } from './capabilities';
14
14
  import { meta } from './meta';
15
- import translations from './translations';
16
- import { ConductorAction } from './types';
15
+ import { translations } from './translations';
17
16
 
18
- export const ConductorPlugin = () =>
19
- definePlugin(meta, [
20
- defineModule({
21
- id: `${meta.id}/module/translations`,
22
- activatesOn: Events.SetupTranslations,
23
- activate: () => contributes(Capabilities.Translations, translations),
24
- }),
25
- defineModule({
26
- id: `${meta.id}/module/metadata`,
27
- activatesOn: Events.SetupMetadata,
28
- activate: () =>
29
- contributes(Capabilities.Metadata, {
30
- id: CanvasBoardType.typename,
31
- metadata: {
32
- icon: 'ph--infinity--regular',
33
- },
34
- }),
35
- }),
36
- defineModule({
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, FunctionTrigger]),
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,
62
- }),
63
- ]);
17
+ export const ConductorPlugin = Plugin.define(meta).pipe(
18
+ AppPlugin.addMetadataModule({
19
+ metadata: {
20
+ id: CanvasBoard.CanvasBoard.typename,
21
+ metadata: {
22
+ icon: 'ph--infinity--regular',
23
+ iconHue: 'sky',
24
+ createObject: ((props) => Effect.sync(() => CanvasBoard.make(props))) satisfies CreateObject,
25
+ addToCollectionOnCreate: true,
26
+ },
27
+ },
28
+ }),
29
+ AppPlugin.addSchemaModule({ schema: [CanvasBoard.CanvasBoard, ComputeGraph] }),
30
+ AppPlugin.addSurfaceModule({ activate: ReactSurface }),
31
+ AppPlugin.addTranslationsModule({ translations }),
32
+ Plugin.make,
33
+ );
@@ -2,7 +2,4 @@
2
2
  // Copyright 2025 DXOS.org
3
3
  //
4
4
 
5
- import { lazy } from '@dxos/app-framework';
6
-
7
- export const IntentResolver = lazy(() => import('./intent-resolver'));
8
- export const ReactSurface = lazy(() => import('./react-surface'));
5
+ export * from './react-surface';
@@ -0,0 +1,7 @@
1
+ //
2
+ // Copyright 2025 DXOS.org
3
+ //
4
+
5
+ import { Capability } from '@dxos/app-framework';
6
+
7
+ export const ReactSurface = Capability.lazy('ReactSurface', () => import('./react-surface'));
@@ -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 '../../components';
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
+ );
@@ -2,14 +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 { EdgeAiServiceClient } from '@dxos/ai';
8
- import { type Config } from '@dxos/client';
7
+ import { useCapability } from '@dxos/app-framework/ui';
8
+ import { type SurfaceComponentProps } from '@dxos/app-toolkit/ui';
9
9
  import { ComputeGraphModel } from '@dxos/conductor';
10
- import { AiService, DatabaseService, QueueService, ServiceContainer } from '@dxos/functions';
11
- import { useConfig } from '@dxos/react-client';
12
- import { fullyQualifiedId, getSpace, type Space } from '@dxos/react-client/echo';
10
+ import { Obj } from '@dxos/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';
13
14
  import {
14
15
  ComputeContext,
15
16
  ComputeGraphController,
@@ -20,54 +21,23 @@ import {
20
21
  useGraphMonitor,
21
22
  } from '@dxos/react-ui-canvas-compute';
22
23
  import {
23
- type CanvasBoardType,
24
+ type CanvasBoard,
24
25
  CanvasGraphModel,
25
26
  Editor,
26
27
  type EditorController,
27
28
  KeyboardContainer,
28
29
  ShapeRegistry,
29
30
  } from '@dxos/react-ui-canvas-editor';
30
- import { StackItem } from '@dxos/react-ui-stack';
31
31
 
32
- const createServices = (config: Config, space?: Space): ServiceContainer => {
33
- return new ServiceContainer().setServices({
34
- database: space == null ? undefined : DatabaseService.make(space.db),
35
- queues: space == null ? undefined : QueueService.make(space.queues, undefined),
36
- ai:
37
- config.values.runtime?.services?.ai?.server == null
38
- ? undefined
39
- : AiService.make(new EdgeAiServiceClient({ endpoint: config.values.runtime?.services?.ai?.server })),
40
- });
41
- };
42
-
43
- const useGraphController = (canvas: CanvasBoardType) => {
44
- const config = useConfig();
45
- const space = getSpace(canvas);
46
- const controller = useMemo(() => {
47
- if (!canvas.computeGraph?.target) {
48
- return null;
49
- }
50
- const model = new ComputeGraphModel(canvas.computeGraph?.target);
51
- const controller = new ComputeGraphController(createServices(config, space), model);
52
- return controller;
53
- }, [canvas.computeGraph?.target, space]);
54
-
55
- useEffect(() => {
56
- if (!controller) {
57
- return;
58
- }
59
- void controller.open();
60
- return () => {
61
- void controller.close();
62
- };
63
- }, [controller]);
32
+ export type CanvasContainerProps = SurfaceComponentProps<CanvasBoard.CanvasBoard>;
64
33
 
65
- return controller;
66
- };
67
-
68
- export const CanvasContainer = ({ canvas, role }: { canvas: CanvasBoardType; role: string }) => {
69
- const id = fullyQualifiedId(canvas);
70
- const graph = useMemo(() => CanvasGraphModel.create<ComputeShape>(canvas.layout), [canvas.layout]);
34
+ export const CanvasContainer = ({ role, subject: canvas }: CanvasContainerProps) => {
35
+ const id = Obj.getDXN(canvas as any).toString();
36
+ useObject(canvas);
37
+ const graph = useMemo(
38
+ () => CanvasGraphModel.create<ComputeShape>(canvas.layout, (fn) => Obj.change(canvas, fn)),
39
+ [canvas],
40
+ );
71
41
  const controller = useGraphController(canvas);
72
42
  const graphMonitor = useGraphMonitor(controller?.graph);
73
43
  const registry = useMemo(() => new ShapeRegistry(computeShapes), []);
@@ -84,9 +54,11 @@ export const CanvasContainer = ({ canvas, role }: { canvas: CanvasBoardType; rol
84
54
  return;
85
55
  }
86
56
 
57
+ const Root = role === 'section' ? Container : Fragment;
58
+
87
59
  return (
88
60
  <ComputeContext.Provider value={{ controller }}>
89
- <StackItem.Content size={role === 'section' ? 'square' : 'intrinsic'}>
61
+ <Root>
90
62
  <KeyboardContainer id={id}>
91
63
  <Editor.Root
92
64
  id={id}
@@ -100,9 +72,38 @@ export const CanvasContainer = ({ canvas, role }: { canvas: CanvasBoardType; rol
100
72
  <Editor.UI showTools />
101
73
  </Editor.Root>
102
74
  </KeyboardContainer>
103
- </StackItem.Content>
75
+ </Root>
104
76
  </ComputeContext.Provider>
105
77
  );
106
78
  };
107
79
 
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
+ };
108
+
108
109
  export default CanvasContainer;
@@ -2,6 +2,4 @@
2
2
  // Copyright 2023 DXOS.org
3
3
  //
4
4
 
5
- import { lazy } from 'react';
6
-
7
- export const CanvasContainer = lazy(() => import('./CanvasContainer'));
5
+ export { CanvasContainer } from './CanvasContainer';
package/src/meta.ts CHANGED
@@ -2,16 +2,18 @@
2
2
  // Copyright 2023 DXOS.org
3
3
  //
4
4
 
5
- import { type PluginMeta } from '@dxos/app-framework';
5
+ import { type Plugin } from '@dxos/app-framework';
6
+ import { trim } from '@dxos/util';
6
7
 
7
- export const CONDUCTOR_PLUGIN = 'dxos.org/plugin/conductor';
8
-
9
- export const meta: PluginMeta = {
10
- id: CONDUCTOR_PLUGIN,
8
+ export const meta: Plugin.Meta = {
9
+ id: 'dxos.org/plugin/conductor',
11
10
  name: 'Conductor',
12
- description:
13
- 'Conductor allows you to build a node based compute graph that can handle complex workflows inside of Composer. Leverage your collaborative data along with custom scripts to orchestrate agentic workflows that operate in the background.',
11
+ description: trim`
12
+ Visual workflow builder using node-based compute graphs to orchestrate complex AI agent pipelines.
13
+ Connect data sources, transformations, and AI models in a drag-and-drop interface for advanced automation.
14
+ `,
14
15
  icon: 'ph--infinity--regular',
16
+ iconHue: 'sky',
15
17
  source: 'https://github.com/dxos/dxos/tree/main/packages/plugins/plugin-conductor',
16
18
  tags: ['labs'],
17
19
  screenshots: ['https://dxos.network/plugin-details-canvas-dark.png'],
@@ -2,25 +2,28 @@
2
2
  // Copyright 2023 DXOS.org
3
3
  //
4
4
 
5
- import { Type } from '@dxos/echo';
6
- import { CanvasBoardType } from '@dxos/react-ui-canvas-editor';
5
+ import { type Resource } from '@dxos/react-ui';
6
+ import { CanvasBoard } from '@dxos/react-ui-canvas-editor';
7
7
 
8
- import { CONDUCTOR_PLUGIN } from './meta';
8
+ import { meta } from './meta';
9
9
 
10
- export default [
10
+ export const translations = [
11
11
  {
12
12
  'en-US': {
13
- [Type.getTypename(CanvasBoardType)]: {
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
+ 'rename object label': 'Rename circuit',
20
+ 'delete object label': 'Delete circuit',
21
+ 'object deleted label': 'Circuit deleted',
19
22
  },
20
- [CONDUCTOR_PLUGIN]: {
23
+ [meta.id]: {
21
24
  'plugin name': 'Conductor',
22
25
  'content placeholder': 'Enter text...',
23
26
  },
24
27
  },
25
28
  },
26
- ];
29
+ ] as const satisfies Resource[];
@@ -0,0 +1,3 @@
1
+ //
2
+ // Copyright 2025 DXOS.org
3
+ //
@@ -1,98 +0,0 @@
1
- // packages/plugins/plugin-conductor/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 { EdgeAiServiceClient } from "@dxos/ai";
5
- import { ComputeGraphModel } from "@dxos/conductor";
6
- import { AiService, DatabaseService, QueueService, ServiceContainer } from "@dxos/functions";
7
- import { useConfig } from "@dxos/react-client";
8
- import { fullyQualifiedId, getSpace } from "@dxos/react-client/echo";
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
- import { StackItem } from "@dxos/react-ui-stack";
12
- var createServices = (config, space) => {
13
- return new ServiceContainer().setServices({
14
- database: space == null ? void 0 : DatabaseService.make(space.db),
15
- queues: space == null ? void 0 : QueueService.make(space.queues, void 0),
16
- ai: config.values.runtime?.services?.ai?.server == null ? void 0 : AiService.make(new EdgeAiServiceClient({
17
- endpoint: config.values.runtime?.services?.ai?.server
18
- }))
19
- });
20
- };
21
- var useGraphController = (canvas) => {
22
- const config = useConfig();
23
- const space = getSpace(canvas);
24
- const controller = useMemo(() => {
25
- if (!canvas.computeGraph?.target) {
26
- return null;
27
- }
28
- const model = new ComputeGraphModel(canvas.computeGraph?.target);
29
- const controller2 = new ComputeGraphController(createServices(config, space), model);
30
- return controller2;
31
- }, [
32
- canvas.computeGraph?.target,
33
- space
34
- ]);
35
- useEffect(() => {
36
- if (!controller) {
37
- return;
38
- }
39
- void controller.open();
40
- return () => {
41
- void controller.close();
42
- };
43
- }, [
44
- controller
45
- ]);
46
- return controller;
47
- };
48
- var CanvasContainer = ({ canvas, role }) => {
49
- var _effect = _useSignals();
50
- try {
51
- const id = fullyQualifiedId(canvas);
52
- const graph = useMemo(() => CanvasGraphModel.create(canvas.layout), [
53
- canvas.layout
54
- ]);
55
- const controller = useGraphController(canvas);
56
- const graphMonitor = useGraphMonitor(controller?.graph);
57
- const registry = useMemo(() => new ShapeRegistry(computeShapes), []);
58
- const editorRef = useRef(null);
59
- useComputeGraphController({
60
- controller,
61
- graph,
62
- editorRef
63
- });
64
- const layout = useMemo(() => controller && registry ? new ComputeShapeLayout(controller, registry) : void 0, [
65
- controller,
66
- registry
67
- ]);
68
- if (!controller) {
69
- return;
70
- }
71
- return /* @__PURE__ */ React.createElement(ComputeContext.Provider, {
72
- value: {
73
- controller
74
- }
75
- }, /* @__PURE__ */ React.createElement(StackItem.Content, {
76
- size: role === "section" ? "square" : "intrinsic"
77
- }, /* @__PURE__ */ React.createElement(KeyboardContainer, {
78
- id
79
- }, /* @__PURE__ */ React.createElement(Editor.Root, {
80
- id,
81
- ref: editorRef,
82
- graph,
83
- graphMonitor,
84
- registry,
85
- layout
86
- }, /* @__PURE__ */ React.createElement(Editor.Canvas, null), /* @__PURE__ */ React.createElement(Editor.UI, {
87
- showTools: true
88
- })))));
89
- } finally {
90
- _effect.f();
91
- }
92
- };
93
- var CanvasContainer_default = CanvasContainer;
94
- export {
95
- CanvasContainer,
96
- CanvasContainer_default as default
97
- };
98
- //# sourceMappingURL=CanvasContainer-IAWAWKZK.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 { EdgeAiServiceClient } from '@dxos/ai';\nimport { type Config } from '@dxos/client';\nimport { ComputeGraphModel } from '@dxos/conductor';\nimport { AiService, DatabaseService, QueueService, ServiceContainer } from '@dxos/functions';\nimport { useConfig } from '@dxos/react-client';\nimport { fullyQualifiedId, getSpace, type Space } 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 ai:\n config.values.runtime?.services?.ai?.server == null\n ? undefined\n : AiService.make(new EdgeAiServiceClient({ endpoint: config.values.runtime?.services?.ai?.server })),\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 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 = fullyQualifiedId(canvas);\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;AAElD,SAASC,2BAA2B;AAEpC,SAASC,yBAAyB;AAClC,SAASC,WAAWC,iBAAiBC,cAAcC,wBAAwB;AAC3E,SAASC,iBAAiB;AAC1B,SAASC,kBAAkBC,gBAA4B;AACvD,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;IACpEM,IACEX,OAAOY,OAAOC,SAASC,UAAUH,IAAII,UAAU,OAC3CV,SACAW,UAAUT,KAAK,IAAIU,oBAAoB;MAAEC,UAAUlB,OAAOY,OAAOC,SAASC,UAAUH,IAAII;IAAO,CAAA,CAAA;EACvG,CAAA;AACF;AAEA,IAAMI,qBAAqB,CAACC,WAAAA;AAC1B,QAAMpB,SAASqB,UAAAA;AACf,QAAMpB,QAAQqB,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,uBAAuB9B,eAAeC,QAAQC,KAAAA,GAAQ0B,KAAAA;AAC7E,WAAOJ;EACT,GAAG;IAACH,OAAOK,cAAcC;IAAQzB;GAAM;AAEvC6B,YAAU,MAAA;AACR,QAAI,CAACP,YAAY;AACf;IACF;AACA,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,iBAAiBhB,MAAAA;AAC5B,UAAMiB,QAAQb,QAAQ,MAAMc,iBAAiBC,OAAqBnB,OAAOoB,MAAM,GAAG;MAACpB,OAAOoB;KAAO;AACjG,UAAMjB,aAAaJ,mBAAmBC,MAAAA;AACtC,UAAMqB,eAAeC,gBAAgBnB,YAAYc,KAAAA;AACjD,UAAMM,WAAWnB,QAAQ,MAAM,IAAIoB,cAAcC,aAAAA,GAAgB,CAAA,CAAE;AACnE,UAAMC,YAAYC,OAAyB,IAAA;AAC3CC,8BAA0B;MAAEzB;MAAYc;MAAOS;IAAU,CAAA;AAGzD,UAAMN,SAAShB,QACb,MAAOD,cAAcoB,WAAW,IAAIM,mBAAmB1B,YAAYoB,QAAAA,IAAYtC,QAC/E;MAACkB;MAAYoB;KAAS;AAGxB,QAAI,CAACpB,YAAY;AACf;IACF;AAEA,WACE,sBAAA,cAAC2B,eAAeC,UAAQ;MAACC,OAAO;QAAE7B;MAAW;OAC3C,sBAAA,cAAC8B,UAAUC,SAAO;MAACC,MAAMrB,SAAS,YAAY,WAAW;OACvD,sBAAA,cAACsB,mBAAAA;MAAkBrB;OACjB,sBAAA,cAACsB,OAAOC,MAAI;MACVvB;MACAwB,KAAKb;MACLT;MACAI;MACAE;MACAH;OAEA,sBAAA,cAACiB,OAAOG,QAAM,IAAA,GACd,sBAAA,cAACH,OAAOI,IAAE;MAACC,WAAAA;;;;;AAMvB;AAEA,IAAA,0BAAe7B;",
6
- "names": ["React", "useEffect", "useMemo", "useRef", "EdgeAiServiceClient", "ComputeGraphModel", "AiService", "DatabaseService", "QueueService", "ServiceContainer", "useConfig", "fullyQualifiedId", "getSpace", "ComputeContext", "ComputeGraphController", "ComputeShapeLayout", "computeShapes", "useComputeGraphController", "useGraphMonitor", "CanvasGraphModel", "Editor", "KeyboardContainer", "ShapeRegistry", "StackItem", "createServices", "config", "space", "ServiceContainer", "setServices", "database", "undefined", "DatabaseService", "make", "db", "queues", "QueueService", "ai", "values", "runtime", "services", "server", "AiService", "EdgeAiServiceClient", "endpoint", "useGraphController", "canvas", "useConfig", "getSpace", "controller", "useMemo", "computeGraph", "target", "model", "ComputeGraphModel", "ComputeGraphController", "useEffect", "open", "close", "CanvasContainer", "role", "id", "fullyQualifiedId", "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,26 +0,0 @@
1
- import {
2
- CONDUCTOR_PLUGIN
3
- } from "./chunk-B4FDW7Y7.mjs";
4
-
5
- // packages/plugins/plugin-conductor/src/types.ts
6
- import { Schema } from "effect";
7
- import { CanvasBoardType } from "@dxos/react-ui-canvas-editor";
8
- (function(ConductorAction2) {
9
- const CONDUCTOR_ACTION = `${CONDUCTOR_PLUGIN}/action`;
10
- class Create extends Schema.TaggedClass()(`${CONDUCTOR_ACTION}/create`, {
11
- input: Schema.Struct({
12
- name: Schema.optional(Schema.String)
13
- }),
14
- output: Schema.Struct({
15
- object: CanvasBoardType
16
- })
17
- }) {
18
- }
19
- ConductorAction2.Create = Create;
20
- })(ConductorAction || (ConductorAction = {}));
21
- var ConductorAction;
22
-
23
- export {
24
- ConductorAction
25
- };
26
- //# sourceMappingURL=chunk-4EJT5EIW.mjs.map
@@ -1,7 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../../../src/types.ts"],
4
- "sourcesContent": ["//\n// Copyright 2023 DXOS.org\n//\n\nimport { Schema } from 'effect';\n\nimport { CanvasBoardType } from '@dxos/react-ui-canvas-editor';\n\nimport { CONDUCTOR_PLUGIN } from './meta';\n\nexport namespace ConductorAction {\n const CONDUCTOR_ACTION = `${CONDUCTOR_PLUGIN}/action`;\n\n export class Create extends Schema.TaggedClass<Create>()(`${CONDUCTOR_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,SAASA,cAAc;AAEvB,SAASC,uBAAuB;UAIfC,kBAAAA;AACf,QAAMC,mBAAmB,GAAGC,gBAAAA;EAErB,MAAMC,eAAeC,OAAOC,YAAW,EAAW,GAAGJ,gBAAAA,WAA2B;IACrFK,OAAOF,OAAOG,OAAO;MACnBC,MAAMJ,OAAOK,SAASL,OAAOM,MAAM;IACrC,CAAA;IACAC,QAAQP,OAAOG,OAAO;MACpBK,QAAQC;IACV,CAAA;EACF,CAAA,EAAA;EAAI;mBAPSV,SAAAA;AAQf,GAXiBH,oBAAAA,kBAAAA,CAAAA,EAAAA;;",
6
- "names": ["Schema", "CanvasBoardType", "ConductorAction", "CONDUCTOR_ACTION", "CONDUCTOR_PLUGIN", "Create", "Schema", "TaggedClass", "input", "Struct", "name", "optional", "String", "output", "object", "CanvasBoardType"]
7
- }
@@ -1,21 +0,0 @@
1
- // packages/plugins/plugin-conductor/src/meta.ts
2
- var CONDUCTOR_PLUGIN = "dxos.org/plugin/conductor";
3
- var meta = {
4
- id: CONDUCTOR_PLUGIN,
5
- name: "Conductor",
6
- description: "Conductor allows you to build a node based compute graph that can handle complex workflows inside of Composer. Leverage your collaborative data along with custom scripts to orchestrate agentic workflows that operate in the background.",
7
- icon: "ph--infinity--regular",
8
- source: "https://github.com/dxos/dxos/tree/main/packages/plugins/plugin-conductor",
9
- tags: [
10
- "labs"
11
- ],
12
- screenshots: [
13
- "https://dxos.network/plugin-details-canvas-dark.png"
14
- ]
15
- };
16
-
17
- export {
18
- CONDUCTOR_PLUGIN,
19
- meta
20
- };
21
- //# sourceMappingURL=chunk-B4FDW7Y7.mjs.map