@particle-academy/fancy-flow 0.10.1 → 0.11.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 (41) hide show
  1. package/dist/{chunk-HNBO4HP3.js → chunk-2NQT2A3I.js} +9 -3
  2. package/dist/chunk-2NQT2A3I.js.map +1 -0
  3. package/dist/{chunk-VEI743ZX.js → chunk-3GMBLHTM.js} +3 -3
  4. package/dist/{chunk-VEI743ZX.js.map → chunk-3GMBLHTM.js.map} +1 -1
  5. package/dist/{chunk-2DMBJN2O.js → chunk-D6W5FMCT.js} +6 -5
  6. package/dist/chunk-D6W5FMCT.js.map +1 -0
  7. package/dist/{chunk-CPSOC27D.js → chunk-U5F22BHV.js} +18 -4
  8. package/dist/chunk-U5F22BHV.js.map +1 -0
  9. package/dist/{chunk-NCPQDVUE.js → chunk-YNOI7ONN.js} +54 -28
  10. package/dist/chunk-YNOI7ONN.js.map +1 -0
  11. package/dist/engine.cjs +17 -1
  12. package/dist/engine.cjs.map +1 -1
  13. package/dist/engine.js +2 -2
  14. package/dist/index.cjs +75 -28
  15. package/dist/index.cjs.map +1 -1
  16. package/dist/index.d.cts +2 -2
  17. package/dist/index.d.ts +2 -2
  18. package/dist/index.js +9 -9
  19. package/dist/registry/index.d.cts +20 -4
  20. package/dist/registry/index.d.ts +20 -4
  21. package/dist/registry.cjs +68 -26
  22. package/dist/registry.cjs.map +1 -1
  23. package/dist/registry.js +2 -2
  24. package/dist/runtime.cjs +17 -1
  25. package/dist/runtime.cjs.map +1 -1
  26. package/dist/runtime.js +3 -3
  27. package/dist/schema.cjs +11 -3
  28. package/dist/schema.cjs.map +1 -1
  29. package/dist/schema.js +2 -2
  30. package/dist/{types-DKqaUjF_.d.cts → types-BwLr5tZV.d.cts} +15 -1
  31. package/dist/{types-BocBFh6l.d.ts → types-CsEe3EQl.d.ts} +15 -1
  32. package/dist/ux.cjs +5 -0
  33. package/dist/ux.cjs.map +1 -1
  34. package/dist/ux.d.cts +1 -1
  35. package/dist/ux.d.ts +1 -1
  36. package/dist/ux.js +1 -1
  37. package/package.json +1 -1
  38. package/dist/chunk-2DMBJN2O.js.map +0 -1
  39. package/dist/chunk-CPSOC27D.js.map +0 -1
  40. package/dist/chunk-HNBO4HP3.js.map +0 -1
  41. package/dist/chunk-NCPQDVUE.js.map +0 -1
