@particle-academy/fancy-flow 0.72.0 → 0.73.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 (54) hide show
  1. package/README.md +22 -0
  2. package/dist/{chunk-57QTX3S3.js → chunk-3RXQGYGH.js} +3 -3
  3. package/dist/{chunk-57QTX3S3.js.map → chunk-3RXQGYGH.js.map} +1 -1
  4. package/dist/{chunk-RQP666FB.js → chunk-7DJ56PUA.js} +4 -4
  5. package/dist/{chunk-RQP666FB.js.map → chunk-7DJ56PUA.js.map} +1 -1
  6. package/dist/{chunk-C5K2DSZB.js → chunk-EX34GCKK.js} +7 -5
  7. package/dist/chunk-EX34GCKK.js.map +1 -0
  8. package/dist/{chunk-ZEDBF2V6.js → chunk-GQ5LEA7Q.js} +3 -3
  9. package/dist/{chunk-ZEDBF2V6.js.map → chunk-GQ5LEA7Q.js.map} +1 -1
  10. package/dist/{chunk-E3U3MBKI.js → chunk-K7KO3UJ3.js} +3 -3
  11. package/dist/{chunk-E3U3MBKI.js.map → chunk-K7KO3UJ3.js.map} +1 -1
  12. package/dist/{chunk-R3GQ72WA.js → chunk-LYYQO7EY.js} +4 -4
  13. package/dist/{chunk-R3GQ72WA.js.map → chunk-LYYQO7EY.js.map} +1 -1
  14. package/dist/{chunk-6TC44VCY.js → chunk-VAF2SWTC.js} +3 -3
  15. package/dist/{chunk-6TC44VCY.js.map → chunk-VAF2SWTC.js.map} +1 -1
  16. package/dist/durable/index.d.cts +138 -13
  17. package/dist/durable/index.d.ts +138 -13
  18. package/dist/durable.cjs +75 -13
  19. package/dist/durable.cjs.map +1 -1
  20. package/dist/durable.js +69 -12
  21. package/dist/durable.js.map +1 -1
  22. package/dist/engine.cjs +5 -3
  23. package/dist/engine.cjs.map +1 -1
  24. package/dist/engine.d.cts +2 -2
  25. package/dist/engine.d.ts +2 -2
  26. package/dist/engine.js +4 -4
  27. package/dist/index.cjs +5 -3
  28. package/dist/index.cjs.map +1 -1
  29. package/dist/index.d.cts +2 -2
  30. package/dist/index.d.ts +2 -2
  31. package/dist/index.js +12 -12
  32. package/dist/registry.cjs +5 -3
  33. package/dist/registry.cjs.map +1 -1
  34. package/dist/registry.js +2 -2
  35. package/dist/{run-cohort-DL9JzzPU.d.cts → run-cohort-DNpPa0mq.d.cts} +1 -1
  36. package/dist/{run-cohort-CjUBWg6X.d.ts → run-cohort-rgT_FX3V.d.ts} +1 -1
  37. package/dist/{run-flow-CxEGBOxd.d.ts → run-flow-BLP9rXfO.d.ts} +22 -1
  38. package/dist/{run-flow-B_8hgO5_.d.cts → run-flow-pW0PllaZ.d.cts} +22 -1
  39. package/dist/runtime/index.d.cts +3 -3
  40. package/dist/runtime/index.d.ts +3 -3
  41. package/dist/runtime.cjs +5 -3
  42. package/dist/runtime.cjs.map +1 -1
  43. package/dist/runtime.js +3 -3
  44. package/dist/schema.cjs +5 -3
  45. package/dist/schema.cjs.map +1 -1
  46. package/dist/schema.js +3 -3
  47. package/dist/screens.cjs +5 -3
  48. package/dist/screens.cjs.map +1 -1
  49. package/dist/screens.js +4 -4
  50. package/dist/ux.cjs +5 -3
  51. package/dist/ux.cjs.map +1 -1
  52. package/dist/ux.js +1 -1
  53. package/package.json +2 -2
  54. package/dist/chunk-C5K2DSZB.js.map +0 -1
package/dist/index.d.cts CHANGED
@@ -16,8 +16,8 @@ export { AutoLayoutDirection } from './layout/index.cjs';
16
16
  export { F as FlowNodeStatus, a as FlowViewer, b as FlowViewerClassNames, c as FlowViewerProps } from './FlowViewer-CoAJ3o52.cjs';
