@dxos/react-ui-canvas-compute 0.8.4-main.c1de068 → 0.8.4-main.fd6878d

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.
Files changed (77) hide show
  1. package/dist/lib/browser/index.mjs +123 -104
  2. package/dist/lib/browser/index.mjs.map +4 -4
  3. package/dist/lib/browser/meta.json +1 -1
  4. package/dist/lib/node-esm/index.mjs +123 -104
  5. package/dist/lib/node-esm/index.mjs.map +4 -4
  6. package/dist/lib/node-esm/meta.json +1 -1
  7. package/dist/types/src/graph/controller.d.ts +30 -4
  8. package/dist/types/src/graph/controller.d.ts.map +1 -1
  9. package/dist/types/src/graph/node-defs.d.ts.map +1 -1
  10. package/dist/types/src/hooks/useComputeGraphController.d.ts +1 -1
  11. package/dist/types/src/hooks/useComputeGraphController.d.ts.map +1 -1
  12. package/dist/types/src/hooks/useComputeNodeState.d.ts +3 -2
  13. package/dist/types/src/hooks/useComputeNodeState.d.ts.map +1 -1
  14. package/dist/types/src/hooks/useGraphMonitor.d.ts +1 -1
  15. package/dist/types/src/hooks/useGraphMonitor.d.ts.map +1 -1
  16. package/dist/types/src/shapes/Append.d.ts.map +1 -1
  17. package/dist/types/src/shapes/Array.d.ts.map +1 -1
  18. package/dist/types/src/shapes/Audio.d.ts.map +1 -1
  19. package/dist/types/src/shapes/Beacon.d.ts.map +1 -1
  20. package/dist/types/src/shapes/Boolean.d.ts.map +1 -1
  21. package/dist/types/src/shapes/Chat.d.ts.map +1 -1
  22. package/dist/types/src/shapes/Constant.d.ts +1 -1
  23. package/dist/types/src/shapes/Constant.d.ts.map +1 -1
  24. package/dist/types/src/shapes/Database.d.ts.map +1 -1
  25. package/dist/types/src/shapes/Function.d.ts.map +1 -1
  26. package/dist/types/src/shapes/Gpt.d.ts.map +1 -1
  27. package/dist/types/src/shapes/GptRealtime.d.ts.map +1 -1
  28. package/dist/types/src/shapes/Json.d.ts.map +1 -1
  29. package/dist/types/src/shapes/Logic.d.ts.map +1 -1
  30. package/dist/types/src/shapes/Queue.d.ts.map +1 -1
  31. package/dist/types/src/shapes/RNG.d.ts.map +1 -1
  32. package/dist/types/src/shapes/Scope.d.ts.map +1 -1
  33. package/dist/types/src/shapes/Surface.d.ts.map +1 -1
  34. package/dist/types/src/shapes/Switch.d.ts.map +1 -1
  35. package/dist/types/src/shapes/Table.d.ts.map +1 -1
  36. package/dist/types/src/shapes/Template.d.ts.map +1 -1
  37. package/dist/types/src/shapes/Text.d.ts.map +1 -1
  38. package/dist/types/src/shapes/TextToImage.d.ts.map +1 -1
  39. package/dist/types/src/shapes/Thread.d.ts.map +1 -1
  40. package/dist/types/src/shapes/Trigger.d.ts.map +1 -1
  41. package/dist/types/src/shapes/common/Box.d.ts.map +1 -1
  42. package/dist/types/tsconfig.tsbuildinfo +1 -1
  43. package/package.json +43 -42
  44. package/src/compute.stories.tsx +1 -1
  45. package/src/graph/controller.ts +8 -8
  46. package/src/graph/node-defs.ts +3 -3
  47. package/src/hooks/useComputeGraphController.ts +1 -1
  48. package/src/hooks/useComputeNodeState.ts +6 -4
  49. package/src/hooks/useGraphMonitor.ts +1 -1
  50. package/src/registry.ts +2 -2
  51. package/src/schema.test.ts +2 -2
  52. package/src/shapes/Append.tsx +2 -2
  53. package/src/shapes/Array.tsx +2 -2
  54. package/src/shapes/Audio.tsx +3 -2
  55. package/src/shapes/Beacon.tsx +3 -2
  56. package/src/shapes/Boolean.tsx +2 -2
  57. package/src/shapes/Chat.tsx +3 -2
  58. package/src/shapes/Constant.tsx +3 -2
  59. package/src/shapes/Database.tsx +1 -1
  60. package/src/shapes/Function.tsx +6 -5
  61. package/src/shapes/Gpt.tsx +6 -4
  62. package/src/shapes/GptRealtime.tsx +1 -1
  63. package/src/shapes/Json.tsx +3 -2
  64. package/src/shapes/Logic.tsx +2 -2
  65. package/src/shapes/Queue.tsx +3 -2
  66. package/src/shapes/RNG.tsx +3 -2
  67. package/src/shapes/Scope.tsx +4 -3
  68. package/src/shapes/Surface.tsx +3 -2
  69. package/src/shapes/Switch.tsx +3 -2
  70. package/src/shapes/Table.tsx +2 -2
  71. package/src/shapes/Template.tsx +4 -3
  72. package/src/shapes/Text.tsx +4 -3
  73. package/src/shapes/TextToImage.tsx +1 -1
  74. package/src/shapes/Thread.tsx +2 -2
  75. package/src/shapes/Trigger.tsx +4 -4
  76. package/src/shapes/common/Box.tsx +1 -1
  77. package/src/shapes/common/FunctionBody.tsx +1 -1
