@particle-academy/fancy-flow 0.56.0 → 0.58.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 (57) hide show
  1. package/dist/{HumanPrompt-DlJSFi3F.d.ts → HumanPrompt-Bw09OyS3.d.ts} +1 -1
  2. package/dist/{HumanPrompt-CPl-Spmp.d.cts → HumanPrompt-DV5-xnDa.d.cts} +1 -1
  3. package/dist/{chunk-KP4TBF3A.js → chunk-A3TLZS5B.js} +3 -3
  4. package/dist/{chunk-KP4TBF3A.js.map → chunk-A3TLZS5B.js.map} +1 -1
  5. package/dist/{chunk-GB4A7DFM.js → chunk-FGYG5JVW.js} +3 -3
  6. package/dist/{chunk-GB4A7DFM.js.map → chunk-FGYG5JVW.js.map} +1 -1
  7. package/dist/{chunk-22OJOD4X.js → chunk-HBE4LVPX.js} +54 -2
  8. package/dist/chunk-HBE4LVPX.js.map +1 -0
  9. package/dist/{chunk-L4QAAGLV.js → chunk-LGLOBK6Q.js} +3 -3
  10. package/dist/{chunk-L4QAAGLV.js.map → chunk-LGLOBK6Q.js.map} +1 -1
  11. package/dist/{chunk-E3AGYTHP.js → chunk-M7M6GLFV.js} +3 -3
  12. package/dist/{chunk-E3AGYTHP.js.map → chunk-M7M6GLFV.js.map} +1 -1
  13. package/dist/{chunk-HMEI2LFU.js → chunk-MX4SJDNI.js} +4 -4
  14. package/dist/{chunk-HMEI2LFU.js.map → chunk-MX4SJDNI.js.map} +1 -1
  15. package/dist/connectors.d.cts +1 -1
  16. package/dist/connectors.d.ts +1 -1
  17. package/dist/durable.cjs +52 -0
  18. package/dist/durable.cjs.map +1 -1
  19. package/dist/durable.js +1 -1
  20. package/dist/engine.cjs +52 -0
  21. package/dist/engine.cjs.map +1 -1
  22. package/dist/engine.d.cts +2 -2
  23. package/dist/engine.d.ts +2 -2
  24. package/dist/engine.js +3 -3
  25. package/dist/fields/react-fancy.d.cts +2 -2
  26. package/dist/fields/react-fancy.d.ts +2 -2
  27. package/dist/index.cjs +52 -0
  28. package/dist/index.cjs.map +1 -1
  29. package/dist/index.d.cts +5 -5
  30. package/dist/index.d.ts +5 -5
  31. package/dist/index.js +11 -11
  32. package/dist/index.js.map +1 -1
  33. package/dist/registry/index.d.cts +3 -3
  34. package/dist/registry/index.d.ts +3 -3
  35. package/dist/{registry-C6TMfiD_.d.cts → registry-1qhmRtvC.d.cts} +1 -1
  36. package/dist/{registry-3RkSYrMi.d.ts → registry-D2qocEsY.d.ts} +1 -1
  37. package/dist/registry.cjs +52 -0
  38. package/dist/registry.cjs.map +1 -1
  39. package/dist/registry.js +2 -2
  40. package/dist/runtime.cjs +52 -0
  41. package/dist/runtime.cjs.map +1 -1
  42. package/dist/runtime.js +3 -3
  43. package/dist/schema.cjs +52 -0
  44. package/dist/schema.cjs.map +1 -1
  45. package/dist/schema.js +2 -2
  46. package/dist/screens.cjs +52 -0
  47. package/dist/screens.cjs.map +1 -1
  48. package/dist/screens.js +4 -4
  49. package/dist/{types-3sPauVRT.d.cts → types-BLVpNNLN.d.cts} +40 -1
  50. package/dist/{types-s643U1Hi.d.ts → types-CLSUZW8c.d.ts} +40 -1
  51. package/dist/ux.cjs +52 -0
  52. package/dist/ux.cjs.map +1 -1
  53. package/dist/ux.d.cts +1 -1
  54. package/dist/ux.d.ts +1 -1
  55. package/dist/ux.js +1 -1
  56. package/package.json +1 -1
  57. package/dist/chunk-22OJOD4X.js.map +0 -1
