@dxos/react-ui-canvas-compute 0.9.1-staging.ee54ba693a → 0.11.0
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/index.mjs +2164 -0
- package/dist/lib/index.mjs.map +1 -0
- package/dist/types/src/compute.stories.d.ts.map +1 -1
- package/dist/types/src/shapes/Append.d.ts +2 -51
- package/dist/types/src/shapes/Append.d.ts.map +1 -1
- package/dist/types/src/shapes/Array.d.ts +2 -34
- package/dist/types/src/shapes/Array.d.ts.map +1 -1
- package/dist/types/src/shapes/Audio.d.ts +2 -51
- package/dist/types/src/shapes/Audio.d.ts.map +1 -1
- package/dist/types/src/shapes/Beacon.d.ts +2 -51
- package/dist/types/src/shapes/Beacon.d.ts.map +1 -1
- package/dist/types/src/shapes/Chat.d.ts +2 -51
- package/dist/types/src/shapes/Chat.d.ts.map +1 -1
- package/dist/types/src/shapes/Constant.d.ts +2 -53
- package/dist/types/src/shapes/Constant.d.ts.map +1 -1
- package/dist/types/src/shapes/Database.d.ts +2 -51
- package/dist/types/src/shapes/Database.d.ts.map +1 -1
- package/dist/types/src/shapes/Feed.d.ts +2 -51
- package/dist/types/src/shapes/Feed.d.ts.map +1 -1
- package/dist/types/src/shapes/Function.d.ts +7 -50
- package/dist/types/src/shapes/Function.d.ts.map +1 -1
- package/dist/types/src/shapes/Gpt.d.ts +2 -51
- package/dist/types/src/shapes/Gpt.d.ts.map +1 -1
- package/dist/types/src/shapes/GptRealtime.d.ts +2 -51
- package/dist/types/src/shapes/GptRealtime.d.ts.map +1 -1
- package/dist/types/src/shapes/Json.d.ts +2 -101
- package/dist/types/src/shapes/Json.d.ts.map +1 -1
- package/dist/types/src/shapes/Logic.d.ts +2 -103
- package/dist/types/src/shapes/Logic.d.ts.map +1 -1
- package/dist/types/src/shapes/RNG.d.ts +2 -55
- package/dist/types/src/shapes/RNG.d.ts.map +1 -1
- package/dist/types/src/shapes/Scope.d.ts +2 -51
- package/dist/types/src/shapes/Scope.d.ts.map +1 -1
- package/dist/types/src/shapes/Surface.d.ts +2 -51
- package/dist/types/src/shapes/Surface.d.ts.map +1 -1
- package/dist/types/src/shapes/Switch.d.ts +2 -51
- package/dist/types/src/shapes/Switch.d.ts.map +1 -1
- package/dist/types/src/shapes/Table.d.ts +2 -51
- package/dist/types/src/shapes/Table.d.ts.map +1 -1
- package/dist/types/src/shapes/Template.d.ts +4 -55
- package/dist/types/src/shapes/Template.d.ts.map +1 -1
- package/dist/types/src/shapes/Text.d.ts +2 -51
- package/dist/types/src/shapes/Text.d.ts.map +1 -1
- package/dist/types/src/shapes/TextToImage.d.ts +2 -51
- package/dist/types/src/shapes/TextToImage.d.ts.map +1 -1
- package/dist/types/src/shapes/Thread.d.ts +2 -51
- package/dist/types/src/shapes/Thread.d.ts.map +1 -1
- package/dist/types/src/shapes/Trigger.d.ts +2 -17
- package/dist/types/src/shapes/Trigger.d.ts.map +1 -1
- package/dist/types/src/shapes/append-def.d.ts +52 -0
- package/dist/types/src/shapes/append-def.d.ts.map +1 -0
- package/dist/types/src/shapes/array-def.d.ts +35 -0
- package/dist/types/src/shapes/array-def.d.ts.map +1 -0
- package/dist/types/src/shapes/audio-def.d.ts +52 -0
- package/dist/types/src/shapes/audio-def.d.ts.map +1 -0
- package/dist/types/src/shapes/beacon-def.d.ts +52 -0
- package/dist/types/src/shapes/beacon-def.d.ts.map +1 -0
- package/dist/types/src/shapes/chat-def.d.ts +52 -0
- package/dist/types/src/shapes/chat-def.d.ts.map +1 -0
- package/dist/types/src/shapes/common/Box.d.ts +0 -2
- package/dist/types/src/shapes/common/Box.d.ts.map +1 -1
- package/dist/types/src/shapes/common/FunctionBody.d.ts +1 -3
- package/dist/types/src/shapes/common/FunctionBody.d.ts.map +1 -1
- package/dist/types/src/shapes/common/box-defs.d.ts +3 -0
- package/dist/types/src/shapes/common/box-defs.d.ts.map +1 -0
- package/dist/types/src/shapes/common/function-anchors.d.ts +7 -0
- package/dist/types/src/shapes/common/function-anchors.d.ts.map +1 -0
- package/dist/types/src/shapes/common/index.d.ts +2 -0
- package/dist/types/src/shapes/common/index.d.ts.map +1 -1
- package/dist/types/src/shapes/constant-def.d.ts +54 -0
- package/dist/types/src/shapes/constant-def.d.ts.map +1 -0
- package/dist/types/src/shapes/database-def.d.ts +52 -0
- package/dist/types/src/shapes/database-def.d.ts.map +1 -0
- package/dist/types/src/shapes/feed-def.d.ts +52 -0
- package/dist/types/src/shapes/feed-def.d.ts.map +1 -0
- package/dist/types/src/shapes/function-def.d.ts +52 -0
- package/dist/types/src/shapes/function-def.d.ts.map +1 -0
- package/dist/types/src/shapes/gpt-def.d.ts +52 -0
- package/dist/types/src/shapes/gpt-def.d.ts.map +1 -0
- package/dist/types/src/shapes/gpt-realtime-def.d.ts +52 -0
- package/dist/types/src/shapes/gpt-realtime-def.d.ts.map +1 -0
- package/dist/types/src/shapes/index.d.ts +23 -0
- package/dist/types/src/shapes/index.d.ts.map +1 -1
- package/dist/types/src/shapes/json-def.d.ts +102 -0
- package/dist/types/src/shapes/json-def.d.ts.map +1 -0
- package/dist/types/src/shapes/logic-def.d.ts +104 -0
- package/dist/types/src/shapes/logic-def.d.ts.map +1 -0
- package/dist/types/src/shapes/rng-def.d.ts +56 -0
- package/dist/types/src/shapes/rng-def.d.ts.map +1 -0
- package/dist/types/src/shapes/scope-def.d.ts +52 -0
- package/dist/types/src/shapes/scope-def.d.ts.map +1 -0
- package/dist/types/src/shapes/surface-def.d.ts +52 -0
- package/dist/types/src/shapes/surface-def.d.ts.map +1 -0
- package/dist/types/src/shapes/switch-def.d.ts +52 -0
- package/dist/types/src/shapes/switch-def.d.ts.map +1 -0
- package/dist/types/src/shapes/table-def.d.ts +52 -0
- package/dist/types/src/shapes/table-def.d.ts.map +1 -0
- package/dist/types/src/shapes/template-def.d.ts +56 -0
- package/dist/types/src/shapes/template-def.d.ts.map +1 -0
- package/dist/types/src/shapes/text-def.d.ts +52 -0
- package/dist/types/src/shapes/text-def.d.ts.map +1 -0
- package/dist/types/src/shapes/text-to-image-def.d.ts +52 -0
- package/dist/types/src/shapes/text-to-image-def.d.ts.map +1 -0
- package/dist/types/src/shapes/thread-def.d.ts +52 -0
- package/dist/types/src/shapes/thread-def.d.ts.map +1 -0
- package/dist/types/src/shapes/trigger-def.d.ts +18 -0
- package/dist/types/src/shapes/trigger-def.d.ts.map +1 -0
- package/dist/types/src/shapes/trigger-spec.d.ts +9 -0
- package/dist/types/src/shapes/trigger-spec.d.ts.map +1 -0
- package/dist/types/tsconfig.tsbuildinfo +1 -1
- package/package.json +43 -46
- package/src/compute.stories.tsx +1 -1
- package/src/shapes/Append.tsx +3 -31
- package/src/shapes/Array.tsx +3 -43
- package/src/shapes/Audio.tsx +2 -26
- package/src/shapes/Beacon.tsx +2 -29
- package/src/shapes/Chat.tsx +1 -36
- package/src/shapes/Constant.tsx +1 -37
- package/src/shapes/Database.tsx +2 -27
- package/src/shapes/Feed.tsx +4 -35
- package/src/shapes/Function.tsx +4 -38
- package/src/shapes/Gpt.tsx +3 -33
- package/src/shapes/GptRealtime.tsx +2 -36
- package/src/shapes/Json.tsx +4 -70
- package/src/shapes/Logic.tsx +3 -58
- package/src/shapes/RNG.tsx +2 -32
- package/src/shapes/Scope.tsx +2 -31
- package/src/shapes/Surface.tsx +2 -32
- package/src/shapes/Switch.tsx +2 -26
- package/src/shapes/Table.tsx +3 -34
- package/src/shapes/Template.tsx +6 -36
- package/src/shapes/Text.tsx +2 -28
- package/src/shapes/TextToImage.tsx +2 -27
- package/src/shapes/Thread.tsx +3 -34
- package/src/shapes/Trigger.tsx +6 -79
- package/src/shapes/append-def.ts +42 -0
- package/src/shapes/array-def.ts +54 -0
- package/src/shapes/audio-def.ts +36 -0
- package/src/shapes/beacon-def.ts +39 -0
- package/src/shapes/chat-def.tsx +47 -0
- package/src/shapes/common/Box.tsx +2 -5
- package/src/shapes/common/FunctionBody.tsx +6 -25
- package/src/shapes/common/box-defs.ts +10 -0
- package/src/shapes/common/function-anchors.ts +37 -0
- package/src/shapes/common/index.ts +3 -0
- package/src/shapes/constant-def.tsx +48 -0
- package/src/shapes/database-def.ts +37 -0
- package/src/shapes/feed-def.ts +44 -0
- package/src/shapes/function-def.ts +46 -0
- package/src/shapes/gpt-def.ts +43 -0
- package/src/shapes/gpt-realtime-def.ts +46 -0
- package/src/shapes/index.ts +25 -0
- package/src/shapes/json-def.ts +80 -0
- package/src/shapes/logic-def.ts +69 -0
- package/src/shapes/rng-def.ts +42 -0
- package/src/shapes/scope-def.ts +41 -0
- package/src/shapes/surface-def.ts +42 -0
- package/src/shapes/switch-def.ts +36 -0
- package/src/shapes/table-def.ts +45 -0
- package/src/shapes/template-def.ts +48 -0
- package/src/shapes/text-def.ts +38 -0
- package/src/shapes/text-to-image-def.ts +37 -0
- package/src/shapes/thread-def.ts +45 -0
- package/src/shapes/trigger-def.ts +63 -0
- package/src/shapes/trigger-spec.ts +44 -0
- package/dist/lib/browser/index.mjs +0 -2596
- package/dist/lib/browser/index.mjs.map +0 -7
- package/dist/lib/browser/meta.json +0 -1
- package/dist/lib/node-esm/index.mjs +0 -2596
- package/dist/lib/node-esm/index.mjs.map +0 -7
- package/dist/lib/node-esm/meta.json +0 -1
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
//
|
|
2
|
+
// Copyright 2024 DXOS.org
|
|
3
|
+
//
|
|
4
|
+
|
|
5
|
+
import * as Schema from 'effect/Schema';
|
|
6
|
+
|
|
7
|
+
import { createInputSchema, createOutputSchema } from '@dxos/conductor';
|
|
8
|
+
import { Type } from '@dxos/echo';
|
|
9
|
+
import { type ShapeDef } from '@dxos/react-ui-canvas-editor';
|
|
10
|
+
import { Message } from '@dxos/types';
|
|
11
|
+
|
|
12
|
+
import { createFunctionAnchors } from './common';
|
|
13
|
+
import { ComputeShape, type CreateShapeProps, createShape } from './defs';
|
|
14
|
+
import { ThreadComponent } from './Thread';
|
|
15
|
+
|
|
16
|
+
// Kept out of `Thread.tsx`: react-refresh only fast-refreshes a module whose
|
|
17
|
+
// exports are all components, so values exported beside them force a full page reload on every edit.
|
|
18
|
+
|
|
19
|
+
const InputSchema = createInputSchema(Type.getSchema(Message.Message));
|
|
20
|
+
|
|
21
|
+
const OutputSchema = createOutputSchema(Schema.mutable(Schema.Array(Type.getSchema(Message.Message))));
|
|
22
|
+
|
|
23
|
+
export const ThreadShape = Schema.extend(
|
|
24
|
+
ComputeShape,
|
|
25
|
+
Schema.Struct({
|
|
26
|
+
type: Schema.Literal('thread'),
|
|
27
|
+
}),
|
|
28
|
+
);
|
|
29
|
+
|
|
30
|
+
export type ThreadShape = Schema.Schema.Type<typeof ThreadShape>;
|
|
31
|
+
|
|
32
|
+
export type CreateThreadProps = CreateShapeProps<ThreadShape>;
|
|
33
|
+
|
|
34
|
+
export const createThread = (props: CreateThreadProps) =>
|
|
35
|
+
createShape<ThreadShape>({ type: 'thread', size: { width: 384, height: 384 }, ...props });
|
|
36
|
+
|
|
37
|
+
export const threadShape: ShapeDef<ThreadShape> = {
|
|
38
|
+
type: 'thread',
|
|
39
|
+
name: 'Thread',
|
|
40
|
+
icon: 'ph--chats-circle--regular',
|
|
41
|
+
component: ThreadComponent,
|
|
42
|
+
createShape: createThread,
|
|
43
|
+
getAnchors: (shape) => createFunctionAnchors(shape, InputSchema, OutputSchema),
|
|
44
|
+
resizable: true,
|
|
45
|
+
};
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
//
|
|
2
|
+
// Copyright 2024 DXOS.org
|
|
3
|
+
//
|
|
4
|
+
|
|
5
|
+
import * as Schema from 'effect/Schema';
|
|
6
|
+
|
|
7
|
+
import { Trigger, TriggerEvent } from '@dxos/compute';
|
|
8
|
+
import { VoidInput } from '@dxos/conductor';
|
|
9
|
+
import { Ref } from '@dxos/echo';
|
|
10
|
+
import { type SpaceId } from '@dxos/keys';
|
|
11
|
+
import { type ShapeDef } from '@dxos/react-ui-canvas-editor';
|
|
12
|
+
|
|
13
|
+
import { createFunctionAnchors, getHeight } from './common';
|
|
14
|
+
import { ComputeShape, type CreateShapeProps, createShape } from './defs';
|
|
15
|
+
import { TriggerComponent } from './Trigger';
|
|
16
|
+
import { createTriggerSpec, getOutputSchema } from './trigger-spec';
|
|
17
|
+
|
|
18
|
+
// Kept out of `Trigger.tsx`: react-refresh only fast-refreshes a module whose
|
|
19
|
+
// exports are all components, so values exported beside them force a full page reload on every edit.
|
|
20
|
+
|
|
21
|
+
const TriggerShapeSchema = Schema.extend(
|
|
22
|
+
ComputeShape,
|
|
23
|
+
Schema.Struct({
|
|
24
|
+
type: Schema.Literal('trigger'),
|
|
25
|
+
functionTrigger: Schema.optional(Ref.Ref(Trigger.Trigger)),
|
|
26
|
+
}),
|
|
27
|
+
);
|
|
28
|
+
|
|
29
|
+
// TODO(wittjosiah): Try to clean up this type inference.
|
|
30
|
+
export interface TriggerShape extends ComputeShape {
|
|
31
|
+
type: 'trigger';
|
|
32
|
+
functionTrigger?: Ref.Ref<Trigger.Trigger>;
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
export const TriggerShape: Schema.Schema<TriggerShape> = TriggerShapeSchema as any;
|
|
36
|
+
|
|
37
|
+
export type CreateTriggerProps = CreateShapeProps<Omit<TriggerShape, 'functionTrigger'>> & {
|
|
38
|
+
spaceId?: SpaceId;
|
|
39
|
+
triggerKind?: Trigger.Kind;
|
|
40
|
+
};
|
|
41
|
+
|
|
42
|
+
export const createTrigger = (props: CreateTriggerProps): TriggerShape => {
|
|
43
|
+
const functionTrigger = Trigger.make({
|
|
44
|
+
enabled: true,
|
|
45
|
+
spec: createTriggerSpec(props),
|
|
46
|
+
});
|
|
47
|
+
return createShape<TriggerShape>({
|
|
48
|
+
type: 'trigger',
|
|
49
|
+
functionTrigger: Ref.make(functionTrigger),
|
|
50
|
+
size: { width: 192, height: getHeight(TriggerEvent.EmailEvent) },
|
|
51
|
+
...props,
|
|
52
|
+
});
|
|
53
|
+
};
|
|
54
|
+
|
|
55
|
+
export const triggerShape: ShapeDef<TriggerShape> = {
|
|
56
|
+
type: 'trigger',
|
|
57
|
+
name: 'Trigger',
|
|
58
|
+
icon: 'ph--lightning--regular',
|
|
59
|
+
component: TriggerComponent,
|
|
60
|
+
createShape: createTrigger,
|
|
61
|
+
getAnchors: (shape) =>
|
|
62
|
+
createFunctionAnchors(shape, VoidInput, getOutputSchema(shape.functionTrigger?.target?.spec?.kind ?? 'email')),
|
|
63
|
+
};
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
//
|
|
2
|
+
// Copyright 2024 DXOS.org
|
|
3
|
+
//
|
|
4
|
+
|
|
5
|
+
import * as Schema from 'effect/Schema';
|
|
6
|
+
|
|
7
|
+
import { Trigger, TriggerEvent } from '@dxos/compute';
|
|
8
|
+
import { Filter, Query } from '@dxos/echo';
|
|
9
|
+
import { type SpaceId } from '@dxos/keys';
|
|
10
|
+
|
|
11
|
+
// Kept out of `Trigger.tsx` and shared with `trigger-def.ts`: react-refresh only fast-refreshes a
|
|
12
|
+
// module whose exports are all components, and a value import back from the def module would close
|
|
13
|
+
// a runtime cycle.
|
|
14
|
+
|
|
15
|
+
export const createTriggerSpec = (props: { triggerKind?: Trigger.Kind; spaceId?: SpaceId }): Trigger.Spec => {
|
|
16
|
+
const kind = props.triggerKind ?? 'email';
|
|
17
|
+
switch (kind) {
|
|
18
|
+
case 'timer':
|
|
19
|
+
return Trigger.specTimer('*/10 * * * * *');
|
|
20
|
+
case 'webhook':
|
|
21
|
+
return Trigger.specWebhook({ method: 'POST' });
|
|
22
|
+
case 'subscription':
|
|
23
|
+
return Trigger.specSubscription(Query.select(Filter.nothing()));
|
|
24
|
+
case 'email':
|
|
25
|
+
return Trigger.specEmail();
|
|
26
|
+
case 'feed': {
|
|
27
|
+
return { kind: 'feed' } satisfies Trigger.FeedSpec;
|
|
28
|
+
}
|
|
29
|
+
case 'direct':
|
|
30
|
+
return Trigger.specDirect();
|
|
31
|
+
}
|
|
32
|
+
};
|
|
33
|
+
|
|
34
|
+
export const getOutputSchema = (kind: Trigger.Kind) => {
|
|
35
|
+
const kindToSchema: Record<Trigger.Kind, Schema.Schema<any>> = {
|
|
36
|
+
['email']: TriggerEvent.EmailEvent,
|
|
37
|
+
['subscription']: TriggerEvent.SubscriptionEvent,
|
|
38
|
+
['timer']: TriggerEvent.TimerEvent,
|
|
39
|
+
['webhook']: TriggerEvent.WebhookEvent,
|
|
40
|
+
['feed']: TriggerEvent.FeedEvent,
|
|
41
|
+
['direct']: TriggerEvent.DirectEvent,
|
|
42
|
+
};
|
|
43
|
+
return kindToSchema[kind];
|
|
44
|
+
};
|