@@ -7,88 +7,12 @@ import { GraphExecutor, ValueBag, isNotExecuted } from "@dxos/conductor";
7
7
  import { Resource } from "@dxos/context";
8
8
  import { log } from "@dxos/log";
9
9
 
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
10
  // src/hooks/compute-context.ts
87
11
  import { createContext, useContext } from "react";
88
- import { raise as raise2 } from "@dxos/debug";
12
+ import { raise } from "@dxos/debug";
89
13
  var ComputeContext = createContext(null);
90
14
  var useComputeContext = () => {
91
- return useContext(ComputeContext) ?? raise2(new Error("Missing ComputeContext"));
15
+ return useContext(ComputeContext) ?? raise(new Error("Missing ComputeContext"));
92
16
  };
93
17
 
94
18
  // src/hooks/useComputeGraphController.ts
@@ -144,13 +68,13 @@ var useComputeGraphController = ({ controller, graph, editorRef }) => {
144
68
  // src/hooks/useComputeNodeState.ts
145
69
  import { Schema } from "effect";
146
70
  import { useCallback, useEffect as useEffect2, useState as useState2 } from "react";
147
- import { invariant as invariant2 } from "@dxos/invariant";
148
- var __dxlog_file2 = "/__w/dxos/dxos/packages/ui/react-ui-canvas-compute/src/hooks/useComputeNodeState.ts";
71
+ import { invariant } from "@dxos/invariant";
72
+ var __dxlog_file = "/__w/dxos/dxos/packages/ui/react-ui-canvas-compute/src/hooks/useComputeNodeState.ts";
149
73
  var useComputeNodeState = (shape) => {
150
74
  const { controller } = useComputeContext();
151
- invariant2(controller, void 0, {
152
- F: __dxlog_file2,
153
- L: 32,
75
+ invariant(controller, void 0, {
76
+ F: __dxlog_file,
77
+ L: 34,
154
78
  S: void 0,
155
79
  A: [
156
80
  "controller",
@@ -161,9 +85,9 @@ var useComputeNodeState = (shape) => {
161
85
  useEffect2(() => {
162
86
  let disposed = false;
163
87
  queueMicrotask(async () => {
164
- invariant2(shape.node, "Node not specified", {
165
- F: __dxlog_file2,
166
- L: 38,
88
+ invariant(shape.node, "Node not specified", {
89
+ F: __dxlog_file,
90
+ L: 40,
167
91
  S: void 0,
168
92
  A: [
169
93
  "shape.node",
@@ -218,16 +142,16 @@ var useComputeNodeState = (shape) => {
218
142
  // src/hooks/useGraphMonitor.ts
219
143
  import { useMemo } from "react";
220
144
  import { ComputeGraphModel, DEFAULT_INPUT, DEFAULT_OUTPUT } from "@dxos/conductor";
221
- import { ObjectId as ObjectId2, Ref } from "@dxos/echo-schema";
222
- import { invariant as invariant3 } from "@dxos/invariant";
145
+ import { ObjectId, Ref } from "@dxos/echo-schema";
146
+ import { invariant as invariant2 } from "@dxos/invariant";
223
147
  import { getSpace } from "@dxos/react-client/echo";
224
148
  import { isNonNullable } from "@dxos/util";
225
- var __dxlog_file3 = "/__w/dxos/dxos/packages/ui/react-ui-canvas-compute/src/hooks/useGraphMonitor.ts";
149
+ var __dxlog_file2 = "/__w/dxos/dxos/packages/ui/react-ui-canvas-compute/src/hooks/useGraphMonitor.ts";
226
150
  var mapEdge = (graph, { source, target, output = DEFAULT_OUTPUT, input = DEFAULT_INPUT }) => {
227
151
  const sourceNode = graph.findNode(source);
228
152
  const targetNode = graph.findNode(target);
229
- invariant3(sourceNode?.node, void 0, {
230
- F: __dxlog_file3,
153
+ invariant2(sourceNode?.node, void 0, {
154
+ F: __dxlog_file2,
231
155
  L: 26,
232
156
  S: void 0,
233
157
  A: [
@@ -235,8 +159,8 @@ var mapEdge = (graph, { source, target, output = DEFAULT_OUTPUT, input = DEFAULT
235
159
  ""
236
160
  ]
237
161
  });
238
- invariant3(targetNode?.node, void 0, {
239
- F: __dxlog_file3,
162
+ invariant2(targetNode?.node, void 0, {
163
+ F: __dxlog_file2,
240
164
  L: 27,
241
165
  S: void 0,
242
166
  A: [
@@ -245,7 +169,7 @@ var mapEdge = (graph, { source, target, output = DEFAULT_OUTPUT, input = DEFAULT
245
169
  ]
246
170
  });
247
171
  return {
248
- id: ObjectId2.random(),
172
+ id: ObjectId.random(),
249
173
  source: sourceNode.node,
250
174
  target: targetNode.node,
251
175
  output,
@@ -259,8 +183,8 @@ var useGraphMonitor = (model) => {
259
183
  if (!model) {
260
184
  return;
261
185
  }
262
- invariant3(node.type, void 0, {
263
- F: __dxlog_file3,
186
+ invariant2(node.type, void 0, {
187
+ F: __dxlog_file2,
264
188
  L: 52,
265
189
  S: void 0,
266
190
  A: [
@@ -317,8 +241,8 @@ var createComputeGraph = (graph) => {
317
241
  };
318
242
  var linkTriggerToCompute = (graph, computeNode, triggerData) => {
319
243
  const functionTrigger = triggerData.functionTrigger?.target;
320
- invariant3(functionTrigger, void 0, {
321
- F: __dxlog_file3,
244
+ invariant2(functionTrigger, void 0, {
245
+ F: __dxlog_file2,
322
246
  L: 115,
323
247
  S: void 0,
324
248
  A: [
@@ -342,6 +266,82 @@ var deleteTriggerObjects = (computeGraph, deleted) => {
342
266
  }
343
267
  };
344
268
 
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
345
  // src/graph/controller.ts
346
346
  function _ts_decorate(decorators, target, key, desc) {
347
347
  var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
@@ -365,6 +365,24 @@ var createComputeGraphController = (graph, serviceContainer) => {
365
365
  };
366
366
  };
367
367
  var ComputeGraphController = class extends Resource {
368
+ _serviceContainer;
369
+ _graph;
370
+ _executor;
371
+ _diagnostics;
372
+ /**
373
+ * Canvas force-sets outputs of those nodes.
374
+ */
375
+ _forcedOutputs;
376
+ /**
377
+ * Runtime state of the execution graph.
378
+ */
379
+ _runtimeStateInputs;
380
+ _runtimeStateOutputs;
381
+ // TODO(burdon): Remove? Make state reactive?
382
+ update;
383
+ /** Computed result. */
384
+ output;
385
+ events;
368
386
  constructor(_serviceContainer, _graph) {
369
387
  super(), this._serviceContainer = _serviceContainer, this._graph = _graph, this._executor = new GraphExecutor({
370
388
  computeNodeResolver: (node) => resolveComputeNode(node)
@@ -685,7 +703,7 @@ import { SchemaAST as SchemaAST2 } from "effect";
685
703
  import React2, { useRef, useState as useState3 } from "react";
686
704
  import { VoidInput, VoidOutput } from "@dxos/conductor";
687
705
  import { useCanvasContext } from "@dxos/react-ui-canvas";
688
- import { getParentShapeElement, createAnchors, rowHeight } from "@dxos/react-ui-canvas-editor";
706
+ import { createAnchors, getParentShapeElement, rowHeight } from "@dxos/react-ui-canvas-editor";
689
707
 
690
708
  // src/shapes/defs.ts
691
709
  import { Schema as Schema2, SchemaAST } from "effect";
@@ -1392,7 +1410,7 @@ import { useSignals as _useSignals11 } from "@preact-signals/safe-react/tracking
1392
1410
  import { Schema as Schema11 } from "effect";
1393
1411
  import React12, { useCallback as useCallback3, useRef as useRef4 } from "react";
1394
1412
  import { AnyOutput, FunctionInput } from "@dxos/conductor";
1395
- import { getSnapshot, isInstanceOf, Ref as Ref2 } from "@dxos/echo-schema";
1413
+ import { Ref as Ref2, getSnapshot, isInstanceOf } from "@dxos/echo-schema";
1396
1414
  import { FunctionType, ScriptType } from "@dxos/functions";
1397
1415
  import { useClient } from "@dxos/react-client";
1398
1416
  import { Filter, parseId } from "@dxos/react-client/echo";
@@ -1859,7 +1877,7 @@ import { Schema as Schema17 } from "effect";
1859
1877
  import React18 from "react";
1860
1878
  import { DEFAULT_INPUT as DEFAULT_INPUT5 } from "@dxos/conductor";
1861
1879
  import { createAnchorMap as createAnchorMap8 } from "@dxos/react-ui-canvas-editor";
1862
- import { useAudioStream, Chaos, shaderPresets } from "@dxos/react-ui-sfx";
1880
+ import { Chaos, shaderPresets, useAudioStream } from "@dxos/react-ui-sfx";
1863
1881
  var ScopeShape = Schema17.extend(ComputeShape, Schema17.Struct({
1864
1882
  type: Schema17.Literal("scope")
1865
1883
  }));
@@ -2061,7 +2079,7 @@ var tableShape = {
2061
2079
  import { useSignals as _useSignals21 } from "@preact-signals/safe-react/tracking";
2062
2080
  import { Schema as Schema21 } from "effect";
2063
2081
  import React22, { useRef as useRef5 } from "react";
2064
- import { ComputeValueType as ComputeValueType3, getTemplateInputSchema as getTemplateInputSchema2, TemplateOutput, VoidInput as VoidInput2 } from "@dxos/conductor";
2082
+ import { ComputeValueType as ComputeValueType3, TemplateOutput, VoidInput as VoidInput2, getTemplateInputSchema as getTemplateInputSchema2 } from "@dxos/conductor";
2065
2083
  import { toJsonSchema as toJsonSchema2 } from "@dxos/echo-schema";
2066
2084
  import { invariant as invariant5 } from "@dxos/invariant";
2067
2085
  import { TextBox as TextBox4 } from "@dxos/react-ui-canvas-editor";
@@ -2086,7 +2104,7 @@ var TextInputComponent3 = ({ shape, title, ...props }) => {
2086
2104
  const handleTypeChange = (newType) => {
2087
2105
  invariant5(Schema21.is(ComputeValueType3)(newType), "Invalid type", {
2088
2106
  F: __dxlog_file6,
2089
- L: 58,
2107
+ L: 59,
2090
2108
  S: void 0,
2091
2109
  A: [
2092
2110
  "Schema.is(ComputeValueType)(newType)",
@@ -2311,7 +2329,7 @@ import { Schema as Schema25 } from "effect";
2311
2329
  import React26, { useEffect as useEffect8 } from "react";
2312
2330
  import { VoidInput as VoidInput3 } from "@dxos/conductor";
2313
2331
  import { ObjectId as ObjectId4, Ref as Ref3 } from "@dxos/echo-schema";
2314
- import { EmailTriggerOutput, FunctionTrigger, QueueTriggerOutput, TriggerKind, SubscriptionTriggerOutput, TimerTriggerOutput, WebhookTriggerOutput } from "@dxos/functions";
2332
+ import { EmailTriggerOutput, FunctionTrigger, QueueTriggerOutput, SubscriptionTriggerOutput, TimerTriggerOutput, TriggerKind, WebhookTriggerOutput } from "@dxos/functions";
2315
2333
  import { DXN, SpaceId } from "@dxos/keys";
2316
2334
  import { live, useSpace } from "@dxos/react-client/echo";
2317
2335
  import { Select as Select2 } from "@dxos/react-ui";
@@ -2651,6 +2669,7 @@ import { DefaultInput, DefaultOutput as DefaultOutput2 } from "@dxos/conductor";
2651
2669
  import { toEffectSchema } from "@dxos/echo-schema";
2652
2670
  import { ShapeLayout } from "@dxos/react-ui-canvas-editor";
2653
2671
  var ComputeShapeLayout = class extends ShapeLayout {
2672
+ _controller;
2654
2673
  constructor(_controller, registry2) {
2655
2674
  super(registry2), this._controller = _controller;
2656
2675
  }