@@ -1,5 +1,5 @@
1
- import { N as NodeKindDefinition, P as PortSpec } from '../types-3sPauVRT.cjs';
2
- export { C as ConfigField, k as CredentialConfigField, D as DocumentConfigField, E as ExpressionConfigField, J as JsonConfigField, K as KeyValueConfigField, a as NodeCategory, l as NumberConfigField, R as RenderBodyContext, m as RepeaterConfigField, n as RepeaterRowField, o as SelectConfigField, p as SwitchConfigField, T as TextConfigField, q as TextareaConfigField } from '../types-3sPauVRT.cjs';
1
+ import { N as NodeKindDefinition, P as PortSpec } from '../types-BLVpNNLN.cjs';
2
+ export { C as ConfigField, k as CredentialConfigField, D as DocumentConfigField, E as EmitsRelation, l as ExpressionConfigField, J as JsonConfigField, K as KeyValueConfigField, a as NodeCategory, m as NumberConfigField, R as RenderBodyContext, n as RepeaterConfigField, o as RepeaterRowField, p as SelectConfigField, q as SwitchConfigField, T as TextConfigField, r as TextareaConfigField } from '../types-BLVpNNLN.cjs';
3
3
  import { P as PortDescriptor, a as FlowNode, N as NodeExecutor } from '../types-JFYjPJAG.cjs';
4
4
  import { Connection, Edge, NodeProps, NodeTypes } from '@xyflow/react';
5
5
  import { b as LlmRoute } from '../capabilities-BYa5p5jw.cjs';
