@bian-womp/spark-workbench 0.3.13 → 0.3.15

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.
@@ -18,6 +18,11 @@ export declare class RemoteGraphRunner extends AbstractGraphRunner {
18
18
  private readonly MAX_REGISTRY_FETCH_ATTEMPTS;
19
19
  private readonly INITIAL_RETRY_DELAY_MS;
20
20
  private readonly REGISTRY_FETCH_TIMEOUT_MS;
21
+ /**
22
+ * Generate cache key that includes io type to prevent collisions
23
+ * between input and output handles with the same name
24
+ */
25
+ private getCacheKey;
21
26
  /**
22
27
  * Fetch full registry description from remote and register it locally.
23
28
  * Simplified with straightforward retry loop.
@@ -1 +1 @@
1
- {"version":3,"file":"RemoteGraphRunner.d.ts","sourceRoot":"","sources":["../../../../src/runtime/RemoteGraphRunner.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"RemoteGraphRunner.d.ts","sourceRoot":"","sources":["../../../../src/runtime/RemoteGraphRunner.ts"],"names":[],"mappings":"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"}
package/lib/esm/index.js CHANGED
@@ -1383,6 +1383,13 @@ function excludeViewportFromUIState(uiState) {
1383
1383
  // Counter for generating readable runner IDs
1384
1384
  let remoteRunnerCounter = 0;
1385
1385
  class RemoteGraphRunner extends AbstractGraphRunner {
1386
+ /**
1387
+ * Generate cache key that includes io type to prevent collisions
1388
+ * between input and output handles with the same name
1389
+ */
1390
+ getCacheKey(nodeId, handle, io) {
1391
+ return `${nodeId}.${io}.${handle}`;
1392
+ }
1386
1393
  /**
1387
1394
  * Fetch full registry description from remote and register it locally.
1388
1395
  * Simplified with straightforward retry loop.
@@ -1501,14 +1508,6 @@ class RemoteGraphRunner extends AbstractGraphRunner {
1501
1508
  if (attempt < this.MAX_REGISTRY_FETCH_ATTEMPTS) {
1502
1509
  const delayMs = this.INITIAL_RETRY_DELAY_MS * Math.pow(2, attempt - 1);
1503
1510
  console.warn(`Failed to fetch registry (attempt ${attempt}/${this.MAX_REGISTRY_FETCH_ATTEMPTS}), retrying in ${delayMs}ms...`, lastError);
1504
- // Emit error event for UI feedback
1505
- this.emit("error", {
1506
- kind: "registry",
1507
- message: `Registry fetch failed (attempt ${attempt}/${this.MAX_REGISTRY_FETCH_ATTEMPTS}), retrying...`,
1508
- err: lastError,
1509
- attempt,
1510
- maxAttempts: this.MAX_REGISTRY_FETCH_ATTEMPTS,
1511
- });
1512
1511
  // Wait before retrying
1513
1512
  await new Promise((resolve) => setTimeout(resolve, delayMs));
1514
1513
  }
@@ -1735,8 +1734,7 @@ class RemoteGraphRunner extends AbstractGraphRunner {
1735
1734
  const snap = await client.api.snapshot();
1736
1735
  for (const [nodeId, map] of Object.entries(snap.inputs || {})) {
1737
1736
  for (const [handle, value] of Object.entries(map || {})) {
1738
- this.valueCache.set(`${nodeId}.${handle}`, {
1739
- io: "input",
1737
+ this.valueCache.set(this.getCacheKey(nodeId, handle, "input"), {
1740
1738
  value,
1741
1739
  });
1742
1740
  this.emit("value", { nodeId, handle, value, io: "input" });
@@ -1744,8 +1742,7 @@ class RemoteGraphRunner extends AbstractGraphRunner {
1744
1742
  }
1745
1743
  for (const [nodeId, map] of Object.entries(snap.outputs || {})) {
1746
1744
  for (const [handle, value] of Object.entries(map || {})) {
1747
- this.valueCache.set(`${nodeId}.${handle}`, {
1748
- io: "output",
1745
+ this.valueCache.set(this.getCacheKey(nodeId, handle, "output"), {
1749
1746
  value,
1750
1747
  });
1751
1748
  this.emit("value", { nodeId, handle, value, io: "output" });
@@ -1766,8 +1763,7 @@ class RemoteGraphRunner extends AbstractGraphRunner {
1766
1763
  const eng = client.engine;
1767
1764
  if (!this.listenersBound) {
1768
1765
  eng.on("value", (e) => {
1769
- this.valueCache.set(`${e.nodeId}.${e.handle}`, {
1770
- io: e.io,
1766
+ this.valueCache.set(this.getCacheKey(e.nodeId, e.handle, e.io), {
1771
1767
  value: e.value,
1772
1768
  runtimeTypeId: e.runtimeTypeId,
1773
1769
  });
@@ -1936,8 +1932,7 @@ class RemoteGraphRunner extends AbstractGraphRunner {
1936
1932
  // Hydrate inputs
1937
1933
  for (const [nodeId, map] of Object.entries(snapshot.inputs || {})) {
1938
1934
  for (const [handle, value] of Object.entries(map || {})) {
1939
- this.valueCache.set(`${nodeId}.${handle}`, {
1940
- io: "input",
1935
+ this.valueCache.set(this.getCacheKey(nodeId, handle, "input"), {
1941
1936
  value,
1942
1937
  });
1943
1938
  this.emit("value", {
@@ -1952,8 +1947,7 @@ class RemoteGraphRunner extends AbstractGraphRunner {
1952
1947
  // Hydrate outputs
1953
1948
  for (const [nodeId, map] of Object.entries(snapshot.outputs || {})) {
1954
1949
  for (const [handle, value] of Object.entries(map || {})) {
1955
- this.valueCache.set(`${nodeId}.${handle}`, {
1956
- io: "output",
1950
+ this.valueCache.set(this.getCacheKey(nodeId, handle, "output"), {
1957
1951
  value,
1958
1952
  });
1959
1953
  this.emit("value", {
@@ -1999,9 +1993,9 @@ class RemoteGraphRunner extends AbstractGraphRunner {
1999
1993
  const desc = this.registry.nodes.get(n.typeId);
2000
1994
  const handles = Object.keys(resolved ?? desc?.outputs ?? {});
2001
1995
  for (const h of handles) {
2002
- const key = `${n.nodeId}.${h}`;
1996
+ const key = this.getCacheKey(n.nodeId, h, "output");
2003
1997
  const rec = cache.get(key);
2004
- if (rec && rec.io === "output") {
1998
+ if (rec) {
2005
1999
  if (!out[n.nodeId])
2006
2000
  out[n.nodeId] = {};
2007
2001
  out[n.nodeId][h] = rec.value;
@@ -2024,8 +2018,8 @@ class RemoteGraphRunner extends AbstractGraphRunner {
2024
2018
  .filter((e) => e.target.nodeId === n.nodeId)
2025
2019
  .map((e) => e.target.handle));
2026
2020
  for (const h of handles) {
2027
- const rec = cache.get(`${n.nodeId}.${h}`);
2028
- if (rec && rec.io === "input")
2021
+ const rec = cache.get(this.getCacheKey(n.nodeId, h, "input"));
2022
+ if (rec)
2029
2023
  cur[h] = rec.value;
2030
2024
  }
2031
2025
  // Merge staged only for non-inbound handles so UI doesn't override runtime values