@dxos/react-ui-canvas-compute 0.8.3 → 0.8.4-main.1f223c7

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 (86) hide show
  1. package/dist/lib/browser/index.mjs +243 -201
  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 +243 -201
  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/compute.stories.d.ts +9 -4
  8. package/dist/types/src/compute.stories.d.ts.map +1 -1
  9. package/dist/types/src/graph/controller.d.ts +31 -5
  10. package/dist/types/src/graph/controller.d.ts.map +1 -1
  11. package/dist/types/src/graph/node-defs.d.ts.map +1 -1
  12. package/dist/types/src/hooks/useComputeGraphController.d.ts +1 -1
  13. package/dist/types/src/hooks/useComputeGraphController.d.ts.map +1 -1
  14. package/dist/types/src/hooks/useComputeNodeState.d.ts +3 -2
  15. package/dist/types/src/hooks/useComputeNodeState.d.ts.map +1 -1
  16. package/dist/types/src/hooks/useGraphMonitor.d.ts +1 -1
  17. package/dist/types/src/hooks/useGraphMonitor.d.ts.map +1 -1
  18. package/dist/types/src/shapes/Append.d.ts.map +1 -1
  19. package/dist/types/src/shapes/Array.d.ts.map +1 -1
  20. package/dist/types/src/shapes/Audio.d.ts.map +1 -1
  21. package/dist/types/src/shapes/Beacon.d.ts.map +1 -1
  22. package/dist/types/src/shapes/Boolean.d.ts.map +1 -1
  23. package/dist/types/src/shapes/Chat.d.ts.map +1 -1
  24. package/dist/types/src/shapes/Constant.d.ts +1 -1
  25. package/dist/types/src/shapes/Constant.d.ts.map +1 -1
  26. package/dist/types/src/shapes/Database.d.ts.map +1 -1
  27. package/dist/types/src/shapes/Function.d.ts.map +1 -1
  28. package/dist/types/src/shapes/Gpt.d.ts.map +1 -1
  29. package/dist/types/src/shapes/GptRealtime.d.ts.map +1 -1
  30. package/dist/types/src/shapes/Json.d.ts.map +1 -1
  31. package/dist/types/src/shapes/Logic.d.ts.map +1 -1
  32. package/dist/types/src/shapes/Queue.d.ts.map +1 -1
  33. package/dist/types/src/shapes/RNG.d.ts.map +1 -1
  34. package/dist/types/src/shapes/Scope.d.ts.map +1 -1
  35. package/dist/types/src/shapes/Surface.d.ts.map +1 -1
  36. package/dist/types/src/shapes/Switch.d.ts.map +1 -1
  37. package/dist/types/src/shapes/Table.d.ts.map +1 -1
  38. package/dist/types/src/shapes/Template.d.ts.map +1 -1
  39. package/dist/types/src/shapes/Text.d.ts.map +1 -1
  40. package/dist/types/src/shapes/TextToImage.d.ts.map +1 -1
  41. package/dist/types/src/shapes/Thread.d.ts.map +1 -1
  42. package/dist/types/src/shapes/Trigger.d.ts +2 -31
  43. package/dist/types/src/shapes/Trigger.d.ts.map +1 -1
  44. package/dist/types/src/shapes/common/Box.d.ts.map +1 -1
  45. package/dist/types/src/testing/circuits.d.ts +1 -1
  46. package/dist/types/src/testing/circuits.d.ts.map +1 -1
  47. package/dist/types/tsconfig.tsbuildinfo +1 -1
  48. package/package.json +49 -45
  49. package/src/compute.stories.tsx +22 -33
  50. package/src/graph/controller.ts +10 -10
  51. package/src/graph/node-defs.ts +4 -3
  52. package/src/hooks/useComputeGraphController.ts +1 -1
  53. package/src/hooks/useComputeNodeState.ts +6 -4
  54. package/src/hooks/useGraphMonitor.ts +1 -1
  55. package/src/registry.ts +2 -2
  56. package/src/schema.test.ts +2 -2
  57. package/src/shapes/Append.tsx +2 -2
  58. package/src/shapes/Array.tsx +2 -2
  59. package/src/shapes/Audio.tsx +3 -2
  60. package/src/shapes/Beacon.tsx +4 -4
  61. package/src/shapes/Boolean.tsx +2 -2
  62. package/src/shapes/Chat.tsx +3 -2
  63. package/src/shapes/Constant.tsx +3 -2
  64. package/src/shapes/Database.tsx +1 -1
  65. package/src/shapes/Function.tsx +8 -7
  66. package/src/shapes/Gpt.tsx +6 -4
  67. package/src/shapes/GptRealtime.tsx +1 -1
  68. package/src/shapes/Json.tsx +3 -2
  69. package/src/shapes/Logic.tsx +2 -2
  70. package/src/shapes/Queue.tsx +3 -2
  71. package/src/shapes/RNG.tsx +4 -4
  72. package/src/shapes/Scope.tsx +4 -3
  73. package/src/shapes/Surface.tsx +4 -3
  74. package/src/shapes/Switch.tsx +3 -2
  75. package/src/shapes/Table.tsx +6 -5
  76. package/src/shapes/Template.tsx +4 -3
  77. package/src/shapes/Text.tsx +4 -3
  78. package/src/shapes/TextToImage.tsx +1 -1
  79. package/src/shapes/Thread.tsx +6 -5
  80. package/src/shapes/Trigger.tsx +32 -34
  81. package/src/shapes/common/Box.tsx +2 -2
  82. package/src/shapes/common/FunctionBody.tsx +1 -1
  83. package/src/testing/circuits.ts +4 -4
  84. package/dist/lib/node/index.cjs +0 -2896
  85. package/dist/lib/node/index.cjs.map +0 -7
  86. package/dist/lib/node/meta.json +0 -1