@@ -7,7 +7,7 @@ export { C as CapabilityId, L as LlmClient, c as LlmRouteChoice, a as LlmRouteRe
7
7
  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';
8
8
  import * as react from 'react';
9
9
  import { ComponentType, ReactNode } from 'react';
10
- export { N as NodeKindPresentation, c as categoryAccent, b as clearNodeKindOverrides, d as defaultConfigFor, e as ensureBuiltinKinds, g as getNodeKind, k as kindIds, l as listNodeKinds, o as onNodeKindsChanged, f as overrideNodeKind, r as registerNodeKind, a as resolveKindId, v as validateConfig } from '../registry-C6TMfiD_.cjs';
10
+ export { N as NodeKindPresentation, c as categoryAccent, b as clearNodeKindOverrides, d as defaultConfigFor, e as ensureBuiltinKinds, g as getNodeKind, k as kindIds, l as listNodeKinds, o as onNodeKindsChanged, f as overrideNodeKind, r as registerNodeKind, a as resolveKindId, v as validateConfig } from '../registry-1qhmRtvC.cjs';
11
11
 
12
12
  /**
13
13
  * Connection validation — the single rule that decides whether an edge between
@@ -1,5 +1,5 @@
1
- import { N as NodeKindDefinition, P as PortSpec } from '../types-s643U1Hi.js';
2
- export { C as ConfigField, k as CredentialConfigField, D as DocumentConfigField, E as ExpressionConfigField, J as JsonConfigField, K as KeyValueConfigField, a as NodeCategory, l as NumberConfigField, R as RenderBodyContext, m as RepeaterConfigField, n as RepeaterRowField, o as SelectConfigField, p as SwitchConfigField, T as TextConfigField, q as TextareaConfigField } from '../types-s643U1Hi.js';
1
+ import { N as NodeKindDefinition, P as PortSpec } from '../types-CLSUZW8c.js';
2
+ export { C as ConfigField, k as CredentialConfigField, D as DocumentConfigField, E as EmitsRelation, l as ExpressionConfigField, J as JsonConfigField, K as KeyValueConfigField, a as NodeCategory, m as NumberConfigField, R as RenderBodyContext, n as RepeaterConfigField, o as RepeaterRowField, p as SelectConfigField, q as SwitchConfigField, T as TextConfigField, r as TextareaConfigField } from '../types-CLSUZW8c.js';
3
3
  import { P as PortDescriptor, a as FlowNode, N as NodeExecutor } from '../types-JFYjPJAG.js';
4
4
  import { Connection, Edge, NodeProps, NodeTypes } from '@xyflow/react';
5
5
  import { b as LlmRoute } from '../capabilities-COOXRiNL.js';
@@ -7,7 +7,7 @@ export { C as CapabilityId, L as LlmClient, c as LlmRouteChoice, a as LlmRouteRe
7
7
  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';
8
8
  import * as react from 'react';
9
9
  import { ComponentType, ReactNode } from 'react';
10
- export { N as NodeKindPresentation, c as categoryAccent, b as clearNodeKindOverrides, d as defaultConfigFor, e as ensureBuiltinKinds, g as getNodeKind, k as kindIds, l as listNodeKinds, o as onNodeKindsChanged, f as overrideNodeKind, r as registerNodeKind, a as resolveKindId, v as validateConfig } from '../registry-3RkSYrMi.js';
10
+ export { N as NodeKindPresentation, c as categoryAccent, b as clearNodeKindOverrides, d as defaultConfigFor, e as ensureBuiltinKinds, g as getNodeKind, k as kindIds, l as listNodeKinds, o as onNodeKindsChanged, f as overrideNodeKind, r as registerNodeKind, a as resolveKindId, v as validateConfig } from '../registry-D2qocEsY.js';
11
11
 
12
12
  /**
13
13
  * Connection validation — the single rule that decides whether an edge between
@@ -1,4 +1,4 @@
1
- import { N as NodeKindDefinition } from './types-3sPauVRT.cjs';
1
+ import { N as NodeKindDefinition } from './types-BLVpNNLN.cjs';
2
2
 
3
3
  /**
4
4
  * Put the builtin kit in the registry before anyone reads or writes it.
@@ -1,4 +1,4 @@
1
- import { N as NodeKindDefinition } from './types-s643U1Hi.js';
1
+ import { N as NodeKindDefinition } from './types-CLSUZW8c.js';
2
2
 
3
3
  /**
4
4
  * Put the builtin kit in the registry before anyone reads or writes it.
package/dist/registry.cjs CHANGED
@@ -9835,6 +9835,8 @@ var KINDS = [
9835
9835
  // ───────────── Triggers ─────────────
9836
9836
  {
9837
9837
  name: "@particle-academy/manual_trigger",
9838
+ // returns the inputs it was started with
9839
+ emits: "input",
9838
9840
  aliases: ["manual_trigger", "@fancy/manual_trigger"],
9839
9841
  category: "trigger",
9840
9842
  label: "Manual",
@@ -9863,6 +9865,12 @@ var KINDS = [
9863
9865
  },
9864
9866
  {
9865
9867
  name: "@particle-academy/schedule_trigger",
9868
+ outputShape: [
9869
+ { path: "cron", type: "string", description: "The cron expression that fired." },
9870
+ { path: "timezone", type: "string", description: "The timezone it was evaluated in." }
9871
+ ],
9872
+ // merges its inputs into the TOP level beside cron/timezone
9873
+ emits: "inputs-merged",
9866
9874
  aliases: ["schedule_trigger", "@fancy/schedule_trigger"],
9867
9875
  category: "trigger",
9868
9876
  label: "Schedule",
@@ -10050,6 +10058,8 @@ var KINDS = [
10050
10058
  // ───────────── Logic ─────────────
10051
10059
  {
10052
10060
  name: "@particle-academy/branch",
10061
+ // returns its input on the chosen port
10062
+ emits: "input",
10053
10063
  aliases: ["branch", "@fancy/branch"],
10054
10064
  category: "logic",
10055
10065
  label: "Branch",
@@ -10113,6 +10123,8 @@ var KINDS = [
10113
10123
  },
10114
10124
  {
10115
10125
  name: "@particle-academy/switch_case",
10126
+ // returns its input on the chosen port
10127
+ emits: "input",
10116
10128
  aliases: ["switch_case", "@fancy/switch_case"],
10117
10129
  category: "logic",
10118
10130
  label: "Switch",
@@ -10159,6 +10171,12 @@ var KINDS = [
10159
10171
  },
10160
10172
  {
10161
10173
  name: "@particle-academy/merge",
10174
+ // `merge` mode unions every object input at the TOP level; `concat` builds
10175
+ // a list instead, whose elements are not addressable as fields. So concat
10176
+ // declares NOTHING rather than an empty list -- `[]` would claim "emits no
10177
+ // fields" of a kind that emits a list, which is false and refuses every
10178
+ // reference.
10179
+ emits: (config) => (config?.mode ?? "merge") === "concat" ? null : "inputs-merged",
10162
10180
  aliases: ["merge", "@fancy/merge"],
10163
10181
  category: "logic",
10164
10182
  label: "Merge",
@@ -10178,6 +10196,11 @@ var KINDS = [
10178
10196
  },
10179
10197
  {
10180
10198
  name: "@particle-academy/wait",
10199
+ outputShape: [
10200
+ { path: "waited", type: "string", description: "Which wait mode ran." },
10201
+ { path: "duration", type: "number", description: "How long it waited." },
10202
+ { path: "input", type: "unknown", description: "The value that arrived, carried forward." }
10203
+ ],
10181
10204
  aliases: ["wait", "@fancy/wait"],
10182
10205
  category: "logic",
10183
10206
  label: "Wait",
@@ -10196,6 +10219,9 @@ var KINDS = [
10196
10219
  },
10197
10220
  {
10198
10221
  name: "@particle-academy/transform",
10222
+ // Two behaviours: the input unchanged when no expression is configured,
10223
+ // else the shape that expression names. So the RELATION is config-dependent.
10224
+ emits: (config) => (config?.expression ?? "") === "" ? "input" : "expression:expression",
10199
10225
  aliases: ["transform", "@fancy/transform"],
10200
10226
  category: "logic",
10201
10227
  label: "Transform",
@@ -10295,6 +10321,8 @@ var KINDS = [
10295
10321
  },
10296
10322
  {
10297
10323
  name: "@particle-academy/variable",
10324
+ // evaluates the expression in config.value
10325
+ emits: "expression:value",
10298
10326
  aliases: ["variable", "@fancy/variable"],
10299
10327
  category: "data",
10300
10328
  label: "Variable",
@@ -10375,6 +10403,11 @@ var KINDS = [
10375
10403
  },
10376
10404
  {
10377
10405
  name: "@particle-academy/llm_router",
10406
+ outputShape: [
10407
+ { path: "route", type: "string", description: "The port the model chose." },
10408
+ { path: "reason", type: "string", description: "Why the model chose it." },
10409
+ { path: "input", type: "unknown", description: "The value that arrived, carried forward." }
10410
+ ],
10378
10411
  // Every id this node has ever shipped under keeps resolving — MOIC's saved
10379
10412
  // flows carry the bare `llm_branch`.
10380
10413
  aliases: ["llm_router", "llm_branch", "@fancy/llm_branch", "@fancy/llm_router"],
@@ -10513,6 +10546,11 @@ var KINDS = [
10513
10546
  },
10514
10547
  {
10515
10548
  name: "@particle-academy/webhook_out",
10549
+ outputShape: [
10550
+ { path: "sent", type: "boolean", description: "True once the request was made." },
10551
+ { path: "status", type: "number", description: "HTTP status, when the transport reported one." },
10552
+ { path: "response", type: "unknown", description: "The response body, when there was one." }
10553
+ ],
10516
10554
  aliases: ["webhook_out", "@fancy/webhook_out"],
10517
10555
  category: "io",
10518
10556
  label: "Send Webhook",
@@ -10534,6 +10572,8 @@ var KINDS = [
10534
10572
  // ───────────── Human ─────────────
10535
10573
  {
10536
10574
  name: "@particle-academy/human_approval",
10575
+ // returns its input on approved/denied
10576
+ emits: "input",
10537
10577
  aliases: ["human_approval", "@fancy/human_approval"],
10538
10578
  pausesForHuman: "approval",
10539
10579
  category: "human",
@@ -10550,6 +10590,12 @@ var KINDS = [
10550
10590
  },
10551
10591
  {
10552
10592
  name: "@particle-academy/notify",
10593
+ outputShape: [
10594
+ { path: "sent", type: "boolean", description: "True once the message was handed to the channel." },
10595
+ { path: "channel", type: "string", description: "The channel it went to." },
10596
+ { path: "to", type: "string", description: "The recipient." },
10597
+ { path: "message", type: "string", description: "The rendered message." }
10598
+ ],
10553
10599
  aliases: ["notify", "@fancy/notify"],
10554
10600
  category: "human",
10555
10601
  label: "Notify",
@@ -10575,6 +10621,8 @@ var KINDS = [
10575
10621
  // ───────────── Output ─────────────
10576
10622
  {
10577
10623
  name: "@particle-academy/output",
10624
+ // returns its input unchanged
10625
+ emits: "input",
10578
10626
  aliases: ["output", "@fancy/output"],
10579
10627
  category: "output",
10580
10628
  label: "Output",
@@ -10585,6 +10633,10 @@ var KINDS = [
10585
10633
  },
10586
10634
  {
10587
10635
  name: "@particle-academy/log",
10636
+ outputShape: [
10637
+ { path: "logged", type: "string", description: "The message that was written." },
10638
+ { path: "level", type: "string", description: "The level it was written at." }
10639
+ ],
10588
10640
  aliases: ["log", "@fancy/log"],
10589
10641
  category: "output",
10590
10642
  label: "Log",