@dxos/react-ui-canvas-compute 0.8.4-main.67995b8 → 0.8.4-main.70d3990

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