@@ -1,96 +1,21 @@
1
1
  import "@dxos/node-std/globals";
2
2
 
3
- // packages/ui/react-ui-canvas-compute/src/graph/controller.ts
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, isNotExecuted, ValueBag } from "@dxos/conductor";
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
- // packages/ui/react-ui-canvas-compute/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 = "/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 as raise2 } from "@dxos/debug";
12
+ import { raise } from "@dxos/debug";
88
13
  var ComputeContext = createContext(null);
89
14
  var useComputeContext = () => {
90
- return useContext(ComputeContext) ?? raise2(new Error("Missing ComputeContext"));
15
+ return useContext(ComputeContext) ?? raise(new Error("Missing ComputeContext"));
91
16
  };
92
17
 
93
- // packages/ui/react-ui-canvas-compute/src/hooks/useComputeGraphController.ts
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
- // packages/ui/react-ui-canvas-compute/src/hooks/useComputeNodeState.ts
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 as invariant2 } from "@dxos/invariant";
147
- var __dxlog_file2 = "/home/runner/work/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";
148
73
  var useComputeNodeState = (shape) => {
149
74
  const { controller } = useComputeContext();
150
- invariant2(controller, void 0, {
151
- F: __dxlog_file2,
152
- L: 32,
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
- invariant2(shape.node, "Node not specified", {
164
- F: __dxlog_file2,
165
- L: 38,
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
- // packages/ui/react-ui-canvas-compute/src/hooks/useGraphMonitor.ts
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 as ObjectId2, Ref } from "@dxos/echo-schema";
221
- import { invariant as invariant3 } from "@dxos/invariant";
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 __dxlog_file3 = "/home/runner/work/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";
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
- invariant3(sourceNode?.node, void 0, {
229
- F: __dxlog_file3,
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
- invariant3(targetNode?.node, void 0, {
238
- F: __dxlog_file3,
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: ObjectId2.random(),
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
- invariant3(node.type, void 0, {
262
- F: __dxlog_file3,
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
- invariant3(functionTrigger, void 0, {
320
- F: __dxlog_file3,
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
- // packages/ui/react-ui-canvas-compute/src/graph/controller.ts
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 = "/home/runner/work/dxos/dxos/packages/ui/react-ui-canvas-compute/src/graph/controller.ts";
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
- this._forcedOutputs[nodeId] ??= {};
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
- this._runtimeStateInputs[nodeId] ??= {};
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
- this._runtimeStateOutputs[nodeId] ??= {};
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
- // packages/ui/react-ui-canvas-compute/src/registry.ts
632
+ // src/registry.ts
608
633
  import { noteShape } from "@dxos/react-ui-canvas-editor";
609
634
 
610
- // packages/ui/react-ui-canvas-compute/src/shapes/common/Box.tsx
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 = "/home/runner/work/dxos/dxos/packages/ui/react-ui-canvas-compute/src/shapes/common/Box.tsx";
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
- // packages/ui/react-ui-canvas-compute/src/shapes/common/FunctionBody.tsx
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 { getParentShapeElement, createAnchors, rowHeight } from "@dxos/react-ui-canvas-editor";
712
+ import { createAnchors, getParentShapeElement, rowHeight } from "@dxos/react-ui-canvas-editor";
688
713
 
689
- // packages/ui/react-ui-canvas-compute/src/shapes/defs.ts
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
- // packages/ui/react-ui-canvas-compute/src/shapes/common/FunctionBody.tsx
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
- // packages/ui/react-ui-canvas-compute/src/shapes/common/TypeSelect.tsx
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
- // packages/ui/react-ui-canvas-compute/src/shapes/Array.tsx
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
- // packages/ui/react-ui-canvas-compute/src/shapes/Append.tsx
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
- // packages/ui/react-ui-canvas-compute/src/shapes/Audio.tsx
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
- // packages/ui/react-ui-canvas-compute/src/shapes/Beacon.tsx
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: mx2("transition opacity-20 duration-1000", isTruthy(value) && "opacity-100 text-yellow-500"),
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
- // packages/ui/react-ui-canvas-compute/src/shapes/Boolean.tsx
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
- // packages/ui/react-ui-canvas-compute/src/shapes/Chat.tsx
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
- // packages/ui/react-ui-canvas-compute/src/shapes/Constant.tsx
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
- // packages/ui/react-ui-canvas-compute/src/shapes/Database.tsx
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
- // packages/ui/react-ui-canvas-compute/src/shapes/Function.tsx
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 { getSnapshot, isInstanceOf, Ref as Ref2 } from "@dxos/echo-schema";
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, makeRef, parseId } from "@dxos/react-client/echo";
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 = makeRef(fn);
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
- // packages/ui/react-ui-canvas-compute/src/shapes/Gpt.tsx
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
- // packages/ui/react-ui-canvas-compute/src/shapes/Json.tsx
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
- // packages/ui/react-ui-canvas-compute/src/shapes/Logic.tsx
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
- // packages/ui/react-ui-canvas-compute/src/shapes/Queue.tsx
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 mx3 } from "@dxos/react-ui-theme";
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: mx3(classNames, "whitespace-pre-wrap")
1775
+ className: mx2(classNames, "whitespace-pre-wrap")
1749
1776
  }, item);
1750
1777
  }
1751
1778
  return /* @__PURE__ */ React16.createElement("div", {
1752
- className: mx3("grid grid-cols-[80px,1fr]", classNames)
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
- // packages/ui/react-ui-canvas-compute/src/shapes/RNG.tsx
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: mx4(spin && "animate-[spin_1s]"),
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
- // packages/ui/react-ui-canvas-compute/src/shapes/Scope.tsx
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 { useAudioStream, Chaos, shaderPresets } from "@dxos/react-ui-sfx";
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
- // packages/ui/react-ui-canvas-compute/src/shapes/Surface.tsx
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: "canvas-node",
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
- // packages/ui/react-ui-canvas-compute/src/shapes/Switch.tsx
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
- // packages/ui/react-ui-canvas-compute/src/shapes/Table.tsx
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, GptMessage } from "@dxos/conductor";
2024
- var InputSchema = createInputSchema(GptMessage);
2025
- var OutputSchema = createOutputSchema(Schema20.mutable(Schema20.Array(GptMessage)));
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
- // packages/ui/react-ui-canvas-compute/src/shapes/Template.tsx
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, getTemplateInputSchema as getTemplateInputSchema2, TemplateOutput, VoidInput as VoidInput2 } from "@dxos/conductor";
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 = "/home/runner/work/dxos/dxos/packages/ui/react-ui-canvas-compute/src/shapes/Template.tsx";
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: 58,
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
- // packages/ui/react-ui-canvas-compute/src/shapes/Text.tsx
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
- // packages/ui/react-ui-canvas-compute/src/shapes/Thread.tsx
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, GptMessage as GptMessage2 } from "@dxos/conductor";
2195
- import { mx as mx5 } from "@dxos/react-ui-theme";
2196
- var InputSchema2 = createInputSchema2(GptMessage2);
2197
- var OutputSchema2 = createOutputSchema2(Schema23.mutable(Schema23.Array(GptMessage2)));
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: mx5(classNames)
2269
+ className: mx3(classNames)
2242
2270
  }, item);
2243
2271
  }
2244
2272
  const { role, message } = item;
2245
2273
  return /* @__PURE__ */ React24.createElement("div", {
2246
- className: mx5("flex", classNames, role === "user" && "justify-end")
2274
+ className: mx3("flex", classNames, role === "user" && "justify-end")
2247
2275
  }, /* @__PURE__ */ React24.createElement("div", {
2248
- className: mx5("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")
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
- // packages/ui/react-ui-canvas-compute/src/shapes/TextToImage.tsx
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
- // packages/ui/react-ui-canvas-compute/src/shapes/Trigger.tsx
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 { FunctionTrigger, TriggerKind, EmailTriggerOutput, QueueTriggerOutput, SubscriptionTriggerOutput, TimerTriggerOutput, WebhookTriggerOutput } from "@dxos/functions";
2339
+ import { EmailTriggerOutput, FunctionTrigger, QueueTriggerOutput, SubscriptionTriggerOutput, TimerTriggerOutput, TriggerKinds, WebhookTriggerOutput } from "@dxos/functions";
2311
2340
  import { DXN, SpaceId } from "@dxos/keys";
2312
- import { live, makeRef as makeRef2, useSpace } from "@dxos/react-client/echo";
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 = live(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: makeRef2(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: TriggerKind.Email,
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 ?? TriggerKind.Email));
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, Object.values(TriggerKind).map((kind) => /* @__PURE__ */ React26.createElement(Select2.Option, {
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 ?? TriggerKind.Email;
2425
+ const kind = props.triggerKind ?? "email";
2397
2426
  switch (kind) {
2398
- case TriggerKind.Timer:
2427
+ case "timer":
2399
2428
  return {
2400
- kind: TriggerKind.Timer,
2429
+ kind: "timer",
2401
2430
  cron: "*/10 * * * * *"
2402
2431
  };
2403
- case TriggerKind.Webhook:
2432
+ case "webhook":
2404
2433
  return {
2405
- kind: TriggerKind.Webhook,
2434
+ kind: "webhook",
2406
2435
  method: "POST"
2407
2436
  };
2408
- case TriggerKind.Subscription:
2437
+ case "subscription":
2409
2438
  return {
2410
- kind: TriggerKind.Subscription,
2411
- filter: {}
2439
+ kind: "subscription",
2440
+ query: Query.select(Filter2.nothing()).ast
2412
2441
  };
2413
- case TriggerKind.Email:
2442
+ case "email":
2414
2443
  return {
2415
- kind: TriggerKind.Email
2444
+ kind: "email"
2416
2445
  };
2417
- case TriggerKind.Queue: {
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: TriggerKind.Queue,
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
- [TriggerKind.Email]: EmailTriggerOutput,
2433
- [TriggerKind.Subscription]: SubscriptionTriggerOutput,
2434
- [TriggerKind.Timer]: TimerTriggerOutput,
2435
- [TriggerKind.Webhook]: WebhookTriggerOutput,
2436
- [TriggerKind.Queue]: QueueTriggerOutput
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 ?? TriggerKind.Email))
2475
+ getAnchors: (shape) => createFunctionAnchors(shape, VoidInput3, getOutputSchema(shape.functionTrigger?.target?.spec?.kind ?? "email"))
2447
2476
  };
2448
2477
 
2449
- // packages/ui/react-ui-canvas-compute/src/shapes/GptRealtime.tsx
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 = "/home/runner/work/dxos/dxos/packages/ui/react-ui-canvas-compute/src/shapes/GptRealtime.tsx";
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
- // packages/ui/react-ui-canvas-compute/src/registry.ts
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
- // packages/ui/react-ui-canvas-compute/src/compute-layout.ts
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
- var ComputeShapeLayout = class extends ShapeLayout {
2650
- constructor(_controller, registry2) {
2651
- super(registry2), this._controller = _controller;
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,