@dxos/react-ui-canvas-compute 0.8.4-main.67995b8 → 0.8.4-main.70d3990
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 +227 -202
- package/dist/lib/browser/index.mjs.map +4 -4
- package/dist/lib/browser/meta.json +1 -1
- package/dist/lib/node-esm/index.mjs +227 -202
- 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 +12 -5
- package/dist/types/src/compute.stories.d.ts.map +1 -1
- package/dist/types/src/graph/controller.d.ts +12 -29
- 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 +2 -2
- package/dist/types/src/hooks/useComputeGraphController.d.ts.map +1 -1
- package/dist/types/src/hooks/useComputeNodeState.d.ts +2 -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/json.test.d.ts +1 -1
- package/dist/types/src/json.test.d.ts.map +1 -1
- package/dist/types/src/shapes/Append.d.ts +1 -1
- package/dist/types/src/shapes/Append.d.ts.map +1 -1
- package/dist/types/src/shapes/Array.d.ts +1 -1
- package/dist/types/src/shapes/Array.d.ts.map +1 -1
- package/dist/types/src/shapes/Audio.d.ts +1 -1
- package/dist/types/src/shapes/Audio.d.ts.map +1 -1
- package/dist/types/src/shapes/Beacon.d.ts +1 -1
- package/dist/types/src/shapes/Beacon.d.ts.map +1 -1
- package/dist/types/src/shapes/Boolean.d.ts +1 -1
- package/dist/types/src/shapes/Boolean.d.ts.map +1 -1
- package/dist/types/src/shapes/Chat.d.ts +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 +1 -1
- package/dist/types/src/shapes/Database.d.ts.map +1 -1
- package/dist/types/src/shapes/Function.d.ts +1 -1
- package/dist/types/src/shapes/Function.d.ts.map +1 -1
- package/dist/types/src/shapes/Gpt.d.ts +1 -1
- package/dist/types/src/shapes/Gpt.d.ts.map +1 -1
- package/dist/types/src/shapes/GptRealtime.d.ts +1 -1
- package/dist/types/src/shapes/GptRealtime.d.ts.map +1 -1
- package/dist/types/src/shapes/Json.d.ts +1 -1
- package/dist/types/src/shapes/Json.d.ts.map +1 -1
- package/dist/types/src/shapes/Logic.d.ts +1 -1
- package/dist/types/src/shapes/Logic.d.ts.map +1 -1
- package/dist/types/src/shapes/Queue.d.ts +1 -1
- package/dist/types/src/shapes/Queue.d.ts.map +1 -1
- package/dist/types/src/shapes/RNG.d.ts +1 -1
- package/dist/types/src/shapes/RNG.d.ts.map +1 -1
- package/dist/types/src/shapes/Scope.d.ts +1 -1
- package/dist/types/src/shapes/Scope.d.ts.map +1 -1
- package/dist/types/src/shapes/Surface.d.ts +1 -1
- package/dist/types/src/shapes/Surface.d.ts.map +1 -1
- package/dist/types/src/shapes/Switch.d.ts +1 -1
- package/dist/types/src/shapes/Switch.d.ts.map +1 -1
- package/dist/types/src/shapes/Table.d.ts +1 -1
- package/dist/types/src/shapes/Table.d.ts.map +1 -1
- package/dist/types/src/shapes/Template.d.ts +1 -1
- package/dist/types/src/shapes/Template.d.ts.map +1 -1
- package/dist/types/src/shapes/Text.d.ts +1 -1
- package/dist/types/src/shapes/Text.d.ts.map +1 -1
- package/dist/types/src/shapes/TextToImage.d.ts +1 -1
- package/dist/types/src/shapes/TextToImage.d.ts.map +1 -1
- package/dist/types/src/shapes/Thread.d.ts +1 -1
- package/dist/types/src/shapes/Thread.d.ts.map +1 -1
- package/dist/types/src/shapes/Trigger.d.ts +4 -33
- 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/shapes/common/FunctionBody.d.ts +1 -1
- package/dist/types/src/shapes/common/FunctionBody.d.ts.map +1 -1
- package/dist/types/src/shapes/defs.d.ts +2 -1
- package/dist/types/src/shapes/defs.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 +54 -51
- package/src/compute-layout.ts +1 -1
- package/src/compute.stories.tsx +19 -18
- package/src/graph/controller.ts +21 -9
- package/src/graph/node-defs.ts +6 -6
- package/src/hooks/useComputeGraphController.ts +2 -2
- package/src/hooks/useComputeNodeState.ts +7 -5
- package/src/hooks/useGraphMonitor.ts +3 -3
- package/src/json.test.ts +1 -1
- package/src/registry.ts +2 -2
- package/src/schema.test.ts +10 -10
- package/src/shapes/Append.tsx +3 -3
- package/src/shapes/Array.tsx +3 -3
- package/src/shapes/Audio.tsx +5 -4
- package/src/shapes/Beacon.tsx +5 -4
- package/src/shapes/Boolean.tsx +5 -5
- package/src/shapes/Chat.tsx +4 -3
- package/src/shapes/Constant.tsx +4 -3
- package/src/shapes/Database.tsx +2 -2
- package/src/shapes/Function.tsx +10 -9
- package/src/shapes/Gpt.tsx +8 -6
- package/src/shapes/GptRealtime.tsx +3 -3
- package/src/shapes/Json.tsx +4 -3
- package/src/shapes/Logic.tsx +3 -3
- package/src/shapes/Queue.tsx +6 -5
- package/src/shapes/RNG.tsx +9 -4
- package/src/shapes/Scope.tsx +6 -5
- package/src/shapes/Surface.tsx +10 -5
- package/src/shapes/Switch.tsx +5 -4
- package/src/shapes/Table.tsx +6 -6
- package/src/shapes/Template.tsx +6 -5
- package/src/shapes/Text.tsx +5 -4
- package/src/shapes/TextToImage.tsx +2 -2
- package/src/shapes/Thread.tsx +8 -8
- package/src/shapes/Trigger.tsx +42 -55
- package/src/shapes/common/Box.tsx +6 -6
- package/src/shapes/common/FunctionBody.tsx +5 -4
- package/src/shapes/common/TypeSelect.tsx +1 -1
- package/src/shapes/defs.ts +5 -4
- package/src/testing/circuits.ts +2 -3
|
@@ -1,94 +1,21 @@
|
|
|
1
1
|
import "@dxos/node-std/globals";
|
|
2
2
|
|
|
3
3
|
// src/graph/controller.ts
|
|
4
|
-
import
|
|
4
|
+
import * as Effect from "effect/Effect";
|
|
5
|
+
import * as Either from "effect/Either";
|
|
6
|
+
import * as Exit from "effect/Exit";
|
|
7
|
+
import * as Scope from "effect/Scope";
|
|
5
8
|
import { Event, synchronized } from "@dxos/async";
|
|
6
9
|
import { GraphExecutor, ValueBag, isNotExecuted } from "@dxos/conductor";
|
|
7
10
|
import { Resource } from "@dxos/context";
|
|
8
11
|
import { log } from "@dxos/log";
|
|
9
12
|
|
|
10
|
-
// src/graph/node-defs.ts
|
|
11
|
-
import { NODE_INPUT, NODE_OUTPUT, registry, getTemplateInputSchema } from "@dxos/conductor";
|
|
12
|
-
import { raise } from "@dxos/debug";
|
|
13
|
-
import { ObjectId, toJsonSchema } from "@dxos/echo-schema";
|
|
14
|
-
import { invariant } from "@dxos/invariant";
|
|
15
|
-
var __dxlog_file = "/__w/dxos/dxos/packages/ui/react-ui-canvas-compute/src/graph/node-defs.ts";
|
|
16
|
-
var resolveComputeNode = async (node) => {
|
|
17
|
-
const impl = registry[node.type];
|
|
18
|
-
invariant(impl, `Unknown node type: ${node.type}`, {
|
|
19
|
-
F: __dxlog_file,
|
|
20
|
-
L: 22,
|
|
21
|
-
S: void 0,
|
|
22
|
-
A: [
|
|
23
|
-
"impl",
|
|
24
|
-
"`Unknown node type: ${node.type}`"
|
|
25
|
-
]
|
|
26
|
-
});
|
|
27
|
-
return impl;
|
|
28
|
-
};
|
|
29
|
-
var isValidComputeNode = (type) => {
|
|
30
|
-
return nodeFactory[type] !== void 0;
|
|
31
|
-
};
|
|
32
|
-
var createComputeNode = (shape) => {
|
|
33
|
-
const type = shape.type ?? raise(new Error("Type not specified"));
|
|
34
|
-
const factory = nodeFactory[type] ?? raise(new Error(`Unknown shape type: ${type}`));
|
|
35
|
-
return factory(shape);
|
|
36
|
-
};
|
|
37
|
-
var nodeFactory = {
|
|
38
|
-
// System.
|
|
39
|
-
[NODE_INPUT]: () => createNode(NODE_INPUT),
|
|
40
|
-
[NODE_OUTPUT]: () => createNode(NODE_OUTPUT),
|
|
41
|
-
// Extensions.
|
|
42
|
-
["text-to-image"]: () => createNode("text-to-image"),
|
|
43
|
-
["and"]: () => createNode("and"),
|
|
44
|
-
["append"]: () => createNode("append"),
|
|
45
|
-
["audio"]: () => createNode("audio"),
|
|
46
|
-
["beacon"]: () => createNode("beacon"),
|
|
47
|
-
["chat"]: () => createNode("chat"),
|
|
48
|
-
["constant"]: (shape) => createNode("constant", {
|
|
49
|
-
value: shape.value
|
|
50
|
-
}),
|
|
51
|
-
["make-queue"]: () => createNode("make-queue"),
|
|
52
|
-
["database"]: () => createNode("database"),
|
|
53
|
-
["gpt"]: () => createNode("gpt"),
|
|
54
|
-
["gpt-realtime"]: () => createNode("gpt-realtime"),
|
|
55
|
-
["if"]: () => createNode("if"),
|
|
56
|
-
["if-else"]: () => createNode("if-else"),
|
|
57
|
-
["function"]: () => createNode("function"),
|
|
58
|
-
["json"]: () => createNode("json"),
|
|
59
|
-
["json-transform"]: () => createNode("json-transform"),
|
|
60
|
-
["not"]: () => createNode("not"),
|
|
61
|
-
["or"]: () => createNode("or"),
|
|
62
|
-
["queue"]: () => createNode("queue"),
|
|
63
|
-
["rng"]: () => createNode("rng"),
|
|
64
|
-
["reducer"]: () => createNode("reducer"),
|
|
65
|
-
["scope"]: () => createNode("scope"),
|
|
66
|
-
["surface"]: () => createNode("surface"),
|
|
67
|
-
["switch"]: () => createNode("switch"),
|
|
68
|
-
["template"]: (shape) => {
|
|
69
|
-
const node = createNode("template", {
|
|
70
|
-
valueType: shape.valueType,
|
|
71
|
-
value: shape.text
|
|
72
|
-
});
|
|
73
|
-
node.inputSchema = toJsonSchema(getTemplateInputSchema(node));
|
|
74
|
-
return node;
|
|
75
|
-
},
|
|
76
|
-
["text"]: () => createNode("text"),
|
|
77
|
-
["thread"]: () => createNode("thread"),
|
|
78
|
-
["trigger"]: () => createNode(NODE_INPUT)
|
|
79
|
-
};
|
|
80
|
-
var createNode = (type, props) => ({
|
|
81
|
-
id: ObjectId.random(),
|
|
82
|
-
type,
|
|
83
|
-
...props
|
|
84
|
-
});
|
|
85
|
-
|
|
86
13
|
// src/hooks/compute-context.ts
|
|
87
14
|
import { createContext, useContext } from "react";
|
|
88
|
-
import { raise
|
|
15
|
+
import { raise } from "@dxos/debug";
|
|
89
16
|
var ComputeContext = createContext(null);
|
|
90
17
|
var useComputeContext = () => {
|
|
91
|
-
return useContext(ComputeContext) ??
|
|
18
|
+
return useContext(ComputeContext) ?? raise(new Error("Missing ComputeContext"));
|
|
92
19
|
};
|
|
93
20
|
|
|
94
21
|
// src/hooks/useComputeGraphController.ts
|
|
@@ -142,15 +69,15 @@ var useComputeGraphController = ({ controller, graph, editorRef }) => {
|
|
|
142
69
|
};
|
|
143
70
|
|
|
144
71
|
// src/hooks/useComputeNodeState.ts
|
|
145
|
-
import
|
|
72
|
+
import * as Schema from "effect/Schema";
|
|
146
73
|
import { useCallback, useEffect as useEffect2, useState as useState2 } from "react";
|
|
147
|
-
import { invariant
|
|
148
|
-
var
|
|
74
|
+
import { invariant } from "@dxos/invariant";
|
|
75
|
+
var __dxlog_file = "/__w/dxos/dxos/packages/ui/react-ui-canvas-compute/src/hooks/useComputeNodeState.ts";
|
|
149
76
|
var useComputeNodeState = (shape) => {
|
|
150
77
|
const { controller } = useComputeContext();
|
|
151
|
-
|
|
152
|
-
F:
|
|
153
|
-
L:
|
|
78
|
+
invariant(controller, void 0, {
|
|
79
|
+
F: __dxlog_file,
|
|
80
|
+
L: 34,
|
|
154
81
|
S: void 0,
|
|
155
82
|
A: [
|
|
156
83
|
"controller",
|
|
@@ -161,9 +88,9 @@ var useComputeNodeState = (shape) => {
|
|
|
161
88
|
useEffect2(() => {
|
|
162
89
|
let disposed = false;
|
|
163
90
|
queueMicrotask(async () => {
|
|
164
|
-
|
|
165
|
-
F:
|
|
166
|
-
L:
|
|
91
|
+
invariant(shape.node, "Node not specified", {
|
|
92
|
+
F: __dxlog_file,
|
|
93
|
+
L: 40,
|
|
167
94
|
S: void 0,
|
|
168
95
|
A: [
|
|
169
96
|
"shape.node",
|
|
@@ -218,16 +145,16 @@ var useComputeNodeState = (shape) => {
|
|
|
218
145
|
// src/hooks/useGraphMonitor.ts
|
|
219
146
|
import { useMemo } from "react";
|
|
220
147
|
import { ComputeGraphModel, DEFAULT_INPUT, DEFAULT_OUTPUT } from "@dxos/conductor";
|
|
221
|
-
import {
|
|
222
|
-
import { invariant as
|
|
148
|
+
import { Obj, Ref } from "@dxos/echo";
|
|
149
|
+
import { invariant as invariant2 } from "@dxos/invariant";
|
|
223
150
|
import { getSpace } from "@dxos/react-client/echo";
|
|
224
151
|
import { isNonNullable } from "@dxos/util";
|
|
225
|
-
var
|
|
152
|
+
var __dxlog_file2 = "/__w/dxos/dxos/packages/ui/react-ui-canvas-compute/src/hooks/useGraphMonitor.ts";
|
|
226
153
|
var mapEdge = (graph, { source, target, output = DEFAULT_OUTPUT, input = DEFAULT_INPUT }) => {
|
|
227
154
|
const sourceNode = graph.findNode(source);
|
|
228
155
|
const targetNode = graph.findNode(target);
|
|
229
|
-
|
|
230
|
-
F:
|
|
156
|
+
invariant2(sourceNode?.node, void 0, {
|
|
157
|
+
F: __dxlog_file2,
|
|
231
158
|
L: 26,
|
|
232
159
|
S: void 0,
|
|
233
160
|
A: [
|
|
@@ -235,8 +162,8 @@ var mapEdge = (graph, { source, target, output = DEFAULT_OUTPUT, input = DEFAULT
|
|
|
235
162
|
""
|
|
236
163
|
]
|
|
237
164
|
});
|
|
238
|
-
|
|
239
|
-
F:
|
|
165
|
+
invariant2(targetNode?.node, void 0, {
|
|
166
|
+
F: __dxlog_file2,
|
|
240
167
|
L: 27,
|
|
241
168
|
S: void 0,
|
|
242
169
|
A: [
|
|
@@ -245,7 +172,7 @@ var mapEdge = (graph, { source, target, output = DEFAULT_OUTPUT, input = DEFAULT
|
|
|
245
172
|
]
|
|
246
173
|
});
|
|
247
174
|
return {
|
|
248
|
-
id:
|
|
175
|
+
id: Obj.ID.random(),
|
|
249
176
|
source: sourceNode.node,
|
|
250
177
|
target: targetNode.node,
|
|
251
178
|
output,
|
|
@@ -259,8 +186,8 @@ var useGraphMonitor = (model) => {
|
|
|
259
186
|
if (!model) {
|
|
260
187
|
return;
|
|
261
188
|
}
|
|
262
|
-
|
|
263
|
-
F:
|
|
189
|
+
invariant2(node.type, void 0, {
|
|
190
|
+
F: __dxlog_file2,
|
|
264
191
|
L: 52,
|
|
265
192
|
S: void 0,
|
|
266
193
|
A: [
|
|
@@ -317,8 +244,8 @@ var createComputeGraph = (graph) => {
|
|
|
317
244
|
};
|
|
318
245
|
var linkTriggerToCompute = (graph, computeNode, triggerData) => {
|
|
319
246
|
const functionTrigger = triggerData.functionTrigger?.target;
|
|
320
|
-
|
|
321
|
-
F:
|
|
247
|
+
invariant2(functionTrigger, void 0, {
|
|
248
|
+
F: __dxlog_file2,
|
|
322
249
|
L: 115,
|
|
323
250
|
S: void 0,
|
|
324
251
|
A: [
|
|
@@ -342,6 +269,82 @@ var deleteTriggerObjects = (computeGraph, deleted) => {
|
|
|
342
269
|
}
|
|
343
270
|
};
|
|
344
271
|
|
|
272
|
+
// src/graph/node-defs.ts
|
|
273
|
+
import { NODE_INPUT, NODE_OUTPUT, getTemplateInputSchema, registry } from "@dxos/conductor";
|
|
274
|
+
import { raise as raise2 } from "@dxos/debug";
|
|
275
|
+
import { JsonSchema, Obj as Obj2 } from "@dxos/echo";
|
|
276
|
+
import { invariant as invariant3 } from "@dxos/invariant";
|
|
277
|
+
var __dxlog_file3 = "/__w/dxos/dxos/packages/ui/react-ui-canvas-compute/src/graph/node-defs.ts";
|
|
278
|
+
var resolveComputeNode = async (node) => {
|
|
279
|
+
const impl = registry[node.type];
|
|
280
|
+
invariant3(impl, `Unknown node type: ${node.type}`, {
|
|
281
|
+
F: __dxlog_file3,
|
|
282
|
+
L: 22,
|
|
283
|
+
S: void 0,
|
|
284
|
+
A: [
|
|
285
|
+
"impl",
|
|
286
|
+
"`Unknown node type: ${node.type}`"
|
|
287
|
+
]
|
|
288
|
+
});
|
|
289
|
+
return impl;
|
|
290
|
+
};
|
|
291
|
+
var isValidComputeNode = (type) => {
|
|
292
|
+
return nodeFactory[type] !== void 0;
|
|
293
|
+
};
|
|
294
|
+
var createComputeNode = (shape) => {
|
|
295
|
+
const type = shape.type ?? raise2(new Error("Type not specified"));
|
|
296
|
+
const factory = nodeFactory[type] ?? raise2(new Error(`Unknown shape type: ${type}`));
|
|
297
|
+
return factory(shape);
|
|
298
|
+
};
|
|
299
|
+
var nodeFactory = {
|
|
300
|
+
// System.
|
|
301
|
+
[NODE_INPUT]: () => createNode(NODE_INPUT),
|
|
302
|
+
[NODE_OUTPUT]: () => createNode(NODE_OUTPUT),
|
|
303
|
+
// Extensions.
|
|
304
|
+
["text-to-image"]: () => createNode("text-to-image"),
|
|
305
|
+
["and"]: () => createNode("and"),
|
|
306
|
+
["append"]: () => createNode("append"),
|
|
307
|
+
["audio"]: () => createNode("audio"),
|
|
308
|
+
["beacon"]: () => createNode("beacon"),
|
|
309
|
+
["chat"]: () => createNode("chat"),
|
|
310
|
+
["constant"]: (shape) => createNode("constant", {
|
|
311
|
+
value: shape.value
|
|
312
|
+
}),
|
|
313
|
+
["make-queue"]: () => createNode("make-queue"),
|
|
314
|
+
["database"]: () => createNode("database"),
|
|
315
|
+
["gpt"]: () => createNode("gpt"),
|
|
316
|
+
["gpt-realtime"]: () => createNode("gpt-realtime"),
|
|
317
|
+
["if"]: () => createNode("if"),
|
|
318
|
+
["if-else"]: () => createNode("if-else"),
|
|
319
|
+
["function"]: () => createNode("function"),
|
|
320
|
+
["json"]: () => createNode("json"),
|
|
321
|
+
["json-transform"]: () => createNode("json-transform"),
|
|
322
|
+
["not"]: () => createNode("not"),
|
|
323
|
+
["or"]: () => createNode("or"),
|
|
324
|
+
["queue"]: () => createNode("queue"),
|
|
325
|
+
["rng"]: () => createNode("rng"),
|
|
326
|
+
["reducer"]: () => createNode("reducer"),
|
|
327
|
+
["scope"]: () => createNode("scope"),
|
|
328
|
+
["surface"]: () => createNode("surface"),
|
|
329
|
+
["switch"]: () => createNode("switch"),
|
|
330
|
+
["template"]: (shape) => {
|
|
331
|
+
const node = createNode("template", {
|
|
332
|
+
valueType: shape.valueType,
|
|
333
|
+
value: shape.text
|
|
334
|
+
});
|
|
335
|
+
node.inputSchema = JsonSchema.toJsonSchema(getTemplateInputSchema(node));
|
|
336
|
+
return node;
|
|
337
|
+
},
|
|
338
|
+
["text"]: () => createNode("text"),
|
|
339
|
+
["thread"]: () => createNode("thread"),
|
|
340
|
+
["trigger"]: () => createNode(NODE_INPUT)
|
|
341
|
+
};
|
|
342
|
+
var createNode = (type, props) => ({
|
|
343
|
+
id: Obj2.ID.random(),
|
|
344
|
+
type,
|
|
345
|
+
...props
|
|
346
|
+
});
|
|
347
|
+
|
|
345
348
|
// src/graph/controller.ts
|
|
346
349
|
function _ts_decorate(decorators, target, key, desc) {
|
|
347
350
|
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
@@ -365,10 +368,28 @@ var createComputeGraphController = (graph, serviceContainer) => {
|
|
|
365
368
|
};
|
|
366
369
|
};
|
|
367
370
|
var ComputeGraphController = class extends Resource {
|
|
371
|
+
_serviceContainer;
|
|
372
|
+
_graph;
|
|
373
|
+
_executor = new GraphExecutor({
|
|
374
|
+
computeNodeResolver: (node) => resolveComputeNode(node)
|
|
375
|
+
});
|
|
376
|
+
_diagnostics = [];
|
|
377
|
+
/**
|
|
378
|
+
* Canvas force-sets outputs of those nodes.
|
|
379
|
+
*/
|
|
380
|
+
_forcedOutputs = {};
|
|
381
|
+
/**
|
|
382
|
+
* Runtime state of the execution graph.
|
|
383
|
+
*/
|
|
384
|
+
_runtimeStateInputs = {};
|
|
385
|
+
_runtimeStateOutputs = {};
|
|
386
|
+
// TODO(burdon): Remove? Make state reactive?
|
|
387
|
+
update = new Event();
|
|
388
|
+
/** Computed result. */
|
|
389
|
+
output = new Event();
|
|
390
|
+
events = new Event();
|
|
368
391
|
constructor(_serviceContainer, _graph) {
|
|
369
|
-
super(), this._serviceContainer = _serviceContainer, this._graph = _graph
|
|
370
|
-
computeNodeResolver: (node) => resolveComputeNode(node)
|
|
371
|
-
}), this._diagnostics = [], this._forcedOutputs = {}, this._runtimeStateInputs = {}, this._runtimeStateOutputs = {}, this.update = new Event(), this.output = new Event(), this.events = new Event();
|
|
392
|
+
super(), this._serviceContainer = _serviceContainer, this._graph = _graph;
|
|
372
393
|
}
|
|
373
394
|
toJSON() {
|
|
374
395
|
return {
|
|
@@ -438,7 +459,7 @@ var ComputeGraphController = class extends Resource {
|
|
|
438
459
|
} catch (err) {
|
|
439
460
|
log.catch(err, void 0, {
|
|
440
461
|
F: __dxlog_file4,
|
|
441
|
-
L:
|
|
462
|
+
L: 210,
|
|
442
463
|
S: this,
|
|
443
464
|
C: (f, a) => f(...a)
|
|
444
465
|
});
|
|
@@ -532,7 +553,7 @@ var ComputeGraphController = class extends Resource {
|
|
|
532
553
|
event
|
|
533
554
|
}, {
|
|
534
555
|
F: __dxlog_file4,
|
|
535
|
-
L:
|
|
556
|
+
L: 346,
|
|
536
557
|
S: this,
|
|
537
558
|
C: (f, a) => f(...a)
|
|
538
559
|
});
|
|
@@ -636,9 +657,9 @@ var Box = /* @__PURE__ */ forwardRef(({ children, classNames, shape, title, stat
|
|
|
636
657
|
const { debug } = useEditorContext();
|
|
637
658
|
return /* @__PURE__ */ React.createElement("div", {
|
|
638
659
|
ref: forwardedRef,
|
|
639
|
-
className: "flex flex-col
|
|
660
|
+
className: "flex flex-col bs-full is-full justify-between"
|
|
640
661
|
}, /* @__PURE__ */ React.createElement("div", {
|
|
641
|
-
className: "flex shrink-0
|
|
662
|
+
className: "flex shrink-0 is-full justify-between items-center bs-[32px] bg-hoverSurface"
|
|
642
663
|
}, /* @__PURE__ */ React.createElement(Icon, {
|
|
643
664
|
icon,
|
|
644
665
|
classNames: "mx-2"
|
|
@@ -657,11 +678,11 @@ var Box = /* @__PURE__ */ forwardRef(({ children, classNames, shape, title, stat
|
|
|
657
678
|
onAction?.("run");
|
|
658
679
|
}
|
|
659
680
|
})), /* @__PURE__ */ React.createElement("div", {
|
|
660
|
-
className: mx("flex flex-col
|
|
681
|
+
className: mx("flex flex-col bs-full grow overflow-hidden", classNames)
|
|
661
682
|
}, children), /* @__PURE__ */ React.createElement("div", {
|
|
662
|
-
className: "flex shrink-0
|
|
683
|
+
className: "flex shrink-0 is-full justify-between items-center bs-[32px] bg-hoverSurface"
|
|
663
684
|
}, /* @__PURE__ */ React.createElement("div", {
|
|
664
|
-
className: "grow
|
|
685
|
+
className: "grow pli-2 text-sm truncate"
|
|
665
686
|
}, debug ? shape.id : status), openable && /* @__PURE__ */ React.createElement(IconButton, {
|
|
666
687
|
classNames: "p-1",
|
|
667
688
|
variant: "ghost",
|
|
@@ -681,16 +702,17 @@ var Box = /* @__PURE__ */ forwardRef(({ children, classNames, shape, title, stat
|
|
|
681
702
|
|
|
682
703
|
// src/shapes/common/FunctionBody.tsx
|
|
683
704
|
import { useSignals as _useSignals2 } from "@preact-signals/safe-react/tracking";
|
|
684
|
-
import
|
|
705
|
+
import * as SchemaAST2 from "effect/SchemaAST";
|
|
685
706
|
import React2, { useRef, useState as useState3 } from "react";
|
|
686
707
|
import { VoidInput, VoidOutput } from "@dxos/conductor";
|
|
687
708
|
import { useCanvasContext } from "@dxos/react-ui-canvas";
|
|
688
|
-
import {
|
|
709
|
+
import { createAnchors, getParentShapeElement, rowHeight } from "@dxos/react-ui-canvas-editor";
|
|
689
710
|
|
|
690
711
|
// src/shapes/defs.ts
|
|
691
|
-
import
|
|
712
|
+
import * as Schema2 from "effect/Schema";
|
|
713
|
+
import * as SchemaAST from "effect/SchemaAST";
|
|
692
714
|
import { DEFAULT_INPUT as DEFAULT_INPUT2, DEFAULT_OUTPUT as DEFAULT_OUTPUT2 } from "@dxos/conductor";
|
|
693
|
-
import {
|
|
715
|
+
import { Obj as Obj3 } from "@dxos/echo";
|
|
694
716
|
import { Polygon } from "@dxos/react-ui-canvas-editor";
|
|
695
717
|
var getProperties = (ast) => SchemaAST.getPropertySignatures(ast).map(({ name }) => ({
|
|
696
718
|
name: name.toString()
|
|
@@ -708,13 +730,13 @@ var parseAnchorId = (id) => {
|
|
|
708
730
|
};
|
|
709
731
|
var ComputeShape = Schema2.extend(Polygon, Schema2.Struct({
|
|
710
732
|
// TODO(burdon): Rename computeNode?
|
|
711
|
-
node: Schema2.optional(
|
|
733
|
+
node: Schema2.optional(Obj3.ID.annotations({
|
|
712
734
|
description: "Compute node id"
|
|
713
735
|
}))
|
|
714
736
|
}).pipe(Schema2.mutable));
|
|
715
737
|
var createShape = ({ id, ...rest }) => {
|
|
716
738
|
return {
|
|
717
|
-
id: id ??
|
|
739
|
+
id: id ?? Obj3.ID.random(),
|
|
718
740
|
...rest
|
|
719
741
|
};
|
|
720
742
|
};
|
|
@@ -769,7 +791,7 @@ var FunctionBody = ({ shape, name, content, inputSchema = VoidInput, outputSchem
|
|
|
769
791
|
className: "flex flex-col"
|
|
770
792
|
}, inputs?.map(({ name: name2 }) => /* @__PURE__ */ React2.createElement("div", {
|
|
771
793
|
key: name2,
|
|
772
|
-
className: "
|
|
794
|
+
className: "pli-2 truncate text-sm font-mono items-center",
|
|
773
795
|
style: {
|
|
774
796
|
height: rowHeight
|
|
775
797
|
}
|
|
@@ -777,7 +799,7 @@ var FunctionBody = ({ shape, name, content, inputSchema = VoidInput, outputSchem
|
|
|
777
799
|
className: "flex flex-col"
|
|
778
800
|
}, outputs?.map(({ name: name2 }) => /* @__PURE__ */ React2.createElement("div", {
|
|
779
801
|
key: name2,
|
|
780
|
-
className: "
|
|
802
|
+
className: "pli-2 truncate text-sm font-mono items-center text-right",
|
|
781
803
|
style: {
|
|
782
804
|
height: rowHeight
|
|
783
805
|
}
|
|
@@ -819,7 +841,7 @@ var TypeSelect = ({ value, onValueChange }) => {
|
|
|
819
841
|
onValueChange
|
|
820
842
|
}, /* @__PURE__ */ React3.createElement(Select.TriggerButton, {
|
|
821
843
|
variant: "ghost",
|
|
822
|
-
classNames: "
|
|
844
|
+
classNames: "is-full !pli-0"
|
|
823
845
|
}), /* @__PURE__ */ React3.createElement(Select.Portal, null, /* @__PURE__ */ React3.createElement(Select.Content, null, /* @__PURE__ */ React3.createElement(Select.ScrollUpButton, null), /* @__PURE__ */ React3.createElement(Select.Viewport, null, ComputeValueType.literals.map((type) => /* @__PURE__ */ React3.createElement(Select.Option, {
|
|
824
846
|
key: type,
|
|
825
847
|
value: type
|
|
@@ -831,7 +853,7 @@ var TypeSelect = ({ value, onValueChange }) => {
|
|
|
831
853
|
|
|
832
854
|
// src/shapes/Array.tsx
|
|
833
855
|
import { useSignals as _useSignals4 } from "@preact-signals/safe-react/tracking";
|
|
834
|
-
import
|
|
856
|
+
import * as Schema3 from "effect/Schema";
|
|
835
857
|
import React4 from "react";
|
|
836
858
|
import { ReducerInput, ReducerOutput } from "@dxos/conductor";
|
|
837
859
|
var ReducerShape = Schema3.extend(ComputeShape, Schema3.Struct({
|
|
@@ -868,7 +890,7 @@ var reducerShape = {
|
|
|
868
890
|
|
|
869
891
|
// src/shapes/Append.tsx
|
|
870
892
|
import { useSignals as _useSignals5 } from "@preact-signals/safe-react/tracking";
|
|
871
|
-
import
|
|
893
|
+
import * as Schema4 from "effect/Schema";
|
|
872
894
|
import React5 from "react";
|
|
873
895
|
import { AppendInput } from "@dxos/conductor";
|
|
874
896
|
var AppendShape = Schema4.extend(ComputeShape, Schema4.Struct({
|
|
@@ -904,7 +926,7 @@ var appendShape = {
|
|
|
904
926
|
|
|
905
927
|
// src/shapes/Audio.tsx
|
|
906
928
|
import { useSignals as _useSignals6 } from "@preact-signals/safe-react/tracking";
|
|
907
|
-
import
|
|
929
|
+
import * as Schema5 from "effect/Schema";
|
|
908
930
|
import React6, { useEffect as useEffect3, useState as useState4 } from "react";
|
|
909
931
|
import { Icon as Icon2 } from "@dxos/react-ui";
|
|
910
932
|
import { createAnchorMap } from "@dxos/react-ui-canvas-editor";
|
|
@@ -930,7 +952,7 @@ var AudioComponent = ({ shape }) => {
|
|
|
930
952
|
active
|
|
931
953
|
]);
|
|
932
954
|
return /* @__PURE__ */ React6.createElement("div", {
|
|
933
|
-
className: "flex
|
|
955
|
+
className: "flex is-full justify-center items-center"
|
|
934
956
|
}, /* @__PURE__ */ React6.createElement(Icon2, {
|
|
935
957
|
icon: active ? "ph--microphone--regular" : "ph--microphone-slash--regular",
|
|
936
958
|
classNames: [
|
|
@@ -960,7 +982,7 @@ var audioShape = {
|
|
|
960
982
|
|
|
961
983
|
// src/shapes/Beacon.tsx
|
|
962
984
|
import { useSignals as _useSignals7 } from "@preact-signals/safe-react/tracking";
|
|
963
|
-
import
|
|
985
|
+
import * as Schema6 from "effect/Schema";
|
|
964
986
|
import React7 from "react";
|
|
965
987
|
import { DEFAULT_INPUT as DEFAULT_INPUT3, isTruthy } from "@dxos/conductor";
|
|
966
988
|
import { Icon as Icon3 } from "@dxos/react-ui";
|
|
@@ -983,7 +1005,7 @@ var BeaconComponent = ({ shape }) => {
|
|
|
983
1005
|
const input = runtime.inputs[DEFAULT_INPUT3];
|
|
984
1006
|
const value = input?.type === "executed" ? input.value : false;
|
|
985
1007
|
return /* @__PURE__ */ React7.createElement("div", {
|
|
986
|
-
className: "flex
|
|
1008
|
+
className: "flex is-full justify-center items-center"
|
|
987
1009
|
}, /* @__PURE__ */ React7.createElement(Icon3, {
|
|
988
1010
|
icon: "ph--sun--regular",
|
|
989
1011
|
classNames: [
|
|
@@ -1011,7 +1033,7 @@ var beaconShape = {
|
|
|
1011
1033
|
};
|
|
1012
1034
|
|
|
1013
1035
|
// src/shapes/Boolean.tsx
|
|
1014
|
-
import
|
|
1036
|
+
import * as Schema7 from "effect/Schema";
|
|
1015
1037
|
import React8 from "react";
|
|
1016
1038
|
import { getAnchorPoints } from "@dxos/react-ui-canvas-editor";
|
|
1017
1039
|
import { createAnchors as createAnchors2 } from "@dxos/react-ui-canvas-editor";
|
|
@@ -1035,7 +1057,7 @@ var defineShape = ({ type, name, icon, symbol: Symbol, createShape: createShape2
|
|
|
1035
1057
|
// Be careful not to name component factories with a capital letter.
|
|
1036
1058
|
component: () => {
|
|
1037
1059
|
return /* @__PURE__ */ React8.createElement("div", {
|
|
1038
|
-
className: "flex
|
|
1060
|
+
className: "flex is-full justify-center items-center"
|
|
1039
1061
|
}, /* @__PURE__ */ React8.createElement(Symbol, null));
|
|
1040
1062
|
},
|
|
1041
1063
|
createShape: createShape2,
|
|
@@ -1062,7 +1084,7 @@ var createSymbol = (pathConstructor, inputs) => ({
|
|
|
1062
1084
|
});
|
|
1063
1085
|
return /* @__PURE__ */ React8.createElement("svg", {
|
|
1064
1086
|
viewBox: `0 0 ${width} ${height}`,
|
|
1065
|
-
className: "
|
|
1087
|
+
className: "is-full bs-full"
|
|
1066
1088
|
}, getAnchorPoints({
|
|
1067
1089
|
x: 0,
|
|
1068
1090
|
y: centerY
|
|
@@ -1185,7 +1207,7 @@ var notShape = defineShape({
|
|
|
1185
1207
|
|
|
1186
1208
|
// src/shapes/Chat.tsx
|
|
1187
1209
|
import { useSignals as _useSignals8 } from "@preact-signals/safe-react/tracking";
|
|
1188
|
-
import
|
|
1210
|
+
import * as Schema8 from "effect/Schema";
|
|
1189
1211
|
import React9, { useRef as useRef2 } from "react";
|
|
1190
1212
|
import { DEFAULT_OUTPUT as DEFAULT_OUTPUT3 } from "@dxos/conductor";
|
|
1191
1213
|
import { TextBox } from "@dxos/react-ui-canvas-editor";
|
|
@@ -1246,7 +1268,7 @@ var chatShape = {
|
|
|
1246
1268
|
|
|
1247
1269
|
// src/shapes/Constant.tsx
|
|
1248
1270
|
import { useSignals as _useSignals9 } from "@preact-signals/safe-react/tracking";
|
|
1249
|
-
import
|
|
1271
|
+
import * as Schema9 from "effect/Schema";
|
|
1250
1272
|
import React10, { useCallback as useCallback2, useRef as useRef3, useState as useState5 } from "react";
|
|
1251
1273
|
import { ComputeValueType as ComputeValueType2 } from "@dxos/conductor";
|
|
1252
1274
|
import { Input } from "@dxos/react-ui";
|
|
@@ -1349,7 +1371,7 @@ var constantShape = {
|
|
|
1349
1371
|
|
|
1350
1372
|
// src/shapes/Database.tsx
|
|
1351
1373
|
import { useSignals as _useSignals10 } from "@preact-signals/safe-react/tracking";
|
|
1352
|
-
import
|
|
1374
|
+
import * as Schema10 from "effect/Schema";
|
|
1353
1375
|
import React11 from "react";
|
|
1354
1376
|
import { createAnchorMap as createAnchorMap5 } from "@dxos/react-ui-canvas-editor";
|
|
1355
1377
|
var DatabaseShape = Schema10.extend(ComputeShape, Schema10.Struct({
|
|
@@ -1389,11 +1411,11 @@ var databaseShape = {
|
|
|
1389
1411
|
|
|
1390
1412
|
// src/shapes/Function.tsx
|
|
1391
1413
|
import { useSignals as _useSignals11 } from "@preact-signals/safe-react/tracking";
|
|
1392
|
-
import
|
|
1414
|
+
import * as Schema11 from "effect/Schema";
|
|
1393
1415
|
import React12, { useCallback as useCallback3, useRef as useRef4 } from "react";
|
|
1394
1416
|
import { AnyOutput, FunctionInput } from "@dxos/conductor";
|
|
1395
|
-
import {
|
|
1396
|
-
import {
|
|
1417
|
+
import { Ref as Ref2, getSnapshot, isInstanceOf } from "@dxos/echo/internal";
|
|
1418
|
+
import { Function, Script } from "@dxos/functions";
|
|
1397
1419
|
import { useClient } from "@dxos/react-client";
|
|
1398
1420
|
import { Filter, parseId } from "@dxos/react-client/echo";
|
|
1399
1421
|
import { TextBox as TextBox3 } from "@dxos/react-ui-canvas-editor";
|
|
@@ -1422,10 +1444,10 @@ var TextInputComponent2 = ({ shape, title, ...props }) => {
|
|
|
1422
1444
|
}
|
|
1423
1445
|
const space = client.spaces.get(spaceId);
|
|
1424
1446
|
const object = space?.db.getObjectById(objectId);
|
|
1425
|
-
if (!space || !isInstanceOf(
|
|
1447
|
+
if (!space || !isInstanceOf(Script.Script, object)) {
|
|
1426
1448
|
return;
|
|
1427
1449
|
}
|
|
1428
|
-
const { objects: [fn] } = await space.db.query(Filter.type(
|
|
1450
|
+
const { objects: [fn] } = await space.db.query(Filter.type(Function.Function, {
|
|
1429
1451
|
source: Ref2.make(object)
|
|
1430
1452
|
})).run();
|
|
1431
1453
|
if (!fn) {
|
|
@@ -1474,7 +1496,7 @@ var functionShape = {
|
|
|
1474
1496
|
|
|
1475
1497
|
// src/shapes/Gpt.tsx
|
|
1476
1498
|
import { useSignals as _useSignals12 } from "@preact-signals/safe-react/tracking";
|
|
1477
|
-
import
|
|
1499
|
+
import * as Schema12 from "effect/Schema";
|
|
1478
1500
|
import React13, { useEffect as useEffect4, useState as useState6 } from "react";
|
|
1479
1501
|
import { GptInput, GptOutput } from "@dxos/conductor";
|
|
1480
1502
|
var GptShape = Schema12.extend(ComputeShape, Schema12.Struct({
|
|
@@ -1528,7 +1550,7 @@ var GptComponent = ({ shape }) => {
|
|
|
1528
1550
|
return /* @__PURE__ */ React13.createElement(FunctionBody, {
|
|
1529
1551
|
shape,
|
|
1530
1552
|
content: /* @__PURE__ */ React13.createElement("div", {
|
|
1531
|
-
className: "
|
|
1553
|
+
className: "pli-2 plb-1 overflow-y-auto"
|
|
1532
1554
|
}, text),
|
|
1533
1555
|
status: `${tokens} tokens`,
|
|
1534
1556
|
inputSchema: meta.input,
|
|
@@ -1550,7 +1572,7 @@ var gptShape = {
|
|
|
1550
1572
|
|
|
1551
1573
|
// src/shapes/Json.tsx
|
|
1552
1574
|
import { useSignals as _useSignals13 } from "@preact-signals/safe-react/tracking";
|
|
1553
|
-
import
|
|
1575
|
+
import * as Schema13 from "effect/Schema";
|
|
1554
1576
|
import React14 from "react";
|
|
1555
1577
|
import { DEFAULT_INPUT as DEFAULT_INPUT4, DefaultOutput, JsonTransformInput } from "@dxos/conductor";
|
|
1556
1578
|
import { createAnchorMap as createAnchorMap6 } from "@dxos/react-ui-canvas-editor";
|
|
@@ -1633,7 +1655,7 @@ var jsonTransformShape = {
|
|
|
1633
1655
|
|
|
1634
1656
|
// src/shapes/Logic.tsx
|
|
1635
1657
|
import { useSignals as _useSignals14 } from "@preact-signals/safe-react/tracking";
|
|
1636
|
-
import
|
|
1658
|
+
import * as Schema14 from "effect/Schema";
|
|
1637
1659
|
import React15 from "react";
|
|
1638
1660
|
import { IfElseInput, IfElseOutput, IfInput, IfOutput } from "@dxos/conductor";
|
|
1639
1661
|
var IfShape = Schema14.extend(ComputeShape, Schema14.Struct({
|
|
@@ -1701,7 +1723,7 @@ var ifElseShape = {
|
|
|
1701
1723
|
|
|
1702
1724
|
// src/shapes/Queue.tsx
|
|
1703
1725
|
import { useSignals as _useSignals15 } from "@preact-signals/safe-react/tracking";
|
|
1704
|
-
import
|
|
1726
|
+
import * as Schema15 from "effect/Schema";
|
|
1705
1727
|
import React16, { Fragment } from "react";
|
|
1706
1728
|
import { DEFAULT_OUTPUT as DEFAULT_OUTPUT4, QueueInput, QueueOutput } from "@dxos/conductor";
|
|
1707
1729
|
import { mx as mx2 } from "@dxos/react-ui-theme";
|
|
@@ -1731,12 +1753,12 @@ var QueueComponent = ({ shape }) => {
|
|
|
1731
1753
|
status: `${items.length} items`,
|
|
1732
1754
|
onAction: handleAction
|
|
1733
1755
|
}, /* @__PURE__ */ React16.createElement("div", {
|
|
1734
|
-
className: "flex flex-col
|
|
1756
|
+
className: "flex flex-col is-full overflow-y-auto divide-y divide-separator"
|
|
1735
1757
|
}, [
|
|
1736
1758
|
...items
|
|
1737
1759
|
].map((item, i) => /* @__PURE__ */ React16.createElement(QueueItem, {
|
|
1738
1760
|
key: i,
|
|
1739
|
-
classNames: "p-1
|
|
1761
|
+
classNames: "p-1 pli-2",
|
|
1740
1762
|
item
|
|
1741
1763
|
}))));
|
|
1742
1764
|
} finally {
|
|
@@ -1774,7 +1796,7 @@ var queueShape = {
|
|
|
1774
1796
|
|
|
1775
1797
|
// src/shapes/RNG.tsx
|
|
1776
1798
|
import { useSignals as _useSignals16 } from "@preact-signals/safe-react/tracking";
|
|
1777
|
-
import
|
|
1799
|
+
import * as Schema16 from "effect/Schema";
|
|
1778
1800
|
import React17, { useEffect as useEffect5, useState as useState7 } from "react";
|
|
1779
1801
|
import { DEFAULT_OUTPUT as DEFAULT_OUTPUT5 } from "@dxos/conductor";
|
|
1780
1802
|
import { Icon as Icon4 } from "@dxos/react-ui";
|
|
@@ -1855,11 +1877,11 @@ var randomShape = {
|
|
|
1855
1877
|
|
|
1856
1878
|
// src/shapes/Scope.tsx
|
|
1857
1879
|
import { useSignals as _useSignals17 } from "@preact-signals/safe-react/tracking";
|
|
1858
|
-
import
|
|
1880
|
+
import * as Schema17 from "effect/Schema";
|
|
1859
1881
|
import React18 from "react";
|
|
1860
1882
|
import { DEFAULT_INPUT as DEFAULT_INPUT5 } from "@dxos/conductor";
|
|
1861
1883
|
import { createAnchorMap as createAnchorMap8 } from "@dxos/react-ui-canvas-editor";
|
|
1862
|
-
import {
|
|
1884
|
+
import { Chaos, shaderPresets, useAudioStream } from "@dxos/react-ui-sfx";
|
|
1863
1885
|
var ScopeShape = Schema17.extend(ComputeShape, Schema17.Struct({
|
|
1864
1886
|
type: Schema17.Literal("scope")
|
|
1865
1887
|
}));
|
|
@@ -1880,7 +1902,7 @@ var ScopeComponent = ({ shape }) => {
|
|
|
1880
1902
|
const active = input?.type === "executed" ? input.value : false;
|
|
1881
1903
|
const { getAverage } = useAudioStream(active);
|
|
1882
1904
|
return /* @__PURE__ */ React18.createElement("div", {
|
|
1883
|
-
className: "flex
|
|
1905
|
+
className: "flex is-full justify-center items-center bg-black"
|
|
1884
1906
|
}, /* @__PURE__ */ React18.createElement(Chaos, {
|
|
1885
1907
|
active,
|
|
1886
1908
|
getValue: getAverage,
|
|
@@ -1909,9 +1931,9 @@ var scopeShape = {
|
|
|
1909
1931
|
|
|
1910
1932
|
// src/shapes/Surface.tsx
|
|
1911
1933
|
import { useSignals as _useSignals18 } from "@preact-signals/safe-react/tracking";
|
|
1912
|
-
import
|
|
1934
|
+
import * as Schema18 from "effect/Schema";
|
|
1913
1935
|
import React19 from "react";
|
|
1914
|
-
import { Surface } from "@dxos/app-framework";
|
|
1936
|
+
import { Surface } from "@dxos/app-framework/react";
|
|
1915
1937
|
import { DEFAULT_INPUT as DEFAULT_INPUT6 } from "@dxos/conductor";
|
|
1916
1938
|
import { createAnchorMap as createAnchorMap9 } from "@dxos/react-ui-canvas-editor";
|
|
1917
1939
|
var SurfaceShape = Schema18.extend(ComputeShape, Schema18.Struct({
|
|
@@ -1967,7 +1989,7 @@ var surfaceShape = {
|
|
|
1967
1989
|
|
|
1968
1990
|
// src/shapes/Switch.tsx
|
|
1969
1991
|
import { useSignals as _useSignals19 } from "@preact-signals/safe-react/tracking";
|
|
1970
|
-
import
|
|
1992
|
+
import * as Schema19 from "effect/Schema";
|
|
1971
1993
|
import React20, { useEffect as useEffect6, useState as useState8 } from "react";
|
|
1972
1994
|
import { DEFAULT_OUTPUT as DEFAULT_OUTPUT6 } from "@dxos/conductor";
|
|
1973
1995
|
import { Input as Input2 } from "@dxos/react-ui";
|
|
@@ -1994,7 +2016,7 @@ var SwitchComponent = ({ shape }) => {
|
|
|
1994
2016
|
value
|
|
1995
2017
|
]);
|
|
1996
2018
|
return /* @__PURE__ */ React20.createElement("div", {
|
|
1997
|
-
className: "flex
|
|
2019
|
+
className: "flex is-full justify-center items-center",
|
|
1998
2020
|
onClick: (ev) => ev.stopPropagation()
|
|
1999
2021
|
}, /* @__PURE__ */ React20.createElement(Input2.Root, null, /* @__PURE__ */ React20.createElement(Input2.Switch, {
|
|
2000
2022
|
checked: value,
|
|
@@ -2020,12 +2042,12 @@ var switchShape = {
|
|
|
2020
2042
|
|
|
2021
2043
|
// src/shapes/Table.tsx
|
|
2022
2044
|
import { useSignals as _useSignals20 } from "@preact-signals/safe-react/tracking";
|
|
2023
|
-
import
|
|
2045
|
+
import * as Schema20 from "effect/Schema";
|
|
2024
2046
|
import React21 from "react";
|
|
2025
2047
|
import { createInputSchema, createOutputSchema } from "@dxos/conductor";
|
|
2026
|
-
import {
|
|
2027
|
-
var InputSchema = createInputSchema(
|
|
2028
|
-
var OutputSchema = createOutputSchema(Schema20.mutable(Schema20.Array(
|
|
2048
|
+
import { Message } from "@dxos/types";
|
|
2049
|
+
var InputSchema = createInputSchema(Message.Message);
|
|
2050
|
+
var OutputSchema = createOutputSchema(Schema20.mutable(Schema20.Array(Message.Message)));
|
|
2029
2051
|
var TableShape = Schema20.extend(ComputeShape, Schema20.Struct({
|
|
2030
2052
|
type: Schema20.Literal("table")
|
|
2031
2053
|
}));
|
|
@@ -2059,10 +2081,10 @@ var tableShape = {
|
|
|
2059
2081
|
|
|
2060
2082
|
// src/shapes/Template.tsx
|
|
2061
2083
|
import { useSignals as _useSignals21 } from "@preact-signals/safe-react/tracking";
|
|
2062
|
-
import
|
|
2084
|
+
import * as Schema21 from "effect/Schema";
|
|
2063
2085
|
import React22, { useRef as useRef5 } from "react";
|
|
2064
|
-
import { ComputeValueType as ComputeValueType3,
|
|
2065
|
-
import { toJsonSchema
|
|
2086
|
+
import { ComputeValueType as ComputeValueType3, TemplateOutput, VoidInput as VoidInput2, getTemplateInputSchema as getTemplateInputSchema2 } from "@dxos/conductor";
|
|
2087
|
+
import { toJsonSchema } from "@dxos/echo/internal";
|
|
2066
2088
|
import { invariant as invariant5 } from "@dxos/invariant";
|
|
2067
2089
|
import { TextBox as TextBox4 } from "@dxos/react-ui-canvas-editor";
|
|
2068
2090
|
var __dxlog_file6 = "/__w/dxos/dxos/packages/ui/react-ui-canvas-compute/src/shapes/Template.tsx";
|
|
@@ -2080,13 +2102,13 @@ var TextInputComponent3 = ({ shape, title, ...props }) => {
|
|
|
2080
2102
|
if (value.length) {
|
|
2081
2103
|
const schema = getTemplateInputSchema2(node);
|
|
2082
2104
|
node.value = value;
|
|
2083
|
-
node.inputSchema =
|
|
2105
|
+
node.inputSchema = toJsonSchema(schema);
|
|
2084
2106
|
}
|
|
2085
2107
|
};
|
|
2086
2108
|
const handleTypeChange = (newType) => {
|
|
2087
2109
|
invariant5(Schema21.is(ComputeValueType3)(newType), "Invalid type", {
|
|
2088
2110
|
F: __dxlog_file6,
|
|
2089
|
-
L:
|
|
2111
|
+
L: 59,
|
|
2090
2112
|
S: void 0,
|
|
2091
2113
|
A: [
|
|
2092
2114
|
"Schema.is(ComputeValueType)(newType)",
|
|
@@ -2094,7 +2116,7 @@ var TextInputComponent3 = ({ shape, title, ...props }) => {
|
|
|
2094
2116
|
]
|
|
2095
2117
|
});
|
|
2096
2118
|
node.valueType = newType;
|
|
2097
|
-
node.inputSchema =
|
|
2119
|
+
node.inputSchema = toJsonSchema(getTemplateInputSchema2(node));
|
|
2098
2120
|
};
|
|
2099
2121
|
return /* @__PURE__ */ React22.createElement(Box, {
|
|
2100
2122
|
shape,
|
|
@@ -2138,7 +2160,7 @@ var templateShape = {
|
|
|
2138
2160
|
|
|
2139
2161
|
// src/shapes/Text.tsx
|
|
2140
2162
|
import { useSignals as _useSignals22 } from "@preact-signals/safe-react/tracking";
|
|
2141
|
-
import
|
|
2163
|
+
import * as Schema22 from "effect/Schema";
|
|
2142
2164
|
import React23 from "react";
|
|
2143
2165
|
import { DEFAULT_INPUT as DEFAULT_INPUT7 } from "@dxos/conductor";
|
|
2144
2166
|
import { TextBox as TextBox5 } from "@dxos/react-ui-canvas-editor";
|
|
@@ -2192,13 +2214,13 @@ var textShape = {
|
|
|
2192
2214
|
|
|
2193
2215
|
// src/shapes/Thread.tsx
|
|
2194
2216
|
import { useSignals as _useSignals23 } from "@preact-signals/safe-react/tracking";
|
|
2195
|
-
import
|
|
2217
|
+
import * as Schema23 from "effect/Schema";
|
|
2196
2218
|
import React24, { useEffect as useEffect7, useRef as useRef6 } from "react";
|
|
2197
2219
|
import { createInputSchema as createInputSchema2, createOutputSchema as createOutputSchema2 } from "@dxos/conductor";
|
|
2198
2220
|
import { mx as mx3 } from "@dxos/react-ui-theme";
|
|
2199
|
-
import {
|
|
2200
|
-
var InputSchema2 = createInputSchema2(
|
|
2201
|
-
var OutputSchema2 = createOutputSchema2(Schema23.mutable(Schema23.Array(
|
|
2221
|
+
import { Message as Message2 } from "@dxos/types";
|
|
2222
|
+
var InputSchema2 = createInputSchema2(Message2.Message);
|
|
2223
|
+
var OutputSchema2 = createOutputSchema2(Schema23.mutable(Schema23.Array(Message2.Message)));
|
|
2202
2224
|
var ThreadShape = Schema23.extend(ComputeShape, Schema23.Struct({
|
|
2203
2225
|
type: Schema23.Literal("thread")
|
|
2204
2226
|
}));
|
|
@@ -2226,7 +2248,7 @@ var ThreadComponent = ({ shape }) => {
|
|
|
2226
2248
|
shape
|
|
2227
2249
|
}, /* @__PURE__ */ React24.createElement("div", {
|
|
2228
2250
|
ref: scrollRef,
|
|
2229
|
-
className: "flex flex-col
|
|
2251
|
+
className: "flex flex-col is-full overflow-y-auto gap-2 p-2"
|
|
2230
2252
|
}, [
|
|
2231
2253
|
...items
|
|
2232
2254
|
].map((item, i) => /* @__PURE__ */ React24.createElement(ThreadItem, {
|
|
@@ -2249,7 +2271,7 @@ var ThreadItem = ({ classNames, item }) => {
|
|
|
2249
2271
|
return /* @__PURE__ */ React24.createElement("div", {
|
|
2250
2272
|
className: mx3("flex", classNames, role === "user" && "justify-end")
|
|
2251
2273
|
}, /* @__PURE__ */ React24.createElement("div", {
|
|
2252
|
-
className: mx3("block rounded-md p-1
|
|
2274
|
+
className: mx3("block rounded-md p-1 pli-2 text-sm", role === "user" ? "bg-blue-100 dark:bg-blue-800" : role === "system" ? "bg-red-100, dark:bg-red-800" : "whitespace-pre-wrap bg-neutral-50 dark:bg-neutral-800")
|
|
2253
2275
|
}, message));
|
|
2254
2276
|
} finally {
|
|
2255
2277
|
_effect.f();
|
|
@@ -2267,7 +2289,7 @@ var threadShape = {
|
|
|
2267
2289
|
|
|
2268
2290
|
// src/shapes/TextToImage.tsx
|
|
2269
2291
|
import { useSignals as _useSignals24 } from "@preact-signals/safe-react/tracking";
|
|
2270
|
-
import
|
|
2292
|
+
import * as Schema24 from "effect/Schema";
|
|
2271
2293
|
import React25 from "react";
|
|
2272
2294
|
import { createAnchorMap as createAnchorMap12 } from "@dxos/react-ui-canvas-editor";
|
|
2273
2295
|
var TextToImageShape = Schema24.extend(ComputeShape, Schema24.Struct({
|
|
@@ -2307,20 +2329,20 @@ var textToImageShape = {
|
|
|
2307
2329
|
|
|
2308
2330
|
// src/shapes/Trigger.tsx
|
|
2309
2331
|
import { useSignals as _useSignals25 } from "@preact-signals/safe-react/tracking";
|
|
2310
|
-
import
|
|
2332
|
+
import * as Schema25 from "effect/Schema";
|
|
2311
2333
|
import React26, { useEffect as useEffect8 } from "react";
|
|
2312
2334
|
import { VoidInput as VoidInput3 } from "@dxos/conductor";
|
|
2313
|
-
import {
|
|
2314
|
-
import {
|
|
2335
|
+
import { Filter as Filter2, Obj as Obj4, Query, Ref as Ref3, Type } from "@dxos/echo";
|
|
2336
|
+
import { Trigger, TriggerEvent } from "@dxos/functions";
|
|
2315
2337
|
import { DXN, SpaceId } from "@dxos/keys";
|
|
2316
|
-
import {
|
|
2338
|
+
import { useSpace } from "@dxos/react-client/echo";
|
|
2317
2339
|
import { Select as Select2 } from "@dxos/react-ui";
|
|
2318
2340
|
var TriggerShape = Schema25.extend(ComputeShape, Schema25.Struct({
|
|
2319
2341
|
type: Schema25.Literal("trigger"),
|
|
2320
|
-
functionTrigger: Schema25.optional(
|
|
2342
|
+
functionTrigger: Schema25.optional(Type.Ref(Trigger.Trigger))
|
|
2321
2343
|
}));
|
|
2322
2344
|
var createTrigger = (props) => {
|
|
2323
|
-
const functionTrigger =
|
|
2345
|
+
const functionTrigger = Trigger.make({
|
|
2324
2346
|
enabled: true,
|
|
2325
2347
|
spec: createTriggerSpec(props)
|
|
2326
2348
|
});
|
|
@@ -2329,7 +2351,7 @@ var createTrigger = (props) => {
|
|
|
2329
2351
|
functionTrigger: Ref3.make(functionTrigger),
|
|
2330
2352
|
size: {
|
|
2331
2353
|
width: 192,
|
|
2332
|
-
height: getHeight(
|
|
2354
|
+
height: getHeight(TriggerEvent.EmailEvent)
|
|
2333
2355
|
},
|
|
2334
2356
|
...props
|
|
2335
2357
|
});
|
|
@@ -2342,7 +2364,7 @@ var TriggerComponent = ({ shape }) => {
|
|
|
2342
2364
|
useEffect8(() => {
|
|
2343
2365
|
if (functionTrigger && !functionTrigger.spec) {
|
|
2344
2366
|
functionTrigger.spec = createTriggerSpec({
|
|
2345
|
-
triggerKind:
|
|
2367
|
+
triggerKind: "email",
|
|
2346
2368
|
spaceId: space?.id
|
|
2347
2369
|
});
|
|
2348
2370
|
}
|
|
@@ -2351,7 +2373,7 @@ var TriggerComponent = ({ shape }) => {
|
|
|
2351
2373
|
functionTrigger?.spec
|
|
2352
2374
|
]);
|
|
2353
2375
|
useEffect8(() => {
|
|
2354
|
-
shape.size.height = getHeight(getOutputSchema(functionTrigger?.spec?.kind ??
|
|
2376
|
+
shape.size.height = getHeight(getOutputSchema(functionTrigger?.spec?.kind ?? "email"));
|
|
2355
2377
|
}, [
|
|
2356
2378
|
functionTrigger?.spec?.kind
|
|
2357
2379
|
]);
|
|
@@ -2387,8 +2409,8 @@ var TriggerKindSelect = ({ value, onValueChange }) => {
|
|
|
2387
2409
|
onValueChange
|
|
2388
2410
|
}, /* @__PURE__ */ React26.createElement(Select2.TriggerButton, {
|
|
2389
2411
|
variant: "ghost",
|
|
2390
|
-
classNames: "
|
|
2391
|
-
}), /* @__PURE__ */ React26.createElement(Select2.Portal, null, /* @__PURE__ */ React26.createElement(Select2.Content, null, /* @__PURE__ */ React26.createElement(Select2.ScrollUpButton, null), /* @__PURE__ */ React26.createElement(Select2.Viewport, null,
|
|
2412
|
+
classNames: "is-full !pli-0"
|
|
2413
|
+
}), /* @__PURE__ */ React26.createElement(Select2.Portal, null, /* @__PURE__ */ React26.createElement(Select2.Content, null, /* @__PURE__ */ React26.createElement(Select2.ScrollUpButton, null), /* @__PURE__ */ React26.createElement(Select2.Viewport, null, Trigger.Kinds.map((kind) => /* @__PURE__ */ React26.createElement(Select2.Option, {
|
|
2392
2414
|
key: kind,
|
|
2393
2415
|
value: kind
|
|
2394
2416
|
}, kind))), /* @__PURE__ */ React26.createElement(Select2.ScrollDownButton, null), /* @__PURE__ */ React26.createElement(Select2.Arrow, null))));
|
|
@@ -2397,35 +2419,37 @@ var TriggerKindSelect = ({ value, onValueChange }) => {
|
|
|
2397
2419
|
}
|
|
2398
2420
|
};
|
|
2399
2421
|
var createTriggerSpec = (props) => {
|
|
2400
|
-
const kind = props.triggerKind ??
|
|
2422
|
+
const kind = props.triggerKind ?? "email";
|
|
2401
2423
|
switch (kind) {
|
|
2402
|
-
case
|
|
2424
|
+
case "timer":
|
|
2403
2425
|
return {
|
|
2404
|
-
kind:
|
|
2426
|
+
kind: "timer",
|
|
2405
2427
|
cron: "*/10 * * * * *"
|
|
2406
2428
|
};
|
|
2407
|
-
case
|
|
2429
|
+
case "webhook":
|
|
2408
2430
|
return {
|
|
2409
|
-
kind:
|
|
2431
|
+
kind: "webhook",
|
|
2410
2432
|
method: "POST"
|
|
2411
2433
|
};
|
|
2412
|
-
case
|
|
2434
|
+
case "subscription":
|
|
2413
2435
|
return {
|
|
2414
|
-
kind:
|
|
2415
|
-
|
|
2436
|
+
kind: "subscription",
|
|
2437
|
+
query: {
|
|
2438
|
+
ast: Query.select(Filter2.nothing()).ast
|
|
2439
|
+
}
|
|
2416
2440
|
};
|
|
2417
|
-
case
|
|
2441
|
+
case "email":
|
|
2418
2442
|
return {
|
|
2419
|
-
kind:
|
|
2443
|
+
kind: "email"
|
|
2420
2444
|
};
|
|
2421
|
-
case
|
|
2445
|
+
case "queue": {
|
|
2422
2446
|
const dxn = new DXN(DXN.kind.QUEUE, [
|
|
2423
2447
|
"data",
|
|
2424
2448
|
props.spaceId ?? SpaceId.random(),
|
|
2425
|
-
|
|
2449
|
+
Obj4.ID.random()
|
|
2426
2450
|
]).toString();
|
|
2427
2451
|
return {
|
|
2428
|
-
kind:
|
|
2452
|
+
kind: "queue",
|
|
2429
2453
|
queue: dxn
|
|
2430
2454
|
};
|
|
2431
2455
|
}
|
|
@@ -2433,11 +2457,11 @@ var createTriggerSpec = (props) => {
|
|
|
2433
2457
|
};
|
|
2434
2458
|
var getOutputSchema = (kind) => {
|
|
2435
2459
|
const kindToSchema = {
|
|
2436
|
-
[
|
|
2437
|
-
[
|
|
2438
|
-
[
|
|
2439
|
-
[
|
|
2440
|
-
[
|
|
2460
|
+
["email"]: TriggerEvent.EmailEvent,
|
|
2461
|
+
["subscription"]: TriggerEvent.SubscriptionEvent,
|
|
2462
|
+
["timer"]: TriggerEvent.TimerEvent,
|
|
2463
|
+
["webhook"]: TriggerEvent.WebhookEvent,
|
|
2464
|
+
["queue"]: TriggerEvent.QueueEvent
|
|
2441
2465
|
};
|
|
2442
2466
|
return kindToSchema[kind];
|
|
2443
2467
|
};
|
|
@@ -2447,12 +2471,12 @@ var triggerShape = {
|
|
|
2447
2471
|
icon: "ph--lightning--regular",
|
|
2448
2472
|
component: TriggerComponent,
|
|
2449
2473
|
createShape: createTrigger,
|
|
2450
|
-
getAnchors: (shape) => createFunctionAnchors(shape, VoidInput3, getOutputSchema(shape.functionTrigger?.target?.spec?.kind ??
|
|
2474
|
+
getAnchors: (shape) => createFunctionAnchors(shape, VoidInput3, getOutputSchema(shape.functionTrigger?.target?.spec?.kind ?? "email"))
|
|
2451
2475
|
};
|
|
2452
2476
|
|
|
2453
2477
|
// src/shapes/GptRealtime.tsx
|
|
2454
2478
|
import { useSignals as _useSignals26 } from "@preact-signals/safe-react/tracking";
|
|
2455
|
-
import
|
|
2479
|
+
import * as Schema26 from "effect/Schema";
|
|
2456
2480
|
import React27, { useState as useState9 } from "react";
|
|
2457
2481
|
import { log as log2 } from "@dxos/log";
|
|
2458
2482
|
import { useConfig } from "@dxos/react-client";
|
|
@@ -2559,7 +2583,7 @@ var GptRealtimeComponent = ({ shape }) => {
|
|
|
2559
2583
|
}
|
|
2560
2584
|
};
|
|
2561
2585
|
return /* @__PURE__ */ React27.createElement("div", {
|
|
2562
|
-
className: "flex
|
|
2586
|
+
className: "flex is-full justify-center items-center"
|
|
2563
2587
|
}, /* @__PURE__ */ React27.createElement(Icon5, {
|
|
2564
2588
|
icon: isReady ? "ph--waveform--regular" : isLive ? "ph--pulse--regular" : "ph--play--regular",
|
|
2565
2589
|
size: 16,
|
|
@@ -2648,9 +2672,10 @@ var computeShapes = [
|
|
|
2648
2672
|
|
|
2649
2673
|
// src/compute-layout.ts
|
|
2650
2674
|
import { DefaultInput, DefaultOutput as DefaultOutput2 } from "@dxos/conductor";
|
|
2651
|
-
import { toEffectSchema } from "@dxos/echo
|
|
2675
|
+
import { toEffectSchema } from "@dxos/echo/internal";
|
|
2652
2676
|
import { ShapeLayout } from "@dxos/react-ui-canvas-editor";
|
|
2653
2677
|
var ComputeShapeLayout = class extends ShapeLayout {
|
|
2678
|
+
_controller;
|
|
2654
2679
|
constructor(_controller, registry2) {
|
|
2655
2680
|
super(registry2), this._controller = _controller;
|
|
2656
2681
|
}
|