@dxos/react-ui-canvas-compute 0.8.3 → 0.8.4-main.1da679c
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 +243 -201
- package/dist/lib/browser/index.mjs.map +4 -4
- package/dist/lib/browser/meta.json +1 -1
- package/dist/lib/node-esm/index.mjs +243 -201
- package/dist/lib/node-esm/index.mjs.map +4 -4
- package/dist/lib/node-esm/meta.json +1 -1
- package/dist/types/src/compute.stories.d.ts +9 -4
- package/dist/types/src/compute.stories.d.ts.map +1 -1
- package/dist/types/src/graph/controller.d.ts +31 -5
- package/dist/types/src/graph/controller.d.ts.map +1 -1
- package/dist/types/src/graph/node-defs.d.ts.map +1 -1
- package/dist/types/src/hooks/useComputeGraphController.d.ts +1 -1
- package/dist/types/src/hooks/useComputeGraphController.d.ts.map +1 -1
- package/dist/types/src/hooks/useComputeNodeState.d.ts +3 -2
- package/dist/types/src/hooks/useComputeNodeState.d.ts.map +1 -1
- package/dist/types/src/hooks/useGraphMonitor.d.ts +1 -1
- package/dist/types/src/hooks/useGraphMonitor.d.ts.map +1 -1
- package/dist/types/src/shapes/Append.d.ts.map +1 -1
- package/dist/types/src/shapes/Array.d.ts.map +1 -1
- package/dist/types/src/shapes/Audio.d.ts.map +1 -1
- package/dist/types/src/shapes/Beacon.d.ts.map +1 -1
- package/dist/types/src/shapes/Boolean.d.ts.map +1 -1
- package/dist/types/src/shapes/Chat.d.ts.map +1 -1
- package/dist/types/src/shapes/Constant.d.ts +1 -1
- package/dist/types/src/shapes/Constant.d.ts.map +1 -1
- package/dist/types/src/shapes/Database.d.ts.map +1 -1
- package/dist/types/src/shapes/Function.d.ts.map +1 -1
- package/dist/types/src/shapes/Gpt.d.ts.map +1 -1
- package/dist/types/src/shapes/GptRealtime.d.ts.map +1 -1
- package/dist/types/src/shapes/Json.d.ts.map +1 -1
- package/dist/types/src/shapes/Logic.d.ts.map +1 -1
- package/dist/types/src/shapes/Queue.d.ts.map +1 -1
- package/dist/types/src/shapes/RNG.d.ts.map +1 -1
- package/dist/types/src/shapes/Scope.d.ts.map +1 -1
- package/dist/types/src/shapes/Surface.d.ts.map +1 -1
- package/dist/types/src/shapes/Switch.d.ts.map +1 -1
- package/dist/types/src/shapes/Table.d.ts.map +1 -1
- package/dist/types/src/shapes/Template.d.ts.map +1 -1
- package/dist/types/src/shapes/Text.d.ts.map +1 -1
- package/dist/types/src/shapes/TextToImage.d.ts.map +1 -1
- package/dist/types/src/shapes/Thread.d.ts.map +1 -1
- package/dist/types/src/shapes/Trigger.d.ts +2 -31
- package/dist/types/src/shapes/Trigger.d.ts.map +1 -1
- package/dist/types/src/shapes/common/Box.d.ts.map +1 -1
- package/dist/types/src/testing/circuits.d.ts +1 -1
- package/dist/types/src/testing/circuits.d.ts.map +1 -1
- package/dist/types/tsconfig.tsbuildinfo +1 -1
- package/package.json +49 -45
- package/src/compute.stories.tsx +22 -33
- package/src/graph/controller.ts +10 -10
- package/src/graph/node-defs.ts +4 -3
- package/src/hooks/useComputeGraphController.ts +1 -1
- package/src/hooks/useComputeNodeState.ts +6 -4
- package/src/hooks/useGraphMonitor.ts +1 -1
- package/src/registry.ts +2 -2
- package/src/schema.test.ts +2 -2
- package/src/shapes/Append.tsx +2 -2
- package/src/shapes/Array.tsx +2 -2
- package/src/shapes/Audio.tsx +3 -2
- package/src/shapes/Beacon.tsx +4 -4
- package/src/shapes/Boolean.tsx +2 -2
- package/src/shapes/Chat.tsx +3 -2
- package/src/shapes/Constant.tsx +3 -2
- package/src/shapes/Database.tsx +1 -1
- package/src/shapes/Function.tsx +8 -7
- package/src/shapes/Gpt.tsx +6 -4
- package/src/shapes/GptRealtime.tsx +1 -1
- package/src/shapes/Json.tsx +3 -2
- package/src/shapes/Logic.tsx +2 -2
- package/src/shapes/Queue.tsx +3 -2
- package/src/shapes/RNG.tsx +4 -4
- package/src/shapes/Scope.tsx +4 -3
- package/src/shapes/Surface.tsx +4 -3
- package/src/shapes/Switch.tsx +3 -2
- package/src/shapes/Table.tsx +6 -5
- package/src/shapes/Template.tsx +4 -3
- package/src/shapes/Text.tsx +4 -3
- package/src/shapes/TextToImage.tsx +1 -1
- package/src/shapes/Thread.tsx +6 -5
- package/src/shapes/Trigger.tsx +32 -34
- package/src/shapes/common/Box.tsx +2 -2
- package/src/shapes/common/FunctionBody.tsx +1 -1
- package/src/testing/circuits.ts +4 -4
- package/dist/lib/node/index.cjs +0 -2896
- package/dist/lib/node/index.cjs.map +0 -7
- package/dist/lib/node/meta.json +0 -1
package/src/shapes/Gpt.tsx
CHANGED
|
@@ -5,14 +5,14 @@
|
|
|
5
5
|
import { Schema } from 'effect';
|
|
6
6
|
import React, { useEffect, useState } from 'react';
|
|
7
7
|
|
|
8
|
-
import { type GenerationStreamEvent } from '@dxos/ai';
|
|
9
8
|
import { GptInput, GptOutput } from '@dxos/conductor';
|
|
10
9
|
import { type ShapeComponentProps, type ShapeDef } from '@dxos/react-ui-canvas-editor';
|
|
11
10
|
|
|
12
|
-
import { createFunctionAnchors, FunctionBody, getHeight } from './common';
|
|
13
|
-
import { ComputeShape, createShape, type CreateShapeProps } from './defs';
|
|
14
11
|
import { useComputeNodeState } from '../hooks';
|
|
15
12
|
|
|
13
|
+
import { FunctionBody, createFunctionAnchors, getHeight } from './common';
|
|
14
|
+
import { ComputeShape, type CreateShapeProps, createShape } from './defs';
|
|
15
|
+
|
|
16
16
|
export const GptShape = Schema.extend(
|
|
17
17
|
ComputeShape,
|
|
18
18
|
Schema.Struct({
|
|
@@ -43,8 +43,10 @@ export const GptComponent = ({ shape }: ShapeComponentProps<GptShape>) => {
|
|
|
43
43
|
setText('');
|
|
44
44
|
break;
|
|
45
45
|
}
|
|
46
|
+
|
|
46
47
|
case 'custom': {
|
|
47
|
-
|
|
48
|
+
// TODO(burdon): Any?
|
|
49
|
+
const token = ev.event;
|
|
48
50
|
switch (token.type) {
|
|
49
51
|
case 'content_block_delta':
|
|
50
52
|
switch (token.delta.type) {
|
|
@@ -11,7 +11,7 @@ import { Icon } from '@dxos/react-ui';
|
|
|
11
11
|
import { type ShapeComponentProps, type ShapeDef } from '@dxos/react-ui-canvas-editor';
|
|
12
12
|
|
|
13
13
|
import { createFunctionAnchors } from './common';
|
|
14
|
-
import { ComputeShape,
|
|
14
|
+
import { ComputeShape, type CreateShapeProps, createShape } from './defs';
|
|
15
15
|
|
|
16
16
|
export const GptRealtimeShape = Schema.extend(
|
|
17
17
|
ComputeShape,
|
package/src/shapes/Json.tsx
CHANGED
|
@@ -10,10 +10,11 @@ import { type ShapeComponentProps, type ShapeDef } from '@dxos/react-ui-canvas-e
|
|
|
10
10
|
import { createAnchorMap } from '@dxos/react-ui-canvas-editor';
|
|
11
11
|
import { JsonFilter } from '@dxos/react-ui-syntax-highlighter';
|
|
12
12
|
|
|
13
|
-
import { createFunctionAnchors, getHeight, Box } from './common';
|
|
14
|
-
import { ComputeShape, createAnchorId, createShape, type CreateShapeProps } from './defs';
|
|
15
13
|
import { useComputeNodeState } from '../hooks';
|
|
16
14
|
|
|
15
|
+
import { Box, createFunctionAnchors, getHeight } from './common';
|
|
16
|
+
import { ComputeShape, type CreateShapeProps, createAnchorId, createShape } from './defs';
|
|
17
|
+
|
|
17
18
|
//
|
|
18
19
|
// Data
|
|
19
20
|
//
|
package/src/shapes/Logic.tsx
CHANGED
|
@@ -8,8 +8,8 @@ import React from 'react';
|
|
|
8
8
|
import { IfElseInput, IfElseOutput, IfInput, IfOutput } from '@dxos/conductor';
|
|
9
9
|
import { type ShapeComponentProps, type ShapeDef } from '@dxos/react-ui-canvas-editor';
|
|
10
10
|
|
|
11
|
-
import {
|
|
12
|
-
import { ComputeShape,
|
|
11
|
+
import { FunctionBody, createFunctionAnchors, getHeight } from './common';
|
|
12
|
+
import { ComputeShape, type CreateShapeProps, createShape } from './defs';
|
|
13
13
|
|
|
14
14
|
//
|
|
15
15
|
// Data
|
package/src/shapes/Queue.tsx
CHANGED
|
@@ -10,10 +10,11 @@ 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';
|
|
12
12
|
|
|
13
|
+
import { useComputeNodeState } from '../hooks';
|
|
14
|
+
|
|
13
15
|
import { createFunctionAnchors } from './common';
|
|
14
16
|
import { Box, type BoxActionHandler } from './common';
|
|
15
|
-
import { ComputeShape,
|
|
16
|
-
import { useComputeNodeState } from '../hooks';
|
|
17
|
+
import { ComputeShape, type CreateShapeProps, createShape } from './defs';
|
|
17
18
|
|
|
18
19
|
export const QueueShape = Schema.extend(
|
|
19
20
|
ComputeShape,
|
package/src/shapes/RNG.tsx
CHANGED
|
@@ -7,12 +7,12 @@ import React, { useEffect, useState } from 'react';
|
|
|
7
7
|
|
|
8
8
|
import { DEFAULT_OUTPUT } from '@dxos/conductor';
|
|
9
9
|
import { Icon, type IconProps } from '@dxos/react-ui';
|
|
10
|
-
import {
|
|
11
|
-
import { mx } from '@dxos/react-ui-theme';
|
|
10
|
+
import { type ShapeComponentProps, type ShapeDef, createAnchorMap } from '@dxos/react-ui-canvas-editor';
|
|
12
11
|
|
|
13
|
-
import { ComputeShape, createAnchorId, createShape, type CreateShapeProps } from './defs';
|
|
14
12
|
import { useComputeNodeState } from '../hooks';
|
|
15
13
|
|
|
14
|
+
import { ComputeShape, type CreateShapeProps, createAnchorId, createShape } from './defs';
|
|
15
|
+
|
|
16
16
|
export const RandomShape = Schema.extend(
|
|
17
17
|
ComputeShape,
|
|
18
18
|
Schema.Struct({
|
|
@@ -69,7 +69,7 @@ export const RandomComponent = ({ shape }: ShapeComponentProps<RandomShape>) =>
|
|
|
69
69
|
|
|
70
70
|
return (
|
|
71
71
|
<div className='flex grow items-center justify-center'>
|
|
72
|
-
<Icon icon={icon} classNames={
|
|
72
|
+
<Icon icon={icon} classNames={spin && 'animate-[spin_1s]'} size={10} onClick={handleClick} />
|
|
73
73
|
</div>
|
|
74
74
|
);
|
|
75
75
|
};
|
package/src/shapes/Scope.tsx
CHANGED
|
@@ -6,12 +6,13 @@ import { Schema } from 'effect';
|
|
|
6
6
|
import React from 'react';
|
|
7
7
|
|
|
8
8
|
import { DEFAULT_INPUT } from '@dxos/conductor';
|
|
9
|
-
import {
|
|
10
|
-
import {
|
|
9
|
+
import { type ShapeComponentProps, type ShapeDef, createAnchorMap } from '@dxos/react-ui-canvas-editor';
|
|
10
|
+
import { Chaos, shaderPresets, useAudioStream } from '@dxos/react-ui-sfx';
|
|
11
11
|
|
|
12
|
-
import { ComputeShape, createAnchorId, createShape, type CreateShapeProps } from './defs';
|
|
13
12
|
import { useComputeNodeState } from '../hooks';
|
|
14
13
|
|
|
14
|
+
import { ComputeShape, type CreateShapeProps, createAnchorId, createShape } from './defs';
|
|
15
|
+
|
|
15
16
|
export const ScopeShape = Schema.extend(
|
|
16
17
|
ComputeShape,
|
|
17
18
|
Schema.Struct({
|
package/src/shapes/Surface.tsx
CHANGED
|
@@ -10,10 +10,11 @@ import { DEFAULT_INPUT } from '@dxos/conductor';
|
|
|
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
|
|
|
13
|
-
import { Box, type BoxActionHandler } from './common';
|
|
14
|
-
import { ComputeShape, createAnchorId, createShape, type CreateShapeProps } from './defs';
|
|
15
13
|
import { useComputeNodeState } from '../hooks';
|
|
16
14
|
|
|
15
|
+
import { Box, type BoxActionHandler } from './common';
|
|
16
|
+
import { ComputeShape, type CreateShapeProps, createAnchorId, createShape } from './defs';
|
|
17
|
+
|
|
17
18
|
export const SurfaceShape = Schema.extend(
|
|
18
19
|
ComputeShape,
|
|
19
20
|
Schema.Struct({
|
|
@@ -41,7 +42,7 @@ export const SurfaceComponent = ({ shape }: ShapeComponentProps<SurfaceShape>) =
|
|
|
41
42
|
|
|
42
43
|
return (
|
|
43
44
|
<Box shape={shape} onAction={handleAction}>
|
|
44
|
-
{value !== null && <Surface role='
|
|
45
|
+
{value !== null && <Surface role='card--extrinsic' data={{ value }} limit={1} />}
|
|
45
46
|
</Box>
|
|
46
47
|
);
|
|
47
48
|
};
|
package/src/shapes/Switch.tsx
CHANGED
|
@@ -7,11 +7,12 @@ import React, { useEffect, useState } from 'react';
|
|
|
7
7
|
|
|
8
8
|
import { DEFAULT_OUTPUT } from '@dxos/conductor';
|
|
9
9
|
import { Input } from '@dxos/react-ui';
|
|
10
|
-
import {
|
|
10
|
+
import { type ShapeComponentProps, type ShapeDef, createAnchorMap } from '@dxos/react-ui-canvas-editor';
|
|
11
11
|
|
|
12
|
-
import { ComputeShape, createAnchorId, createShape, type CreateShapeProps } from './defs';
|
|
13
12
|
import { useComputeNodeState } from '../hooks';
|
|
14
13
|
|
|
14
|
+
import { ComputeShape, type CreateShapeProps, createAnchorId, createShape } from './defs';
|
|
15
|
+
|
|
15
16
|
export const SwitchShape = Schema.extend(
|
|
16
17
|
ComputeShape,
|
|
17
18
|
Schema.Struct({
|
package/src/shapes/Table.tsx
CHANGED
|
@@ -5,14 +5,15 @@
|
|
|
5
5
|
import { Schema } from 'effect';
|
|
6
6
|
import React from 'react';
|
|
7
7
|
|
|
8
|
-
import { createInputSchema, createOutputSchema
|
|
8
|
+
import { createInputSchema, createOutputSchema } from '@dxos/conductor';
|
|
9
9
|
import { type ShapeComponentProps, type ShapeDef } from '@dxos/react-ui-canvas-editor';
|
|
10
|
+
import { DataType } from '@dxos/schema';
|
|
10
11
|
|
|
11
|
-
import {
|
|
12
|
-
import { ComputeShape,
|
|
12
|
+
import { Box, createFunctionAnchors } from './common';
|
|
13
|
+
import { ComputeShape, type CreateShapeProps, createShape } from './defs';
|
|
13
14
|
|
|
14
|
-
const InputSchema = createInputSchema(
|
|
15
|
-
const OutputSchema = createOutputSchema(Schema.mutable(Schema.Array(
|
|
15
|
+
const InputSchema = createInputSchema(DataType.Message);
|
|
16
|
+
const OutputSchema = createOutputSchema(Schema.mutable(Schema.Array(DataType.Message)));
|
|
16
17
|
|
|
17
18
|
export const TableShape = Schema.extend(
|
|
18
19
|
ComputeShape,
|
package/src/shapes/Template.tsx
CHANGED
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
import { Schema } from 'effect';
|
|
6
6
|
import React, { useRef } from 'react';
|
|
7
7
|
|
|
8
|
-
import { ComputeValueType,
|
|
8
|
+
import { ComputeValueType, TemplateOutput, VoidInput, getTemplateInputSchema } from '@dxos/conductor';
|
|
9
9
|
import { toJsonSchema } from '@dxos/echo-schema';
|
|
10
10
|
import { invariant } from '@dxos/invariant';
|
|
11
11
|
import {
|
|
@@ -16,10 +16,11 @@ import {
|
|
|
16
16
|
type TextBoxProps,
|
|
17
17
|
} from '@dxos/react-ui-canvas-editor';
|
|
18
18
|
|
|
19
|
-
import { Box, createFunctionAnchors, TypeSelect } from './common';
|
|
20
|
-
import { ComputeShape, createShape, type CreateShapeProps } from './defs';
|
|
21
19
|
import { useComputeNodeState } from '../hooks';
|
|
22
20
|
|
|
21
|
+
import { Box, TypeSelect, createFunctionAnchors } from './common';
|
|
22
|
+
import { ComputeShape, type CreateShapeProps, createShape } from './defs';
|
|
23
|
+
|
|
23
24
|
//
|
|
24
25
|
// Data
|
|
25
26
|
//
|
package/src/shapes/Text.tsx
CHANGED
|
@@ -6,13 +6,14 @@ import { Schema } from 'effect';
|
|
|
6
6
|
import React from 'react';
|
|
7
7
|
|
|
8
8
|
import { DEFAULT_INPUT } from '@dxos/conductor';
|
|
9
|
-
import {
|
|
9
|
+
import { type ShapeComponentProps, type ShapeDef, TextBox } from '@dxos/react-ui-canvas-editor';
|
|
10
10
|
import { createAnchorMap } from '@dxos/react-ui-canvas-editor';
|
|
11
11
|
|
|
12
|
-
import { Box, type BoxActionHandler } from './common';
|
|
13
|
-
import { ComputeShape, createAnchorId, createShape, type CreateShapeProps } from './defs';
|
|
14
12
|
import { useComputeNodeState } from '../hooks';
|
|
15
13
|
|
|
14
|
+
import { Box, type BoxActionHandler } from './common';
|
|
15
|
+
import { ComputeShape, type CreateShapeProps, createAnchorId, createShape } from './defs';
|
|
16
|
+
|
|
16
17
|
export const TextShape = Schema.extend(
|
|
17
18
|
ComputeShape,
|
|
18
19
|
Schema.Struct({
|
|
@@ -9,7 +9,7 @@ import { type ShapeComponentProps, type ShapeDef } from '@dxos/react-ui-canvas-e
|
|
|
9
9
|
import { createAnchorMap } from '@dxos/react-ui-canvas-editor';
|
|
10
10
|
|
|
11
11
|
import { Box } from './common';
|
|
12
|
-
import { ComputeShape, createAnchorId, createShape
|
|
12
|
+
import { ComputeShape, type CreateShapeProps, createAnchorId, createShape } from './defs';
|
|
13
13
|
|
|
14
14
|
export const TextToImageShape = Schema.extend(
|
|
15
15
|
ComputeShape,
|
package/src/shapes/Thread.tsx
CHANGED
|
@@ -5,16 +5,17 @@
|
|
|
5
5
|
import { Schema } from 'effect';
|
|
6
6
|
import React, { useEffect, useRef } from 'react';
|
|
7
7
|
|
|
8
|
-
import { createInputSchema, createOutputSchema
|
|
8
|
+
import { createInputSchema, createOutputSchema } from '@dxos/conductor';
|
|
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';
|
|
12
|
+
import { DataType } from '@dxos/schema';
|
|
12
13
|
|
|
13
|
-
import {
|
|
14
|
-
import { ComputeShape,
|
|
14
|
+
import { Box, createFunctionAnchors } from './common';
|
|
15
|
+
import { ComputeShape, type CreateShapeProps, createShape } from './defs';
|
|
15
16
|
|
|
16
|
-
const InputSchema = createInputSchema(
|
|
17
|
-
const OutputSchema = createOutputSchema(Schema.mutable(Schema.Array(
|
|
17
|
+
const InputSchema = createInputSchema(DataType.Message);
|
|
18
|
+
const OutputSchema = createOutputSchema(Schema.mutable(Schema.Array(DataType.Message)));
|
|
18
19
|
|
|
19
20
|
export const ThreadShape = Schema.extend(
|
|
20
21
|
ComputeShape,
|
package/src/shapes/Trigger.tsx
CHANGED
|
@@ -6,29 +6,31 @@ import { Schema } from 'effect';
|
|
|
6
6
|
import React, { useEffect } from 'react';
|
|
7
7
|
|
|
8
8
|
import { VoidInput } from '@dxos/conductor';
|
|
9
|
+
import { Filter, Obj, Query } from '@dxos/echo';
|
|
9
10
|
import { ObjectId, Ref } from '@dxos/echo-schema';
|
|
10
11
|
import {
|
|
11
12
|
type EmailTrigger,
|
|
13
|
+
EmailTriggerOutput,
|
|
12
14
|
FunctionTrigger,
|
|
13
15
|
type QueueTrigger,
|
|
16
|
+
QueueTriggerOutput,
|
|
14
17
|
type SubscriptionTrigger,
|
|
18
|
+
SubscriptionTriggerOutput,
|
|
15
19
|
type TimerTrigger,
|
|
16
|
-
|
|
20
|
+
TimerTriggerOutput,
|
|
21
|
+
type TriggerKind,
|
|
22
|
+
TriggerKinds,
|
|
17
23
|
type TriggerType,
|
|
18
24
|
type WebhookTrigger,
|
|
19
|
-
EmailTriggerOutput,
|
|
20
|
-
QueueTriggerOutput,
|
|
21
|
-
SubscriptionTriggerOutput,
|
|
22
|
-
TimerTriggerOutput,
|
|
23
25
|
WebhookTriggerOutput,
|
|
24
26
|
} from '@dxos/functions';
|
|
25
27
|
import { DXN, SpaceId } from '@dxos/keys';
|
|
26
|
-
import {
|
|
28
|
+
import { useSpace } from '@dxos/react-client/echo';
|
|
27
29
|
import { Select, type SelectRootProps } from '@dxos/react-ui';
|
|
28
30
|
import { type ShapeComponentProps, type ShapeDef } from '@dxos/react-ui-canvas-editor';
|
|
29
31
|
|
|
30
|
-
import {
|
|
31
|
-
import { ComputeShape,
|
|
32
|
+
import { FunctionBody, createFunctionAnchors, getHeight } from './common';
|
|
33
|
+
import { ComputeShape, type CreateShapeProps, createShape } from './defs';
|
|
32
34
|
|
|
33
35
|
export const TriggerShape = Schema.extend(
|
|
34
36
|
ComputeShape,
|
|
@@ -45,13 +47,13 @@ export type CreateTriggerProps = CreateShapeProps<Omit<TriggerShape, 'functionTr
|
|
|
45
47
|
};
|
|
46
48
|
|
|
47
49
|
export const createTrigger = (props: CreateTriggerProps): TriggerShape => {
|
|
48
|
-
const functionTrigger =
|
|
50
|
+
const functionTrigger = Obj.make(FunctionTrigger, {
|
|
49
51
|
enabled: true,
|
|
50
52
|
spec: createTriggerSpec(props),
|
|
51
53
|
});
|
|
52
54
|
return createShape<TriggerShape>({
|
|
53
55
|
type: 'trigger',
|
|
54
|
-
functionTrigger:
|
|
56
|
+
functionTrigger: Ref.make(functionTrigger),
|
|
55
57
|
size: { width: 192, height: getHeight(EmailTriggerOutput) },
|
|
56
58
|
...props,
|
|
57
59
|
});
|
|
@@ -65,12 +67,12 @@ export const TriggerComponent = ({ shape }: TriggerComponentProps) => {
|
|
|
65
67
|
|
|
66
68
|
useEffect(() => {
|
|
67
69
|
if (functionTrigger && !functionTrigger.spec) {
|
|
68
|
-
functionTrigger.spec = createTriggerSpec({ triggerKind:
|
|
70
|
+
functionTrigger.spec = createTriggerSpec({ triggerKind: 'email', spaceId: space?.id });
|
|
69
71
|
}
|
|
70
72
|
}, [functionTrigger, functionTrigger?.spec]);
|
|
71
73
|
|
|
72
74
|
useEffect(() => {
|
|
73
|
-
shape.size.height = getHeight(getOutputSchema(functionTrigger?.spec?.kind ??
|
|
75
|
+
shape.size.height = getHeight(getOutputSchema(functionTrigger?.spec?.kind ?? 'email'));
|
|
74
76
|
}, [functionTrigger?.spec?.kind]);
|
|
75
77
|
|
|
76
78
|
const setKind = (kind: TriggerKind) => {
|
|
@@ -104,7 +106,7 @@ const TriggerKindSelect = ({ value, onValueChange }: Pick<SelectRootProps, 'valu
|
|
|
104
106
|
<Select.Content>
|
|
105
107
|
<Select.ScrollUpButton />
|
|
106
108
|
<Select.Viewport>
|
|
107
|
-
{
|
|
109
|
+
{TriggerKinds.map((kind) => (
|
|
108
110
|
<Select.Option key={kind} value={kind}>
|
|
109
111
|
{kind}
|
|
110
112
|
</Select.Option>
|
|
@@ -119,30 +121,30 @@ const TriggerKindSelect = ({ value, onValueChange }: Pick<SelectRootProps, 'valu
|
|
|
119
121
|
};
|
|
120
122
|
|
|
121
123
|
const createTriggerSpec = (props: { triggerKind?: TriggerKind; spaceId?: SpaceId }): TriggerType => {
|
|
122
|
-
const kind = props.triggerKind ??
|
|
124
|
+
const kind = props.triggerKind ?? 'email';
|
|
123
125
|
switch (kind) {
|
|
124
|
-
case
|
|
125
|
-
return { kind:
|
|
126
|
-
case
|
|
127
|
-
return { kind:
|
|
128
|
-
case
|
|
129
|
-
return { kind:
|
|
130
|
-
case
|
|
131
|
-
return { kind:
|
|
132
|
-
case
|
|
126
|
+
case 'timer':
|
|
127
|
+
return { kind: 'timer', cron: '*/10 * * * * *' } satisfies TimerTrigger;
|
|
128
|
+
case 'webhook':
|
|
129
|
+
return { kind: 'webhook', method: 'POST' } satisfies WebhookTrigger;
|
|
130
|
+
case 'subscription':
|
|
131
|
+
return { kind: 'subscription', query: Query.select(Filter.nothing()).ast } satisfies SubscriptionTrigger;
|
|
132
|
+
case 'email':
|
|
133
|
+
return { kind: 'email' } satisfies EmailTrigger;
|
|
134
|
+
case 'queue': {
|
|
133
135
|
const dxn = new DXN(DXN.kind.QUEUE, ['data', props.spaceId ?? SpaceId.random(), ObjectId.random()]).toString();
|
|
134
|
-
return { kind:
|
|
136
|
+
return { kind: 'queue', queue: dxn } satisfies QueueTrigger;
|
|
135
137
|
}
|
|
136
138
|
}
|
|
137
139
|
};
|
|
138
140
|
|
|
139
141
|
const getOutputSchema = (kind: TriggerKind) => {
|
|
140
142
|
const kindToSchema: Record<TriggerKind, Schema.Schema<any>> = {
|
|
141
|
-
[
|
|
142
|
-
[
|
|
143
|
-
[
|
|
144
|
-
[
|
|
145
|
-
[
|
|
143
|
+
['email']: EmailTriggerOutput,
|
|
144
|
+
['subscription']: SubscriptionTriggerOutput,
|
|
145
|
+
['timer']: TimerTriggerOutput,
|
|
146
|
+
['webhook']: WebhookTriggerOutput,
|
|
147
|
+
['queue']: QueueTriggerOutput,
|
|
146
148
|
};
|
|
147
149
|
return kindToSchema[kind];
|
|
148
150
|
};
|
|
@@ -154,9 +156,5 @@ export const triggerShape: ShapeDef<TriggerShape> = {
|
|
|
154
156
|
component: TriggerComponent,
|
|
155
157
|
createShape: createTrigger,
|
|
156
158
|
getAnchors: (shape) =>
|
|
157
|
-
createFunctionAnchors(
|
|
158
|
-
shape,
|
|
159
|
-
VoidInput,
|
|
160
|
-
getOutputSchema(shape.functionTrigger?.target?.spec?.kind ?? TriggerKind.Email),
|
|
161
|
-
),
|
|
159
|
+
createFunctionAnchors(shape, VoidInput, getOutputSchema(shape.functionTrigger?.target?.spec?.kind ?? 'email')),
|
|
162
160
|
};
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
// Copyright 2025 DXOS.org
|
|
3
3
|
//
|
|
4
4
|
|
|
5
|
-
import React, {
|
|
5
|
+
import React, { type PropsWithChildren, type ReactNode, forwardRef } from 'react';
|
|
6
6
|
|
|
7
7
|
import { invariant } from '@dxos/invariant';
|
|
8
8
|
import { Icon, IconButton, type ThemedClassName } from '@dxos/react-ui';
|
|
@@ -35,7 +35,7 @@ export const Box = forwardRef<HTMLDivElement, BoxProps>(
|
|
|
35
35
|
<div ref={forwardedRef} className='flex flex-col h-full w-full justify-between'>
|
|
36
36
|
<div className='flex shrink-0 w-full justify-between items-center h-[32px] bg-hoverSurface'>
|
|
37
37
|
<Icon icon={icon} classNames='mx-2' />
|
|
38
|
-
<div className='grow text-sm truncate'>{debug ? shape.type : name ?? shape.text ?? title}</div>
|
|
38
|
+
<div className='grow text-sm truncate'>{debug ? shape.type : (name ?? shape.text ?? title)}</div>
|
|
39
39
|
<IconButton
|
|
40
40
|
classNames='p-1 text-green-500'
|
|
41
41
|
variant='ghost'
|
|
@@ -8,7 +8,7 @@ import React, { type JSX, useRef, useState } from 'react';
|
|
|
8
8
|
import { VoidInput, VoidOutput } from '@dxos/conductor';
|
|
9
9
|
import { useCanvasContext } from '@dxos/react-ui-canvas';
|
|
10
10
|
import { type Polygon, type Shape } from '@dxos/react-ui-canvas-editor';
|
|
11
|
-
import {
|
|
11
|
+
import { createAnchors, getParentShapeElement, rowHeight } from '@dxos/react-ui-canvas-editor';
|
|
12
12
|
|
|
13
13
|
import { Box, type BoxProps, footerHeight, headerHeight } from '../common';
|
|
14
14
|
import { createAnchorId, getProperties } from '../defs';
|
package/src/testing/circuits.ts
CHANGED
|
@@ -2,9 +2,9 @@
|
|
|
2
2
|
// Copyright 2024 DXOS.org
|
|
3
3
|
//
|
|
4
4
|
|
|
5
|
-
import { createSystemPrompt } from '@dxos/
|
|
5
|
+
import { createSystemPrompt } from '@dxos/assistant';
|
|
6
6
|
import { ObjectId } from '@dxos/echo-schema';
|
|
7
|
-
import type
|
|
7
|
+
import { type ServiceContainer } from '@dxos/functions';
|
|
8
8
|
import { DXN, SpaceId } from '@dxos/keys';
|
|
9
9
|
import { type Dimension, type Point } from '@dxos/react-ui-canvas';
|
|
10
10
|
import { CanvasGraphModel, createNote, pointMultiply, pointsToRect, rectToPoints } from '@dxos/react-ui-canvas-editor';
|
|
@@ -207,7 +207,7 @@ export const createArtifactCircuit = () => {
|
|
|
207
207
|
model.builder.call((builder) => {
|
|
208
208
|
const prompt = model.createNode(
|
|
209
209
|
createTemplate({
|
|
210
|
-
text: createSystemPrompt(),
|
|
210
|
+
text: createSystemPrompt({}),
|
|
211
211
|
...position({ x: -10, y: -5, width: 8, height: 18 }),
|
|
212
212
|
}),
|
|
213
213
|
);
|
|
@@ -262,7 +262,7 @@ export const createGptCircuit = (options: {
|
|
|
262
262
|
if (options.instructions) {
|
|
263
263
|
const prompt = model.createNode(
|
|
264
264
|
createTemplate({
|
|
265
|
-
text: createSystemPrompt(),
|
|
265
|
+
text: createSystemPrompt({}),
|
|
266
266
|
...position({ x: -18, y: -12, width: 8, height: 10 }),
|
|
267
267
|
}),
|
|
268
268
|
);
|