@dxos/react-ui-canvas-compute 0.8.3-main.672df60 → 0.8.3-staging.0fa589b

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.
@@ -166,7 +166,6 @@ __export(node_exports, {
166
166
  useGraphMonitor: () => useGraphMonitor
167
167
  });
168
168
  module.exports = __toCommonJS(node_exports);
169
- var import_platform = require("@effect/platform");
170
169
  var import_effect = require("effect");
171
170
  var import_async = require("@dxos/async");
172
171
  var import_conductor = require("@dxos/conductor");
@@ -229,29 +228,29 @@ var import_conductor9 = require("@dxos/conductor");
229
228
  var import_react_ui4 = require("@dxos/react-ui");
230
229
  var import_react_ui_canvas_editor6 = require("@dxos/react-ui-canvas-editor");
231
230
  var import_react_ui_theme2 = require("@dxos/react-ui-theme");
232
- var import_tracking8 = require("@preact-signals/safe-react/tracking");
233
231
  var import_effect9 = require("effect");
234
232
  var import_react12 = __toESM(require("react"));
235
233
  var import_react_ui_canvas_editor7 = require("@dxos/react-ui-canvas-editor");
236
- var import_tracking9 = require("@preact-signals/safe-react/tracking");
234
+ var import_react_ui_canvas_editor8 = require("@dxos/react-ui-canvas-editor");
235
+ var import_tracking8 = require("@preact-signals/safe-react/tracking");
237
236
  var import_effect10 = require("effect");
238
237
  var import_react13 = __toESM(require("react"));
239
238
  var import_conductor10 = require("@dxos/conductor");
240
- var import_react_ui_canvas_editor8 = require("@dxos/react-ui-canvas-editor");
241
239
  var import_react_ui_canvas_editor9 = require("@dxos/react-ui-canvas-editor");
242
- var import_tracking10 = require("@preact-signals/safe-react/tracking");
240
+ var import_react_ui_canvas_editor10 = require("@dxos/react-ui-canvas-editor");
241
+ var import_tracking9 = require("@preact-signals/safe-react/tracking");
243
242
  var import_effect11 = require("effect");
244
243
  var import_react14 = __toESM(require("react"));
245
244
  var import_conductor11 = require("@dxos/conductor");
246
245
  var import_react_ui5 = require("@dxos/react-ui");
247
- var import_react_ui_canvas_editor10 = require("@dxos/react-ui-canvas-editor");
248
246
  var import_react_ui_canvas_editor11 = require("@dxos/react-ui-canvas-editor");
247
+ var import_react_ui_canvas_editor12 = require("@dxos/react-ui-canvas-editor");
249
248
  var import_util2 = require("@dxos/util");
250
- var import_tracking11 = require("@preact-signals/safe-react/tracking");
249
+ var import_tracking10 = require("@preact-signals/safe-react/tracking");
251
250
  var import_effect12 = require("effect");
252
251
  var import_react15 = __toESM(require("react"));
253
- var import_react_ui_canvas_editor12 = require("@dxos/react-ui-canvas-editor");
254
- var import_tracking12 = require("@preact-signals/safe-react/tracking");
252
+ var import_react_ui_canvas_editor13 = require("@dxos/react-ui-canvas-editor");
253
+ var import_tracking11 = require("@preact-signals/safe-react/tracking");
255
254
  var import_effect13 = require("effect");
256
255
  var import_react16 = __toESM(require("react"));
257
256
  var import_conductor12 = require("@dxos/conductor");
@@ -259,78 +258,78 @@ var import_echo_schema4 = require("@dxos/echo-schema");
259
258
  var import_functions = require("@dxos/functions");
260
259
  var import_react_client = require("@dxos/react-client");
261
260
  var import_echo2 = require("@dxos/react-client/echo");
262
- var import_react_ui_canvas_editor13 = require("@dxos/react-ui-canvas-editor");
263
- var import_tracking13 = require("@preact-signals/safe-react/tracking");
261
+ var import_react_ui_canvas_editor14 = require("@dxos/react-ui-canvas-editor");
262
+ var import_tracking12 = require("@preact-signals/safe-react/tracking");
264
263
  var import_effect14 = require("effect");
265
264
  var import_react17 = __toESM(require("react"));
266
265
  var import_conductor13 = require("@dxos/conductor");
267
- var import_tracking14 = require("@preact-signals/safe-react/tracking");
266
+ var import_tracking13 = require("@preact-signals/safe-react/tracking");
268
267
  var import_effect15 = require("effect");
269
268
  var import_react18 = __toESM(require("react"));
270
269
  var import_conductor14 = require("@dxos/conductor");
271
- var import_react_ui_canvas_editor14 = require("@dxos/react-ui-canvas-editor");
270
+ var import_react_ui_canvas_editor15 = require("@dxos/react-ui-canvas-editor");
272
271
  var import_react_ui_syntax_highlighter = require("@dxos/react-ui-syntax-highlighter");
273
- var import_tracking15 = require("@preact-signals/safe-react/tracking");
272
+ var import_tracking14 = require("@preact-signals/safe-react/tracking");
274
273
  var import_effect16 = require("effect");
275
274
  var import_react19 = __toESM(require("react"));
276
275
  var import_conductor15 = require("@dxos/conductor");
277
- var import_tracking16 = require("@preact-signals/safe-react/tracking");
276
+ var import_tracking15 = require("@preact-signals/safe-react/tracking");
278
277
  var import_effect17 = require("effect");
279
278
  var import_react20 = __toESM(require("react"));
280
279
  var import_conductor16 = require("@dxos/conductor");
281
280
  var import_react_ui_theme3 = require("@dxos/react-ui-theme");
282
- var import_tracking17 = require("@preact-signals/safe-react/tracking");
281
+ var import_tracking16 = require("@preact-signals/safe-react/tracking");
283
282
  var import_effect18 = require("effect");
284
283
  var import_react21 = __toESM(require("react"));
285
284
  var import_conductor17 = require("@dxos/conductor");
286
285
  var import_react_ui6 = require("@dxos/react-ui");
287
- var import_react_ui_canvas_editor15 = require("@dxos/react-ui-canvas-editor");
286
+ var import_react_ui_canvas_editor16 = require("@dxos/react-ui-canvas-editor");
288
287
  var import_react_ui_theme4 = require("@dxos/react-ui-theme");
289
- var import_tracking18 = require("@preact-signals/safe-react/tracking");
288
+ var import_tracking17 = require("@preact-signals/safe-react/tracking");
290
289
  var import_effect19 = require("effect");