17
17
  import { FlowRunFeedEntry } from './runtime/index.cjs';
18
18
  export { HistoryController, UseFlowHistoryReturn, UseFlowRunOptions, UseFlowRunReturn, UseFlowStateReturn, applyOutputsToNodes, applyStatusesToNodes, createHistory, useFlowHistory, useFlowRun, useFlowState } from './runtime/index.cjs';
19
- export { R as RunOptions, a as RunResult, r as runFlow } from './run-flow-B_8hgO5_.cjs';
20
- export { C as CohortGuard, a as CohortOptions, b as CohortPolicy, c as CohortResult, r as runCohort } from './run-cohort-DL9JzzPU.cjs';
19
+ export { R as RunOptions, a as RunResult, r as runFlow } from './run-flow-pW0PllaZ.cjs';
20
+ export { C as CohortGuard, a as CohortOptions, b as CohortPolicy, c as CohortResult, r as runCohort } from './run-cohort-DNpPa0mq.cjs';
21
21
  export { E as EvaluateOptions, a as ExprContext, b as ExprValue, R as Resolution, U as UnresolvedPathError, c as UnresolvedPolicy, e as evaluateConfig, d as evaluateExpression, r as resolvePath, t as text, f as truthy, g as tryResolvePath } from './expr-BfXDrs4H.cjs';
22
22
  export { K as KindSchemaOverlay, a as KindSchemaOverlayResult, N as NodeKindPresentation, b as applyKindSchemaOverlay, f as categoryAccent, c as clearKindSchemaOverlays, h as clearNodeKindOverrides, d as defaultConfigFor, i as ensureBuiltinKinds, g as getNodeKind, l as listNodeKinds, o as onNodeKindsChanged, j as overrideNodeKind, r as registerNodeKind, u as unregisterNodeKind, v as validateConfig } from './registry-B6SiTaLZ.cjs';
23
23
  export { L as LEGACY_PAUSE_PREFIXES, a as PAUSE_PREFIX, P as PauseAwaiting, b as PauseSignal, d as decodePause, e as encodePause, i as isPause, p as pauseForHuman } from './pause-9iT4tCEV.cjs';
package/dist/index.d.ts CHANGED
@@ -16,8 +16,8 @@ export { AutoLayoutDirection } from './layout/index.js';
16
16
  export { F as FlowNodeStatus, a as FlowViewer, b as FlowViewerClassNames, c as FlowViewerProps } from './FlowViewer-BCc_BvuD.js';
17
17
  import { FlowRunFeedEntry } from './runtime/index.js';
18
18
  export { HistoryController, UseFlowHistoryReturn, UseFlowRunOptions, UseFlowRunReturn, UseFlowStateReturn, applyOutputsToNodes, applyStatusesToNodes, createHistory, useFlowHistory, useFlowRun, useFlowState } from './runtime/index.js';
19
- export { R as RunOptions, a as RunResult, r as runFlow } from './run-flow-CxEGBOxd.js';
20
- export { C as CohortGuard, a as CohortOptions, b as CohortPolicy, c as CohortResult, r as runCohort } from './run-cohort-CjUBWg6X.js';
19
+ export { R as RunOptions, a as RunResult, r as runFlow } from './run-flow-BLP9rXfO.js';
20
+ export { C as CohortGuard, a as CohortOptions, b as CohortPolicy, c as CohortResult, r as runCohort } from './run-cohort-rgT_FX3V.js';
21
21
  export { E as EvaluateOptions, a as ExprContext, b as ExprValue, R as Resolution, U as UnresolvedPathError, c as UnresolvedPolicy, e as evaluateConfig, d as evaluateExpression, r as resolvePath, t as text, f as truthy, g as tryResolvePath } from './expr-BfXDrs4H.js';
22
22
  export { K as KindSchemaOverlay, a as KindSchemaOverlayResult, N as NodeKindPresentation, b as applyKindSchemaOverlay, f as categoryAccent, c as clearKindSchemaOverlays, h as clearNodeKindOverrides, d as defaultConfigFor, i as ensureBuiltinKinds, g as getNodeKind, l as listNodeKinds, o as onNodeKindsChanged, j as overrideNodeKind, r as registerNodeKind, u as unregisterNodeKind, v as validateConfig } from './registry-JUcN_xWK.js';
