@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
|
@@ -1,96 +1,21 @@
|
|
|
1
1
|
import { createRequire } from 'node:module';const require = createRequire(import.meta.url);
|
|
2
2
|
|
|
3
|
-
//
|
|
3
|
+
// src/graph/controller.ts
|
|
4
4
|
import { Effect, Either, Exit, Scope } from "effect";
|
|
5
5
|
import { Event, synchronized } from "@dxos/async";
|
|
6
|
-
import { GraphExecutor,
|
|
6
|
+
import { GraphExecutor, ValueBag, isNotExecuted } from "@dxos/conductor";
|
|
7
7
|
import { Resource } from "@dxos/context";
|
|
8
8
|
import { log } from "@dxos/log";
|
|
9
9
|
|
|
10
|
-
//
|
|
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 = "/home/runner/work/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
|
-
["database"]: () => createNode("database"),
|
|
52
|
-
["gpt"]: () => createNode("gpt"),
|
|
53
|
-
["gpt-realtime"]: () => createNode("gpt-realtime"),
|
|
54
|
-
["if"]: () => createNode("if"),
|
|
55
|
-
["if-else"]: () => createNode("if-else"),
|
|
56
|
-
["function"]: () => createNode("function"),
|
|
57
|
-
["json"]: () => createNode("json"),
|
|
58
|
-
["json-transform"]: () => createNode("json-transform"),
|
|
59
|
-
["not"]: () => createNode("not"),
|
|
60
|
-
["or"]: () => createNode("or"),
|
|
61
|
-
["queue"]: () => createNode("queue"),
|
|
62
|
-
["rng"]: () => createNode("rng"),
|
|
63
|
-
["reducer"]: () => createNode("reducer"),
|
|
64
|
-
["scope"]: () => createNode("scope"),
|
|
65
|
-
["surface"]: () => createNode("surface"),
|
|
66
|
-
["switch"]: () => createNode("switch"),
|
|
67
|
-
["template"]: (shape) => {
|
|
68
|
-
const node = createNode("template", {
|
|
69
|
-
valueType: shape.valueType,
|
|
70
|
-
value: shape.text
|
|
71
|
-
});
|
|
72
|
-
node.inputSchema = toJsonSchema(getTemplateInputSchema(node));
|
|
73
|
-
return node;
|
|
74
|
-
},
|
|
75
|
-
["text"]: () => createNode("text"),
|
|
76
|
-
["thread"]: () => createNode("thread"),
|
|
77
|
-
["trigger"]: () => createNode(NODE_INPUT)
|
|
78
|
-
};
|
|
79
|
-
var createNode = (type, props) => ({
|
|
80
|
-
id: ObjectId.random(),
|
|
81
|
-
type,
|
|
82
|
-
...props
|
|
83
|
-
});
|
|
84
|
-
|
|
85
|
-
// packages/ui/react-ui-canvas-compute/src/hooks/compute-context.ts
|
|
10
|
+
// src/hooks/compute-context.ts
|
|
86
11
|
import { createContext, useContext } from "react";
|
|
87
|
-
import { raise
|
|
12
|
+
import { raise } from "@dxos/debug";
|
|
88
13
|
var ComputeContext = createContext(null);
|
|
89
14
|
var useComputeContext = () => {
|
|
90
|
-
return useContext(ComputeContext) ??
|
|
15
|
+
return useContext(ComputeContext) ?? raise(new Error("Missing ComputeContext"));
|
|
91
16
|
};
|
|
92
17
|
|
|
93
|
-
//
|
|
18
|
+
// src/hooks/useComputeGraphController.ts
|
|
94
19
|
import { useEffect, useState } from "react";
|
|
95
20
|
var combine = (...cbs) => {
|
|
96
21
|
return () => {
|
|
@@ -140,16 +65,16 @@ var useComputeGraphController = ({ controller, graph, editorRef }) => {
|
|
|
140
65
|
]);
|
|
141
66
|
};
|
|
142
67
|
|
|
143
|
-
//
|
|
68
|
+
// src/hooks/useComputeNodeState.ts
|
|
144
69
|
import { Schema } from "effect";
|
|
145
70
|
import { useCallback, useEffect as useEffect2, useState as useState2 } from "react";
|
|
146
|
-
import { invariant
|
|
147
|
-
var
|
|
71
|
+
import { invariant } from "@dxos/invariant";
|
|
72
|
+
var __dxlog_file = "/__w/dxos/dxos/packages/ui/react-ui-canvas-compute/src/hooks/useComputeNodeState.ts";
|
|
148
73
|
var useComputeNodeState = (shape) => {
|
|
149
74
|
const { controller } = useComputeContext();
|
|
150
|
-
|
|
151
|
-
F:
|
|
152
|
-
L:
|
|
75
|
+
invariant(controller, void 0, {
|
|
76
|
+
F: __dxlog_file,
|
|
77
|
+
L: 34,
|
|
153
78
|
S: void 0,
|
|
154
79
|
A: [
|
|
155
80
|
"controller",
|
|
@@ -160,9 +85,9 @@ var useComputeNodeState = (shape) => {
|
|
|
160
85
|
useEffect2(() => {
|
|
161
86
|
let disposed = false;
|
|
162
87
|
queueMicrotask(async () => {
|
|
163
|
-
|
|
164
|
-
F:
|
|
165
|
-
L:
|
|
88
|
+
invariant(shape.node, "Node not specified", {
|
|
89
|
+
F: __dxlog_file,
|
|
90
|
+
L: 40,
|
|
166
91
|
S: void 0,
|
|
167
92
|
A: [
|
|
168
93
|
"shape.node",
|
|
@@ -214,19 +139,19 @@ var useComputeNodeState = (shape) => {
|
|
|
214
139
|
};
|
|
215
140
|
};
|
|
216
141
|
|
|
217
|
-
//
|
|
142
|
+
// src/hooks/useGraphMonitor.ts
|
|
218
143
|
import { useMemo } from "react";
|
|
219
144
|
import { ComputeGraphModel, DEFAULT_INPUT, DEFAULT_OUTPUT } from "@dxos/conductor";
|
|
220
|
-
import { ObjectId
|
|
221
|
-
import { invariant as
|
|
145
|
+
import { ObjectId, Ref } from "@dxos/echo-schema";
|
|
146
|
+
import { invariant as invariant2 } from "@dxos/invariant";
|
|
222
147
|
import { getSpace } from "@dxos/react-client/echo";
|
|
223
148
|
import { isNonNullable } from "@dxos/util";
|
|
224
|
-
var
|
|
149
|
+
var __dxlog_file2 = "/__w/dxos/dxos/packages/ui/react-ui-canvas-compute/src/hooks/useGraphMonitor.ts";
|
|
225
150
|
var mapEdge = (graph, { source, target, output = DEFAULT_OUTPUT, input = DEFAULT_INPUT }) => {
|
|
226
151
|
const sourceNode = graph.findNode(source);
|
|
227
152
|
const targetNode = graph.findNode(target);
|
|
228
|
-
|
|
229
|
-
F:
|
|
153
|
+
invariant2(sourceNode?.node, void 0, {
|
|
154
|
+
F: __dxlog_file2,
|
|
230
155
|
L: 26,
|
|
231
156
|
S: void 0,
|
|
232
157
|
A: [
|
|
@@ -234,8 +159,8 @@ var mapEdge = (graph, { source, target, output = DEFAULT_OUTPUT, input = DEFAULT
|
|
|
234
159
|
""
|
|
235
160
|
]
|
|
236
161
|
});
|
|
237
|
-
|
|
238
|
-
F:
|
|
162
|
+
invariant2(targetNode?.node, void 0, {
|
|
163
|
+
F: __dxlog_file2,
|
|
239
164
|
L: 27,
|
|
240
165
|
S: void 0,
|
|
241
166
|
A: [
|
|
@@ -244,7 +169,7 @@ var mapEdge = (graph, { source, target, output = DEFAULT_OUTPUT, input = DEFAULT
|
|
|
244
169
|
]
|
|
245
170
|
});
|
|
246
171
|
return {
|
|
247
|
-
id:
|
|
172
|
+
id: ObjectId.random(),
|
|
248
173
|
source: sourceNode.node,
|
|
249
174
|
target: targetNode.node,
|
|
250
175
|
output,
|
|
@@ -258,8 +183,8 @@ var useGraphMonitor = (model) => {
|
|
|
258
183
|
if (!model) {
|
|
259
184
|
return;
|
|
260
185
|
}
|
|
261
|
-
|
|
262
|
-
F:
|
|
186
|
+
invariant2(node.type, void 0, {
|
|
187
|
+
F: __dxlog_file2,
|
|
263
188
|
L: 52,
|
|
264
189
|
S: void 0,
|
|
265
190
|
A: [
|
|
@@ -316,8 +241,8 @@ var createComputeGraph = (graph) => {
|
|
|
316
241
|
};
|
|
317
242
|
var linkTriggerToCompute = (graph, computeNode, triggerData) => {
|
|
318
243
|
const functionTrigger = triggerData.functionTrigger?.target;
|
|
319
|
-
|
|
320
|
-
F:
|
|
244
|
+
invariant2(functionTrigger, void 0, {
|
|
245
|
+
F: __dxlog_file2,
|
|
321
246
|
L: 115,
|
|
322
247
|
S: void 0,
|
|
323
248
|
A: [
|
|
@@ -341,14 +266,103 @@ var deleteTriggerObjects = (computeGraph, deleted) => {
|
|
|
341
266
|
}
|
|
342
267
|
};
|
|
343
268
|
|
|
344
|
-
//
|
|
269
|
+
// src/graph/node-defs.ts
|
|
270
|
+
import { NODE_INPUT, NODE_OUTPUT, getTemplateInputSchema, registry } from "@dxos/conductor";
|
|
271
|
+
import { raise as raise2 } from "@dxos/debug";
|
|
272
|
+
import { ObjectId as ObjectId2, toJsonSchema } from "@dxos/echo-schema";
|
|
273
|
+
import { invariant as invariant3 } from "@dxos/invariant";
|
|
274
|
+
var __dxlog_file3 = "/__w/dxos/dxos/packages/ui/react-ui-canvas-compute/src/graph/node-defs.ts";
|
|
275
|
+
var resolveComputeNode = async (node) => {
|
|
276
|
+
const impl = registry[node.type];
|
|
277
|
+
invariant3(impl, `Unknown node type: ${node.type}`, {
|
|
278
|
+
F: __dxlog_file3,
|
|
279
|
+
L: 22,
|
|
280
|
+
S: void 0,
|
|
281
|
+
A: [
|
|
282
|
+
"impl",
|
|
283
|
+
"`Unknown node type: ${node.type}`"
|
|
284
|
+
]
|
|
285
|
+
});
|
|
286
|
+
return impl;
|
|
287
|
+
};
|
|
288
|
+
var isValidComputeNode = (type) => {
|
|
289
|
+
return nodeFactory[type] !== void 0;
|
|
290
|
+
};
|
|
291
|
+
var createComputeNode = (shape) => {
|
|
292
|
+
const type = shape.type ?? raise2(new Error("Type not specified"));
|
|
293
|
+
const factory = nodeFactory[type] ?? raise2(new Error(`Unknown shape type: ${type}`));
|
|
294
|
+
return factory(shape);
|
|
295
|
+
};
|
|
296
|
+
var nodeFactory = {
|
|
297
|
+
// System.
|
|
298
|
+
[NODE_INPUT]: () => createNode(NODE_INPUT),
|
|
299
|
+
[NODE_OUTPUT]: () => createNode(NODE_OUTPUT),
|
|
300
|
+
// Extensions.
|
|
301
|
+
["text-to-image"]: () => createNode("text-to-image"),
|
|
302
|
+
["and"]: () => createNode("and"),
|
|
303
|
+
["append"]: () => createNode("append"),
|
|
304
|
+
["audio"]: () => createNode("audio"),
|
|
305
|
+
["beacon"]: () => createNode("beacon"),
|
|
306
|
+
["chat"]: () => createNode("chat"),
|
|
307
|
+
["constant"]: (shape) => createNode("constant", {
|
|
308
|
+
value: shape.value
|
|
309
|
+
}),
|
|
310
|
+
["make-queue"]: () => createNode("make-queue"),
|
|
311
|
+
["database"]: () => createNode("database"),
|
|
312
|
+
["gpt"]: () => createNode("gpt"),
|
|
313
|
+
["gpt-realtime"]: () => createNode("gpt-realtime"),
|
|
314
|
+
["if"]: () => createNode("if"),
|
|
315
|
+
["if-else"]: () => createNode("if-else"),
|
|
316
|
+
["function"]: () => createNode("function"),
|
|
317
|
+
["json"]: () => createNode("json"),
|
|
318
|
+
["json-transform"]: () => createNode("json-transform"),
|
|
319
|
+
["not"]: () => createNode("not"),
|
|
320
|
+
["or"]: () => createNode("or"),
|
|
321
|
+
["queue"]: () => createNode("queue"),
|
|
322
|
+
["rng"]: () => createNode("rng"),
|
|
323
|
+
["reducer"]: () => createNode("reducer"),
|
|
324
|
+
["scope"]: () => createNode("scope"),
|
|
325
|
+
["surface"]: () => createNode("surface"),
|
|
326
|
+
["switch"]: () => createNode("switch"),
|
|
327
|
+
["template"]: (shape) => {
|
|
328
|
+
const node = createNode("template", {
|
|
329
|
+
valueType: shape.valueType,
|
|
330
|
+
value: shape.text
|
|
331
|
+
});
|
|
332
|
+
node.inputSchema = toJsonSchema(getTemplateInputSchema(node));
|
|
333
|
+
return node;
|
|
334
|
+
},
|
|
335
|
+
["text"]: () => createNode("text"),
|
|
336
|
+
["thread"]: () => createNode("thread"),
|
|
337
|
+
["trigger"]: () => createNode(NODE_INPUT)
|
|
338
|
+
};
|
|
339
|
+
var createNode = (type, props) => ({
|
|
340
|
+
id: ObjectId2.random(),
|
|
341
|
+
type,
|
|
342
|
+
...props
|
|
343
|
+
});
|
|
344
|
+
|
|
345
|
+
// src/graph/controller.ts
|
|
346
|
+
function _define_property(obj, key, value) {
|
|
347
|
+
if (key in obj) {
|
|
348
|
+
Object.defineProperty(obj, key, {
|
|
349
|
+
value,
|
|
350
|
+
enumerable: true,
|
|
351
|
+
configurable: true,
|
|
352
|
+
writable: true
|
|
353
|
+
});
|
|
354
|
+
} else {
|
|
355
|
+
obj[key] = value;
|
|
356
|
+
}
|
|
357
|
+
return obj;
|
|
358
|
+
}
|
|
345
359
|
function _ts_decorate(decorators, target, key, desc) {
|
|
346
360
|
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
347
361
|
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
348
362
|
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
349
363
|
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
350
364
|
}
|
|
351
|
-
var __dxlog_file4 = "/
|
|
365
|
+
var __dxlog_file4 = "/__w/dxos/dxos/packages/ui/react-ui-canvas-compute/src/graph/controller.ts";
|
|
352
366
|
var InvalidStateError = Error;
|
|
353
367
|
var AUTO_TRIGGER_NODES = [
|
|
354
368
|
"chat",
|
|
@@ -364,11 +378,6 @@ var createComputeGraphController = (graph, serviceContainer) => {
|
|
|
364
378
|
};
|
|
365
379
|
};
|
|
366
380
|
var ComputeGraphController = class extends Resource {
|
|
367
|
-
constructor(_serviceContainer, _graph) {
|
|
368
|
-
super(), this._serviceContainer = _serviceContainer, this._graph = _graph, this._executor = new GraphExecutor({
|
|
369
|
-
computeNodeResolver: (node) => resolveComputeNode(node)
|
|
370
|
-
}), this._diagnostics = [], this._forcedOutputs = {}, this._runtimeStateInputs = {}, this._runtimeStateOutputs = {}, this.update = new Event(), this.output = new Event(), this.events = new Event();
|
|
371
|
-
}
|
|
372
381
|
toJSON() {
|
|
373
382
|
return {
|
|
374
383
|
graph: this._graph,
|
|
@@ -429,7 +438,8 @@ var ComputeGraphController = class extends Resource {
|
|
|
429
438
|
return this._runtimeStateOutputs[nodeId] ?? {};
|
|
430
439
|
}
|
|
431
440
|
setOutput(nodeId, property, value) {
|
|
432
|
-
|
|
441
|
+
var _this__forcedOutputs, _nodeId;
|
|
442
|
+
(_this__forcedOutputs = this._forcedOutputs)[_nodeId = nodeId] ?? (_this__forcedOutputs[_nodeId] = {});
|
|
433
443
|
this._forcedOutputs[nodeId][property] = value;
|
|
434
444
|
queueMicrotask(async () => {
|
|
435
445
|
try {
|
|
@@ -554,11 +564,13 @@ var ComputeGraphController = class extends Resource {
|
|
|
554
564
|
this.events.emit(event);
|
|
555
565
|
}
|
|
556
566
|
_onInputComputed(nodeId, property, value) {
|
|
557
|
-
|
|
567
|
+
var _this__runtimeStateInputs, _nodeId;
|
|
568
|
+
(_this__runtimeStateInputs = this._runtimeStateInputs)[_nodeId = nodeId] ?? (_this__runtimeStateInputs[_nodeId] = {});
|
|
558
569
|
this._runtimeStateInputs[nodeId][property] = value;
|
|
559
570
|
}
|
|
560
571
|
_onOutputComputed(nodeId, property, value) {
|
|
561
|
-
|
|
572
|
+
var _this__runtimeStateOutputs, _nodeId;
|
|
573
|
+
(_this__runtimeStateOutputs = this._runtimeStateOutputs)[_nodeId = nodeId] ?? (_this__runtimeStateOutputs[_nodeId] = {});
|
|
562
574
|
this._runtimeStateOutputs[nodeId][property] = value;
|
|
563
575
|
this.output.emit({
|
|
564
576
|
nodeId,
|
|
@@ -566,6 +578,19 @@ var ComputeGraphController = class extends Resource {
|
|
|
566
578
|
value
|
|
567
579
|
});
|
|
568
580
|
}
|
|
581
|
+
constructor(_serviceContainer, _graph) {
|
|
582
|
+
super(), _define_property(this, "_serviceContainer", void 0), _define_property(this, "_graph", void 0), _define_property(this, "_executor", void 0), _define_property(this, "_diagnostics", void 0), /**
|
|
583
|
+
* Canvas force-sets outputs of those nodes.
|
|
584
|
+
*/
|
|
585
|
+
_define_property(this, "_forcedOutputs", void 0), /**
|
|
586
|
+
* Runtime state of the execution graph.
|
|
587
|
+
*/
|
|
588
|
+
_define_property(this, "_runtimeStateInputs", void 0), _define_property(this, "_runtimeStateOutputs", void 0), // TODO(burdon): Remove? Make state reactive?
|
|
589
|
+
_define_property(this, "update", void 0), /** Computed result. */
|
|
590
|
+
_define_property(this, "output", void 0), _define_property(this, "events", void 0), this._serviceContainer = _serviceContainer, this._graph = _graph, this._executor = new GraphExecutor({
|
|
591
|
+
computeNodeResolver: (node) => resolveComputeNode(node)
|
|
592
|
+
}), this._diagnostics = [], this._forcedOutputs = {}, this._runtimeStateInputs = {}, this._runtimeStateOutputs = {}, this.update = new Event(), this.output = new Event(), this.events = new Event();
|
|
593
|
+
}
|
|
569
594
|
};
|
|
570
595
|
_ts_decorate([
|
|
571
596
|
synchronized
|
|
@@ -604,17 +629,17 @@ var computeValueBag = (bag) => {
|
|
|
604
629
|
})))).pipe(Effect.map((entries) => Object.fromEntries(entries)));
|
|
605
630
|
};
|
|
606
631
|
|
|
607
|
-
//
|
|
632
|
+
// src/registry.ts
|
|
608
633
|
import { noteShape } from "@dxos/react-ui-canvas-editor";
|
|
609
634
|
|
|
610
|
-
//
|
|
635
|
+
// src/shapes/common/Box.tsx
|
|
611
636
|
import { useSignals as _useSignals } from "@preact-signals/safe-react/tracking";
|
|
612
637
|
import React, { forwardRef } from "react";
|
|
613
638
|
import { invariant as invariant4 } from "@dxos/invariant";
|
|
614
639
|
import { Icon, IconButton } from "@dxos/react-ui";
|
|
615
640
|
import { useEditorContext, useShapeDef } from "@dxos/react-ui-canvas-editor";
|
|
616
641
|
import { mx } from "@dxos/react-ui-theme";
|
|
617
|
-
var __dxlog_file5 = "/
|
|
642
|
+
var __dxlog_file5 = "/__w/dxos/dxos/packages/ui/react-ui-canvas-compute/src/shapes/common/Box.tsx";
|
|
618
643
|
var headerHeight = 32;
|
|
619
644
|
var footerHeight = 32;
|
|
620
645
|
var Box = /* @__PURE__ */ forwardRef(({ children, classNames, shape, title, status, open, onAction }, forwardedRef) => {
|
|
@@ -678,15 +703,15 @@ var Box = /* @__PURE__ */ forwardRef(({ children, classNames, shape, title, stat
|
|
|
678
703
|
}
|
|
679
704
|
});
|
|
680
705
|
|
|
681
|
-
//
|
|
706
|
+
// src/shapes/common/FunctionBody.tsx
|
|
682
707
|
import { useSignals as _useSignals2 } from "@preact-signals/safe-react/tracking";
|
|
683
708
|
import { SchemaAST as SchemaAST2 } from "effect";
|
|
684
709
|
import React2, { useRef, useState as useState3 } from "react";
|
|
685
710
|
import { VoidInput, VoidOutput } from "@dxos/conductor";
|
|
686
711
|
import { useCanvasContext } from "@dxos/react-ui-canvas";
|
|
687
|
-
import {
|
|
712
|
+
import { createAnchors, getParentShapeElement, rowHeight } from "@dxos/react-ui-canvas-editor";
|
|
688
713
|
|
|
689
|
-
//
|
|
714
|
+
// src/shapes/defs.ts
|
|
690
715
|
import { Schema as Schema2, SchemaAST } from "effect";
|
|
691
716
|
import { DEFAULT_INPUT as DEFAULT_INPUT2, DEFAULT_OUTPUT as DEFAULT_OUTPUT2 } from "@dxos/conductor";
|
|
692
717
|
import { ObjectId as ObjectId3 } from "@dxos/echo-schema";
|
|
@@ -718,7 +743,7 @@ var createShape = ({ id, ...rest }) => {
|
|
|
718
743
|
};
|
|
719
744
|
};
|
|
720
745
|
|
|
721
|
-
//
|
|
746
|
+
// src/shapes/common/FunctionBody.tsx
|
|
722
747
|
var bodyPadding = 8;
|
|
723
748
|
var expandedHeight = 200;
|
|
724
749
|
var FunctionBody = ({ shape, name, content, inputSchema = VoidInput, outputSchema = VoidOutput, ...props }) => {
|
|
@@ -805,7 +830,7 @@ var createFunctionAnchors = (shape, input = VoidInput, output = VoidOutput) => {
|
|
|
805
830
|
});
|
|
806
831
|
};
|
|
807
832
|
|
|
808
|
-
//
|
|
833
|
+
// src/shapes/common/TypeSelect.tsx
|
|
809
834
|
import { useSignals as _useSignals3 } from "@preact-signals/safe-react/tracking";
|
|
810
835
|
import React3 from "react";
|
|
811
836
|
import { ComputeValueType } from "@dxos/conductor";
|
|
@@ -828,7 +853,7 @@ var TypeSelect = ({ value, onValueChange }) => {
|
|
|
828
853
|
}
|
|
829
854
|
};
|
|
830
855
|
|
|
831
|
-
//
|
|
856
|
+
// src/shapes/Array.tsx
|
|
832
857
|
import { useSignals as _useSignals4 } from "@preact-signals/safe-react/tracking";
|
|
833
858
|
import { Schema as Schema3 } from "effect";
|
|
834
859
|
import React4 from "react";
|
|
@@ -865,7 +890,7 @@ var reducerShape = {
|
|
|
865
890
|
getAnchors: (shape) => createFunctionAnchors(shape, ReducerInput, ReducerOutput)
|
|
866
891
|
};
|
|
867
892
|
|
|
868
|
-
//
|
|
893
|
+
// src/shapes/Append.tsx
|
|
869
894
|
import { useSignals as _useSignals5 } from "@preact-signals/safe-react/tracking";
|
|
870
895
|
import { Schema as Schema4 } from "effect";
|
|
871
896
|
import React5 from "react";
|
|
@@ -901,7 +926,7 @@ var appendShape = {
|
|
|
901
926
|
getAnchors: (shape) => createFunctionAnchors(shape, AppendInput)
|
|
902
927
|
};
|
|
903
928
|
|
|
904
|
-
//
|
|
929
|
+
// src/shapes/Audio.tsx
|
|
905
930
|
import { useSignals as _useSignals6 } from "@preact-signals/safe-react/tracking";
|
|
906
931
|
import { Schema as Schema5 } from "effect";
|
|
907
932
|
import React6, { useEffect as useEffect3, useState as useState4 } from "react";
|
|
@@ -957,14 +982,13 @@ var audioShape = {
|
|
|
957
982
|
})
|
|
958
983
|
};
|
|
959
984
|
|
|
960
|
-
//
|
|
985
|
+
// src/shapes/Beacon.tsx
|
|
961
986
|
import { useSignals as _useSignals7 } from "@preact-signals/safe-react/tracking";
|
|
962
987
|
import { Schema as Schema6 } from "effect";
|
|
963
988
|
import React7 from "react";
|
|
964
989
|
import { DEFAULT_INPUT as DEFAULT_INPUT3, isTruthy } from "@dxos/conductor";
|
|
965
990
|
import { Icon as Icon3 } from "@dxos/react-ui";
|
|
966
991
|
import { createAnchorMap as createAnchorMap2 } from "@dxos/react-ui-canvas-editor";
|
|
967
|
-
import { mx as mx2 } from "@dxos/react-ui-theme";
|
|
968
992
|
var BeaconShape = Schema6.extend(ComputeShape, Schema6.Struct({
|
|
969
993
|
type: Schema6.Literal("beacon")
|
|
970
994
|
}));
|
|
@@ -986,7 +1010,10 @@ var BeaconComponent = ({ shape }) => {
|
|
|
986
1010
|
className: "flex w-full justify-center items-center"
|
|
987
1011
|
}, /* @__PURE__ */ React7.createElement(Icon3, {
|
|
988
1012
|
icon: "ph--sun--regular",
|
|
989
|
-
classNames:
|
|
1013
|
+
classNames: [
|
|
1014
|
+
"transition opacity-20 duration-1000",
|
|
1015
|
+
isTruthy(value) && "opacity-100 text-yellow-500"
|
|
1016
|
+
],
|
|
990
1017
|
size: 8
|
|
991
1018
|
}));
|
|
992
1019
|
} finally {
|
|
@@ -1007,7 +1034,7 @@ var beaconShape = {
|
|
|
1007
1034
|
})
|
|
1008
1035
|
};
|
|
1009
1036
|
|
|
1010
|
-
//
|
|
1037
|
+
// src/shapes/Boolean.tsx
|
|
1011
1038
|
import { Schema as Schema7 } from "effect";
|
|
1012
1039
|
import React8 from "react";
|
|
1013
1040
|
import { getAnchorPoints } from "@dxos/react-ui-canvas-editor";
|
|
@@ -1180,7 +1207,7 @@ var notShape = defineShape({
|
|
|
1180
1207
|
]
|
|
1181
1208
|
});
|
|
1182
1209
|
|
|
1183
|
-
//
|
|
1210
|
+
// src/shapes/Chat.tsx
|
|
1184
1211
|
import { useSignals as _useSignals8 } from "@preact-signals/safe-react/tracking";
|
|
1185
1212
|
import { Schema as Schema8 } from "effect";
|
|
1186
1213
|
import React9, { useRef as useRef2 } from "react";
|
|
@@ -1241,7 +1268,7 @@ var chatShape = {
|
|
|
1241
1268
|
resizable: true
|
|
1242
1269
|
};
|
|
1243
1270
|
|
|
1244
|
-
//
|
|
1271
|
+
// src/shapes/Constant.tsx
|
|
1245
1272
|
import { useSignals as _useSignals9 } from "@preact-signals/safe-react/tracking";
|
|
1246
1273
|
import { Schema as Schema9 } from "effect";
|
|
1247
1274
|
import React10, { useCallback as useCallback2, useRef as useRef3, useState as useState5 } from "react";
|
|
@@ -1344,7 +1371,7 @@ var constantShape = {
|
|
|
1344
1371
|
resizable: true
|
|
1345
1372
|
};
|
|
1346
1373
|
|
|
1347
|
-
//
|
|
1374
|
+
// src/shapes/Database.tsx
|
|
1348
1375
|
import { useSignals as _useSignals10 } from "@preact-signals/safe-react/tracking";
|
|
1349
1376
|
import { Schema as Schema10 } from "effect";
|
|
1350
1377
|
import React11 from "react";
|
|
@@ -1384,15 +1411,15 @@ var databaseShape = {
|
|
|
1384
1411
|
})
|
|
1385
1412
|
};
|
|
1386
1413
|
|
|
1387
|
-
//
|
|
1414
|
+
// src/shapes/Function.tsx
|
|
1388
1415
|
import { useSignals as _useSignals11 } from "@preact-signals/safe-react/tracking";
|
|
1389
1416
|
import { Schema as Schema11 } from "effect";
|
|
1390
1417
|
import React12, { useCallback as useCallback3, useRef as useRef4 } from "react";
|
|
1391
1418
|
import { AnyOutput, FunctionInput } from "@dxos/conductor";
|
|
1392
|
-
import {
|
|
1419
|
+
import { Ref as Ref2, getSnapshot, isInstanceOf } from "@dxos/echo-schema";
|
|
1393
1420
|
import { FunctionType, ScriptType } from "@dxos/functions";
|
|
1394
1421
|
import { useClient } from "@dxos/react-client";
|
|
1395
|
-
import { Filter,
|
|
1422
|
+
import { Filter, parseId } from "@dxos/react-client/echo";
|
|
1396
1423
|
import { TextBox as TextBox3 } from "@dxos/react-ui-canvas-editor";
|
|
1397
1424
|
var FunctionShape = Schema11.extend(ComputeShape, Schema11.Struct({
|
|
1398
1425
|
type: Schema11.Literal("function")
|
|
@@ -1429,7 +1456,7 @@ var TextInputComponent2 = ({ shape, title, ...props }) => {
|
|
|
1429
1456
|
return;
|
|
1430
1457
|
}
|
|
1431
1458
|
node.value = value;
|
|
1432
|
-
node.function =
|
|
1459
|
+
node.function = Ref2.make(fn);
|
|
1433
1460
|
node.inputSchema = getSnapshot(fn.inputSchema);
|
|
1434
1461
|
node.outputSchema = getSnapshot(fn.outputSchema);
|
|
1435
1462
|
}, [
|
|
@@ -1469,7 +1496,7 @@ var functionShape = {
|
|
|
1469
1496
|
getAnchors: (shape) => createFunctionAnchors(shape, FunctionInput, AnyOutput)
|
|
1470
1497
|
};
|
|
1471
1498
|
|
|
1472
|
-
//
|
|
1499
|
+
// src/shapes/Gpt.tsx
|
|
1473
1500
|
import { useSignals as _useSignals12 } from "@preact-signals/safe-react/tracking";
|
|
1474
1501
|
import { Schema as Schema12 } from "effect";
|
|
1475
1502
|
import React13, { useEffect as useEffect4, useState as useState6 } from "react";
|
|
@@ -1545,7 +1572,7 @@ var gptShape = {
|
|
|
1545
1572
|
openable: true
|
|
1546
1573
|
};
|
|
1547
1574
|
|
|
1548
|
-
//
|
|
1575
|
+
// src/shapes/Json.tsx
|
|
1549
1576
|
import { useSignals as _useSignals13 } from "@preact-signals/safe-react/tracking";
|
|
1550
1577
|
import { Schema as Schema13 } from "effect";
|
|
1551
1578
|
import React14 from "react";
|
|
@@ -1628,7 +1655,7 @@ var jsonTransformShape = {
|
|
|
1628
1655
|
resizable: true
|
|
1629
1656
|
};
|
|
1630
1657
|
|
|
1631
|
-
//
|
|
1658
|
+
// src/shapes/Logic.tsx
|
|
1632
1659
|
import { useSignals as _useSignals14 } from "@preact-signals/safe-react/tracking";
|
|
1633
1660
|
import { Schema as Schema14 } from "effect";
|
|
1634
1661
|
import React15 from "react";
|
|
@@ -1696,12 +1723,12 @@ var ifElseShape = {
|
|
|
1696
1723
|
getAnchors: (shape) => createFunctionAnchors(shape, IfElseInput, IfElseOutput)
|
|
1697
1724
|
};
|
|
1698
1725
|
|
|
1699
|
-
//
|
|
1726
|
+
// src/shapes/Queue.tsx
|
|
1700
1727
|
import { useSignals as _useSignals15 } from "@preact-signals/safe-react/tracking";
|
|
1701
1728
|
import { Schema as Schema15 } from "effect";
|
|
1702
1729
|
import React16, { Fragment } from "react";
|
|
1703
1730
|
import { DEFAULT_OUTPUT as DEFAULT_OUTPUT4, QueueInput, QueueOutput } from "@dxos/conductor";
|
|
1704
|
-
import { mx as
|
|
1731
|
+
import { mx as mx2 } from "@dxos/react-ui-theme";
|
|
1705
1732
|
var QueueShape = Schema15.extend(ComputeShape, Schema15.Struct({
|
|
1706
1733
|
type: Schema15.Literal("queue")
|
|
1707
1734
|
}));
|
|
@@ -1745,11 +1772,11 @@ var QueueItem = ({ classNames, item }) => {
|
|
|
1745
1772
|
try {
|
|
1746
1773
|
if (typeof item !== "object") {
|
|
1747
1774
|
return /* @__PURE__ */ React16.createElement("div", {
|
|
1748
|
-
className:
|
|
1775
|
+
className: mx2(classNames, "whitespace-pre-wrap")
|
|
1749
1776
|
}, item);
|
|
1750
1777
|
}
|
|
1751
1778
|
return /* @__PURE__ */ React16.createElement("div", {
|
|
1752
|
-
className:
|
|
1779
|
+
className: mx2("grid grid-cols-[80px,1fr]", classNames)
|
|
1753
1780
|
}, Object.entries(item).map(([key, value]) => /* @__PURE__ */ React16.createElement(Fragment, {
|
|
1754
1781
|
key
|
|
1755
1782
|
}, /* @__PURE__ */ React16.createElement("div", {
|
|
@@ -1769,14 +1796,13 @@ var queueShape = {
|
|
|
1769
1796
|
resizable: true
|
|
1770
1797
|
};
|
|
1771
1798
|
|
|
1772
|
-
//
|
|
1799
|
+
// src/shapes/RNG.tsx
|
|
1773
1800
|
import { useSignals as _useSignals16 } from "@preact-signals/safe-react/tracking";
|
|
1774
1801
|
import { Schema as Schema16 } from "effect";
|
|
1775
1802
|
import React17, { useEffect as useEffect5, useState as useState7 } from "react";
|
|
1776
1803
|
import { DEFAULT_OUTPUT as DEFAULT_OUTPUT5 } from "@dxos/conductor";
|
|
1777
1804
|
import { Icon as Icon4 } from "@dxos/react-ui";
|
|
1778
1805
|
import { createAnchorMap as createAnchorMap7 } from "@dxos/react-ui-canvas-editor";
|
|
1779
|
-
import { mx as mx4 } from "@dxos/react-ui-theme";
|
|
1780
1806
|
var RandomShape = Schema16.extend(ComputeShape, Schema16.Struct({
|
|
1781
1807
|
type: Schema16.Literal("rng"),
|
|
1782
1808
|
min: Schema16.optional(Schema16.Number),
|
|
@@ -1829,7 +1855,7 @@ var RandomComponent = ({ shape }) => {
|
|
|
1829
1855
|
className: "flex grow items-center justify-center"
|
|
1830
1856
|
}, /* @__PURE__ */ React17.createElement(Icon4, {
|
|
1831
1857
|
icon,
|
|
1832
|
-
classNames:
|
|
1858
|
+
classNames: spin && "animate-[spin_1s]",
|
|
1833
1859
|
size: 10,
|
|
1834
1860
|
onClick: handleClick
|
|
1835
1861
|
}));
|
|
@@ -1851,13 +1877,13 @@ var randomShape = {
|
|
|
1851
1877
|
})
|
|
1852
1878
|
};
|
|
1853
1879
|
|
|
1854
|
-
//
|
|
1880
|
+
// src/shapes/Scope.tsx
|
|
1855
1881
|
import { useSignals as _useSignals17 } from "@preact-signals/safe-react/tracking";
|
|
1856
1882
|
import { Schema as Schema17 } from "effect";
|
|
1857
1883
|
import React18 from "react";
|
|
1858
1884
|
import { DEFAULT_INPUT as DEFAULT_INPUT5 } from "@dxos/conductor";
|
|
1859
1885
|
import { createAnchorMap as createAnchorMap8 } from "@dxos/react-ui-canvas-editor";
|
|
1860
|
-
import {
|
|
1886
|
+
import { Chaos, shaderPresets, useAudioStream } from "@dxos/react-ui-sfx";
|
|
1861
1887
|
var ScopeShape = Schema17.extend(ComputeShape, Schema17.Struct({
|
|
1862
1888
|
type: Schema17.Literal("scope")
|
|
1863
1889
|
}));
|
|
@@ -1905,7 +1931,7 @@ var scopeShape = {
|
|
|
1905
1931
|
})
|
|
1906
1932
|
};
|
|
1907
1933
|
|
|
1908
|
-
//
|
|
1934
|
+
// src/shapes/Surface.tsx
|
|
1909
1935
|
import { useSignals as _useSignals18 } from "@preact-signals/safe-react/tracking";
|
|
1910
1936
|
import { Schema as Schema18 } from "effect";
|
|
1911
1937
|
import React19 from "react";
|
|
@@ -1938,7 +1964,7 @@ var SurfaceComponent = ({ shape }) => {
|
|
|
1938
1964
|
shape,
|
|
1939
1965
|
onAction: handleAction
|
|
1940
1966
|
}, value !== null && /* @__PURE__ */ React19.createElement(Surface, {
|
|
1941
|
-
role: "
|
|
1967
|
+
role: "card--extrinsic",
|
|
1942
1968
|
data: {
|
|
1943
1969
|
value
|
|
1944
1970
|
},
|
|
@@ -1963,7 +1989,7 @@ var surfaceShape = {
|
|
|
1963
1989
|
resizable: true
|
|
1964
1990
|
};
|
|
1965
1991
|
|
|
1966
|
-
//
|
|
1992
|
+
// src/shapes/Switch.tsx
|
|
1967
1993
|
import { useSignals as _useSignals19 } from "@preact-signals/safe-react/tracking";
|
|
1968
1994
|
import { Schema as Schema19 } from "effect";
|
|
1969
1995
|
import React20, { useEffect as useEffect6, useState as useState8 } from "react";
|
|
@@ -2016,13 +2042,14 @@ var switchShape = {
|
|
|
2016
2042
|
})
|
|
2017
2043
|
};
|
|
2018
2044
|
|
|
2019
|
-
//
|
|
2045
|
+
// src/shapes/Table.tsx
|
|
2020
2046
|
import { useSignals as _useSignals20 } from "@preact-signals/safe-react/tracking";
|
|
2021
2047
|
import { Schema as Schema20 } from "effect";
|
|
2022
2048
|
import React21 from "react";
|
|
2023
|
-
import { createInputSchema, createOutputSchema
|
|
2024
|
-
|
|
2025
|
-
var
|
|
2049
|
+
import { createInputSchema, createOutputSchema } from "@dxos/conductor";
|
|
2050
|
+
import { DataType } from "@dxos/schema";
|
|
2051
|
+
var InputSchema = createInputSchema(DataType.Message);
|
|
2052
|
+
var OutputSchema = createOutputSchema(Schema20.mutable(Schema20.Array(DataType.Message)));
|
|
2026
2053
|
var TableShape = Schema20.extend(ComputeShape, Schema20.Struct({
|
|
2027
2054
|
type: Schema20.Literal("table")
|
|
2028
2055
|
}));
|
|
@@ -2054,15 +2081,15 @@ var tableShape = {
|
|
|
2054
2081
|
resizable: true
|
|
2055
2082
|
};
|
|
2056
2083
|
|
|
2057
|
-
//
|
|
2084
|
+
// src/shapes/Template.tsx
|
|
2058
2085
|
import { useSignals as _useSignals21 } from "@preact-signals/safe-react/tracking";
|
|
2059
2086
|
import { Schema as Schema21 } from "effect";
|
|
2060
2087
|
import React22, { useRef as useRef5 } from "react";
|
|
2061
|
-
import { ComputeValueType as ComputeValueType3,
|
|
2088
|
+
import { ComputeValueType as ComputeValueType3, TemplateOutput, VoidInput as VoidInput2, getTemplateInputSchema as getTemplateInputSchema2 } from "@dxos/conductor";
|
|
2062
2089
|
import { toJsonSchema as toJsonSchema2 } from "@dxos/echo-schema";
|
|
2063
2090
|
import { invariant as invariant5 } from "@dxos/invariant";
|
|
2064
2091
|
import { TextBox as TextBox4 } from "@dxos/react-ui-canvas-editor";
|
|
2065
|
-
var __dxlog_file6 = "/
|
|
2092
|
+
var __dxlog_file6 = "/__w/dxos/dxos/packages/ui/react-ui-canvas-compute/src/shapes/Template.tsx";
|
|
2066
2093
|
var TemplateShape = Schema21.extend(ComputeShape, Schema21.Struct({
|
|
2067
2094
|
type: Schema21.Literal("template"),
|
|
2068
2095
|
valueType: Schema21.optional(ComputeValueType3)
|
|
@@ -2083,7 +2110,7 @@ var TextInputComponent3 = ({ shape, title, ...props }) => {
|
|
|
2083
2110
|
const handleTypeChange = (newType) => {
|
|
2084
2111
|
invariant5(Schema21.is(ComputeValueType3)(newType), "Invalid type", {
|
|
2085
2112
|
F: __dxlog_file6,
|
|
2086
|
-
L:
|
|
2113
|
+
L: 59,
|
|
2087
2114
|
S: void 0,
|
|
2088
2115
|
A: [
|
|
2089
2116
|
"Schema.is(ComputeValueType)(newType)",
|
|
@@ -2133,7 +2160,7 @@ var templateShape = {
|
|
|
2133
2160
|
resizable: true
|
|
2134
2161
|
};
|
|
2135
2162
|
|
|
2136
|
-
//
|
|
2163
|
+
// src/shapes/Text.tsx
|
|
2137
2164
|
import { useSignals as _useSignals22 } from "@preact-signals/safe-react/tracking";
|
|
2138
2165
|
import { Schema as Schema22 } from "effect";
|
|
2139
2166
|
import React23 from "react";
|
|
@@ -2187,14 +2214,15 @@ var textShape = {
|
|
|
2187
2214
|
resizable: true
|
|
2188
2215
|
};
|
|
2189
2216
|
|
|
2190
|
-
//
|
|
2217
|
+
// src/shapes/Thread.tsx
|
|
2191
2218
|
import { useSignals as _useSignals23 } from "@preact-signals/safe-react/tracking";
|
|
2192
2219
|
import { Schema as Schema23 } from "effect";
|
|
2193
2220
|
import React24, { useEffect as useEffect7, useRef as useRef6 } from "react";
|
|
2194
|
-
import { createInputSchema as createInputSchema2, createOutputSchema as createOutputSchema2
|
|
2195
|
-
import { mx as
|
|
2196
|
-
|
|
2197
|
-
var
|
|
2221
|
+
import { createInputSchema as createInputSchema2, createOutputSchema as createOutputSchema2 } from "@dxos/conductor";
|
|
2222
|
+
import { mx as mx3 } from "@dxos/react-ui-theme";
|
|
2223
|
+
import { DataType as DataType2 } from "@dxos/schema";
|
|
2224
|
+
var InputSchema2 = createInputSchema2(DataType2.Message);
|
|
2225
|
+
var OutputSchema2 = createOutputSchema2(Schema23.mutable(Schema23.Array(DataType2.Message)));
|
|
2198
2226
|
var ThreadShape = Schema23.extend(ComputeShape, Schema23.Struct({
|
|
2199
2227
|
type: Schema23.Literal("thread")
|
|
2200
2228
|
}));
|
|
@@ -2238,14 +2266,14 @@ var ThreadItem = ({ classNames, item }) => {
|
|
|
2238
2266
|
try {
|
|
2239
2267
|
if (typeof item !== "object") {
|
|
2240
2268
|
return /* @__PURE__ */ React24.createElement("div", {
|
|
2241
|
-
className:
|
|
2269
|
+
className: mx3(classNames)
|
|
2242
2270
|
}, item);
|
|
2243
2271
|
}
|
|
2244
2272
|
const { role, message } = item;
|
|
2245
2273
|
return /* @__PURE__ */ React24.createElement("div", {
|
|
2246
|
-
className:
|
|
2274
|
+
className: mx3("flex", classNames, role === "user" && "justify-end")
|
|
2247
2275
|
}, /* @__PURE__ */ React24.createElement("div", {
|
|
2248
|
-
className:
|
|
2276
|
+
className: mx3("block rounded-md p-1 px-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")
|
|
2249
2277
|
}, message));
|
|
2250
2278
|
} finally {
|
|
2251
2279
|
_effect.f();
|
|
@@ -2261,7 +2289,7 @@ var threadShape = {
|
|
|
2261
2289
|
resizable: true
|
|
2262
2290
|
};
|
|
2263
2291
|
|
|
2264
|
-
//
|
|
2292
|
+
// src/shapes/TextToImage.tsx
|
|
2265
2293
|
import { useSignals as _useSignals24 } from "@preact-signals/safe-react/tracking";
|
|
2266
2294
|
import { Schema as Schema24 } from "effect";
|
|
2267
2295
|
import React25 from "react";
|
|
@@ -2301,28 +2329,29 @@ var textToImageShape = {
|
|
|
2301
2329
|
})
|
|
2302
2330
|
};
|
|
2303
2331
|
|
|
2304
|
-
//
|
|
2332
|
+
// src/shapes/Trigger.tsx
|
|
2305
2333
|
import { useSignals as _useSignals25 } from "@preact-signals/safe-react/tracking";
|
|
2306
2334
|
import { Schema as Schema25 } from "effect";
|
|
2307
2335
|
import React26, { useEffect as useEffect8 } from "react";
|
|
2308
2336
|
import { VoidInput as VoidInput3 } from "@dxos/conductor";
|
|
2337
|
+
import { Filter as Filter2, Obj, Query } from "@dxos/echo";
|
|
2309
2338
|
import { ObjectId as ObjectId4, Ref as Ref3 } from "@dxos/echo-schema";
|
|
2310
|
-
import {
|
|
2339
|
+
import { EmailTriggerOutput, FunctionTrigger, QueueTriggerOutput, SubscriptionTriggerOutput, TimerTriggerOutput, TriggerKinds, WebhookTriggerOutput } from "@dxos/functions";
|
|
2311
2340
|
import { DXN, SpaceId } from "@dxos/keys";
|
|
2312
|
-
import {
|
|
2341
|
+
import { useSpace } from "@dxos/react-client/echo";
|
|
2313
2342
|
import { Select as Select2 } from "@dxos/react-ui";
|
|
2314
2343
|
var TriggerShape = Schema25.extend(ComputeShape, Schema25.Struct({
|
|
2315
2344
|
type: Schema25.Literal("trigger"),
|
|
2316
2345
|
functionTrigger: Schema25.optional(Ref3(FunctionTrigger))
|
|
2317
2346
|
}));
|
|
2318
2347
|
var createTrigger = (props) => {
|
|
2319
|
-
const functionTrigger =
|
|
2348
|
+
const functionTrigger = Obj.make(FunctionTrigger, {
|
|
2320
2349
|
enabled: true,
|
|
2321
2350
|
spec: createTriggerSpec(props)
|
|
2322
2351
|
});
|
|
2323
2352
|
return createShape({
|
|
2324
2353
|
type: "trigger",
|
|
2325
|
-
functionTrigger:
|
|
2354
|
+
functionTrigger: Ref3.make(functionTrigger),
|
|
2326
2355
|
size: {
|
|
2327
2356
|
width: 192,
|
|
2328
2357
|
height: getHeight(EmailTriggerOutput)
|
|
@@ -2338,7 +2367,7 @@ var TriggerComponent = ({ shape }) => {
|
|
|
2338
2367
|
useEffect8(() => {
|
|
2339
2368
|
if (functionTrigger && !functionTrigger.spec) {
|
|
2340
2369
|
functionTrigger.spec = createTriggerSpec({
|
|
2341
|
-
triggerKind:
|
|
2370
|
+
triggerKind: "email",
|
|
2342
2371
|
spaceId: space?.id
|
|
2343
2372
|
});
|
|
2344
2373
|
}
|
|
@@ -2347,7 +2376,7 @@ var TriggerComponent = ({ shape }) => {
|
|
|
2347
2376
|
functionTrigger?.spec
|
|
2348
2377
|
]);
|
|
2349
2378
|
useEffect8(() => {
|
|
2350
|
-
shape.size.height = getHeight(getOutputSchema(functionTrigger?.spec?.kind ??
|
|
2379
|
+
shape.size.height = getHeight(getOutputSchema(functionTrigger?.spec?.kind ?? "email"));
|
|
2351
2380
|
}, [
|
|
2352
2381
|
functionTrigger?.spec?.kind
|
|
2353
2382
|
]);
|
|
@@ -2384,7 +2413,7 @@ var TriggerKindSelect = ({ value, onValueChange }) => {
|
|
|
2384
2413
|
}, /* @__PURE__ */ React26.createElement(Select2.TriggerButton, {
|
|
2385
2414
|
variant: "ghost",
|
|
2386
2415
|
classNames: "w-full !px-0"
|
|
2387
|
-
}), /* @__PURE__ */ React26.createElement(Select2.Portal, null, /* @__PURE__ */ React26.createElement(Select2.Content, null, /* @__PURE__ */ React26.createElement(Select2.ScrollUpButton, null), /* @__PURE__ */ React26.createElement(Select2.Viewport, null,
|
|
2416
|
+
}), /* @__PURE__ */ React26.createElement(Select2.Portal, null, /* @__PURE__ */ React26.createElement(Select2.Content, null, /* @__PURE__ */ React26.createElement(Select2.ScrollUpButton, null), /* @__PURE__ */ React26.createElement(Select2.Viewport, null, TriggerKinds.map((kind) => /* @__PURE__ */ React26.createElement(Select2.Option, {
|
|
2388
2417
|
key: kind,
|
|
2389
2418
|
value: kind
|
|
2390
2419
|
}, kind))), /* @__PURE__ */ React26.createElement(Select2.ScrollDownButton, null), /* @__PURE__ */ React26.createElement(Select2.Arrow, null))));
|
|
@@ -2393,35 +2422,35 @@ var TriggerKindSelect = ({ value, onValueChange }) => {
|
|
|
2393
2422
|
}
|
|
2394
2423
|
};
|
|
2395
2424
|
var createTriggerSpec = (props) => {
|
|
2396
|
-
const kind = props.triggerKind ??
|
|
2425
|
+
const kind = props.triggerKind ?? "email";
|
|
2397
2426
|
switch (kind) {
|
|
2398
|
-
case
|
|
2427
|
+
case "timer":
|
|
2399
2428
|
return {
|
|
2400
|
-
kind:
|
|
2429
|
+
kind: "timer",
|
|
2401
2430
|
cron: "*/10 * * * * *"
|
|
2402
2431
|
};
|
|
2403
|
-
case
|
|
2432
|
+
case "webhook":
|
|
2404
2433
|
return {
|
|
2405
|
-
kind:
|
|
2434
|
+
kind: "webhook",
|
|
2406
2435
|
method: "POST"
|
|
2407
2436
|
};
|
|
2408
|
-
case
|
|
2437
|
+
case "subscription":
|
|
2409
2438
|
return {
|
|
2410
|
-
kind:
|
|
2411
|
-
|
|
2439
|
+
kind: "subscription",
|
|
2440
|
+
query: Query.select(Filter2.nothing()).ast
|
|
2412
2441
|
};
|
|
2413
|
-
case
|
|
2442
|
+
case "email":
|
|
2414
2443
|
return {
|
|
2415
|
-
kind:
|
|
2444
|
+
kind: "email"
|
|
2416
2445
|
};
|
|
2417
|
-
case
|
|
2446
|
+
case "queue": {
|
|
2418
2447
|
const dxn = new DXN(DXN.kind.QUEUE, [
|
|
2419
2448
|
"data",
|
|
2420
2449
|
props.spaceId ?? SpaceId.random(),
|
|
2421
2450
|
ObjectId4.random()
|
|
2422
2451
|
]).toString();
|
|
2423
2452
|
return {
|
|
2424
|
-
kind:
|
|
2453
|
+
kind: "queue",
|
|
2425
2454
|
queue: dxn
|
|
2426
2455
|
};
|
|
2427
2456
|
}
|
|
@@ -2429,11 +2458,11 @@ var createTriggerSpec = (props) => {
|
|
|
2429
2458
|
};
|
|
2430
2459
|
var getOutputSchema = (kind) => {
|
|
2431
2460
|
const kindToSchema = {
|
|
2432
|
-
[
|
|
2433
|
-
[
|
|
2434
|
-
[
|
|
2435
|
-
[
|
|
2436
|
-
[
|
|
2461
|
+
["email"]: EmailTriggerOutput,
|
|
2462
|
+
["subscription"]: SubscriptionTriggerOutput,
|
|
2463
|
+
["timer"]: TimerTriggerOutput,
|
|
2464
|
+
["webhook"]: WebhookTriggerOutput,
|
|
2465
|
+
["queue"]: QueueTriggerOutput
|
|
2437
2466
|
};
|
|
2438
2467
|
return kindToSchema[kind];
|
|
2439
2468
|
};
|
|
@@ -2443,17 +2472,17 @@ var triggerShape = {
|
|
|
2443
2472
|
icon: "ph--lightning--regular",
|
|
2444
2473
|
component: TriggerComponent,
|
|
2445
2474
|
createShape: createTrigger,
|
|
2446
|
-
getAnchors: (shape) => createFunctionAnchors(shape, VoidInput3, getOutputSchema(shape.functionTrigger?.target?.spec?.kind ??
|
|
2475
|
+
getAnchors: (shape) => createFunctionAnchors(shape, VoidInput3, getOutputSchema(shape.functionTrigger?.target?.spec?.kind ?? "email"))
|
|
2447
2476
|
};
|
|
2448
2477
|
|
|
2449
|
-
//
|
|
2478
|
+
// src/shapes/GptRealtime.tsx
|
|
2450
2479
|
import { useSignals as _useSignals26 } from "@preact-signals/safe-react/tracking";
|
|
2451
2480
|
import { Schema as Schema26 } from "effect";
|
|
2452
2481
|
import React27, { useState as useState9 } from "react";
|
|
2453
2482
|
import { log as log2 } from "@dxos/log";
|
|
2454
2483
|
import { useConfig } from "@dxos/react-client";
|
|
2455
2484
|
import { Icon as Icon5 } from "@dxos/react-ui";
|
|
2456
|
-
var __dxlog_file7 = "/
|
|
2485
|
+
var __dxlog_file7 = "/__w/dxos/dxos/packages/ui/react-ui-canvas-compute/src/shapes/GptRealtime.tsx";
|
|
2457
2486
|
var GptRealtimeShape = Schema26.extend(ComputeShape, Schema26.Struct({
|
|
2458
2487
|
type: Schema26.Literal("gpt-realtime")
|
|
2459
2488
|
}));
|
|
@@ -2580,7 +2609,7 @@ var gptRealtimeShape = {
|
|
|
2580
2609
|
};
|
|
2581
2610
|
var DEFAULT_AI_SERVICE_URL = "http://localhost:8788";
|
|
2582
2611
|
|
|
2583
|
-
//
|
|
2612
|
+
// src/registry.ts
|
|
2584
2613
|
var computeShapes = [
|
|
2585
2614
|
{
|
|
2586
2615
|
title: "Inputs",
|
|
@@ -2642,14 +2671,24 @@ var computeShapes = [
|
|
|
2642
2671
|
}
|
|
2643
2672
|
];
|
|
2644
2673
|
|
|
2645
|
-
//
|
|
2674
|
+
// src/compute-layout.ts
|
|
2646
2675
|
import { DefaultInput, DefaultOutput as DefaultOutput2 } from "@dxos/conductor";
|
|
2647
2676
|
import { toEffectSchema } from "@dxos/echo-schema";
|
|
2648
2677
|
import { ShapeLayout } from "@dxos/react-ui-canvas-editor";
|
|
2649
|
-
|
|
2650
|
-
|
|
2651
|
-
|
|
2678
|
+
function _define_property2(obj, key, value) {
|
|
2679
|
+
if (key in obj) {
|
|
2680
|
+
Object.defineProperty(obj, key, {
|
|
2681
|
+
value,
|
|
2682
|
+
enumerable: true,
|
|
2683
|
+
configurable: true,
|
|
2684
|
+
writable: true
|
|
2685
|
+
});
|
|
2686
|
+
} else {
|
|
2687
|
+
obj[key] = value;
|
|
2652
2688
|
}
|
|
2689
|
+
return obj;
|
|
2690
|
+
}
|
|
2691
|
+
var ComputeShapeLayout = class extends ShapeLayout {
|
|
2653
2692
|
// TODO(burdon): Doesn't update.
|
|
2654
2693
|
getAnchors(shape) {
|
|
2655
2694
|
const shapeDef = this._registry.getShapeDef(shape.type);
|
|
@@ -2664,6 +2703,9 @@ var ComputeShapeLayout = class extends ShapeLayout {
|
|
|
2664
2703
|
}
|
|
2665
2704
|
return anchors;
|
|
2666
2705
|
}
|
|
2706
|
+
constructor(_controller, registry2) {
|
|
2707
|
+
super(registry2), _define_property2(this, "_controller", void 0), this._controller = _controller;
|
|
2708
|
+
}
|
|
2667
2709
|
};
|
|
2668
2710
|
export {
|
|
2669
2711
|
AndShape,
|