291
290
  var import_react22 = __toESM(require("react"));
292
291
  var import_conductor18 = require("@dxos/conductor");
293
- var import_react_ui_canvas_editor16 = require("@dxos/react-ui-canvas-editor");
292
+ var import_react_ui_canvas_editor17 = require("@dxos/react-ui-canvas-editor");
294
293
  var import_react_ui_sfx = require("@dxos/react-ui-sfx");
295
- var import_tracking19 = require("@preact-signals/safe-react/tracking");
294
+ var import_tracking18 = require("@preact-signals/safe-react/tracking");
296
295
  var import_effect20 = require("effect");
297
296
  var import_react23 = __toESM(require("react"));
298
297
  var import_app_framework = require("@dxos/app-framework");
299
298
  var import_conductor19 = require("@dxos/conductor");
300
- var import_react_ui_canvas_editor17 = require("@dxos/react-ui-canvas-editor");
301
- var import_tracking20 = require("@preact-signals/safe-react/tracking");
299
+ var import_react_ui_canvas_editor18 = require("@dxos/react-ui-canvas-editor");
300
+ var import_tracking19 = require("@preact-signals/safe-react/tracking");
302
301
  var import_effect21 = require("effect");
303
302
  var import_react24 = __toESM(require("react"));
304
303
  var import_conductor20 = require("@dxos/conductor");
305
304
  var import_react_ui7 = require("@dxos/react-ui");
306
- var import_react_ui_canvas_editor18 = require("@dxos/react-ui-canvas-editor");
307
- var import_tracking21 = require("@preact-signals/safe-react/tracking");
305
+ var import_react_ui_canvas_editor19 = require("@dxos/react-ui-canvas-editor");
306
+ var import_tracking20 = require("@preact-signals/safe-react/tracking");
308
307
  var import_effect22 = require("effect");
309
308
  var import_react25 = __toESM(require("react"));
310
309
  var import_conductor21 = require("@dxos/conductor");
311
- var import_tracking22 = require("@preact-signals/safe-react/tracking");
310
+ var import_tracking21 = require("@preact-signals/safe-react/tracking");
312
311
  var import_effect23 = require("effect");
313
312
  var import_react26 = __toESM(require("react"));
314
313
  var import_conductor22 = require("@dxos/conductor");
315
314
  var import_echo_schema5 = require("@dxos/echo-schema");
316
315
  var import_invariant5 = require("@dxos/invariant");
317
- var import_react_ui_canvas_editor19 = require("@dxos/react-ui-canvas-editor");
318
- var import_tracking23 = require("@preact-signals/safe-react/tracking");
316
+ var import_react_ui_canvas_editor20 = require("@dxos/react-ui-canvas-editor");
317
+ var import_tracking22 = require("@preact-signals/safe-react/tracking");
319
318
  var import_effect24 = require("effect");
320
319
  var import_react27 = __toESM(require("react"));
321
320
  var import_conductor23 = require("@dxos/conductor");
322
- var import_react_ui_canvas_editor20 = require("@dxos/react-ui-canvas-editor");
323
321
  var import_react_ui_canvas_editor21 = require("@dxos/react-ui-canvas-editor");
324
- var import_tracking24 = require("@preact-signals/safe-react/tracking");
322
+ var import_react_ui_canvas_editor22 = require("@dxos/react-ui-canvas-editor");
323
+ var import_tracking23 = require("@preact-signals/safe-react/tracking");
325
324
  var import_effect25 = require("effect");
326
325
  var import_react28 = __toESM(require("react"));
327
326
  var import_conductor24 = require("@dxos/conductor");
328
327
  var import_react_ui_theme5 = require("@dxos/react-ui-theme");
329
- var import_tracking25 = require("@preact-signals/safe-react/tracking");
328
+ var import_tracking24 = require("@preact-signals/safe-react/tracking");
330
329
  var import_effect26 = require("effect");
331
330
  var import_react29 = __toESM(require("react"));
332
- var import_react_ui_canvas_editor22 = require("@dxos/react-ui-canvas-editor");
333
- var import_tracking26 = require("@preact-signals/safe-react/tracking");
331
+ var import_react_ui_canvas_editor23 = require("@dxos/react-ui-canvas-editor");
332
+ var import_tracking25 = require("@preact-signals/safe-react/tracking");
334
333
  var import_effect27 = require("effect");
335
334
  var import_react30 = __toESM(require("react"));
336
335
  var import_conductor25 = require("@dxos/conductor");
@@ -339,7 +338,7 @@ var import_functions2 = require("@dxos/functions");
339
338
  var import_keys = require("@dxos/keys");
340
339
  var import_echo3 = require("@dxos/react-client/echo");
341
340
  var import_react_ui8 = require("@dxos/react-ui");
342
- var import_tracking27 = require("@preact-signals/safe-react/tracking");
341
+ var import_tracking26 = require("@preact-signals/safe-react/tracking");
343
342
  var import_effect28 = require("effect");
344
343
  var import_react31 = __toESM(require("react"));
345
344
  var import_log2 = require("@dxos/log");
@@ -347,7 +346,7 @@ var import_react_client2 = require("@dxos/react-client");
347
346
  var import_react_ui9 = require("@dxos/react-ui");
348
347
  var import_conductor26 = require("@dxos/conductor");
349
348
  var import_echo_schema7 = require("@dxos/echo-schema");
350
- var import_react_ui_canvas_editor23 = require("@dxos/react-ui-canvas-editor");
349
+ var import_react_ui_canvas_editor24 = require("@dxos/react-ui-canvas-editor");
351
350
  var __dxlog_file = "/home/runner/work/dxos/dxos/packages/ui/react-ui-canvas-compute/src/graph/node-defs.ts";
