@dxos/react-ui-canvas-compute 0.8.4-main.9be5663bfe → 0.8.4-main.abd8ff62ef

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 (81) hide show
  1. package/dist/lib/browser/index.mjs +76 -153
  2. package/dist/lib/browser/index.mjs.map +3 -3
  3. package/dist/lib/browser/meta.json +1 -1
  4. package/dist/lib/node-esm/index.mjs +76 -153
  5. package/dist/lib/node-esm/index.mjs.map +3 -3
  6. package/dist/lib/node-esm/meta.json +1 -1
  7. package/dist/types/src/components/DiagnosticOverlay.d.ts.map +1 -1
  8. package/dist/types/src/compute-layout.d.ts.map +1 -1
  9. package/dist/types/src/compute.stories.d.ts +1 -1
  10. package/dist/types/src/compute.stories.d.ts.map +1 -1
  11. package/dist/types/src/graph/controller.d.ts +32 -27
  12. package/dist/types/src/graph/controller.d.ts.map +1 -1
  13. package/dist/types/src/graph/node-defs.d.ts.map +1 -1
  14. package/dist/types/src/hooks/useComputeGraphController.d.ts.map +1 -1
  15. package/dist/types/src/hooks/useComputeNodeState.d.ts +2 -3
  16. package/dist/types/src/hooks/useComputeNodeState.d.ts.map +1 -1
  17. package/dist/types/src/hooks/useGraphMonitor.d.ts.map +1 -1
  18. package/dist/types/src/shapes/Append.d.ts +1 -1
  19. package/dist/types/src/shapes/Append.d.ts.map +1 -1
  20. package/dist/types/src/shapes/Array.d.ts +1 -1
  21. package/dist/types/src/shapes/Array.d.ts.map +1 -1
  22. package/dist/types/src/shapes/Audio.d.ts +1 -1
  23. package/dist/types/src/shapes/Audio.d.ts.map +1 -1
  24. package/dist/types/src/shapes/Beacon.d.ts +1 -1
  25. package/dist/types/src/shapes/Beacon.d.ts.map +1 -1
  26. package/dist/types/src/shapes/Boolean.d.ts +7 -7
  27. package/dist/types/src/shapes/Boolean.d.ts.map +1 -1
  28. package/dist/types/src/shapes/Chat.d.ts +1 -1
  29. package/dist/types/src/shapes/Chat.d.ts.map +1 -1
  30. package/dist/types/src/shapes/Constant.d.ts +1 -1
  31. package/dist/types/src/shapes/Constant.d.ts.map +1 -1
  32. package/dist/types/src/shapes/Database.d.ts +1 -1
  33. package/dist/types/src/shapes/Database.d.ts.map +1 -1
  34. package/dist/types/src/shapes/Feed.d.ts +1 -1
  35. package/dist/types/src/shapes/Feed.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 +2 -2
  43. package/dist/types/src/shapes/Json.d.ts.map +1 -1
  44. package/dist/types/src/shapes/Logic.d.ts +2 -2
  45. package/dist/types/src/shapes/Logic.d.ts.map +1 -1
  46. package/dist/types/src/shapes/RNG.d.ts +2 -2
  47. package/dist/types/src/shapes/RNG.d.ts.map +1 -1
  48. package/dist/types/src/shapes/Scope.d.ts +1 -1
  49. package/dist/types/src/shapes/Scope.d.ts.map +1 -1
  50. package/dist/types/src/shapes/Surface.d.ts +1 -1
  51. package/dist/types/src/shapes/Surface.d.ts.map +1 -1
  52. package/dist/types/src/shapes/Switch.d.ts +1 -1
  53. package/dist/types/src/shapes/Switch.d.ts.map +1 -1
  54. package/dist/types/src/shapes/Table.d.ts +1 -1
  55. package/dist/types/src/shapes/Table.d.ts.map +1 -1
  56. package/dist/types/src/shapes/Template.d.ts +2 -2
  57. package/dist/types/src/shapes/Template.d.ts.map +1 -1
  58. package/dist/types/src/shapes/Text.d.ts +1 -1
  59. package/dist/types/src/shapes/Text.d.ts.map +1 -1
  60. package/dist/types/src/shapes/TextToImage.d.ts +1 -1
  61. package/dist/types/src/shapes/TextToImage.d.ts.map +1 -1
  62. package/dist/types/src/shapes/Thread.d.ts +1 -1
  63. package/dist/types/src/shapes/Thread.d.ts.map +1 -1
  64. package/dist/types/src/shapes/Trigger.d.ts +2 -2
  65. package/dist/types/src/shapes/Trigger.d.ts.map +1 -1
  66. package/dist/types/src/shapes/common/FunctionBody.d.ts.map +1 -1
  67. package/dist/types/src/shapes/common/TypeSelect.d.ts +1 -1
  68. package/dist/types/src/shapes/common/TypeSelect.d.ts.map +1 -1
  69. package/dist/types/src/shapes/defs.d.ts +1 -1
  70. package/dist/types/src/shapes/defs.d.ts.map +1 -1
  71. package/dist/types/src/testing/circuits.d.ts.map +1 -1
  72. package/dist/types/tsconfig.tsbuildinfo +1 -1
  73. package/package.json +43 -46
  74. package/src/compute.stories.tsx +24 -13
  75. package/src/graph/controller.ts +52 -24
  76. package/src/hooks/useComputeNodeState.ts +3 -4
  77. package/src/hooks/useGraphMonitor.ts +1 -1
  78. package/src/shapes/Function.tsx +2 -2
  79. package/src/shapes/Json.tsx +9 -7
  80. package/src/shapes/Surface.tsx +4 -1
  81. package/src/shapes/Trigger.tsx +8 -13
