@dxos/react-ui-canvas-compute 0.8.1 → 0.8.2-main.2f9c567
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/lib/browser/index.mjs +123 -122
- package/dist/lib/browser/index.mjs.map +3 -3
- package/dist/lib/browser/meta.json +1 -1
- package/dist/lib/node/index.cjs +161 -160
- package/dist/lib/node/index.cjs.map +3 -3
- package/dist/lib/node/meta.json +1 -1
- package/dist/lib/node-esm/index.mjs +123 -122
- package/dist/lib/node-esm/index.mjs.map +3 -3
- package/dist/lib/node-esm/meta.json +1 -1
- package/dist/types/src/graph/controller.d.ts +1 -17
- package/dist/types/src/graph/controller.d.ts.map +1 -1
- package/dist/types/src/hooks/useComputeNodeState.d.ts.map +1 -1
- package/dist/types/src/hooks/useGraphMonitor.d.ts.map +1 -1
- package/dist/types/src/json.test.d.ts +18 -18
- package/dist/types/src/json.test.d.ts.map +1 -1
- package/dist/types/src/shapes/Append.d.ts +19 -19
- package/dist/types/src/shapes/Append.d.ts.map +1 -1
- package/dist/types/src/shapes/Array.d.ts +19 -19
- package/dist/types/src/shapes/Array.d.ts.map +1 -1
- package/dist/types/src/shapes/Audio.d.ts +19 -19
- package/dist/types/src/shapes/Audio.d.ts.map +1 -1
- package/dist/types/src/shapes/Beacon.d.ts +19 -19
- package/dist/types/src/shapes/Beacon.d.ts.map +1 -1
- package/dist/types/src/shapes/Boolean.d.ts +70 -70
- package/dist/types/src/shapes/Boolean.d.ts.map +1 -1
- package/dist/types/src/shapes/Chat.d.ts +19 -19
- package/dist/types/src/shapes/Chat.d.ts.map +1 -1
- package/dist/types/src/shapes/Constant.d.ts +20 -20
- package/dist/types/src/shapes/Constant.d.ts.map +1 -1
- package/dist/types/src/shapes/Database.d.ts +19 -19
- package/dist/types/src/shapes/Database.d.ts.map +1 -1
- package/dist/types/src/shapes/Function.d.ts +19 -19
- package/dist/types/src/shapes/Function.d.ts.map +1 -1
- package/dist/types/src/shapes/Gpt.d.ts +19 -19
- package/dist/types/src/shapes/Gpt.d.ts.map +1 -1
- package/dist/types/src/shapes/GptRealtime.d.ts +19 -19
- package/dist/types/src/shapes/GptRealtime.d.ts.map +1 -1
- package/dist/types/src/shapes/Json.d.ts +37 -37
- package/dist/types/src/shapes/Json.d.ts.map +1 -1
- package/dist/types/src/shapes/Logic.d.ts +37 -37
- package/dist/types/src/shapes/Logic.d.ts.map +1 -1
- package/dist/types/src/shapes/Queue.d.ts +19 -19
- package/dist/types/src/shapes/Queue.d.ts.map +1 -1
- package/dist/types/src/shapes/RNG.d.ts +21 -21
- package/dist/types/src/shapes/RNG.d.ts.map +1 -1
- package/dist/types/src/shapes/Scope.d.ts +19 -19
- package/dist/types/src/shapes/Scope.d.ts.map +1 -1
- package/dist/types/src/shapes/Surface.d.ts +19 -19
- package/dist/types/src/shapes/Surface.d.ts.map +1 -1
- package/dist/types/src/shapes/Switch.d.ts +19 -19
- package/dist/types/src/shapes/Switch.d.ts.map +1 -1
- package/dist/types/src/shapes/Table.d.ts +19 -19
- package/dist/types/src/shapes/Table.d.ts.map +1 -1
- package/dist/types/src/shapes/Template.d.ts +20 -20
- package/dist/types/src/shapes/Template.d.ts.map +1 -1
- package/dist/types/src/shapes/Text.d.ts +19 -19
- package/dist/types/src/shapes/Text.d.ts.map +1 -1
- package/dist/types/src/shapes/TextToImage.d.ts +19 -19
- package/dist/types/src/shapes/TextToImage.d.ts.map +1 -1
- package/dist/types/src/shapes/Thread.d.ts +19 -19
- package/dist/types/src/shapes/Thread.d.ts.map +1 -1
- package/dist/types/src/shapes/Trigger.d.ts +47 -45
- package/dist/types/src/shapes/Trigger.d.ts.map +1 -1
- package/dist/types/src/shapes/common/FunctionBody.d.ts +5 -5
- package/dist/types/src/shapes/common/FunctionBody.d.ts.map +1 -1
- package/dist/types/src/shapes/defs.d.ts +18 -19
- package/dist/types/src/shapes/defs.d.ts.map +1 -1
- package/package.json +40 -39
- package/src/compute.stories.tsx +1 -1
- package/src/hooks/useComputeNodeState.ts +3 -3
- package/src/hooks/useGraphMonitor.ts +4 -6
- package/src/json.test.ts +10 -10
- package/src/schema.test.ts +7 -7
- package/src/shapes/Append.tsx +5 -5
- package/src/shapes/Array.tsx +5 -5
- package/src/shapes/Audio.tsx +5 -5
- package/src/shapes/Beacon.tsx +5 -5
- package/src/shapes/Boolean.tsx +5 -5
- package/src/shapes/Chat.tsx +5 -5
- package/src/shapes/Constant.tsx +6 -6
- package/src/shapes/Database.tsx +5 -5
- package/src/shapes/Function.tsx +7 -6
- package/src/shapes/Gpt.tsx +5 -5
- package/src/shapes/GptRealtime.tsx +8 -8
- package/src/shapes/Json.tsx +9 -9
- package/src/shapes/Logic.tsx +9 -9
- package/src/shapes/Queue.tsx +5 -5
- package/src/shapes/RNG.tsx +7 -7
- package/src/shapes/Scope.tsx +5 -5
- package/src/shapes/Surface.tsx +5 -5
- package/src/shapes/Switch.tsx +5 -5
- package/src/shapes/Table.tsx +6 -6
- package/src/shapes/Template.tsx +8 -7
- package/src/shapes/Text.tsx +5 -5
- package/src/shapes/TextToImage.tsx +5 -5
- package/src/shapes/Thread.tsx +6 -6
- package/src/shapes/Trigger.tsx +17 -18
- package/src/shapes/common/FunctionBody.tsx +11 -9
- package/src/shapes/defs.ts +9 -9
package/src/shapes/Logic.tsx
CHANGED
|
@@ -2,10 +2,10 @@
|
|
|
2
2
|
// Copyright 2024 DXOS.org
|
|
3
3
|
//
|
|
4
4
|
|
|
5
|
+
import { Schema } from 'effect';
|
|
5
6
|
import React from 'react';
|
|
6
7
|
|
|
7
8
|
import { IfElseInput, IfElseOutput, IfInput, IfOutput } from '@dxos/conductor';
|
|
8
|
-
import { S } from '@dxos/echo-schema';
|
|
9
9
|
import { type ShapeComponentProps, type ShapeDef } from '@dxos/react-ui-canvas-editor';
|
|
10
10
|
|
|
11
11
|
import { createFunctionAnchors, FunctionBody, getHeight } from './common';
|
|
@@ -15,23 +15,23 @@ import { ComputeShape, createShape, type CreateShapeProps } from './defs';
|
|
|
15
15
|
// Data
|
|
16
16
|
//
|
|
17
17
|
|
|
18
|
-
export const IfShape =
|
|
18
|
+
export const IfShape = Schema.extend(
|
|
19
19
|
ComputeShape,
|
|
20
|
-
|
|
21
|
-
type:
|
|
20
|
+
Schema.Struct({
|
|
21
|
+
type: Schema.Literal('if'),
|
|
22
22
|
}),
|
|
23
23
|
);
|
|
24
24
|
|
|
25
|
-
export type IfShape =
|
|
25
|
+
export type IfShape = Schema.Schema.Type<typeof IfShape>;
|
|
26
26
|
|
|
27
|
-
export const IfElseShape =
|
|
27
|
+
export const IfElseShape = Schema.extend(
|
|
28
28
|
ComputeShape,
|
|
29
|
-
|
|
30
|
-
type:
|
|
29
|
+
Schema.Struct({
|
|
30
|
+
type: Schema.Literal('if-else'),
|
|
31
31
|
}),
|
|
32
32
|
);
|
|
33
33
|
|
|
34
|
-
export type IfElseShape =
|
|
34
|
+
export type IfElseShape = Schema.Schema.Type<typeof IfElseShape>;
|
|
35
35
|
|
|
36
36
|
//
|
|
37
37
|
// Components
|
package/src/shapes/Queue.tsx
CHANGED
|
@@ -2,10 +2,10 @@
|
|
|
2
2
|
// Copyright 2024 DXOS.org
|
|
3
3
|
//
|
|
4
4
|
|
|
5
|
+
import { Schema } from 'effect';
|
|
5
6
|
import React, { Fragment } from 'react';
|
|
6
7
|
|
|
7
8
|
import { DEFAULT_OUTPUT, QueueInput, QueueOutput } from '@dxos/conductor';
|
|
8
|
-
import { S } from '@dxos/echo-schema';
|
|
9
9
|
import { type ThemedClassName } from '@dxos/react-ui';
|
|
10
10
|
import { type ShapeComponentProps, type ShapeDef } from '@dxos/react-ui-canvas-editor';
|
|
11
11
|
import { mx } from '@dxos/react-ui-theme';
|
|
@@ -15,14 +15,14 @@ import { Box, type BoxActionHandler } from './common';
|
|
|
15
15
|
import { ComputeShape, createShape, type CreateShapeProps } from './defs';
|
|
16
16
|
import { useComputeNodeState } from '../hooks';
|
|
17
17
|
|
|
18
|
-
export const QueueShape =
|
|
18
|
+
export const QueueShape = Schema.extend(
|
|
19
19
|
ComputeShape,
|
|
20
|
-
|
|
21
|
-
type:
|
|
20
|
+
Schema.Struct({
|
|
21
|
+
type: Schema.Literal('queue'),
|
|
22
22
|
}),
|
|
23
23
|
);
|
|
24
24
|
|
|
25
|
-
export type QueueShape =
|
|
25
|
+
export type QueueShape = Schema.Schema.Type<typeof QueueShape>;
|
|
26
26
|
|
|
27
27
|
export type CreateQueueProps = CreateShapeProps<QueueShape>;
|
|
28
28
|
|
package/src/shapes/RNG.tsx
CHANGED
|
@@ -2,10 +2,10 @@
|
|
|
2
2
|
// Copyright 2024 DXOS.org
|
|
3
3
|
//
|
|
4
4
|
|
|
5
|
+
import { Schema } from 'effect';
|
|
5
6
|
import React, { useEffect, useState } from 'react';
|
|
6
7
|
|
|
7
8
|
import { DEFAULT_OUTPUT } from '@dxos/conductor';
|
|
8
|
-
import { S } from '@dxos/echo-schema';
|
|
9
9
|
import { Icon, type IconProps } from '@dxos/react-ui';
|
|
10
10
|
import { createAnchorMap, type ShapeComponentProps, type ShapeDef } from '@dxos/react-ui-canvas-editor';
|
|
11
11
|
import { mx } from '@dxos/react-ui-theme';
|
|
@@ -13,16 +13,16 @@ import { mx } from '@dxos/react-ui-theme';
|
|
|
13
13
|
import { ComputeShape, createAnchorId, createShape, type CreateShapeProps } from './defs';
|
|
14
14
|
import { useComputeNodeState } from '../hooks';
|
|
15
15
|
|
|
16
|
-
export const RandomShape =
|
|
16
|
+
export const RandomShape = Schema.extend(
|
|
17
17
|
ComputeShape,
|
|
18
|
-
|
|
19
|
-
type:
|
|
20
|
-
min:
|
|
21
|
-
max:
|
|
18
|
+
Schema.Struct({
|
|
19
|
+
type: Schema.Literal('rng'),
|
|
20
|
+
min: Schema.optional(Schema.Number),
|
|
21
|
+
max: Schema.optional(Schema.Number),
|
|
22
22
|
}),
|
|
23
23
|
);
|
|
24
24
|
|
|
25
|
-
export type RandomShape =
|
|
25
|
+
export type RandomShape = Schema.Schema.Type<typeof RandomShape>;
|
|
26
26
|
|
|
27
27
|
export type CreateRandomProps = CreateShapeProps<RandomShape>;
|
|
28
28
|
|
package/src/shapes/Scope.tsx
CHANGED
|
@@ -2,24 +2,24 @@
|
|
|
2
2
|
// Copyright 2024 DXOS.org
|
|
3
3
|
//
|
|
4
4
|
|
|
5
|
+
import { Schema } from 'effect';
|
|
5
6
|
import React from 'react';
|
|
6
7
|
|
|
7
8
|
import { DEFAULT_INPUT } from '@dxos/conductor';
|
|
8
|
-
import { S } from '@dxos/echo-schema';
|
|
9
9
|
import { createAnchorMap, type ShapeComponentProps, type ShapeDef } from '@dxos/react-ui-canvas-editor';
|
|
10
10
|
import { useAudioStream, Chaos, shaderPresets } from '@dxos/react-ui-sfx';
|
|
11
11
|
|
|
12
12
|
import { ComputeShape, createAnchorId, createShape, type CreateShapeProps } from './defs';
|
|
13
13
|
import { useComputeNodeState } from '../hooks';
|
|
14
14
|
|
|
15
|
-
export const ScopeShape =
|
|
15
|
+
export const ScopeShape = Schema.extend(
|
|
16
16
|
ComputeShape,
|
|
17
|
-
|
|
18
|
-
type:
|
|
17
|
+
Schema.Struct({
|
|
18
|
+
type: Schema.Literal('scope'),
|
|
19
19
|
}),
|
|
20
20
|
);
|
|
21
21
|
|
|
22
|
-
export type ScopeShape =
|
|
22
|
+
export type ScopeShape = Schema.Schema.Type<typeof ScopeShape>;
|
|
23
23
|
|
|
24
24
|
export type CreateScopeProps = CreateShapeProps<ScopeShape>;
|
|
25
25
|
|
package/src/shapes/Surface.tsx
CHANGED
|
@@ -2,11 +2,11 @@
|
|
|
2
2
|
// Copyright 2024 DXOS.org
|
|
3
3
|
//
|
|
4
4
|
|
|
5
|
+
import { Schema } from 'effect';
|
|
5
6
|
import React from 'react';
|
|
6
7
|
|
|
7
8
|
import { Surface } from '@dxos/app-framework';
|
|
8
9
|
import { DEFAULT_INPUT } from '@dxos/conductor';
|
|
9
|
-
import { S } from '@dxos/echo-schema';
|
|
10
10
|
import { type ShapeComponentProps, type ShapeDef } from '@dxos/react-ui-canvas-editor';
|
|
11
11
|
import { createAnchorMap } from '@dxos/react-ui-canvas-editor';
|
|
12
12
|
|
|
@@ -14,14 +14,14 @@ import { Box, type BoxActionHandler } from './common';
|
|
|
14
14
|
import { ComputeShape, createAnchorId, createShape, type CreateShapeProps } from './defs';
|
|
15
15
|
import { useComputeNodeState } from '../hooks';
|
|
16
16
|
|
|
17
|
-
export const SurfaceShape =
|
|
17
|
+
export const SurfaceShape = Schema.extend(
|
|
18
18
|
ComputeShape,
|
|
19
|
-
|
|
20
|
-
type:
|
|
19
|
+
Schema.Struct({
|
|
20
|
+
type: Schema.Literal('surface'),
|
|
21
21
|
}),
|
|
22
22
|
);
|
|
23
23
|
|
|
24
|
-
export type SurfaceShape =
|
|
24
|
+
export type SurfaceShape = Schema.Schema.Type<typeof SurfaceShape>;
|
|
25
25
|
|
|
26
26
|
export type CreateSurfaceProps = CreateShapeProps<SurfaceShape>;
|
|
27
27
|
|
package/src/shapes/Switch.tsx
CHANGED
|
@@ -2,24 +2,24 @@
|
|
|
2
2
|
// Copyright 2024 DXOS.org
|
|
3
3
|
//
|
|
4
4
|
|
|
5
|
+
import { Schema } from 'effect';
|
|
5
6
|
import React, { useEffect, useState } from 'react';
|
|
6
7
|
|
|
7
8
|
import { DEFAULT_OUTPUT } from '@dxos/conductor';
|
|
8
|
-
import { S } from '@dxos/echo-schema';
|
|
9
9
|
import { Input } from '@dxos/react-ui';
|
|
10
10
|
import { createAnchorMap, type ShapeComponentProps, type ShapeDef } from '@dxos/react-ui-canvas-editor';
|
|
11
11
|
|
|
12
12
|
import { ComputeShape, createAnchorId, createShape, type CreateShapeProps } from './defs';
|
|
13
13
|
import { useComputeNodeState } from '../hooks';
|
|
14
14
|
|
|
15
|
-
export const SwitchShape =
|
|
15
|
+
export const SwitchShape = Schema.extend(
|
|
16
16
|
ComputeShape,
|
|
17
|
-
|
|
18
|
-
type:
|
|
17
|
+
Schema.Struct({
|
|
18
|
+
type: Schema.Literal('switch'),
|
|
19
19
|
}),
|
|
20
20
|
);
|
|
21
21
|
|
|
22
|
-
export type SwitchShape =
|
|
22
|
+
export type SwitchShape = Schema.Schema.Type<typeof SwitchShape>;
|
|
23
23
|
|
|
24
24
|
export type CreateSwitchProps = CreateShapeProps<SwitchShape>;
|
|
25
25
|
|
package/src/shapes/Table.tsx
CHANGED
|
@@ -2,26 +2,26 @@
|
|
|
2
2
|
// Copyright 2024 DXOS.org
|
|
3
3
|
//
|
|
4
4
|
|
|
5
|
+
import { Schema } from 'effect';
|
|
5
6
|
import React from 'react';
|
|
6
7
|
|
|
7
8
|
import { createInputSchema, createOutputSchema, GptMessage } from '@dxos/conductor';
|
|
8
|
-
import { S } from '@dxos/echo-schema';
|
|
9
9
|
import { type ShapeComponentProps, type ShapeDef } from '@dxos/react-ui-canvas-editor';
|
|
10
10
|
|
|
11
11
|
import { createFunctionAnchors, Box } from './common';
|
|
12
12
|
import { ComputeShape, createShape, type CreateShapeProps } from './defs';
|
|
13
13
|
|
|
14
14
|
const InputSchema = createInputSchema(GptMessage);
|
|
15
|
-
const OutputSchema = createOutputSchema(
|
|
15
|
+
const OutputSchema = createOutputSchema(Schema.mutable(Schema.Array(GptMessage)));
|
|
16
16
|
|
|
17
|
-
export const TableShape =
|
|
17
|
+
export const TableShape = Schema.extend(
|
|
18
18
|
ComputeShape,
|
|
19
|
-
|
|
20
|
-
type:
|
|
19
|
+
Schema.Struct({
|
|
20
|
+
type: Schema.Literal('table'),
|
|
21
21
|
}),
|
|
22
22
|
);
|
|
23
23
|
|
|
24
|
-
export type TableShape =
|
|
24
|
+
export type TableShape = Schema.Schema.Type<typeof TableShape>;
|
|
25
25
|
|
|
26
26
|
export type CreateTableProps = CreateShapeProps<TableShape>;
|
|
27
27
|
|
package/src/shapes/Template.tsx
CHANGED
|
@@ -2,10 +2,11 @@
|
|
|
2
2
|
// Copyright 2024 DXOS.org
|
|
3
3
|
//
|
|
4
4
|
|
|
5
|
+
import { Schema } from 'effect';
|
|
5
6
|
import React, { useRef } from 'react';
|
|
6
7
|
|
|
7
8
|
import { ComputeValueType, getTemplateInputSchema, TemplateOutput, VoidInput } from '@dxos/conductor';
|
|
8
|
-
import {
|
|
9
|
+
import { toJsonSchema } from '@dxos/echo-schema';
|
|
9
10
|
import { invariant } from '@dxos/invariant';
|
|
10
11
|
import {
|
|
11
12
|
type ShapeComponentProps,
|
|
@@ -23,15 +24,15 @@ import { useComputeNodeState } from '../hooks';
|
|
|
23
24
|
// Data
|
|
24
25
|
//
|
|
25
26
|
|
|
26
|
-
export const TemplateShape =
|
|
27
|
+
export const TemplateShape = Schema.extend(
|
|
27
28
|
ComputeShape,
|
|
28
|
-
|
|
29
|
-
type:
|
|
30
|
-
valueType:
|
|
29
|
+
Schema.Struct({
|
|
30
|
+
type: Schema.Literal('template'),
|
|
31
|
+
valueType: Schema.optional(ComputeValueType),
|
|
31
32
|
}),
|
|
32
33
|
);
|
|
33
34
|
|
|
34
|
-
export type TemplateShape =
|
|
35
|
+
export type TemplateShape = Schema.Schema.Type<typeof TemplateShape>;
|
|
35
36
|
|
|
36
37
|
//
|
|
37
38
|
// Component
|
|
@@ -54,7 +55,7 @@ const TextInputComponent = ({ shape, title, ...props }: TextInputComponentProps)
|
|
|
54
55
|
};
|
|
55
56
|
|
|
56
57
|
const handleTypeChange = (newType: string) => {
|
|
57
|
-
invariant(
|
|
58
|
+
invariant(Schema.is(ComputeValueType)(newType), 'Invalid type');
|
|
58
59
|
|
|
59
60
|
node.valueType = newType;
|
|
60
61
|
node.inputSchema = toJsonSchema(getTemplateInputSchema(node));
|
package/src/shapes/Text.tsx
CHANGED
|
@@ -2,10 +2,10 @@
|
|
|
2
2
|
// Copyright 2024 DXOS.org
|
|
3
3
|
//
|
|
4
4
|
|
|
5
|
+
import { Schema } from 'effect';
|
|
5
6
|
import React from 'react';
|
|
6
7
|
|
|
7
8
|
import { DEFAULT_INPUT } from '@dxos/conductor';
|
|
8
|
-
import { S } from '@dxos/echo-schema';
|
|
9
9
|
import { TextBox, type ShapeComponentProps, type ShapeDef } from '@dxos/react-ui-canvas-editor';
|
|
10
10
|
import { createAnchorMap } from '@dxos/react-ui-canvas-editor';
|
|
11
11
|
|
|
@@ -13,14 +13,14 @@ import { Box, type BoxActionHandler } from './common';
|
|
|
13
13
|
import { ComputeShape, createAnchorId, createShape, type CreateShapeProps } from './defs';
|
|
14
14
|
import { useComputeNodeState } from '../hooks';
|
|
15
15
|
|
|
16
|
-
export const TextShape =
|
|
16
|
+
export const TextShape = Schema.extend(
|
|
17
17
|
ComputeShape,
|
|
18
|
-
|
|
19
|
-
type:
|
|
18
|
+
Schema.Struct({
|
|
19
|
+
type: Schema.Literal('text'),
|
|
20
20
|
}),
|
|
21
21
|
);
|
|
22
22
|
|
|
23
|
-
export type TextShape =
|
|
23
|
+
export type TextShape = Schema.Schema.Type<typeof TextShape>;
|
|
24
24
|
|
|
25
25
|
export type CreateTextProps = CreateShapeProps<TextShape>;
|
|
26
26
|
|
|
@@ -2,23 +2,23 @@
|
|
|
2
2
|
// Copyright 2024 DXOS.org
|
|
3
3
|
//
|
|
4
4
|
|
|
5
|
+
import { Schema } from 'effect';
|
|
5
6
|
import React from 'react';
|
|
6
7
|
|
|
7
|
-
import { S } from '@dxos/echo-schema';
|
|
8
8
|
import { type ShapeComponentProps, type ShapeDef } from '@dxos/react-ui-canvas-editor';
|
|
9
9
|
import { createAnchorMap } from '@dxos/react-ui-canvas-editor';
|
|
10
10
|
|
|
11
11
|
import { Box } from './common';
|
|
12
12
|
import { ComputeShape, createAnchorId, createShape, type CreateShapeProps } from './defs';
|
|
13
13
|
|
|
14
|
-
export const TextToImageShape =
|
|
14
|
+
export const TextToImageShape = Schema.extend(
|
|
15
15
|
ComputeShape,
|
|
16
|
-
|
|
17
|
-
type:
|
|
16
|
+
Schema.Struct({
|
|
17
|
+
type: Schema.Literal('text-to-image'),
|
|
18
18
|
}),
|
|
19
19
|
);
|
|
20
20
|
|
|
21
|
-
export type TextToImageShape =
|
|
21
|
+
export type TextToImageShape = Schema.Schema.Type<typeof TextToImageShape>;
|
|
22
22
|
|
|
23
23
|
export type CreateTextToImageProps = CreateShapeProps<TextToImageShape>;
|
|
24
24
|
|
package/src/shapes/Thread.tsx
CHANGED
|
@@ -2,10 +2,10 @@
|
|
|
2
2
|
// Copyright 2024 DXOS.org
|
|
3
3
|
//
|
|
4
4
|
|
|
5
|
+
import { Schema } from 'effect';
|
|
5
6
|
import React, { useEffect, useRef } from 'react';
|
|
6
7
|
|
|
7
8
|
import { createInputSchema, createOutputSchema, GptMessage } from '@dxos/conductor';
|
|
8
|
-
import { S } from '@dxos/echo-schema';
|
|
9
9
|
import { type ThemedClassName } from '@dxos/react-ui';
|
|
10
10
|
import { type ShapeComponentProps, type ShapeDef } from '@dxos/react-ui-canvas-editor';
|
|
11
11
|
import { mx } from '@dxos/react-ui-theme';
|
|
@@ -14,16 +14,16 @@ import { createFunctionAnchors, Box } from './common';
|
|
|
14
14
|
import { ComputeShape, createShape, type CreateShapeProps } from './defs';
|
|
15
15
|
|
|
16
16
|
const InputSchema = createInputSchema(GptMessage);
|
|
17
|
-
const OutputSchema = createOutputSchema(
|
|
17
|
+
const OutputSchema = createOutputSchema(Schema.mutable(Schema.Array(GptMessage)));
|
|
18
18
|
|
|
19
|
-
export const ThreadShape =
|
|
19
|
+
export const ThreadShape = Schema.extend(
|
|
20
20
|
ComputeShape,
|
|
21
|
-
|
|
22
|
-
type:
|
|
21
|
+
Schema.Struct({
|
|
22
|
+
type: Schema.Literal('thread'),
|
|
23
23
|
}),
|
|
24
24
|
);
|
|
25
25
|
|
|
26
|
-
export type ThreadShape =
|
|
26
|
+
export type ThreadShape = Schema.Schema.Type<typeof ThreadShape>;
|
|
27
27
|
|
|
28
28
|
export type CreateThreadProps = CreateShapeProps<ThreadShape>;
|
|
29
29
|
|
package/src/shapes/Trigger.tsx
CHANGED
|
@@ -2,17 +2,11 @@
|
|
|
2
2
|
// Copyright 2024 DXOS.org
|
|
3
3
|
//
|
|
4
4
|
|
|
5
|
+
import { Schema } from 'effect';
|
|
5
6
|
import React, { useEffect } from 'react';
|
|
6
7
|
|
|
7
|
-
import {
|
|
8
|
-
|
|
9
|
-
QueueTriggerOutput,
|
|
10
|
-
SubscriptionTriggerOutput,
|
|
11
|
-
TimerTriggerOutput,
|
|
12
|
-
VoidInput,
|
|
13
|
-
WebhookTriggerOutput,
|
|
14
|
-
} from '@dxos/conductor';
|
|
15
|
-
import { ObjectId, Ref, S } from '@dxos/echo-schema';
|
|
8
|
+
import { VoidInput } from '@dxos/conductor';
|
|
9
|
+
import { ObjectId, Ref } from '@dxos/echo-schema';
|
|
16
10
|
import {
|
|
17
11
|
type EmailTrigger,
|
|
18
12
|
FunctionTrigger,
|
|
@@ -22,23 +16,28 @@ import {
|
|
|
22
16
|
TriggerKind,
|
|
23
17
|
type TriggerType,
|
|
24
18
|
type WebhookTrigger,
|
|
25
|
-
|
|
19
|
+
EmailTriggerOutput,
|
|
20
|
+
QueueTriggerOutput,
|
|
21
|
+
SubscriptionTriggerOutput,
|
|
22
|
+
TimerTriggerOutput,
|
|
23
|
+
WebhookTriggerOutput,
|
|
24
|
+
} from '@dxos/functions';
|
|
26
25
|
import { DXN, SpaceId } from '@dxos/keys';
|
|
27
|
-
import {
|
|
26
|
+
import { live, makeRef, useSpace } from '@dxos/react-client/echo';
|
|
28
27
|
import { Select, type SelectRootProps } from '@dxos/react-ui';
|
|
29
28
|
import { type ShapeComponentProps, type ShapeDef } from '@dxos/react-ui-canvas-editor';
|
|
30
29
|
|
|
31
30
|
import { createFunctionAnchors, FunctionBody, getHeight } from './common';
|
|
32
31
|
import { ComputeShape, createShape, type CreateShapeProps } from './defs';
|
|
33
32
|
|
|
34
|
-
export const TriggerShape =
|
|
33
|
+
export const TriggerShape = Schema.extend(
|
|
35
34
|
ComputeShape,
|
|
36
|
-
|
|
37
|
-
type:
|
|
38
|
-
functionTrigger:
|
|
35
|
+
Schema.Struct({
|
|
36
|
+
type: Schema.Literal('trigger'),
|
|
37
|
+
functionTrigger: Schema.optional(Ref(FunctionTrigger)),
|
|
39
38
|
}),
|
|
40
39
|
);
|
|
41
|
-
export type TriggerShape =
|
|
40
|
+
export type TriggerShape = Schema.Schema.Type<typeof TriggerShape>;
|
|
42
41
|
|
|
43
42
|
export type CreateTriggerProps = CreateShapeProps<Omit<TriggerShape, 'functionTrigger'>> & {
|
|
44
43
|
spaceId?: SpaceId;
|
|
@@ -46,7 +45,7 @@ export type CreateTriggerProps = CreateShapeProps<Omit<TriggerShape, 'functionTr
|
|
|
46
45
|
};
|
|
47
46
|
|
|
48
47
|
export const createTrigger = (props: CreateTriggerProps): TriggerShape => {
|
|
49
|
-
const functionTrigger =
|
|
48
|
+
const functionTrigger = live(FunctionTrigger, {
|
|
50
49
|
enabled: true,
|
|
51
50
|
spec: createTriggerSpec(props),
|
|
52
51
|
});
|
|
@@ -138,7 +137,7 @@ const createTriggerSpec = (props: { triggerKind?: TriggerKind; spaceId?: SpaceId
|
|
|
138
137
|
};
|
|
139
138
|
|
|
140
139
|
const getOutputSchema = (kind: TriggerKind) => {
|
|
141
|
-
const kindToSchema: Record<TriggerKind,
|
|
140
|
+
const kindToSchema: Record<TriggerKind, Schema.Schema<any>> = {
|
|
142
141
|
[TriggerKind.Email]: EmailTriggerOutput,
|
|
143
142
|
[TriggerKind.Subscription]: SubscriptionTriggerOutput,
|
|
144
143
|
[TriggerKind.Timer]: TimerTriggerOutput,
|
|
@@ -2,10 +2,10 @@
|
|
|
2
2
|
// Copyright 2024 DXOS.org
|
|
3
3
|
//
|
|
4
4
|
|
|
5
|
+
import { type Schema, SchemaAST } from 'effect';
|
|
5
6
|
import React, { type JSX, useRef, useState } from 'react';
|
|
6
7
|
|
|
7
8
|
import { VoidInput, VoidOutput } from '@dxos/conductor';
|
|
8
|
-
import { AST, type S } from '@dxos/echo-schema';
|
|
9
9
|
import { useCanvasContext } from '@dxos/react-ui-canvas';
|
|
10
10
|
import { type Polygon, type Shape } from '@dxos/react-ui-canvas-editor';
|
|
11
11
|
import { getParentShapeElement, createAnchors, rowHeight } from '@dxos/react-ui-canvas-editor';
|
|
@@ -20,8 +20,8 @@ export type FunctionBodyProps = {
|
|
|
20
20
|
shape: Shape;
|
|
21
21
|
name?: string;
|
|
22
22
|
content?: JSX.Element;
|
|
23
|
-
inputSchema?:
|
|
24
|
-
outputSchema?:
|
|
23
|
+
inputSchema?: Schema.Schema.Any;
|
|
24
|
+
outputSchema?: Schema.Schema.Any;
|
|
25
25
|
} & Pick<BoxProps, 'status'>;
|
|
26
26
|
|
|
27
27
|
// TODO(wittjosiah): Rename, not used for functions.
|
|
@@ -106,18 +106,20 @@ export const FunctionBody = ({
|
|
|
106
106
|
);
|
|
107
107
|
};
|
|
108
108
|
|
|
109
|
-
export const getHeight = (input:
|
|
110
|
-
const properties =
|
|
109
|
+
export const getHeight = (input: Schema.Schema<any>) => {
|
|
110
|
+
const properties = SchemaAST.getPropertySignatures(input.ast);
|
|
111
111
|
return headerHeight + footerHeight + bodyPadding * 2 + properties.length * rowHeight + 2; // Incl. borders.
|
|
112
112
|
};
|
|
113
113
|
|
|
114
114
|
export const createFunctionAnchors = (
|
|
115
115
|
shape: Polygon,
|
|
116
|
-
input:
|
|
117
|
-
output:
|
|
116
|
+
input: Schema.Schema<any> = VoidInput,
|
|
117
|
+
output: Schema.Schema<any> = VoidOutput,
|
|
118
118
|
) => {
|
|
119
119
|
// TODO(burdon): Set type.
|
|
120
|
-
const inputs =
|
|
121
|
-
const outputs =
|
|
120
|
+
const inputs = SchemaAST.getPropertySignatures(input.ast).map(({ name }) => createAnchorId('input', name.toString()));
|
|
121
|
+
const outputs = SchemaAST.getPropertySignatures(output.ast).map(({ name }) =>
|
|
122
|
+
createAnchorId('output', name.toString()),
|
|
123
|
+
);
|
|
122
124
|
return createAnchors({ shape, inputs, outputs, center: { x: 0, y: (headerHeight - footerHeight) / 2 + 1 } });
|
|
123
125
|
};
|
package/src/shapes/defs.ts
CHANGED
|
@@ -2,10 +2,10 @@
|
|
|
2
2
|
// Copyright 2025 DXOS.org
|
|
3
3
|
//
|
|
4
4
|
|
|
5
|
-
import { SchemaAST
|
|
5
|
+
import { Schema, SchemaAST } from 'effect';
|
|
6
6
|
|
|
7
7
|
import { DEFAULT_INPUT, DEFAULT_OUTPUT } from '@dxos/conductor';
|
|
8
|
-
import { ObjectId
|
|
8
|
+
import { ObjectId } from '@dxos/echo-schema';
|
|
9
9
|
import { Polygon } from '@dxos/react-ui-canvas-editor';
|
|
10
10
|
import { type MakeOptional } from '@dxos/util';
|
|
11
11
|
|
|
@@ -15,8 +15,8 @@ import { type MakeOptional } from '@dxos/util';
|
|
|
15
15
|
|
|
16
16
|
export type PropertyKind = 'input' | 'output';
|
|
17
17
|
|
|
18
|
-
export const getProperties = (ast:
|
|
19
|
-
|
|
18
|
+
export const getProperties = (ast: SchemaAST.AST) =>
|
|
19
|
+
SchemaAST.getPropertySignatures(ast).map(({ name }) => ({ name: name.toString() }));
|
|
20
20
|
|
|
21
21
|
export const createAnchorId = (kind: PropertyKind, property = kind === 'input' ? DEFAULT_INPUT : DEFAULT_OUTPUT) =>
|
|
22
22
|
[kind, property].join('.');
|
|
@@ -32,15 +32,15 @@ export const parseAnchorId = (id: string): [PropertyKind | undefined, string] =>
|
|
|
32
32
|
|
|
33
33
|
export type CreateShapeProps<S extends Polygon> = Omit<MakeOptional<S, 'id' | 'size'>, 'type' | 'node'>;
|
|
34
34
|
|
|
35
|
-
export const ComputeShape =
|
|
35
|
+
export const ComputeShape = Schema.extend(
|
|
36
36
|
Polygon,
|
|
37
|
-
|
|
37
|
+
Schema.Struct({
|
|
38
38
|
// TODO(burdon): Rename computeNode?
|
|
39
|
-
node:
|
|
40
|
-
}).pipe(
|
|
39
|
+
node: Schema.optional(ObjectId.annotations({ [SchemaAST.DescriptionAnnotationId]: 'Compute node id' })),
|
|
40
|
+
}).pipe(Schema.mutable),
|
|
41
41
|
);
|
|
42
42
|
|
|
43
|
-
export type ComputeShape =
|
|
43
|
+
export type ComputeShape = Schema.Schema.Type<typeof ComputeShape>;
|
|
44
44
|
|
|
45
45
|
export const createShape = <S extends ComputeShape>({ id, ...rest }: CreateShapeProps<S> & { type: string }): S => {
|
|
46
46
|
return {
|