@particle-academy/fancy-flow 0.48.0 → 0.49.0

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 (83) hide show
  1. package/dist/{ConfigFieldRenderer-NuDjtun1.d.cts → ConfigFieldRenderer-CrXFq6Eb.d.cts} +2 -2
  2. package/dist/{ConfigFieldRenderer-DrD2-Qml.d.ts → ConfigFieldRenderer-u3nYHovX.d.ts} +2 -2
  3. package/dist/{FlowViewer-CY3_vHSg.d.cts → FlowViewer-CFSMlCqi.d.cts} +1 -1
  4. package/dist/{FlowViewer-DGW6t-80.d.ts → FlowViewer-DRgjeWJ7.d.ts} +1 -1
  5. package/dist/{capabilities-DMUhnyZD.d.ts → capabilities-B00VXLUp.d.ts} +1 -1
  6. package/dist/{capabilities-Dmd26aAs.d.cts → capabilities-VzgDApur.d.cts} +1 -1
  7. package/dist/{chunk-MJ3A3TAI.js → chunk-6FP3F5YR.js} +21 -4
  8. package/dist/chunk-6FP3F5YR.js.map +1 -0
  9. package/dist/{chunk-DRRZEAYB.js → chunk-6XKR65XM.js} +3 -3
  10. package/dist/{chunk-DRRZEAYB.js.map → chunk-6XKR65XM.js.map} +1 -1
  11. package/dist/{chunk-UVP43XU2.js → chunk-AVRGZFXG.js} +4 -4
  12. package/dist/{chunk-UVP43XU2.js.map → chunk-AVRGZFXG.js.map} +1 -1
  13. package/dist/{chunk-E6T3FZZP.js → chunk-UL3DGSSG.js} +9 -4
  14. package/dist/chunk-UL3DGSSG.js.map +1 -0
  15. package/dist/{chunk-7DTUZUTB.js → chunk-VUL7CUFW.js} +3 -3
  16. package/dist/{chunk-7DTUZUTB.js.map → chunk-VUL7CUFW.js.map} +1 -1
  17. package/dist/{chunk-KTGXZBUM.js → chunk-YOK3WKWC.js} +7 -3
  18. package/dist/chunk-YOK3WKWC.js.map +1 -0
  19. package/dist/connectors.d.cts +2 -2
  20. package/dist/connectors.d.ts +2 -2
  21. package/dist/durable/index.d.cts +2 -2
  22. package/dist/durable/index.d.ts +2 -2
  23. package/dist/durable.cjs +19 -2
  24. package/dist/durable.cjs.map +1 -1
  25. package/dist/durable.js +1 -1
  26. package/dist/engine.cjs +19 -2
  27. package/dist/engine.cjs.map +1 -1
  28. package/dist/engine.d.cts +7 -7
  29. package/dist/engine.d.ts +7 -7
  30. package/dist/engine.js +3 -3
  31. package/dist/fields/react-fancy.d.cts +3 -3
  32. package/dist/fields/react-fancy.d.ts +3 -3
  33. package/dist/index.cjs +60 -3
  34. package/dist/index.cjs.map +1 -1
  35. package/dist/index.d.cts +11 -11
  36. package/dist/index.d.ts +11 -11
  37. package/dist/index.js +42 -11
  38. package/dist/index.js.map +1 -1
  39. package/dist/layout/index.d.cts +1 -1
  40. package/dist/layout/index.d.ts +1 -1
  41. package/dist/llm/prism.d.cts +2 -2
  42. package/dist/llm/prism.d.ts +2 -2
  43. package/dist/llm/vercel-ai.d.cts +2 -2
  44. package/dist/llm/vercel-ai.d.ts +2 -2
  45. package/dist/registry/index.d.cts +6 -6
  46. package/dist/registry/index.d.ts +6 -6
  47. package/dist/{registry-DpARG95T.d.ts → registry-6cB5wCv6.d.ts} +1 -1
  48. package/dist/{registry-BnnifM-t.d.cts → registry-DQh7ZmnM.d.cts} +1 -1
  49. package/dist/registry.cjs +19 -2
  50. package/dist/registry.cjs.map +1 -1
  51. package/dist/registry.js +2 -2
  52. package/dist/{run-cohort-DdPPowJ3.d.cts → run-cohort-DYCL8Qv6.d.cts} +2 -2
  53. package/dist/{run-cohort-Cyeny2Uu.d.ts → run-cohort-VX4JG21l.d.ts} +2 -2
  54. package/dist/{run-flow-1KiXhy59.d.cts → run-flow-B24QUO1H.d.cts} +1 -1
  55. package/dist/{run-flow-CQvTDBYk.d.ts → run-flow-DPUPAWk6.d.ts} +1 -1
  56. package/dist/runtime/index.d.cts +18 -6
  57. package/dist/runtime/index.d.ts +18 -6
  58. package/dist/runtime.cjs +25 -3
  59. package/dist/runtime.cjs.map +1 -1
  60. package/dist/runtime.js +3 -3
  61. package/dist/schema/index.d.cts +9 -1
  62. package/dist/schema/index.d.ts +9 -1
  63. package/dist/schema.cjs +23 -2
  64. package/dist/schema.cjs.map +1 -1
  65. package/dist/schema.js +2 -2
  66. package/dist/screens.cjs +19 -2
  67. package/dist/screens.cjs.map +1 -1
  68. package/dist/screens.d.cts +2 -2
  69. package/dist/screens.d.ts +2 -2
  70. package/dist/screens.js +4 -4
  71. package/dist/{types-Jx1TwehV.d.ts → types-7cXcSQlx.d.cts} +50 -0
  72. package/dist/{types-Jx1TwehV.d.cts → types-7cXcSQlx.d.ts} +50 -0
  73. package/dist/{types-BO8TgI2M.d.cts → types-BtMOnb9I.d.cts} +1 -1
  74. package/dist/{types-DJAmfiJC.d.ts → types-CDgIIj4c.d.ts} +1 -1
  75. package/dist/ux.cjs +19 -2
  76. package/dist/ux.cjs.map +1 -1
  77. package/dist/ux.d.cts +2 -2
  78. package/dist/ux.d.ts +2 -2
  79. package/dist/ux.js +1 -1
  80. package/package.json +1 -1
  81. package/dist/chunk-E6T3FZZP.js.map +0 -1
  82. package/dist/chunk-KTGXZBUM.js.map +0 -1
  83. package/dist/chunk-MJ3A3TAI.js.map +0 -1