23
23
  export { L as LEGACY_PAUSE_PREFIXES, a as PAUSE_PREFIX, P as PauseAwaiting, b as PauseSignal, d as decodePause, e as encodePause, i as isPause, p as pauseForHuman } from './pause-9iT4tCEV.js';
package/dist/index.js CHANGED
@@ -1,19 +1,19 @@
1
- import { removeNodes, removeEdges, cloneSubgraph, alignNodes, distributeNodes, reconnectEdge, assignToLane, removeFromLane, duplicateNode, setEdgeLabel, FlowCanvas } from './chunk-R3GQ72WA.js';
2
- export { ActionNode, DecisionNode, FlowCanvas, FlowViewer, NodeShell, OutputNode, SubgraphNode, TriggerNode, alignNodes, cloneSubgraph, defaultNodeTypes, distributeNodes, reconnectEdge } from './chunk-R3GQ72WA.js';
3
- import { useFlowState, useFlowRun, useFlowHistory, applyOutputsToNodes, applyStatusesToNodes } from './chunk-ZEDBF2V6.js';
4
- export { applyOutputsToNodes, applyStatusesToNodes, createHistory, useFlowHistory, useFlowRun, useFlowState } from './chunk-ZEDBF2V6.js';
5
- export { runCohort } from './chunk-E3U3MBKI.js';
6
- import { buildNodeTypes, FlowEditorProvider, registerBuiltinKinds } from './chunk-57QTX3S3.js';
7
- export { ANY_PORT_TYPE, BUILTIN_KINDS, LaneNode, NoteNode, RegistryNode, buildNodeTypes, createConnectionValidator, defaultPortCompatibility, registerBuiltinKinds, useFlowEditor, useFlowEditorOptional } from './chunk-57QTX3S3.js';
1
+ import { removeNodes, removeEdges, cloneSubgraph, alignNodes, distributeNodes, reconnectEdge, assignToLane, removeFromLane, duplicateNode, setEdgeLabel, FlowCanvas } from './chunk-LYYQO7EY.js';
2
+ export { ActionNode, DecisionNode, FlowCanvas, FlowViewer, NodeShell, OutputNode, SubgraphNode, TriggerNode, alignNodes, cloneSubgraph, defaultNodeTypes, distributeNodes, reconnectEdge } from './chunk-LYYQO7EY.js';
3
+ import { useFlowState, useFlowRun, useFlowHistory, applyOutputsToNodes, applyStatusesToNodes } from './chunk-GQ5LEA7Q.js';
4
+ export { applyOutputsToNodes, applyStatusesToNodes, createHistory, useFlowHistory, useFlowRun, useFlowState } from './chunk-GQ5LEA7Q.js';
5
+ export { runCohort } from './chunk-K7KO3UJ3.js';
6
+ import { buildNodeTypes, FlowEditorProvider, registerBuiltinKinds } from './chunk-3RXQGYGH.js';
7
+ export { ANY_PORT_TYPE, BUILTIN_KINDS, LaneNode, NoteNode, RegistryNode, buildNodeTypes, createConnectionValidator, defaultPortCompatibility, registerBuiltinKinds, useFlowEditor, useFlowEditorOptional } from './chunk-3RXQGYGH.js';
8
8
  import { getRichInputAdapter } from './chunk-F5RPRB7A.js';
9
9
  export { RichInputPreview, getRichInputAdapter, isRichInputEnabled, onRichInputAdapterChanged, registerRichInputAdapter } from './chunk-F5RPRB7A.js';
10
10
  import { ReactFlowProvider, useReactFlow, addEdge, applyEdgeChanges, applyNodeChanges, Position, Handle } from './chunk-OWENS2H5.js';
11
11
  export { LEGACY_PAUSE_PREFIXES, PAUSE_PREFIX, decodePause, encodePause, isPause, pauseForHuman } from './chunk-UEOE6B52.js';