352
351
  var resolveComputeNode = async (node) => {
353
352
  const impl = import_conductor2.registry[node.type];
@@ -669,20 +668,19 @@ var AUTO_TRIGGER_NODES = [
669
668
  "switch",
670
669
  "constant"
671
670
  ];
672
- var createComputeGraphController = (graph, services) => {
671
+ var createComputeGraphController = (graph, serviceContainer) => {
673
672
  const computeGraph = createComputeGraph(graph);
674
- const controller = new ComputeGraphController(computeGraph);
675
- controller.setServices(services ?? {});
673
+ const controller = new ComputeGraphController(serviceContainer, computeGraph);
676
674
  return {
677
675
  controller,
678
676
  graph
679
677
  };
680
678
  };
681
679
  var ComputeGraphController = class extends import_context.Resource {
682
- constructor(_graph) {
683
- super(), this._graph = _graph, this._executor = new import_conductor.GraphExecutor({
680
+ constructor(_serviceContainer, _graph) {
681
+ super(), this._serviceContainer = _serviceContainer, this._graph = _graph, this._executor = new import_conductor.GraphExecutor({
684
682
  computeNodeResolver: (node) => resolveComputeNode(node)
685
- }), this._diagnostics = [], this._services = {}, this._forcedOutputs = {}, this._runtimeStateInputs = {}, this._runtimeStateOutputs = {}, this.update = new import_async.Event(), this.output = new import_async.Event(), this.events = new import_async.Event();
683
+ }), this._diagnostics = [], this._forcedOutputs = {}, this._runtimeStateInputs = {}, this._runtimeStateOutputs = {}, this.update = new import_async.Event(), this.output = new import_async.Event(), this.events = new import_async.Event();
686
684
  }
687
685
  toJSON() {
688
686
  return {
@@ -694,17 +692,6 @@ var ComputeGraphController = class extends import_context.Resource {
694
692
  forcedOutputs: this._forcedOutputs
695
693
  };
696
694
  }
697
- setServices(services) {
698
- import_log.log.info("setServices", {
699
- services
700
- }, {
701
- F: __dxlog_file4,
702
- L: 149,
703
- S: this,
704
- C: (f, a) => f(...a)
705
- });
706
- Object.assign(this._services, services);
707
- }
708
695
  get graph() {
709
696
  return this._graph;
710
697
  }
@@ -763,7 +750,7 @@ var ComputeGraphController = class extends import_context.Resource {
763
750
  } catch (err) {
764
751
  import_log.log.catch(err, void 0, {
765
752
  F: __dxlog_file4,
766
- L: 218,
753
+ L: 199,
767
754
  S: this,
768
755
  C: (f, a) => f(...a)
769
756
  });
@@ -783,14 +770,14 @@ var ComputeGraphController = class extends import_context.Resource {
783
770
  const executor = this._executor.clone();
784
771
  await executor.load(this._graph);
785
772
  for (const [nodeId2, outputs] of Object.entries(this._forcedOutputs)) {
786
- executor.setOutputs(nodeId2, import_effect.Effect.succeed((0, import_conductor.makeValueBag)(outputs)));
773
+ executor.setOutputs(nodeId2, import_effect.Effect.succeed(import_conductor.ValueBag.make(outputs)));
787
774
  }
788
- const services = this._createServiceLayer();
775
+ const serviceLayer = this._serviceContainer.createLayer();
789
776
  await import_effect.Effect.runPromise(import_effect.Effect.gen(this, function* () {
790
777
  const scope = yield* import_effect.Scope.make();
791
778
  const executable = yield* import_effect.Effect.promise(() => resolveComputeNode(this._graph.getNode(nodeId)));
792
779
  const computingOutputs = executable.exec != null;
793
- const effect = (computingOutputs ? executor.computeOutputs(nodeId) : executor.computeInputs(nodeId)).pipe(import_effect.Effect.withSpan("runGraph"), import_effect.Scope.extend(scope), import_effect.Effect.flatMap(computeValueBag), import_effect.Effect.provide(services), import_effect.Effect.withSpan("test"), import_effect.Effect.tap((values) => {
780
+ const effect = (computingOutputs ? executor.computeOutputs(nodeId) : executor.computeInputs(nodeId)).pipe(import_effect.Effect.withSpan("runGraph"), import_effect.Scope.extend(scope), import_effect.Effect.flatMap(computeValueBag), import_effect.Effect.provide(serviceLayer), import_effect.Effect.withSpan("test"), import_effect.Effect.tap((values) => {
794
781
  for (const [key, value] of Object.entries(values)) {
795
782
  if (computingOutputs) {
796
783
  this._onOutputComputed(nodeId, key, value);
@@ -814,7 +801,7 @@ var ComputeGraphController = class extends import_context.Resource {
814
801
  const executor = this._executor.clone();
815
802
  await executor.load(this._graph);
816
803
  for (const [nodeId, outputs] of Object.entries(this._forcedOutputs)) {
817
- executor.setOutputs(nodeId, import_effect.Effect.succeed((0, import_conductor.makeValueBag)(outputs)));
804
+ executor.setOutputs(nodeId, import_effect.Effect.succeed(import_conductor.ValueBag.make(outputs)));
818
805
  }
819
806
  const triggerNodes = startFromNode != null ? [
820
807
  this._graph.getNode(startFromNode)
@@ -822,14 +809,13 @@ var ComputeGraphController = class extends import_context.Resource {
822
809
  const allAffectedNodes = [
823
810
  ...new Set(triggerNodes.flatMap((node) => executor.getAllDependantNodes(node.id)))
824
811
  ];
825
- const services = this._createServiceLayer();
826
812
  await import_effect.Effect.runPromise(import_effect.Effect.gen(this, function* () {
827
813
  const scope = yield* import_effect.Scope.make();
828
814
  const tasks = [];
829
815
  for (const node of allAffectedNodes) {
830
816
  const executable = yield* import_effect.Effect.promise(() => resolveComputeNode(this._graph.getNode(node)));
831
817
  const computingOutputs = executable.exec != null;
832
- const effect = (computingOutputs ? executor.computeOutputs(node) : executor.computeInputs(node)).pipe(import_effect.Effect.withSpan("runGraph"), import_effect.Scope.extend(scope), import_effect.Effect.flatMap(computeValueBag), import_effect.Effect.provide(services), import_effect.Effect.withSpan("test"), import_effect.Effect.tap((values) => {
818
+ const effect = (computingOutputs ? executor.computeOutputs(node) : executor.computeInputs(node)).pipe(import_effect.Effect.withSpan("runGraph"), import_effect.Scope.extend(scope), import_effect.Effect.flatMap(computeValueBag), import_effect.Effect.provide(this._serviceContainer.createLayer()), import_effect.Effect.withSpan("test"), import_effect.Effect.tap((values) => {
833
819
  for (const [key, value] of Object.entries(values)) {
834
820
  if (computingOutputs) {
835
821
  this._onOutputComputed(node, key, value);
@@ -845,18 +831,6 @@ var ComputeGraphController = class extends import_context.Resource {
845
831
  }));
846
832
  this.update.emit();
847
833
  }
848
- _createServiceLayer() {
849
- const services = {
850
- ...DEFAULT_SERVICES,
851
- ...this._services
852
- };
853
- const logLayer = import_effect.Layer.succeed(import_conductor.EventLogger, this._createLogger());
854
- const gptLayer = import_effect.Layer.succeed(import_conductor.GptService, services.gpt);
855
- const queueLayer = services.edgeHttpClient != null ? import_conductor.QueueService.fromClient(services.edgeHttpClient) : import_conductor.QueueService.notAvailable;
856
- const spaceLayer = services.spaceService != null ? import_effect.Layer.succeed(import_conductor.SpaceService, services.spaceService) : import_conductor.SpaceService.empty;
857
- const functionCallServiceLayer = services.edgeHttpClient != null && services.spaceService != null ? import_effect.Layer.succeed(import_conductor.FunctionCallService, import_conductor.FunctionCallService.fromClient(services.edgeHttpClient.baseUrl, services.spaceService.spaceId)) : import_effect.Layer.succeed(import_conductor.FunctionCallService, import_conductor.FunctionCallService.mock());
858
- return import_effect.Layer.mergeAll(logLayer, gptLayer, queueLayer, spaceLayer, functionCallServiceLayer, import_platform.FetchHttpClient.layer);
859
- }
860
834
  _createLogger() {
861
835
  return {
862
836
  log: (event) => {
@@ -870,7 +844,7 @@ var ComputeGraphController = class extends import_context.Resource {
870
844
  event
871
845
  }, {
872
846
  F: __dxlog_file4,
873
- L: 376,
847
+ L: 335,
874
848
  S: this,
875
849
  C: (f, a) => f(...a)
876
850
  });
@@ -912,9 +886,6 @@ _ts_decorate([
912
886
  _ts_decorate([
913
887
  import_async.synchronized
914
888
  ], ComputeGraphController.prototype, "exec", null);
915
- var DEFAULT_SERVICES = {
916
- gpt: new import_conductor.MockGpt()
917
- };
918
889
  var computeValueBag = (bag) => {
919
890
  return import_effect.Effect.all(Object.entries(bag.values).map(([key, eff]) => import_effect.Effect.either(eff).pipe(import_effect.Effect.map((value) => {
920
891
  if (import_effect.Either.isLeft(value)) {
@@ -1297,83 +1268,70 @@ var createGate = (props) => createShape({
1297
1268
  },
1298
1269
  ...props
1299
1270
  });
1300
- var GateComponent = (Symbol22) => {
1301
- var _effect = (0, import_tracking8.useSignals)();
1302
- try {
1303
- return () => {
1304
- return /* @__PURE__ */ import_react12.default.createElement("div", {
1305
- className: "flex w-full justify-center items-center"
1306
- }, /* @__PURE__ */ import_react12.default.createElement(Symbol22, null));
1307
- };
1308
- } finally {
1309
- _effect.f();
1310
- }
1311
- };
1312
- var defineShape = ({ type, name, icon, Symbol: Symbol22, createShape: createShape2, inputs, outputs = [
1271
+ var defineShape = ({ type, name, icon, symbol: Symbol2, createShape: createShape2, inputs, outputs = [
1313
1272
  createAnchorId("output")
1314
1273
  ] }) => ({
1315
1274
  type,
1316
1275
  name,
1317
1276
  icon,
1318
- component: GateComponent(Symbol22),
1277
+ // NOTE: Preact interprets captitalized properties as React components.
1278
+ // Be careful not to name component factories with a capital letter.
1279
+ component: () => {
1280
+ return /* @__PURE__ */ import_react12.default.createElement("div", {
1281
+ className: "flex w-full justify-center items-center"
1282
+ }, /* @__PURE__ */ import_react12.default.createElement(Symbol2, null));
1283
+ },
1319
1284
  createShape: createShape2,
1320
- getAnchors: (shape) => (0, import_react_ui_canvas_editor7.createAnchors)({
1285
+ getAnchors: (shape) => (0, import_react_ui_canvas_editor8.createAnchors)({
1321
1286
  shape,
1322
1287
  inputs,
1323
1288
  outputs
1324
1289
  })
1325
1290
  });
1326
- var Symbol2 = (pathConstructor, inputs) => {
1327
- var _effect = (0, import_tracking8.useSignals)();
1328
- try {
1329
- return ({
1330
- width = 64,
1331
- height = 32,
1332
- // TODO(burdon): Same as line color.
1333
- className = "fill-neutral-200 dark:fill-neutral-800 stroke-neutral-500",
1334
- strokeWidth = 1
1335
- }) => {
1336
- const startX = width * 0.25;
1337
- const endX = width * 0.75;
1338
- const centerY = height / 2;
1339
- const paths = pathConstructor({
1340
- startX,
1341
- endX,
1342
- height
1343
- });
1344
- return /* @__PURE__ */ import_react12.default.createElement("svg", {
1345
- viewBox: `0 0 ${width} ${height}`,
1346
- className: "w-full h-full"
1347
- }, (0, import_react_ui_canvas_editor7.getAnchorPoints)({
1348
- x: 0,
1349
- y: centerY
1350
- }, inputs).map(({ x, y }, i) => /* @__PURE__ */ import_react12.default.createElement("line", {
1351
- key: i,
1352
- x1: x,
1353
- y1: y,
1354
- x2: startX * 1.3,
1355
- y2: y,
1356
- strokeWidth,
1357
- className
1358
- })), /* @__PURE__ */ import_react12.default.createElement("line", {
1359
- x1: endX,
1360
- y1: centerY,
1361
- x2: width,
1362
- y2: centerY,
1363
- strokeWidth,
1364
- className
1365
- }), paths.map((path, i) => /* @__PURE__ */ import_react12.default.createElement("path", {
1366
- key: i,
1367
- d: path,
1368
- strokeWidth,
1369
- className
1370
- })));
1371
- };
1372
- } finally {
1373
- _effect.f();
1374
- }
1375
- };
1376
- var AndSymbol = Symbol2(({ startX, endX, height }) => {
1291
+ var createSymbol = (pathConstructor, inputs) => ({
1292
+ width = 64,
1293
+ height = 32,
1294
+ // TODO(burdon): Same as line color.
1295
+ className = "fill-neutral-200 dark:fill-neutral-800 stroke-neutral-500",
1296
+ strokeWidth = 1
1297
+ }) => {
1298
+ const startX = width * 0.25;
1299
+ const endX = width * 0.75;
1300
+ const centerY = height / 2;
1301
+ const paths = pathConstructor({
1302
+ startX,
1303
+ endX,
1304
+ height
1305
+ });
1306
+ return /* @__PURE__ */ import_react12.default.createElement("svg", {
1307
+ viewBox: `0 0 ${width} ${height}`,
1308
+ className: "w-full h-full"
1309
+ }, (0, import_react_ui_canvas_editor7.getAnchorPoints)({
1310
+ x: 0,
1311
+ y: centerY
1312
+ }, inputs).map(({ x, y }, i) => /* @__PURE__ */ import_react12.default.createElement("line", {
1313
+ key: i,
1314
+ x1: x,
1315
+ y1: y,
1316
+ x2: startX * 1.3,
1317
+ y2: y,
1318
+ strokeWidth,
1319
+ className
1320
+ })), /* @__PURE__ */ import_react12.default.createElement("line", {
1321
+ x1: endX,
1322
+ y1: centerY,
1323
+ x2: width,
1324
+ y2: centerY,
1325
+ strokeWidth,
1326
+ className
1327
+ }), paths.map((path, i) => /* @__PURE__ */ import_react12.default.createElement("path", {
1328
+ key: i,
1329
+ d: path,
1330
+ strokeWidth,
1331
+ className
1332
+ })));
1333
+ };
1334
+ var AndSymbol = createSymbol(({ startX, endX, height }) => {
1377
1335
  const arcRadius = (endX - startX) / 2;
1378
1336
  return [
1379
1337
  `
@@ -1396,14 +1354,14 @@ var andShape = defineShape({
1396
1354
  type: "and",
1397
1355
  name: "AND",
1398
1356
  icon: "ph--intersection--regular",
1399
- Symbol: AndSymbol,
1357
+ symbol: AndSymbol,
1400
1358
  createShape: createAnd,
1401
1359
  inputs: [
1402
1360
  "input.a",
1403
1361
  "input.b"
1404
1362
  ]
1405
1363
  });
1406
- var OrSymbol = Symbol2(({ startX, endX, height }) => {
1364
+ var OrSymbol = createSymbol(({ startX, endX, height }) => {
1407
1365
  const arcRadius = (endX - startX) / 2;
1408
1366
  return [
1409
1367
  `
@@ -1427,14 +1385,14 @@ var orShape = defineShape({
1427
1385
  type: "or",
1428
1386
  name: "OR",
1429
1387
  icon: "ph--union--regular",
1430
- Symbol: OrSymbol,
1388
+ symbol: OrSymbol,
1431
1389
  createShape: createOr,
1432
1390
  inputs: [
1433
1391
  "input.a",
1434
1392
  "input.b"
1435
1393
  ]
1436
1394
  });
1437
- var NotSymbol = Symbol2(({ startX, endX, height }) => {
1395
+ var NotSymbol = createSymbol(({ startX, endX, height }) => {
1438
1396
  return [
1439
1397
  `
1440
1398
  M ${startX},${height * 0.1}
@@ -1461,7 +1419,7 @@ var notShape = defineShape({
1461
1419
  type: "not",
1462
1420
  name: "NOT",
1463
1421
  icon: "ph--x--regular",
1464
- Symbol: NotSymbol,
1422
+ symbol: NotSymbol,
1465
1423
  createShape: createNot,
1466
1424
  inputs: [
1467
1425
  createAnchorId("input")
@@ -1471,7 +1429,7 @@ var ChatShape = import_effect10.Schema.extend(ComputeShape, import_effect10.Sche
1471
1429
  type: import_effect10.Schema.Literal("chat")
1472
1430
  }));
1473
1431
  var TextInputComponent = ({ shape, title, ...props }) => {
1474
- var _effect = (0, import_tracking9.useSignals)();
1432
+ var _effect = (0, import_tracking8.useSignals)();
1475
1433
  try {
1476
1434
  const { runtime } = useComputeNodeState(shape);
1477
1435
  const inputRef = (0, import_react13.useRef)(null);
@@ -1485,7 +1443,7 @@ var TextInputComponent = ({ shape, title, ...props }) => {
1485
1443
  return /* @__PURE__ */ import_react13.default.createElement(Box, {
1486
1444
  shape,
1487
1445
  title
1488
- }, /* @__PURE__ */ import_react13.default.createElement(import_react_ui_canvas_editor8.TextBox, {
1446
+ }, /* @__PURE__ */ import_react13.default.createElement(import_react_ui_canvas_editor9.TextBox, {
1489
1447
  ref: inputRef,
1490
1448
  onEnter: handleEnter,
1491
1449
  ...props
@@ -1512,7 +1470,7 @@ var chatShape = {
1512
1470
  placeholder: "Message"
1513
1471
  }),
1514
1472
  createShape: createChat,
1515
- getAnchors: (shape) => (0, import_react_ui_canvas_editor9.createAnchorMap)(shape, {
1473
+ getAnchors: (shape) => (0, import_react_ui_canvas_editor10.createAnchorMap)(shape, {
1516
1474
  [createAnchorId("output")]: {
1517
1475
  x: 1,
1518
1476
  y: 0
@@ -1536,7 +1494,7 @@ var inferType = (value) => {
1536
1494
  }
1537
1495
  };
1538
1496
  var ConstantComponent = ({ shape, title, chat, ...props }) => {
1539
- var _effect = (0, import_tracking10.useSignals)();
1497
+ var _effect = (0, import_tracking9.useSignals)();
1540
1498
  try {
1541
1499
  const { node } = useComputeNodeState(shape);
1542
1500
  const [type, setType] = (0, import_react14.useState)(inferType(node.value) ?? import_conductor11.ComputeValueType.literals[0]);
@@ -1566,12 +1524,12 @@ var ConstantComponent = ({ shape, title, chat, ...props }) => {
1566
1524
  value: type,
1567
1525
  onValueChange: setType
1568
1526
  })
1569
- }, (type === "string" || type === "number") && /* @__PURE__ */ import_react14.default.createElement(import_react_ui_canvas_editor10.TextBox, {
1527
+ }, (type === "string" || type === "number") && /* @__PURE__ */ import_react14.default.createElement(import_react_ui_canvas_editor11.TextBox, {
1570
1528
  ...props,
1571
1529
  ref: inputRef,
1572
1530
  value: node.value,
1573
1531
  onEnter: handleEnter
1574
- }), type === "object" && /* @__PURE__ */ import_react14.default.createElement(import_react_ui_canvas_editor10.TextBox, {
1532
+ }), type === "object" && /* @__PURE__ */ import_react14.default.createElement(import_react_ui_canvas_editor11.TextBox, {
1575
1533
  ...props,
1576
1534
  ref: inputRef,
1577
1535
  value: JSON.stringify(node.value, null, 2),
@@ -1605,7 +1563,7 @@ var constantShape = {
1605
1563
  placeholder: "Constant"
1606
1564
  }),
1607
1565
  createShape: createConstant,
1608
- getAnchors: (shape) => (0, import_react_ui_canvas_editor11.createAnchorMap)(shape, {
1566
+ getAnchors: (shape) => (0, import_react_ui_canvas_editor12.createAnchorMap)(shape, {
1609
1567
  [createAnchorId("output")]: {
1610
1568
  x: 1,
1611
1569
  y: 0
@@ -1625,7 +1583,7 @@ var createDatabase = (props) => createShape({
1625
1583
  ...props
1626
1584
  });
1627
1585
  var DatabaseComponent = ({ shape }) => {
1628
- var _effect = (0, import_tracking11.useSignals)();
1586
+ var _effect = (0, import_tracking10.useSignals)();
1629
1587
  try {
1630
1588
  return /* @__PURE__ */ import_react15.default.createElement(Box, {
1631
1589
  shape
@@ -1640,7 +1598,7 @@ var databaseShape = {
1640
1598
  icon: "ph--database--regular",
1641
1599
  component: DatabaseComponent,
1642
1600
  createShape: createDatabase,
1643
- getAnchors: (shape) => (0, import_react_ui_canvas_editor12.createAnchorMap)(shape, {
1601
+ getAnchors: (shape) => (0, import_react_ui_canvas_editor13.createAnchorMap)(shape, {
1644
1602
  [createAnchorId("output")]: {
1645
1603
  x: 1,
1646
1604
  y: 0
@@ -1659,7 +1617,7 @@ var createFunction = (props) => createShape({
1659
1617
  ...props
1660
1618
  });
1661
1619
  var TextInputComponent2 = ({ shape, title, ...props }) => {
1662
- var _effect = (0, import_tracking12.useSignals)();
1620
+ var _effect = (0, import_tracking11.useSignals)();
1663
1621
  try {
1664
1622
  const client = (0, import_react_client.useClient)();
1665
1623
  const { node, runtime } = useComputeNodeState(shape);
@@ -1701,7 +1659,7 @@ var TextInputComponent2 = ({ shape, title, ...props }) => {
1701
1659
  shape,
1702
1660
  title: "Function",
1703
1661
  onAction: handleAction
1704
- }, /* @__PURE__ */ import_react16.default.createElement(import_react_ui_canvas_editor13.TextBox, {
1662
+ }, /* @__PURE__ */ import_react16.default.createElement(import_react_ui_canvas_editor14.TextBox, {
1705
1663
  ...props,
1706
1664
  ref: inputRef,
1707
1665
  value: node.value,
@@ -1733,7 +1691,7 @@ var createGpt = (props) => createShape({
1733
1691
  ...props
1734
1692
  });
1735
1693
  var GptComponent = ({ shape }) => {
1736
- var _effect = (0, import_tracking13.useSignals)();
1694
+ var _effect = (0, import_tracking12.useSignals)();
1737
1695
  try {
1738
1696
  const { meta, runtime } = useComputeNodeState(shape);
1739
1697
  const [text, setText] = (0, import_react17.useState)("");
@@ -1798,7 +1756,7 @@ var JsonTransformShape = import_effect15.Schema.extend(ComputeShape, import_effe
1798
1756
  type: import_effect15.Schema.Literal("json-transform")
1799
1757
  }));
1800
1758
  var JsonComponent = ({ shape, ...props }) => {
1801
- var _effect = (0, import_tracking14.useSignals)();
1759
+ var _effect = (0, import_tracking13.useSignals)();
1802
1760
  try {
1803
1761
  const { runtime } = useComputeNodeState(shape);
1804
1762
  const input = runtime.inputs[import_conductor14.DEFAULT_INPUT];
@@ -1814,7 +1772,7 @@ var JsonComponent = ({ shape, ...props }) => {
1814
1772
  }
1815
1773
  };
1816
1774
  var JsonTransformComponent = ({ shape, ...props }) => {
1817
- var _effect = (0, import_tracking14.useSignals)();
1775
+ var _effect = (0, import_tracking13.useSignals)();
1818
1776
  try {
1819
1777
  return /* @__PURE__ */ import_react18.default.createElement(Box, {
1820
1778
  shape
@@ -1837,7 +1795,7 @@ var jsonShape = {
1837
1795
  icon: "ph--code--regular",
1838
1796
  component: (props) => /* @__PURE__ */ import_react18.default.createElement(JsonComponent, props),
1839
1797
  createShape: createJson,
1840
- getAnchors: (shape) => (0, import_react_ui_canvas_editor14.createAnchorMap)(shape, {
1798
+ getAnchors: (shape) => (0, import_react_ui_canvas_editor15.createAnchorMap)(shape, {
1841
1799
  [createAnchorId("input")]: {
1842
1800
  x: -1,
1843
1801
  y: 0
@@ -1873,7 +1831,7 @@ var IfElseShape = import_effect16.Schema.extend(ComputeShape, import_effect16.Sc
1873
1831
  type: import_effect16.Schema.Literal("if-else")
1874
1832
  }));
1875
1833
  var IfComponent = ({ shape, ...props }) => {
1876
- var _effect = (0, import_tracking15.useSignals)();
1834
+ var _effect = (0, import_tracking14.useSignals)();
1877
1835
  try {
1878
1836
  return /* @__PURE__ */ import_react19.default.createElement(FunctionBody, {
1879
1837
  shape,
@@ -1885,7 +1843,7 @@ var IfComponent = ({ shape, ...props }) => {
1885
1843
  }
1886
1844
  };
1887
1845
  var IfElseComponent = ({ shape, ...props }) => {
1888
- var _effect = (0, import_tracking15.useSignals)();
1846
+ var _effect = (0, import_tracking14.useSignals)();
1889
1847
  try {
1890
1848
  return /* @__PURE__ */ import_react19.default.createElement(FunctionBody, {
1891
1849
  shape,
@@ -1940,7 +1898,7 @@ var createQueue = (props) => createShape({
1940
1898
  ...props
1941
1899
  });
1942
1900
  var QueueComponent = ({ shape }) => {
1943
- var _effect = (0, import_tracking16.useSignals)();
1901
+ var _effect = (0, import_tracking15.useSignals)();
1944
1902
  try {
1945
1903
  const { runtime } = useComputeNodeState(shape);
1946
1904
  const items = runtime.outputs[import_conductor16.DEFAULT_OUTPUT]?.type === "executed" ? runtime.outputs[import_conductor16.DEFAULT_OUTPUT].value : [];
@@ -1967,7 +1925,7 @@ var QueueComponent = ({ shape }) => {
1967
1925
  }
1968
1926
  };
1969
1927
  var QueueItem = ({ classNames, item }) => {
1970
- var _effect = (0, import_tracking16.useSignals)();
1928
+ var _effect = (0, import_tracking15.useSignals)();
1971
1929
  try {
1972
1930
  if (typeof item !== "object") {
1973
1931
  return /* @__PURE__ */ import_react20.default.createElement("div", {
@@ -2017,7 +1975,7 @@ var icons = [
2017
1975
  ];
2018
1976
  var pickIcon = () => icons[Math.floor(Math.random() * icons.length)];
2019
1977
  var RandomComponent = ({ shape }) => {
2020
- var _effect = (0, import_tracking17.useSignals)();
1978
+ var _effect = (0, import_tracking16.useSignals)();
2021
1979
  try {
2022
1980
  const { runtime } = useComputeNodeState(shape);
2023
1981
  const [spin, setSpin] = (0, import_react21.useState)(false);
@@ -2060,7 +2018,7 @@ var randomShape = {
2060
2018
  icon: "ph--dice-six--regular",
2061
2019
  component: RandomComponent,
2062
2020
  createShape: createRandom,
2063
- getAnchors: (shape) => (0, import_react_ui_canvas_editor15.createAnchorMap)(shape, {
2021
+ getAnchors: (shape) => (0, import_react_ui_canvas_editor16.createAnchorMap)(shape, {
2064
2022
  [createAnchorId("output")]: {
2065
2023
  x: 1,
2066
2024
  y: 0
@@ -2080,7 +2038,7 @@ var createScope = (props) => createShape({
2080
2038
  ...props
2081
2039
  });
2082
2040
  var ScopeComponent = ({ shape }) => {
2083
- var _effect = (0, import_tracking18.useSignals)();
2041
+ var _effect = (0, import_tracking17.useSignals)();
2084
2042
  try {
2085
2043
  const { runtime } = useComputeNodeState(shape);
2086
2044
  const input = runtime.inputs[import_conductor18.DEFAULT_INPUT];
@@ -2106,7 +2064,7 @@ var scopeShape = {
2106
2064
  icon: "ph--waveform--regular",
2107
2065
  component: ScopeComponent,
2108
2066
  createShape: createScope,
2109
- getAnchors: (shape) => (0, import_react_ui_canvas_editor16.createAnchorMap)(shape, {
2067
+ getAnchors: (shape) => (0, import_react_ui_canvas_editor17.createAnchorMap)(shape, {
2110
2068
  [createAnchorId("input")]: {
2111
2069
  x: -1,
2112
2070
  y: 0
@@ -2125,7 +2083,7 @@ var createSurface = (props) => createShape({
2125
2083
  ...props
2126
2084
  });
2127
2085
  var SurfaceComponent = ({ shape }) => {
2128
- var _effect = (0, import_tracking19.useSignals)();
2086
+ var _effect = (0, import_tracking18.useSignals)();
2129
2087
  try {
2130
2088
  const { runtime } = useComputeNodeState(shape);
2131
2089
  const input = runtime.inputs[import_conductor19.DEFAULT_INPUT];
@@ -2155,7 +2113,7 @@ var surfaceShape = {
2155
2113
  icon: "ph--frame-corners--regular",
2156
2114
  component: SurfaceComponent,
2157
2115
  createShape: createSurface,
2158
- getAnchors: (shape) => (0, import_react_ui_canvas_editor17.createAnchorMap)(shape, {
2116
+ getAnchors: (shape) => (0, import_react_ui_canvas_editor18.createAnchorMap)(shape, {
2159
2117
  [createAnchorId("input")]: {
2160
2118
  x: -1,
2161
2119
  y: 0
@@ -2175,7 +2133,7 @@ var createSwitch = (props) => createShape({
2175
2133
  ...props
2176
2134
  });
2177
2135
  var SwitchComponent = ({ shape }) => {
2178
- var _effect = (0, import_tracking20.useSignals)();
2136
+ var _effect = (0, import_tracking19.useSignals)();
2179
2137
  try {
2180
2138
  const { runtime } = useComputeNodeState(shape);
2181
2139
  const [value, setValue] = (0, import_react24.useState)(false);
@@ -2201,7 +2159,7 @@ var switchShape = {
2201
2159
  icon: "ph--toggle-left--regular",
2202
2160
  component: SwitchComponent,
2203
2161
  createShape: createSwitch,
2204
- getAnchors: (shape) => (0, import_react_ui_canvas_editor18.createAnchorMap)(shape, {
2162
+ getAnchors: (shape) => (0, import_react_ui_canvas_editor19.createAnchorMap)(shape, {
2205
2163
  [createAnchorId("output")]: {
2206
2164
  x: 1,
2207
2165
  y: 0
@@ -2222,7 +2180,7 @@ var createTable = (props) => createShape({
2222
2180
  ...props
2223
2181
  });
2224
2182
  var TableComponent = ({ shape }) => {
2225
- var _effect = (0, import_tracking21.useSignals)();
2183
+ var _effect = (0, import_tracking20.useSignals)();
2226
2184
  try {
2227
2185
  return /* @__PURE__ */ import_react25.default.createElement(Box, {
2228
2186
  shape
@@ -2246,7 +2204,7 @@ var TemplateShape = import_effect23.Schema.extend(ComputeShape, import_effect23.
2246
2204
  valueType: import_effect23.Schema.optional(import_conductor22.ComputeValueType)
2247
2205
  }));
2248
2206
  var TextInputComponent3 = ({ shape, title, ...props }) => {
2249
- var _effect = (0, import_tracking22.useSignals)();
2207
+ var _effect = (0, import_tracking21.useSignals)();
2250
2208
  try {
2251
2209
  const { node } = useComputeNodeState(shape);
2252
2210
  const inputRef = (0, import_react26.useRef)(null);
@@ -2278,7 +2236,7 @@ var TextInputComponent3 = ({ shape, title, ...props }) => {
2278
2236
  value: node.valueType ?? "string",
2279
2237
  onValueChange: handleTypeChange
2280
2238
  })
2281
- }, /* @__PURE__ */ import_react26.default.createElement(import_react_ui_canvas_editor19.TextBox, {
2239
+ }, /* @__PURE__ */ import_react26.default.createElement(import_react_ui_canvas_editor20.TextBox, {
2282
2240
  ...props,
2283
2241
  ref: inputRef,
2284
2242
  value: node.value,
@@ -2322,7 +2280,7 @@ var createText = (props) => createShape({
2322
2280
  ...props
2323
2281
  });
2324
2282
  var TextComponent = ({ shape }) => {
2325
- var _effect = (0, import_tracking23.useSignals)();
2283
+ var _effect = (0, import_tracking22.useSignals)();
2326
2284
  try {
2327
2285
  const { runtime } = useComputeNodeState(shape);
2328
2286
  const input = runtime.inputs[import_conductor23.DEFAULT_INPUT];
@@ -2335,7 +2293,7 @@ var TextComponent = ({ shape }) => {
2335
2293
  return /* @__PURE__ */ import_react27.default.createElement(Box, {
2336
2294
  shape,
2337
2295
  onAction: handleAction
2338
- }, /* @__PURE__ */ import_react27.default.createElement(import_react_ui_canvas_editor20.TextBox, {
2296
+ }, /* @__PURE__ */ import_react27.default.createElement(import_react_ui_canvas_editor21.TextBox, {
2339
2297
  value
2340
2298
  }));
2341
2299
  } finally {
@@ -2348,7 +2306,7 @@ var textShape = {
2348
2306
  icon: "ph--article--regular",
2349
2307
  component: TextComponent,
2350
2308
  createShape: createText,
2351
- getAnchors: (shape) => (0, import_react_ui_canvas_editor21.createAnchorMap)(shape, {
2309
+ getAnchors: (shape) => (0, import_react_ui_canvas_editor22.createAnchorMap)(shape, {
2352
2310
  [createAnchorId("input")]: {
2353
2311
  x: -1,
2354
2312
  y: 0
@@ -2370,7 +2328,7 @@ var createThread = (props) => createShape({
2370
2328
  ...props
2371
2329
  });
2372
2330
  var ThreadComponent = ({ shape }) => {
2373
- var _effect = (0, import_tracking24.useSignals)();
2331
+ var _effect = (0, import_tracking23.useSignals)();
2374
2332
  try {
2375
2333
  const items = [];
2376
2334
  const scrollRef = (0, import_react28.useRef)(null);
@@ -2397,7 +2355,7 @@ var ThreadComponent = ({ shape }) => {
2397
2355
  }
2398
2356
  };
2399
2357
  var ThreadItem = ({ classNames, item }) => {
2400
- var _effect = (0, import_tracking24.useSignals)();
2358
+ var _effect = (0, import_tracking23.useSignals)();
2401
2359
  try {
2402
2360
  if (typeof item !== "object") {
2403
2361
  return /* @__PURE__ */ import_react28.default.createElement("div", {
@@ -2435,7 +2393,7 @@ var createTextToImage = (props) => createShape({
2435
2393
  ...props
2436
2394
  });
2437
2395
  var TextToImageComponent = ({ shape }) => {
2438
- var _effect = (0, import_tracking25.useSignals)();
2396
+ var _effect = (0, import_tracking24.useSignals)();
2439
2397
  try {
2440
2398
  return /* @__PURE__ */ import_react29.default.createElement(Box, {
2441
2399
  shape
@@ -2450,7 +2408,7 @@ var textToImageShape = {
2450
2408
  icon: "ph--image--regular",
2451
2409
  component: TextToImageComponent,
2452
2410
  createShape: createTextToImage,
2453
- getAnchors: (shape) => (0, import_react_ui_canvas_editor22.createAnchorMap)(shape, {
2411
+ getAnchors: (shape) => (0, import_react_ui_canvas_editor23.createAnchorMap)(shape, {
2454
2412
  [createAnchorId("output")]: {
2455
2413
  x: 1,
2456
2414
  y: 0
@@ -2477,7 +2435,7 @@ var createTrigger = (props) => {
2477
2435
  });
2478
2436
  };
2479
2437
  var TriggerComponent = ({ shape }) => {
2480
- var _effect = (0, import_tracking26.useSignals)();
2438
+ var _effect = (0, import_tracking25.useSignals)();
2481
2439
  try {
2482
2440
  const space = (0, import_echo3.useSpace)();
2483
2441
  const functionTrigger = shape.functionTrigger?.target;
@@ -2522,7 +2480,7 @@ var TriggerComponent = ({ shape }) => {
2522
2480
  }
2523
2481
  };
2524
2482
  var TriggerKindSelect = ({ value, onValueChange }) => {
2525
- var _effect = (0, import_tracking26.useSignals)();
2483
+ var _effect = (0, import_tracking25.useSignals)();
2526
2484
  try {
2527
2485
  return /* @__PURE__ */ import_react30.default.createElement(import_react_ui8.Select.Root, {
2528
2486
  value,
@@ -2604,7 +2562,7 @@ var createGptRealtime = (props) => createShape({
2604
2562
  ...props
2605
2563
  });
2606
2564
  var GptRealtimeComponent = ({ shape }) => {
2607
- var _effect = (0, import_tracking27.useSignals)();
2565
+ var _effect = (0, import_tracking26.useSignals)();
2608
2566
  try {
2609
2567
  const [isLive, setIsLive] = (0, import_react31.useState)(false);
2610
2568
  const [isReady, setIsReady] = (0, import_react31.useState)(false);
@@ -2630,8 +2588,8 @@ var GptRealtimeComponent = ({ shape }) => {
2630
2588
  }));
2631
2589
  const offer = await peerConnection.createOffer();
2632
2590
  await peerConnection.setLocalDescription(offer);
2633
- const aiServiceUrl = new URL("/rtc-connect", config.values.runtime?.services?.ai?.server ?? DEFAULT_AI_SERVICE_URL);
2634
- const response = await fetch(aiServiceUrl, {
2591
+ const AiServiceUrl = new URL("/rtc-connect", config.values.runtime?.services?.ai?.server ?? DEFAULT_AI_SERVICE_URL);
2592
+ const response = await fetch(AiServiceUrl, {
2635
2593
  method: "POST",
2636
2594
  body: offer.sdp,
2637
2595
  headers: {
@@ -2777,7 +2735,7 @@ var computeShapes = [
2777
2735
  ]
2778
2736
  }
2779
2737
  ];
2780
- var ComputeShapeLayout = class extends import_react_ui_canvas_editor23.ShapeLayout {
2738
+ var ComputeShapeLayout = class extends import_react_ui_canvas_editor24.ShapeLayout {
2781
2739
  constructor(_controller, registry2) {
2782
2740
  super(registry2), this._controller = _controller;
2783
2741
  }