@@ -1,7 +1,7 @@
1
1
  import * as react from 'react';
2
2
  import { ReactNode } from 'react';
3
- import { F as FlowGraph } from './types-Jx1TwehV.cjs';
4
- import { C as ConfigField } from './types-BO8TgI2M.cjs';
3
+ import { F as FlowGraph } from './types-7cXcSQlx.cjs';
4
+ import { C as ConfigField } from './types-BtMOnb9I.cjs';
5
5
 
6
6
  /** What a host renderer is handed. */
7
7
  type ConfigFieldRenderContext = {
@@ -1,7 +1,7 @@
1
1
  import * as react from 'react';
2
2
  import { ReactNode } from 'react';
3
- import { F as FlowGraph } from './types-Jx1TwehV.js';
4
- import { C as ConfigField } from './types-DJAmfiJC.js';
3
+ import { F as FlowGraph } from './types-7cXcSQlx.js';
4
+ import { C as ConfigField } from './types-CDgIIj4c.js';
5
5
 
6
6
  /** What a host renderer is handed. */
7
7
  type ConfigFieldRenderContext = {
@@ -1,6 +1,6 @@
1
1
  import * as react from 'react';
2
2
  import { CSSProperties, ReactNode } from 'react';
3
- import { F as FlowGraph, a as FlowNode } from './types-Jx1TwehV.cjs';
3
+ import { F as FlowGraph, a as FlowNode } from './types-7cXcSQlx.cjs';
4
4
 
5
5
  /** Outcome of one node in a run, for annotating the graph after the fact. */
6
6
  type FlowNodeStatus = "ok" | "running" | "failed" | "skipped" | "pending";
@@ -1,6 +1,6 @@
1
1
  import * as react from 'react';
2
2
  import { CSSProperties, ReactNode } from 'react';
3
- import { F as FlowGraph, a as FlowNode } from './types-Jx1TwehV.js';
3
+ import { F as FlowGraph, a as FlowNode } from './types-7cXcSQlx.js';
4
4
 
5
5
  /** Outcome of one node in a run, for annotating the graph after the fact. */
6
6
  type FlowNodeStatus = "ok" | "running" | "failed" | "skipped" | "pending";
@@ -1,4 +1,4 @@
1
- import { F as FlowGraph } from './types-Jx1TwehV.js';
1
+ import { F as FlowGraph } from './types-7cXcSQlx.js';
2
2
 
3
3
  /**
4
4
  * Host capabilities — the services core nodes need but must never depend on.
@@ -1,4 +1,4 @@
1
- import { F as FlowGraph } from './types-Jx1TwehV.cjs';
1
+ import { F as FlowGraph } from './types-7cXcSQlx.cjs';
2
2
 
3
3
  /**
4
4
  * Host capabilities — the services core nodes need but must never depend on.
@@ -9356,6 +9356,7 @@ async function runFlow(graph, executors, onEvent = () => {
9356
9356
  continue;
9357
9357
  }
9358
9358
  onEvent({ type: "node-status", nodeId: node.id, status: "running" });
9359
+ announce(onEvent, node, "start");
9359
9360
  const inputs = collectInputs(node, incoming, portValues, initialInputs);
9360
9361
  const exec = pickExecutor(executors, node);
9361
9362
  if (!exec) {
@@ -9374,6 +9375,7 @@ async function runFlow(graph, executors, onEvent = () => {
9374
9375
  throw new Error(reason ?? "aborted");
9375
9376
  },
9376
9377
  emit: onEvent,
9378
+ executors,
9377
9379
  depth,
9378
9380
  run
9379
9381
  })
@@ -9386,6 +9388,7 @@ async function runFlow(graph, executors, onEvent = () => {
9386
9388
  }
9387
9389
  completed.add(node.id);
9388
9390
  onEvent({ type: "node-status", nodeId: node.id, status: "done" });
9391
+ announce(onEvent, node, "end");
9389
9392
  } catch (e) {
9390
9393
  const msg = e instanceof Error ? e.message : String(e);
9391
9394
  errors.push(msg);
@@ -9444,7 +9447,10 @@ function collectInputs(node, incoming, portValues, initial) {
9444
9447
  function pickExecutor(executors, node) {
9445
9448
  if (executors[node.id]) return executors[node.id];
9446
9449
  if (node.type && executors[node.type]) return executors[node.type];
9447
- const kind = node.type ? getNodeKind(node.type) : null;
9450
+ const declared = node.data?.kind;
9451
+ const kindName = typeof declared === "string" && declared !== "" ? declared : node.type;
9452
+ if (kindName && kindName !== node.type && executors[kindName]) return executors[kindName];
9453
+ const kind = kindName ? getNodeKind(kindName) : null;
9448
9454
  if (kind) {
9449
9455
  for (const id2 of kindIds(kind)) {
9450
9456
  if (executors[id2]) return executors[id2];
@@ -9466,6 +9472,14 @@ function activatedPorts(node, result) {
9466
9472
  const declared = resolveNodePorts(node, kind).outputs?.map((p) => p.id);
9467
9473
  return { ports: declared?.length ? declared : ["out"], value: result };
9468
9474
  }
9475
+ function announce(onEvent, node, phase) {
9476
+ const data = node.data;
9477
+ const raw = phase === "start" ? data?.startingMsg : data?.stoppingMsg;
9478
+ if (typeof raw !== "string") return;
9479
+ const message = raw.trim();
9480
+ if (message === "") return;
9481
+ onEvent({ type: "node-message", nodeId: node.id, phase, message });
9482
+ }
9469
9483
 
9470
9484
  // src/registry/subflow.ts
9471
9485
  var DEFAULT_MAX_DEPTH = 8;
@@ -9519,7 +9533,10 @@ var subflowExecutor = async (ctx) => {
9519
9533
  };
9520
9534
  const result = await runFlow(
9521
9535
  child,
9522
- config.executors ?? {},
9536
+ // Inherit the parent's registry, then let the graph layer its own on top.
9537
+ // The inherited half is the fix; the layered half keeps a graph that
9538
+ // deliberately hands its child extra or different executors working.
9539
+ { ...ctx.executors ?? {}, ...config.executors ?? {} },
9523
9540
  forward,
9524
9541
  {
9525
9542
  initialInputs: config.inputs ?? {
@@ -10604,5 +10621,5 @@ function LaneNodeInner(props) {
10604
10621
  var LaneNode = memo(LaneNodeInner);
10605
10622
 
10606
10623
  export { BUILTIN_KINDS, Background, BackgroundVariant, Controls, DEFAULT_MAX_DEPTH, FlowEditorProvider, Handle, LaneNode, MiniMap, NodeResizer, NodeToolbar, NoteNode, Position, ReactFlowProvider, RunIdentity, ViewportPortal, addEdge2 as addEdge, applyEdgeChanges, applyNodeChanges, categoryAccent, clearNodeKindOverrides, declaredRoutes, defaultConfigFor, ensureBuiltinKinds, escapeSegment, getNodeKind, index, kindIds, listNodeKinds, llmRouterExecutor, nodeConfig, onNodeKindsChanged, overrideNodeKind, reconnectEdge2 as reconnectEdge, registerBuiltinKinds, registerNodeKind, resolveFallbackPort, resolveKindId, resolveNodePorts, resolvePortSpec, runFlow, subflowExecutor, subflowMode, subflowPorts, useFlowEditor, useFlowEditorOptional, useReactFlow, validateConfig };
10607
- //# sourceMappingURL=chunk-MJ3A3TAI.js.map
10608
- //# sourceMappingURL=chunk-MJ3A3TAI.js.map
10624
+ //# sourceMappingURL=chunk-6FP3F5YR.js.map
10625
+ //# sourceMappingURL=chunk-6FP3F5YR.js.map