12
- import { workflowToBlob, importWorkflow, exportWorkflow } from './chunk-RQP666FB.js';
13
- export { WORKFLOW_SCHEMA_URL, WORKFLOW_SCHEMA_VERSION, exportWorkflow, importWorkflow, migrateSchema, workflowToBlob } from './chunk-RQP666FB.js';
14
- import './chunk-6TC44VCY.js';
15
- import { humanInputFields, onNodeKindsChanged, listNodeKinds, getNodeKind, defaultConfigFor, ensureBuiltinKinds, validateConfig, categoryAccent, availableVariables, baseVariables, describeExpressionGrammar } from './chunk-C5K2DSZB.js';
16
- export { UnresolvedPathError, applyKindSchemaOverlay, availableVariables, baseVariables, categoryAccent, clearKindSchemaOverlays, clearNodeKindOverrides, defaultConfigFor, describeExpressionGrammar, ensureBuiltinKinds, evaluateConfig, evaluateExpression, getNodeKind, listNodeKinds, onNodeKindsChanged, outputFieldsFor, overrideNodeKind, registerNodeKind, resolveNodePorts, resolvePath, resolvePortSpec, runFlow, text, truthy, tryResolvePath, unregisterNodeKind, validateConfig } from './chunk-C5K2DSZB.js';
12
+ import { workflowToBlob, importWorkflow, exportWorkflow } from './chunk-7DJ56PUA.js';
13
+ export { WORKFLOW_SCHEMA_URL, WORKFLOW_SCHEMA_VERSION, exportWorkflow, importWorkflow, migrateSchema, workflowToBlob } from './chunk-7DJ56PUA.js';
14
+ import './chunk-VAF2SWTC.js';
15
+ import { humanInputFields, onNodeKindsChanged, listNodeKinds, getNodeKind, defaultConfigFor, ensureBuiltinKinds, validateConfig, categoryAccent, availableVariables, baseVariables, describeExpressionGrammar } from './chunk-EX34GCKK.js';
16
+ export { UnresolvedPathError, applyKindSchemaOverlay, availableVariables, baseVariables, categoryAccent, clearKindSchemaOverlays, clearNodeKindOverrides, defaultConfigFor, describeExpressionGrammar, ensureBuiltinKinds, evaluateConfig, evaluateExpression, getNodeKind, listNodeKinds, onNodeKindsChanged, outputFieldsFor, overrideNodeKind, registerNodeKind, resolveNodePorts, resolvePath, resolvePortSpec, runFlow, text, truthy, tryResolvePath, unregisterNodeKind, validateConfig } from './chunk-EX34GCKK.js';
17
17
  import './chunk-2QXKDLGT.js';
18
18
  import { forwardRef, useState, useMemo, useEffect, useCallback, useRef, useImperativeHandle, useId, memo } from 'react';
19
19
  import { jsx, jsxs, Fragment } from 'react/jsx-runtime';
package/dist/registry.cjs CHANGED
@@ -673,7 +673,7 @@ function resolveWorkflowProps(declared, passed) {
673
673
  // src/runtime/run-flow.ts
674
674
  async function runFlow(graph, executors, onEvent = () => {
675
675
  }, options = {}) {
676
- const { signal, initialInputs = {}, timeoutMs, depth = 0, resumeOutputs = {}, entryNodes } = options;
676
+ const { signal, initialInputs = {}, timeoutMs, depth = 0, resumeOutputs = {}, entryNodes, nodeExecutors } = options;
677
677
  const run = options.run === void 0 ? void 0 : RunIdentity.from(options.run);
678
678
  const outputs = {};
679
679
  const portValues = /* @__PURE__ */ new Map();
@@ -761,7 +761,7 @@ async function runFlow(graph, executors, onEvent = () => {
761
761
  onEvent({ type: "node-status", nodeId: node.id, status: "running" });
762
762
  announce(onEvent, node, "start");
763
763
  const inputs = collectInputs(node, incoming, portValues, initialInputs, props, declaresProps);
764
- const exec = pickExecutor(executors, node);
764
+ const exec = pickExecutor(executors, node, nodeExecutors);
765
765
  if (!exec) {
766
766
  const tried = executorLookupIds(node);
767
767
  const msg = `No executor registered for kind=${node.type} \u2014 tried ${tried.map((id2) => `"${id2}"`).join(", ")}. Key your registry by one of those.`;
@@ -881,7 +881,9 @@ function executorLookupIds(node) {
881
881
  ids.push("*");
882
882
  return [...new Set(ids)];
883
883
  }
884
- function pickExecutor(executors, node) {
884
+ function pickExecutor(executors, node, nodeExecutors) {
885
+ const pinned = nodeExecutors && Object.prototype.hasOwnProperty.call(nodeExecutors, node.id) ? nodeExecutors[node.id] : void 0;
886
+ if (pinned) return pinned;
885
887
  for (const id2 of executorLookupIds(node)) {
886
888
  if (executors[id2]) return executors[id2];
887
889
  }