package/dist/index.d.cts CHANGED
@@ -5,8 +5,8 @@ import { F as FlowNode, a as FlowGraph, b as NodeRunStatus, E as ExecutorRegistr
5
5
  export { A as ActionNodeData, B as BaseNodeData, D as DecisionNodeData, c as FlowEdge, d as FlowNodeData, e as FlowNodeKind, N as NodeExecutor, f as NoteNodeData, O as OutputNodeData, P as PortDescriptor, R as RunEvent, S as SubgraphNodeData, T as TriggerNodeData } from './types-BS3Gwnkq.cjs';
6
6
  import { WorkflowSchema, WorkflowMetadata } from './schema/index.cjs';
7
7
  export { ImportIssue, ImportOptions, ImportResult, WORKFLOW_SCHEMA_URL, WORKFLOW_SCHEMA_VERSION, WorkflowSchemaEdge, WorkflowSchemaNode, exportWorkflow, importWorkflow, workflowToBlob } from './schema/index.cjs';
8
- import { N as NodeCategory, a as NodeKindDefinition, C as ConfigField } from './types-DKqaUjF_.cjs';
9
- export { D as DocumentConfigField, K as KeyValueConfigField, P as PortSpec, R as RenderBodyContext, d as RepeaterConfigField, e as RepeaterRowField } from './types-DKqaUjF_.cjs';
8
+ import { N as NodeCategory, a as NodeKindDefinition, C as ConfigField } from './types-BwLr5tZV.cjs';
9
+ export { D as DocumentConfigField, K as KeyValueConfigField, P as PortSpec, R as RenderBodyContext, d as RepeaterConfigField, e as RepeaterRowField } from './types-BwLr5tZV.cjs';
10
10
  import { FlowRunFeedEntry } from './runtime/index.cjs';
11
11
  export { UseFlowRunOptions, UseFlowRunReturn, UseFlowStateReturn, applyStatusesToNodes, useFlowRun, useFlowState } from './runtime/index.cjs';
12
12
  export { BUILTIN_KINDS, RegistryNode, RichInputAdapter, RichInputPreview, buildNodeTypes, categoryAccent, defaultConfigFor, getNodeKind, getRichInputAdapter, isRichInputEnabled, listNodeKinds, onNodeKindsChanged, onRichInputAdapterChanged, registerBuiltinKinds, registerNodeKind, registerRichInputAdapter, resolveNodePorts, resolvePortSpec, validateConfig } from './registry/index.cjs';
package/dist/index.d.ts CHANGED
@@ -5,8 +5,8 @@ import { F as FlowNode, a as FlowGraph, b as NodeRunStatus, E as ExecutorRegistr
5
5
  export { A as ActionNodeData, B as BaseNodeData, D as DecisionNodeData, c as FlowEdge, d as FlowNodeData, e as FlowNodeKind, N as NodeExecutor, f as NoteNodeData, O as OutputNodeData, P as PortDescriptor, R as RunEvent, S as SubgraphNodeData, T as TriggerNodeData } from './types-BS3Gwnkq.js';
6
6
  import { WorkflowSchema, WorkflowMetadata } from './schema/index.js';
7
7
  export { ImportIssue, ImportOptions, ImportResult, WORKFLOW_SCHEMA_URL, WORKFLOW_SCHEMA_VERSION, WorkflowSchemaEdge, WorkflowSchemaNode, exportWorkflow, importWorkflow, workflowToBlob } from './schema/index.js';
8
- import { N as NodeCategory, a as NodeKindDefinition, C as ConfigField } from './types-BocBFh6l.js';
9
- export { D as DocumentConfigField, K as KeyValueConfigField, P as PortSpec, R as RenderBodyContext, d as RepeaterConfigField, e as RepeaterRowField } from './types-BocBFh6l.js';
8
+ import { N as NodeCategory, a as NodeKindDefinition, C as ConfigField } from './types-CsEe3EQl.js';
9
+ export { D as DocumentConfigField, K as KeyValueConfigField, P as PortSpec, R as RenderBodyContext, d as RepeaterConfigField, e as RepeaterRowField } from './types-CsEe3EQl.js';
10
10
  import { FlowRunFeedEntry } from './runtime/index.js';
11
11
  export { UseFlowRunOptions, UseFlowRunReturn, UseFlowStateReturn, applyStatusesToNodes, useFlowRun, useFlowState } from './runtime/index.js';
12
12
  export { BUILTIN_KINDS, RegistryNode, RichInputAdapter, RichInputPreview, buildNodeTypes, categoryAccent, defaultConfigFor, getNodeKind, getRichInputAdapter, isRichInputEnabled, listNodeKinds, onNodeKindsChanged, onRichInputAdapterChanged, registerBuiltinKinds, registerNodeKind, registerRichInputAdapter, resolveNodePorts, resolvePortSpec, validateConfig } from './registry/index.js';
package/dist/index.js CHANGED
@@ -1,14 +1,14 @@
1
- import { useFlowState, useFlowRun, applyStatusesToNodes } from './chunk-VEI743ZX.js';
2
- export { applyStatusesToNodes, useFlowRun, useFlowState } from './chunk-VEI743ZX.js';
3
- export { runFlow } from './chunk-HNBO4HP3.js';
4
- import { buildNodeTypes, registerBuiltinKinds } from './chunk-NCPQDVUE.js';
5
- export { BUILTIN_KINDS, RegistryNode, buildNodeTypes, registerBuiltinKinds } from './chunk-NCPQDVUE.js';
1
+ import { useFlowState, useFlowRun, applyStatusesToNodes } from './chunk-3GMBLHTM.js';
2
+ export { applyStatusesToNodes, useFlowRun, useFlowState } from './chunk-3GMBLHTM.js';
3
+ export { runFlow } from './chunk-2NQT2A3I.js';
4
+ import { buildNodeTypes, registerBuiltinKinds } from './chunk-YNOI7ONN.js';
5
+ export { BUILTIN_KINDS, RegistryNode, buildNodeTypes, registerBuiltinKinds } from './chunk-YNOI7ONN.js';
6
6
  import { ReactFlowProvider, useReactFlow, addEdge, applyEdgeChanges, applyNodeChanges, Position, Handle, index, BackgroundVariant, Background, Controls, MiniMap } from './chunk-NF6NPY5N.js';
7
- import { workflowToBlob, importWorkflow, exportWorkflow } from './chunk-2DMBJN2O.js';
8
- export { WORKFLOW_SCHEMA_URL, WORKFLOW_SCHEMA_VERSION, exportWorkflow, importWorkflow, workflowToBlob } from './chunk-2DMBJN2O.js';
7
+ import { workflowToBlob, importWorkflow, exportWorkflow } from './chunk-D6W5FMCT.js';
8
+ export { WORKFLOW_SCHEMA_URL, WORKFLOW_SCHEMA_VERSION, exportWorkflow, importWorkflow, workflowToBlob } from './chunk-D6W5FMCT.js';
9
9
  export { resolveNodePorts, resolvePortSpec } from './chunk-TITD5W4Y.js';
10
- import { onNodeKindsChanged, listNodeKinds, getNodeKind, defaultConfigFor, validateConfig, categoryAccent } from './chunk-CPSOC27D.js';
11
- export { categoryAccent, defaultConfigFor, getNodeKind, listNodeKinds, onNodeKindsChanged, registerNodeKind, validateConfig } from './chunk-CPSOC27D.js';
10
+ import { onNodeKindsChanged, listNodeKinds, getNodeKind, defaultConfigFor, validateConfig, categoryAccent } from './chunk-U5F22BHV.js';
11
+ export { categoryAccent, defaultConfigFor, getNodeKind, listNodeKinds, onNodeKindsChanged, registerNodeKind, validateConfig } from './chunk-U5F22BHV.js';
12
12
  import { getRichInputAdapter } from './chunk-F5RPRB7A.js';
13
13
  export { RichInputPreview, getRichInputAdapter, isRichInputEnabled, onRichInputAdapterChanged, registerRichInputAdapter } from './chunk-F5RPRB7A.js';
14
14
  import { memo, createContext, forwardRef, useState, useEffect, useMemo, useCallback, useImperativeHandle, useRef, useContext } from 'react';
@@ -1,5 +1,5 @@
1
- import { a as NodeKindDefinition, P as PortSpec } from '../types-DKqaUjF_.cjs';
2
- export { C as ConfigField, b as CredentialConfigField, D as DocumentConfigField, E as ExpressionConfigField, J as JsonConfigField, K as KeyValueConfigField, N as NodeCategory, c as NumberConfigField, R as RenderBodyContext, d as RepeaterConfigField, e as RepeaterRowField, S as SelectConfigField, f as SwitchConfigField, T as TextConfigField, g as TextareaConfigField } from '../types-DKqaUjF_.cjs';
1
+ import { a as NodeKindDefinition, P as PortSpec } from '../types-BwLr5tZV.cjs';
2
+ export { C as ConfigField, b as CredentialConfigField, D as DocumentConfigField, E as ExpressionConfigField, J as JsonConfigField, K as KeyValueConfigField, N as NodeCategory, c as NumberConfigField, R as RenderBodyContext, d as RepeaterConfigField, e as RepeaterRowField, S as SelectConfigField, f as SwitchConfigField, T as TextConfigField, g as TextareaConfigField } from '../types-BwLr5tZV.cjs';
3
3
  import { F as FlowNode, P as PortDescriptor } from '../types-BS3Gwnkq.cjs';
4
4
  import * as react from 'react';
5
5
  import { ComponentType, ReactNode } from 'react';
@@ -116,10 +116,26 @@ declare function RichInputPreview({ config }: {
116
116
  * registerNodeKind — install a node kind in the global registry. Returns
117
117
  * an `unregister` function. Calling with the same name replaces the prior
118
118
  * registration (handy for HMR).
119
+ *
120
+ * A kind's `name` is its CANONICAL id and is what gets written into saved
121
+ * documents. Publish namespaced (`@fancy/llm_branch`, `@acme/salesforce_upsert`)
122
+ * and list any previous bare names in `aliases`, so graphs saved before the
123
+ * rename keep resolving.
119
124
  */
120
125
  declare function registerNodeKind<TC = any, TI = any, TO = any>(definition: NodeKindDefinition<TC, TI, TO>): () => void;
121
- /** Get a single kind by name, or null. */
126
+ /**
127
+ * Resolve any id — canonical or alias — to the canonical one, or null.
128
+ *
129
+ * `kind` is persisted inside every saved graph, so a bare name that two
130
+ * packages could both claim is unfixable after the fact: the ambiguous string
131
+ * is already in the document. Canonical ids are namespaced; aliases exist so
132
+ * documents written before namespacing keep opening.
133
+ */
134
+ declare function resolveKindId(id: string): string | null;
135
+ /** Get a single kind by canonical id or alias, or null. */
122
136
  declare function getNodeKind(name: string): NodeKindDefinition | null;
137
+ /** Every id a kind answers to — canonical first. Used to key node-type maps. */
138
+ declare function kindIds(kind: NodeKindDefinition): string[];
123
139
  /** List every registered kind, optionally filtered by category. */
124
140
  declare function listNodeKinds(category?: string): NodeKindDefinition[];
125
141
  /** Subscribe to registry changes. Returns an unsubscribe function. */
@@ -158,4 +174,4 @@ declare const BUILTIN_KINDS: NodeKindDefinition[];
158
174
  */
159
175
  declare function buildNodeTypes(): NodeTypes;
160
176
 
161
- export { BUILTIN_KINDS, NodeKindDefinition, PortSpec, RegistryNode, type RichInputAdapter, RichInputPreview, buildNodeTypes, categoryAccent, defaultConfigFor, getNodeKind, getRichInputAdapter, isRichInputEnabled, listNodeKinds, nodeConfig, onNodeKindsChanged, onRichInputAdapterChanged, registerBuiltinKinds, registerNodeKind, registerRichInputAdapter, resolveNodePorts, resolvePortSpec, validateConfig };
177
+ export { BUILTIN_KINDS, NodeKindDefinition, PortSpec, RegistryNode, type RichInputAdapter, RichInputPreview, buildNodeTypes, categoryAccent, defaultConfigFor, getNodeKind, getRichInputAdapter, isRichInputEnabled, kindIds, listNodeKinds, nodeConfig, onNodeKindsChanged, onRichInputAdapterChanged, registerBuiltinKinds, registerNodeKind, registerRichInputAdapter, resolveKindId, resolveNodePorts, resolvePortSpec, validateConfig };
@@ -1,5 +1,5 @@
1
- import { a as NodeKindDefinition, P as PortSpec } from '../types-BocBFh6l.js';
2
- export { C as ConfigField, b as CredentialConfigField, D as DocumentConfigField, E as ExpressionConfigField, J as JsonConfigField, K as KeyValueConfigField, N as NodeCategory, c as NumberConfigField, R as RenderBodyContext, d as RepeaterConfigField, e as RepeaterRowField, S as SelectConfigField, f as SwitchConfigField, T as TextConfigField, g as TextareaConfigField } from '../types-BocBFh6l.js';
1
+ import { a as NodeKindDefinition, P as PortSpec } from '../types-CsEe3EQl.js';
2
+ export { C as ConfigField, b as CredentialConfigField, D as DocumentConfigField, E as ExpressionConfigField, J as JsonConfigField, K as KeyValueConfigField, N as NodeCategory, c as NumberConfigField, R as RenderBodyContext, d as RepeaterConfigField, e as RepeaterRowField, S as SelectConfigField, f as SwitchConfigField, T as TextConfigField, g as TextareaConfigField } from '../types-CsEe3EQl.js';
3
3
  import { F as FlowNode, P as PortDescriptor } from '../types-BS3Gwnkq.js';
4
4
  import * as react from 'react';
5
5
  import { ComponentType, ReactNode } from 'react';
@@ -116,10 +116,26 @@ declare function RichInputPreview({ config }: {
116
116
  * registerNodeKind — install a node kind in the global registry. Returns
117
117
  * an `unregister` function. Calling with the same name replaces the prior
118
118
  * registration (handy for HMR).
119
+ *
120
+ * A kind's `name` is its CANONICAL id and is what gets written into saved
121
+ * documents. Publish namespaced (`@fancy/llm_branch`, `@acme/salesforce_upsert`)
122
+ * and list any previous bare names in `aliases`, so graphs saved before the
123
+ * rename keep resolving.
119
124
  */
120
125
  declare function registerNodeKind<TC = any, TI = any, TO = any>(definition: NodeKindDefinition<TC, TI, TO>): () => void;
121
- /** Get a single kind by name, or null. */
126
+ /**
127
+ * Resolve any id — canonical or alias — to the canonical one, or null.
128
+ *
129
+ * `kind` is persisted inside every saved graph, so a bare name that two
130
+ * packages could both claim is unfixable after the fact: the ambiguous string
131
+ * is already in the document. Canonical ids are namespaced; aliases exist so
132
+ * documents written before namespacing keep opening.
133
+ */
134
+ declare function resolveKindId(id: string): string | null;
135
+ /** Get a single kind by canonical id or alias, or null. */
122
136
  declare function getNodeKind(name: string): NodeKindDefinition | null;
137
+ /** Every id a kind answers to — canonical first. Used to key node-type maps. */
138
+ declare function kindIds(kind: NodeKindDefinition): string[];
123
139
  /** List every registered kind, optionally filtered by category. */
124
140
  declare function listNodeKinds(category?: string): NodeKindDefinition[];
125
141
  /** Subscribe to registry changes. Returns an unsubscribe function. */
@@ -158,4 +174,4 @@ declare const BUILTIN_KINDS: NodeKindDefinition[];
158
174
  */
159
175
  declare function buildNodeTypes(): NodeTypes;
160
176
 
161
- export { BUILTIN_KINDS, NodeKindDefinition, PortSpec, RegistryNode, type RichInputAdapter, RichInputPreview, buildNodeTypes, categoryAccent, defaultConfigFor, getNodeKind, getRichInputAdapter, isRichInputEnabled, listNodeKinds, nodeConfig, onNodeKindsChanged, onRichInputAdapterChanged, registerBuiltinKinds, registerNodeKind, registerRichInputAdapter, resolveNodePorts, resolvePortSpec, validateConfig };
177
+ export { BUILTIN_KINDS, NodeKindDefinition, PortSpec, RegistryNode, type RichInputAdapter, RichInputPreview, buildNodeTypes, categoryAccent, defaultConfigFor, getNodeKind, getRichInputAdapter, isRichInputEnabled, kindIds, listNodeKinds, nodeConfig, onNodeKindsChanged, onRichInputAdapterChanged, registerBuiltinKinds, registerNodeKind, registerRichInputAdapter, resolveKindId, resolveNodePorts, resolvePortSpec, validateConfig };
package/dist/registry.cjs CHANGED
@@ -82,19 +82,33 @@ function RichInputPreview({ config }) {
82
82
 
83
83
  // src/registry/registry.ts
84
84
  var kinds = /* @__PURE__ */ new Map();
85
+ var aliases = /* @__PURE__ */ new Map();
85
86
  var listeners2 = /* @__PURE__ */ new Set();
86
87
  function registerNodeKind(definition) {
87
88
  kinds.set(definition.name, definition);
89
+ for (const alias of definition.aliases ?? []) aliases.set(alias, definition.name);
88
90
  notify();
89
91
  return () => {
90
92
  if (kinds.get(definition.name) === definition) {
91
93
  kinds.delete(definition.name);
94
+ for (const alias of definition.aliases ?? []) {
95
+ if (aliases.get(alias) === definition.name) aliases.delete(alias);
96
+ }
92
97
  notify();
93
98
  }
94
99
  };
95
100
  }
101
+ function resolveKindId(id2) {
102
+ if (kinds.has(id2)) return id2;
103
+ const canonical = aliases.get(id2);
104
+ return canonical && kinds.has(canonical) ? canonical : null;
105
+ }
96
106
  function getNodeKind(name) {
97
- return kinds.get(name) ?? null;
107
+ const canonical = resolveKindId(name);
108
+ return canonical ? kinds.get(canonical) ?? null : null;
109
+ }
110
+ function kindIds(kind) {
111
+ return [kind.name, ...kind.aliases ?? []];
98
112
  }
99
113
  function listNodeKinds(category) {
100
114
  const all = Array.from(kinds.values());
@@ -9276,7 +9290,8 @@ var HTTP_METHODS = [
9276
9290
  var KINDS = [
9277
9291
  // ───────────── Triggers ─────────────
9278
9292
  {
9279
- name: "manual_trigger",
9293
+ name: "@fancy/manual_trigger",
9294
+ aliases: ["manual_trigger"],
9280
9295
  category: "trigger",
9281
9296
  label: "Manual",
9282
9297
  description: "Entry point fired when the user clicks Run.",
@@ -9285,7 +9300,8 @@ var KINDS = [
9285
9300
  outputs: [{ id: "out" }]
9286
9301
  },
9287
9302
  {
9288
- name: "webhook_trigger",
9303
+ name: "@fancy/webhook_trigger",
9304
+ aliases: ["webhook_trigger"],
9289
9305
  category: "trigger",
9290
9306
  label: "Webhook",
9291
9307
  description: "Triggered by an inbound HTTP request to a host-provided URL.",
@@ -9302,7 +9318,8 @@ var KINDS = [
9302
9318
  ]
9303
9319
  },
9304
9320
  {
9305
- name: "schedule_trigger",
9321
+ name: "@fancy/schedule_trigger",
9322
+ aliases: ["schedule_trigger"],
9306
9323
  category: "trigger",
9307
9324
  label: "Schedule",
9308
9325
  description: "Fires on a cron schedule (host-implemented).",
@@ -9322,7 +9339,8 @@ var KINDS = [
9322
9339
  ]
9323
9340
  },
9324
9341
  {
9325
- name: "user_input",
9342
+ name: "@fancy/user_input",
9343
+ aliases: ["user_input"],
9326
9344
  category: "human",
9327
9345
  label: "User Input",
9328
9346
  description: "Pause the flow until the user submits the configured form.",
@@ -9362,7 +9380,8 @@ var KINDS = [
9362
9380
  ]
9363
9381
  },
9364
9382
  {
9365
- name: "rich_user_input",
9383
+ name: "@fancy/rich_user_input",
9384
+ aliases: ["rich_user_input"],
9366
9385
  category: "human",
9367
9386
  label: "Rich User Input",
9368
9387
  description: "Pause the flow on a fully authored page \u2014 content, required reading, multi-section forms.",
@@ -9387,7 +9406,8 @@ var KINDS = [
9387
9406
  },
9388
9407
  // ───────────── Logic ─────────────
9389
9408
  {
9390
- name: "branch",
9409
+ name: "@fancy/branch",
9410
+ aliases: ["branch"],
9391
9411
  category: "logic",
9392
9412
  label: "Branch",
9393
9413
  description: "Multi-way branch on a condition or value.",
@@ -9399,7 +9419,8 @@ var KINDS = [
9399
9419
  ]
9400
9420
  },
9401
9421
  {
9402
- name: "switch_case",
9422
+ name: "@fancy/switch_case",
9423
+ aliases: ["switch_case"],
9403
9424
  category: "logic",
9404
9425
  label: "Switch",
9405
9426
  description: "Route to one of N labelled outputs based on a key.",
@@ -9426,7 +9447,8 @@ var KINDS = [
9426
9447
  ]
9427
9448
  },
9428
9449
  {
9429
- name: "for_each",
9450
+ name: "@fancy/for_each",
9451
+ aliases: ["for_each"],
9430
9452
  category: "logic",
9431
9453
  label: "For Each",
9432
9454
  description: "Iterate over a list, emitting each item on `item`.",
@@ -9439,7 +9461,8 @@ var KINDS = [
9439
9461
  ]
9440
9462
  },
9441
9463
  {
9442
- name: "merge",
9464
+ name: "@fancy/merge",
9465
+ aliases: ["merge"],
9443
9466
  category: "logic",
9444
9467
  label: "Merge",
9445
9468
  description: "Combine multiple inputs into one object or array.",
@@ -9457,7 +9480,8 @@ var KINDS = [
9457
9480
  ]
9458
9481
  },
9459
9482
  {
9460
- name: "wait",
9483
+ name: "@fancy/wait",
9484
+ aliases: ["wait"],
9461
9485
  category: "logic",
9462
9486
  label: "Wait",
9463
9487
  description: "Sleep or wait for an external event.",
@@ -9474,7 +9498,8 @@ var KINDS = [
9474
9498
  ]
9475
9499
  },
9476
9500
  {
9477
- name: "transform",
9501
+ name: "@fancy/transform",
9502
+ aliases: ["transform"],
9478
9503
  category: "logic",
9479
9504
  label: "Transform",
9480
9505
  description: "Reshape data with an expression.",
@@ -9491,7 +9516,8 @@ var KINDS = [
9491
9516
  },
9492
9517
  // ───────────── Data ─────────────
9493
9518
  {
9494
- name: "memory_store",
9519
+ name: "@fancy/memory_store",
9520
+ aliases: ["memory_store"],
9495
9521
  category: "data",
9496
9522
  label: "Memory Store",
9497
9523
  description: "Read or write per-conversation memory.",
@@ -9511,7 +9537,8 @@ var KINDS = [
9511
9537
  ]
9512
9538
  },
9513
9539
  {
9514
- name: "data_store",
9540
+ name: "@fancy/data_store",
9541
+ aliases: ["data_store"],
9515
9542
  category: "data",
9516
9543
  label: "Data Store",
9517
9544
  description: "Key-value or table read/write against a host store.",
@@ -9539,7 +9566,8 @@ var KINDS = [
9539
9566
  ]
9540
9567
  },
9541
9568
  {
9542
- name: "variable",
9569
+ name: "@fancy/variable",
9570
+ aliases: ["variable"],
9543
9571
  category: "data",
9544
9572
  label: "Variable",
9545
9573
  description: "Workflow-scoped value used by other nodes.",
@@ -9551,7 +9579,8 @@ var KINDS = [
9551
9579
  },
9552
9580
  // ───────────── AI ─────────────
9553
9581
  {
9554
- name: "llm_call",
9582
+ name: "@fancy/llm_call",
9583
+ aliases: ["llm_call"],
9555
9584
  category: "ai",
9556
9585
  label: "LLM Call",
9557
9586
  description: "Send a prompt + context to a model and receive a response.",
@@ -9578,7 +9607,8 @@ var KINDS = [
9578
9607
  ]
9579
9608
  },
9580
9609
  {
9581
- name: "llm_branch",
9610
+ name: "@fancy/llm_branch",
9611
+ aliases: ["llm_branch"],
9582
9612
  category: "ai",
9583
9613
  label: "LLM Router",
9584
9614
  description: "Let a model choose which route the flow takes.",
@@ -9648,7 +9678,8 @@ var KINDS = [
9648
9678
  ]
9649
9679
  },
9650
9680
  {
9651
- name: "tool_use",
9681
+ name: "@fancy/tool_use",
9682
+ aliases: ["tool_use"],
9652
9683
  category: "ai",
9653
9684
  label: "Tool Use",
9654
9685
  description: "Hand control to a host-registered tool by name.",
@@ -9659,7 +9690,8 @@ var KINDS = [
9659
9690
  ]
9660
9691
  },
9661
9692
  {
9662
- name: "embed_search",
9693
+ name: "@fancy/embed_search",
9694
+ aliases: ["embed_search"],
9663
9695
  category: "ai",
9664
9696
  label: "Embed & Search",
9665
9697
  description: "Embed a query and search a vector store.",
@@ -9672,7 +9704,8 @@ var KINDS = [
9672
9704
  },
9673
9705
  // ───────────── IO ─────────────
9674
9706
  {
9675
- name: "api_request",
9707
+ name: "@fancy/api_request",
9708
+ aliases: ["api_request"],
9676
9709
  category: "io",
9677
9710
  label: "API Request",
9678
9711
  description: "HTTP request to any URL.",
@@ -9686,7 +9719,8 @@ var KINDS = [
9686
9719
  ]
9687
9720
  },
9688
9721
  {
9689
- name: "webhook_out",
9722
+ name: "@fancy/webhook_out",
9723
+ aliases: ["webhook_out"],
9690
9724
  category: "io",
9691
9725
  label: "Send Webhook",
9692
9726
  description: "POST a payload to a configured URL.",
@@ -9699,7 +9733,8 @@ var KINDS = [
9699
9733
  },
9700
9734
  // ───────────── Human ─────────────
9701
9735
  {
9702
- name: "human_approval",
9736
+ name: "@fancy/human_approval",
9737
+ aliases: ["human_approval"],
9703
9738
  category: "human",
9704
9739
  label: "Human Approval",
9705
9740
  description: "Pause until a human approves or denies.",
@@ -9713,7 +9748,8 @@ var KINDS = [
9713
9748
  ]
9714
9749
  },
9715
9750
  {
9716
- name: "notify",
9751
+ name: "@fancy/notify",
9752
+ aliases: ["notify"],
9717
9753
  category: "human",
9718
9754
  label: "Notify",
9719
9755
  description: "Send a message via Slack / email / SMS / etc.",
@@ -9737,7 +9773,8 @@ var KINDS = [
9737
9773
  },
9738
9774
  // ───────────── Output ─────────────
9739
9775
  {
9740
- name: "output",
9776
+ name: "@fancy/output",
9777
+ aliases: ["output"],
9741
9778
  category: "output",
9742
9779
  label: "Output",
9743
9780
  description: "Terminal node \u2014 captures the workflow's result.",
@@ -9746,7 +9783,8 @@ var KINDS = [
9746
9783
  outputs: []
9747
9784
  },
9748
9785
  {
9749
- name: "log",
9786
+ name: "@fancy/log",
9787
+ aliases: ["log"],
9750
9788
  category: "output",
9751
9789
  label: "Log",
9752
9790
  description: "Send to the run feed.",
@@ -9773,7 +9811,9 @@ var BUILTIN_KINDS = KINDS;
9773
9811
  // src/registry/index.ts
9774
9812
  function buildNodeTypes() {
9775
9813
  const map = {};
9776
- for (const k of listNodeKinds()) map[k.name] = RegistryNode;
9814
+ for (const k of listNodeKinds()) {
9815
+ for (const id2 of kindIds(k)) map[id2] = RegistryNode;
9816
+ }
9777
9817
  return map;
9778
9818
  }
9779
9819
 
@@ -9786,6 +9826,7 @@ exports.defaultConfigFor = defaultConfigFor;
9786
9826
  exports.getNodeKind = getNodeKind;
9787
9827
  exports.getRichInputAdapter = getRichInputAdapter;
9788
9828
  exports.isRichInputEnabled = isRichInputEnabled;
9829
+ exports.kindIds = kindIds;
9789
9830
  exports.listNodeKinds = listNodeKinds;
9790
9831
  exports.nodeConfig = nodeConfig;
9791
9832
  exports.onNodeKindsChanged = onNodeKindsChanged;
@@ -9793,6 +9834,7 @@ exports.onRichInputAdapterChanged = onRichInputAdapterChanged;
9793
9834
  exports.registerBuiltinKinds = registerBuiltinKinds;
9794
9835
  exports.registerNodeKind = registerNodeKind;
9795
9836
  exports.registerRichInputAdapter = registerRichInputAdapter;
9837
+ exports.resolveKindId = resolveKindId;
9796
9838
  exports.resolveNodePorts = resolveNodePorts;
9797
9839
  exports.resolvePortSpec = resolvePortSpec;
9798
9840
  exports.validateConfig = validateConfig;