@@ -7,10 +7,10 @@ import * as Exit from "effect/Exit";
7
7
  import * as Layer from "effect/Layer";
8
8
  import * as Scope from "effect/Scope";
9
9
  import { Event, synchronized } from "@dxos/async";
10
- import { GraphExecutor, ValueBag, isNotExecuted } from "@dxos/conductor";
10
+ import { Trace } from "@dxos/compute";
11
+ import { ComputeBeginEvent, ComputeCustomEvent, ComputeEndEvent, ComputeInputEvent, ComputeNodeContext, ComputeOutputEvent, GraphExecutor, ValueBag, isNotExecuted } from "@dxos/conductor";
11
12
  import { Resource } from "@dxos/context";
12
13
  import { unwrapExit } from "@dxos/effect";
13
- import { ComputeEventLogger, Trace, TracingService } from "@dxos/functions";
14
14
  import { log } from "@dxos/log";
15
15
 
16
16
  // src/hooks/compute-context.ts
@@ -78,28 +78,12 @@ import { invariant } from "@dxos/invariant";
78
78
  var __dxlog_file = "/__w/dxos/dxos/packages/ui/react-ui-canvas-compute/src/hooks/useComputeNodeState.ts";
79
79
  var useComputeNodeState = (shape) => {
80
80
  const { controller } = useComputeContext();
81
- invariant(controller, void 0, {
82
- F: __dxlog_file,
83
- L: 33,
84
- S: void 0,
85
- A: [
86
- "controller",
87
- ""
88
- ]
89
- });
81
+ invariant(controller, void 0, { "~LogMeta": "~LogMeta", F: __dxlog_file, L: 12, S: void 0, A: ["controller", ""] });
90
82
  const [meta, setMeta] = useState2();
91
83
  useEffect2(() => {
92
84
  let disposed = false;
93
85
  queueMicrotask(async () => {
94
- invariant(shape.node, "Node not specified", {
95
- F: __dxlog_file,
96
- L: 39,
97
- S: void 0,
98
- A: [
99
- "shape.node",
100
- "'Node not specified'"
101
- ]
102
- });
86
+ invariant(shape.node, "Node not specified", { "~LogMeta": "~LogMeta", F: __dxlog_file, L: 17, S: void 0, A: ["shape.node", "'Node not specified'"] });
103
87
  const node = controller.getComputeNode(shape.node);
104
88
  const meta2 = await controller.getMeta(node);
105
89
  if (disposed) {
@@ -155,24 +139,8 @@ var __dxlog_file2 = "/__w/dxos/dxos/packages/ui/react-ui-canvas-compute/src/hook
155
139
  var mapEdge = (graph, { source, target, output = DEFAULT_OUTPUT, input = DEFAULT_INPUT }) => {
156
140
  const sourceNode = graph.findNode(source);
157
141
  const targetNode = graph.findNode(target);
158
- invariant2(sourceNode?.node, void 0, {
159
- F: __dxlog_file2,
160
- L: 25,
161
- S: void 0,
162
- A: [
163
- "sourceNode?.node",
164
- ""
165
- ]
166
- });
167
- invariant2(targetNode?.node, void 0, {
168
- F: __dxlog_file2,
169
- L: 26,
170
- S: void 0,
171
- A: [
172
- "targetNode?.node",
173
- ""
174
- ]
175
- });
142
+ invariant2(sourceNode?.node, void 0, { "~LogMeta": "~LogMeta", F: __dxlog_file2, L: 15, S: void 0, A: ["sourceNode?.node", ""] });
143
+ invariant2(targetNode?.node, void 0, { "~LogMeta": "~LogMeta", F: __dxlog_file2, L: 16, S: void 0, A: ["targetNode?.node", ""] });
176
144
  return {
177
145
  id: Obj.ID.random(),
178
146
  source: sourceNode.node,
@@ -188,15 +156,7 @@ var useGraphMonitor = (model) => {
188
156
  if (!model) {
189
157
  return;
190
158
  }
191
- invariant2(node.type, void 0, {
192
- F: __dxlog_file2,
193
- L: 51,
194
- S: void 0,
195
- A: [
196
- "node.type",
197
- ""
198
- ]
199
- });
159
+ invariant2(node.type, void 0, { "~LogMeta": "~LogMeta", F: __dxlog_file2, L: 37, S: void 0, A: ["node.type", ""] });
200
160
  if (!isValidComputeNode(node.type)) {
201
161
  return;
202
162
  }
@@ -246,16 +206,8 @@ var createComputeGraph = (graph) => {
246
206
  };
247
207
  var linkTriggerToCompute = (graph, computeNode, triggerData) => {
248
208
  const functionTrigger = triggerData.functionTrigger?.target;
249
- invariant2(functionTrigger, void 0, {
250
- F: __dxlog_file2,
251
- L: 114,
252
- S: void 0,
253
- A: [
254
- "functionTrigger",
255
- ""
256
- ]
257
- });
258
- Obj.change(functionTrigger, (functionTrigger2) => {
209
+ invariant2(functionTrigger, void 0, { "~LogMeta": "~LogMeta", F: __dxlog_file2, L: 88, S: void 0, A: ["functionTrigger", ""] });
210
+ Obj.update(functionTrigger, (functionTrigger2) => {
259
211
  functionTrigger2.function = Ref.make(graph.root);
260
212
  functionTrigger2.inputNodeId = computeNode.id;
261
213
  });
@@ -281,15 +233,7 @@ import { invariant as invariant3 } from "@dxos/invariant";
281
233
  var __dxlog_file3 = "/__w/dxos/dxos/packages/ui/react-ui-canvas-compute/src/graph/node-defs.ts";
282
234
  var resolveComputeNode = async (node) => {
283
235
  const impl = registry[node.type];
284
- invariant3(impl, `Unknown node type: ${node.type}`, {
285
- F: __dxlog_file3,
286
- L: 22,
287
- S: void 0,
288
- A: [
289
- "impl",
290
- "`Unknown node type: ${node.type}`"
291
- ]
292
- });
236
+ invariant3(impl, `Unknown node type: ${node.type}`, { "~LogMeta": "~LogMeta", F: __dxlog_file3, L: 10, S: void 0, A: ["impl", "`Unknown node type: ${node.type}`"] });
293
237
  return impl;
294
238
  };
295
239
  var isValidComputeNode = (type) => {
@@ -350,13 +294,13 @@ var createNode = (type, props) => ({
350
294
  });
351
295
 
352
296
  // src/graph/controller.ts
297
+ var __dxlog_file4 = "/__w/dxos/dxos/packages/ui/react-ui-canvas-compute/src/graph/controller.ts";
353
298
  function _ts_decorate(decorators, target, key, desc) {
354
299
  var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
355
300
  if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
356
301
  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;
357
302
  return c > 3 && r && Object.defineProperty(target, key, r), r;
358
303
  }
359
- var __dxlog_file4 = "/__w/dxos/dxos/packages/ui/react-ui-canvas-compute/src/graph/controller.ts";
360
304
  var InvalidStateError = Error;
361
305
  var AUTO_TRIGGER_NODES = [
362
306
  "chat",
@@ -461,12 +405,7 @@ var ComputeGraphController = class extends Resource {
461
405
  try {
462
406
  await this.exec(nodeId);
463
407
  } catch (err) {
464
- log.catch(err, void 0, {
465
- F: __dxlog_file4,
466
- L: 230,
467
- S: this,
468
- C: (f, a) => f(...a)
469
- });
408
+ log.catch(err, void 0, { "~LogMeta": "~LogMeta", F: __dxlog_file4, L: 128, S: this });
470
409
  }
471
410
  });
472
411
  }
@@ -489,7 +428,7 @@ var ComputeGraphController = class extends Resource {
489
428
  const scope = yield* Scope.make();
490
429
  const executable = yield* Effect.promise(() => resolveComputeNode(this._graph.getNode(nodeId)));
491
430
  const computingOutputs = executable.exec != null;
492
- const effect = (computingOutputs ? executor.computeOutputs(nodeId) : executor.computeInputs(nodeId)).pipe(Effect.withSpan("runGraph"), Scope.extend(scope), Effect.provide(ComputeEventLogger.layerFromTracing.pipe(Layer.provideMerge(TracingService.layerNoop), Layer.provideMerge(Trace.writerLayerNoop))), Effect.flatMap(computeValueBag), Effect.withSpan("test"), Effect.tap((values) => {
431
+ const effect = (computingOutputs ? executor.computeOutputs(nodeId) : executor.computeInputs(nodeId)).pipe(Effect.withSpan("runGraph"), Scope.extend(scope), Effect.provide(Layer.mergeAll(Layer.succeed(Trace.TraceService, this._createTraceWriter()), ComputeNodeContext.layerNoop)), Effect.flatMap(computeValueBag), Effect.withSpan("test"), Effect.tap((values) => {
493
432
  for (const [key, value] of Object.entries(values)) {
494
433
  if (computingOutputs) {
495
434
  this._onOutputComputed(nodeId, key, value);
@@ -527,7 +466,7 @@ var ComputeGraphController = class extends Resource {
527
466
  for (const node of allAffectedNodes) {
528
467
  const executable = yield* Effect.promise(() => resolveComputeNode(this._graph.getNode(node)));
529
468
  const computingOutputs = executable.exec != null;
530
- const effect = (computingOutputs ? executor.computeOutputs(node) : executor.computeInputs(node)).pipe(Effect.withSpan("runGraph"), Scope.extend(scope), Effect.flatMap(computeValueBag), Effect.provide(ComputeEventLogger.layerFromTracing.pipe(Layer.provideMerge(TracingService.layerNoop), Layer.provideMerge(Trace.writerLayerNoop))), Effect.withSpan("test"), Effect.tap((values) => {
469
+ const effect = (computingOutputs ? executor.computeOutputs(node) : executor.computeInputs(node)).pipe(Effect.withSpan("runGraph"), Scope.extend(scope), Effect.flatMap(computeValueBag), Effect.provide(Layer.mergeAll(Layer.succeed(Trace.TraceService, this._createTraceWriter()), ComputeNodeContext.layerNoop)), Effect.withSpan("test"), Effect.tap((values) => {
531
470
  for (const [key, value] of Object.entries(values)) {
532
471
  if (computingOutputs) {
533
472
  this._onOutputComputed(node, key, value);
@@ -543,23 +482,20 @@ var ComputeGraphController = class extends Resource {
543
482
  })));
544
483
  this.update.emit();
545
484
  }
546
- _createLogger() {
485
+ _createTraceWriter() {
547
486
  return {
548
- log: (event) => {
549
- this._handleEvent(event);
550
- },
551
- nodeId: void 0
487
+ write: (eventType, payload) => {
488
+ const event = traceEventToComputeEvent(eventType.key, payload);
489
+ if (event) {
490
+ this._handleEvent(event);
491
+ }
492
+ }
552
493
  };
553
494
  }
554
495
  _handleEvent(event) {
555
496
  log("handleEvent", {
556
497
  event
557
- }, {
558
- F: __dxlog_file4,
559
- L: 379,
560
- S: this,
561
- C: (f, a) => f(...a)
562
- });
498
+ }, { "~LogMeta": "~LogMeta", F: __dxlog_file4, L: 223, S: this });
563
499
  switch (event.type) {
564
500
  case "compute-input": {
565
501
  this._onInputComputed(event.nodeId, event.property, {
@@ -598,6 +534,37 @@ _ts_decorate([
598
534
  _ts_decorate([
599
535
  synchronized
600
536
  ], ComputeGraphController.prototype, "exec", null);
537
+ var traceEventToComputeEvent = (key, payload) => {
538
+ switch (key) {
539
+ case ComputeBeginEvent.key:
540
+ return {
541
+ type: "begin-compute",
542
+ ...payload
543
+ };
544
+ case ComputeEndEvent.key:
545
+ return {
546
+ type: "end-compute",
547
+ ...payload
548
+ };
549
+ case ComputeInputEvent.key:
550
+ return {
551
+ type: "compute-input",
552
+ ...payload
553
+ };
554
+ case ComputeOutputEvent.key:
555
+ return {
556
+ type: "compute-output",
557
+ ...payload
558
+ };
559
+ case ComputeCustomEvent.key:
560
+ return {
561
+ type: "custom",
562
+ ...payload
563
+ };
564
+ default:
565
+ return void 0;
566
+ }
567
+ };
601
568
  var computeValueBag = (bag) => {
602
569
  return Effect.all(Object.entries(bag.values).map(([key, eff]) => Effect.either(eff).pipe(Effect.map((value) => {
603
570
  if (Either.isLeft(value)) {
@@ -642,15 +609,7 @@ var __dxlog_file5 = "/__w/dxos/dxos/packages/ui/react-ui-canvas-compute/src/shap
642
609
  var headerHeight = 32;
643
610
  var footerHeight = 32;
644
611
  var Box = /* @__PURE__ */ forwardRef(({ children, classNames, shape, title, status, open, onAction }, forwardedRef) => {
645
- invariant4(shape.type, void 0, {
646
- F: __dxlog_file5,
647
- L: 29,
648
- S: void 0,
649
- A: [
650
- "shape.type",
651
- ""
652
- ]
653
- });
612
+ invariant4(shape.type, void 0, { "~LogMeta": "~LogMeta", F: __dxlog_file5, L: 12, S: void 0, A: ["shape.type", ""] });
654
613
  const { icon, name, openable } = useShapeDef(shape.type) ?? {
655
614
  icon: "ph--placeholder--regular"
656
615
  };
@@ -1418,10 +1377,10 @@ var feedShape = {
1418
1377
  // src/shapes/Function.tsx
1419
1378
  import * as Schema12 from "effect/Schema";
1420
1379
  import React13, { useCallback as useCallback3, useRef as useRef4 } from "react";
1380
+ import { Script } from "@dxos/compute";
1381
+ import { Operation } from "@dxos/compute";
1421
1382
  import { AnyOutput, FunctionInput } from "@dxos/conductor";
1422
1383
  import { Ref as Ref2, getSnapshot, isInstanceOf } from "@dxos/echo/internal";
1423
- import { Script } from "@dxos/functions";
1424
- import { Operation } from "@dxos/operation";
1425
1384
  import { useClient } from "@dxos/react-client";
1426
1385
  import { Filter, parseId } from "@dxos/react-client/echo";
1427
1386
  import { TextBox as TextBox3 } from "@dxos/react-ui-canvas-editor";
@@ -1625,12 +1584,7 @@ var GptRealtimeComponent = ({ shape }) => {
1625
1584
  });
1626
1585
  const dataChannel = peerConnection.createDataChannel("response");
1627
1586
  const configureData = () => {
1628
- log2.info("Configuring data channel", void 0, {
1629
- F: __dxlog_file6,
1630
- L: 87,
1631
- S: void 0,
1632
- C: (f, a) => f(...a)
1633
- });
1587
+ log2.info("Configuring data channel", void 0, { "~LogMeta": "~LogMeta", F: __dxlog_file6, L: 69, S: void 0 });
1634
1588
  const event = {
1635
1589
  type: "session.update",
1636
1590
  session: {
@@ -1647,12 +1601,7 @@ var GptRealtimeComponent = ({ shape }) => {
1647
1601
  dataChannel.addEventListener("open", (ev) => {
1648
1602
  log2.info("Opening data channel", {
1649
1603
  ev
1650
- }, {
1651
- F: __dxlog_file6,
1652
- L: 100,
1653
- S: void 0,
1654
- C: (f, a) => f(...a)
1655
- });
1604
+ }, { "~LogMeta": "~LogMeta", F: __dxlog_file6, L: 84, S: void 0 });
1656
1605
  configureData();
1657
1606
  });
1658
1607
  dataChannel.addEventListener("message", async (ev) => {
@@ -1663,12 +1612,7 @@ var GptRealtimeComponent = ({ shape }) => {
1663
1612
  } catch (error) {
1664
1613
  log2.error("Error in realtime session:", {
1665
1614
  error
1666
- }, {
1667
- F: __dxlog_file6,
1668
- L: 140,
1669
- S: void 0,
1670
- C: (f, a) => f(...a)
1671
- });
1615
+ }, { "~LogMeta": "~LogMeta", F: __dxlog_file6, L: 124, S: void 0 });
1672
1616
  throw error;
1673
1617
  }
1674
1618
  };
@@ -1700,7 +1644,7 @@ import * as Schema15 from "effect/Schema";
1700
1644
  import React16 from "react";
1701
1645
  import { DEFAULT_INPUT as DEFAULT_INPUT4, DefaultOutput, JsonTransformInput } from "@dxos/conductor";
1702
1646
  import { createAnchorMap as createAnchorMap6 } from "@dxos/react-ui-canvas-editor";
1703
- import { Json } from "@dxos/react-ui-syntax-highlighter";
1647
+ import { Syntax } from "@dxos/react-ui-syntax-highlighter";
1704
1648
  var JsonShape = Schema15.extend(ComputeShape, Schema15.Struct({
1705
1649
  type: Schema15.Literal("json")
1706
1650
  }));
@@ -1713,11 +1657,11 @@ var JsonComponent = ({ shape, ...props }) => {
1713
1657
  const value = input?.type === "executed" ? input.value : void 0;
1714
1658
  return /* @__PURE__ */ React16.createElement(Box, {
1715
1659
  shape
1716
- }, /* @__PURE__ */ React16.createElement(Json.Root, {
1660
+ }, /* @__PURE__ */ React16.createElement(Syntax.Root, {
1717
1661
  data: value
1718
- }, /* @__PURE__ */ React16.createElement(Json.Content, null, /* @__PURE__ */ React16.createElement(Json.Filter, null), /* @__PURE__ */ React16.createElement(Json.Data, {
1662
+ }, /* @__PURE__ */ React16.createElement(Syntax.Content, null, /* @__PURE__ */ React16.createElement(Syntax.Filter, null), /* @__PURE__ */ React16.createElement(Syntax.Viewport, null, /* @__PURE__ */ React16.createElement(Syntax.Code, {
1719
1663
  classNames: "text-xs"
1720
- }))));
1664
+ })))));
1721
1665
  };
1722
1666
  var JsonTransformComponent = ({ shape, ...props }) => {
1723
1667
  return /* @__PURE__ */ React16.createElement(Box, {
@@ -1952,6 +1896,7 @@ var scopeShape = {
1952
1896
  import * as Schema19 from "effect/Schema";
1953
1897
  import React20 from "react";
1954
1898
  import { Surface } from "@dxos/app-framework/ui";
1899
+ import { AppSurface } from "@dxos/app-toolkit/ui";
1955
1900
  import { DEFAULT_INPUT as DEFAULT_INPUT6 } from "@dxos/conductor";
1956
1901
  import { Card } from "@dxos/react-ui";
1957
1902
  import { createAnchorMap as createAnchorMap9 } from "@dxos/react-ui-canvas-editor";
@@ -1979,9 +1924,9 @@ var SurfaceComponent = ({ shape }) => {
1979
1924
  shape,
1980
1925
  onAction: handleAction
1981
1926
  }, /* @__PURE__ */ React20.createElement(Card.Root, null, value !== null && /* @__PURE__ */ React20.createElement(Surface.Surface, {
1982
- role: "card--content",
1927
+ type: AppSurface.Card,
1983
1928
  data: {
1984
- value
1929
+ subject: value
1985
1930
  },
1986
1931
  limit: 1
1987
1932
  })));
@@ -2105,15 +2050,7 @@ var TextInputComponent3 = ({ shape, title, ...props }) => {
2105
2050
  }
2106
2051
  };
2107
2052
  const handleTypeChange = (newType) => {
2108
- invariant5(Schema22.is(ComputeValueType3)(newType), "Invalid type", {
2109
- F: __dxlog_file7,
2110
- L: 58,
2111
- S: void 0,
2112
- A: [
2113
- "Schema.is(ComputeValueType)(newType)",
2114
- "'Invalid type'"
2115
- ]
2116
- });
2053
+ invariant5(Schema22.is(ComputeValueType3)(newType), "Invalid type", { "~LogMeta": "~LogMeta", F: __dxlog_file7, L: 32, S: void 0, A: ["Schema.is(ComputeValueType)(newType)", "'Invalid type'"] });
2117
2054
  node.valueType = newType;
2118
2055
  node.inputSchema = toJsonSchema(getTemplateInputSchema2(node));
2119
2056
  };
@@ -2307,9 +2244,9 @@ var textToImageShape = {
2307
2244
  // src/shapes/Trigger.tsx
2308
2245
  import * as Schema26 from "effect/Schema";
2309
2246
  import React27, { useEffect as useEffect8 } from "react";
2247
+ import { Trigger, TriggerEvent } from "@dxos/compute";
2310
2248
  import { VoidInput as VoidInput3 } from "@dxos/conductor";
2311
2249
  import { Filter as Filter2, Obj as Obj4, Query, Ref as Ref3 } from "@dxos/echo";
2312
- import { Trigger, TriggerEvent } from "@dxos/functions";
2313
2250
  import { DXN, SpaceId } from "@dxos/keys";
2314
2251
  import { useSpaces } from "@dxos/react-client/echo";
2315
2252
  import { Select as Select2 } from "@dxos/react-ui";
@@ -2337,7 +2274,7 @@ var TriggerComponent = ({ shape }) => {
2337
2274
  const functionTrigger = shape.functionTrigger?.target;
2338
2275
  useEffect8(() => {
2339
2276
  if (functionTrigger && !functionTrigger.spec) {
2340
- Obj4.change(functionTrigger, (functionTrigger2) => {
2277
+ Obj4.update(functionTrigger, (functionTrigger2) => {
2341
2278
  functionTrigger2.spec = createTriggerSpec({
2342
2279
  triggerKind: "email",
2343
2280
  spaceId: space?.id
@@ -2355,7 +2292,7 @@ var TriggerComponent = ({ shape }) => {
2355
2292
  ]);
2356
2293
  const setKind = (kind) => {
2357
2294
  if (functionTrigger?.spec?.kind !== kind) {
2358
- Obj4.change(functionTrigger, (obj) => {
2295
+ Obj4.update(functionTrigger, (obj) => {
2359
2296
  obj.spec = createTriggerSpec({
2360
2297
  triggerKind: kind,
2361
2298
  spaceId: space?.id
@@ -2392,36 +2329,22 @@ var createTriggerSpec = (props) => {
2392
2329
  const kind = props.triggerKind ?? "email";
2393
2330
  switch (kind) {
2394
2331
  case "timer":
2395
- return {
2396
- kind: "timer",
2397
- cron: "*/10 * * * * *"
2398
- };
2332
+ return Trigger.specTimer("*/10 * * * * *");
2399
2333
  case "webhook":
2400
- return {
2401
- kind: "webhook",
2334
+ return Trigger.specWebhook({
2402
2335
  method: "POST"
2403
- };
2336
+ });
2404
2337
  case "subscription":
2405
- return {
2406
- kind: "subscription",
2407
- query: {
2408
- ast: Query.select(Filter2.nothing()).ast
2409
- }
2410
- };
2338
+ return Trigger.specSubscription(Query.select(Filter2.nothing()));
2411
2339
  case "email":
2412
- return {
2413
- kind: "email"
2414
- };
2340
+ return Trigger.specEmail();
2415
2341
  case "queue": {
2416
2342
  const dxn = new DXN(DXN.kind.QUEUE, [
2417
2343
  "data",
2418
2344
  props.spaceId ?? SpaceId.random(),
2419
2345
  Obj4.ID.random()
2420
2346
  ]).toString();
2421
- return {
2422
- kind: "queue",
2423
- queue: dxn
2424
- };
2347
+ return Trigger.specQueue(dxn);
2425
2348
  }
2426
2349
  }
2427
2350
  };