@particle-academy/fancy-flow 0.43.2 → 0.45.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 (53) hide show
  1. package/dist/{ConfigFieldRenderer-LotNHeG8.d.cts → ConfigFieldRenderer-Dzy4f6rG.d.cts} +2 -2
  2. package/dist/{ConfigFieldRenderer-BHQDZer6.d.ts → ConfigFieldRenderer-WqJr-td_.d.ts} +2 -2
  3. package/dist/{FlowViewer-nLqo7s2E.d.cts → FlowViewer-BbbUJe2b.d.cts} +1 -1
  4. package/dist/{FlowViewer-C4QAVgWv.d.ts → FlowViewer-csuaTL5t.d.ts} +1 -1
  5. package/dist/{capabilities-CkhKj_U_.d.ts → capabilities-Brn74URS.d.ts} +2 -2
  6. package/dist/{capabilities-BtJQTbnw.d.cts → capabilities-CYCeIx6I.d.cts} +2 -2
  7. package/dist/{chunk-T3VQX3XB.js → chunk-DHUFUDEX.js} +3 -3
  8. package/dist/{chunk-T3VQX3XB.js.map → chunk-DHUFUDEX.js.map} +1 -1
  9. package/dist/{chunk-55KQS3LK.js → chunk-WBXGZVLB.js} +24 -8
  10. package/dist/chunk-WBXGZVLB.js.map +1 -0
  11. package/dist/engine.cjs +70 -10
  12. package/dist/engine.cjs.map +1 -1
  13. package/dist/engine.d.cts +42 -7
  14. package/dist/engine.d.ts +42 -7
  15. package/dist/engine.js +65 -9
  16. package/dist/engine.js.map +1 -1
  17. package/dist/fields/react-fancy.d.cts +3 -3
  18. package/dist/fields/react-fancy.d.ts +3 -3
  19. package/dist/index.cjs +22 -6
  20. package/dist/index.cjs.map +1 -1
  21. package/dist/index.d.cts +10 -10
  22. package/dist/index.d.ts +10 -10
  23. package/dist/index.js +4 -4
  24. package/dist/layout/index.d.cts +1 -1
  25. package/dist/layout/index.d.ts +1 -1
  26. package/dist/llm/prism.d.cts +2 -2
  27. package/dist/llm/prism.d.ts +2 -2
  28. package/dist/llm/vercel-ai.d.cts +2 -2
  29. package/dist/llm/vercel-ai.d.ts +2 -2
  30. package/dist/registry/index.d.cts +6 -6
  31. package/dist/registry/index.d.ts +6 -6
  32. package/dist/{registry-C9KMVpn7.d.cts → registry-Budds73w.d.cts} +1 -1
  33. package/dist/{registry-FGCBprcn.d.ts → registry-D0I20HJ3.d.ts} +1 -1
  34. package/dist/registry.cjs +22 -6
  35. package/dist/registry.cjs.map +1 -1
  36. package/dist/registry.js +1 -1
  37. package/dist/{run-cohort-BnP6ErHi.d.ts → run-cohort-CV7EcwGG.d.ts} +1 -1
  38. package/dist/{run-cohort-Bjv2ZU6g.d.cts → run-cohort-DitsaYgS.d.cts} +1 -1
  39. package/dist/runtime/index.d.cts +3 -3
  40. package/dist/runtime/index.d.ts +3 -3
  41. package/dist/schema/index.d.cts +1 -1
  42. package/dist/schema/index.d.ts +1 -1
  43. package/dist/screens.d.cts +2 -2
  44. package/dist/screens.d.ts +2 -2
  45. package/dist/screens.js +3 -3
  46. package/dist/{types-sOmpCitB.d.cts → types-CMSrWVYM.d.cts} +1 -1
  47. package/dist/{types-sOmpCitB.d.ts → types-CMSrWVYM.d.ts} +1 -1
  48. package/dist/{types-JViq8reb.d.ts → types-D6ZSKBly.d.ts} +2 -2
  49. package/dist/{types-B78Rm69S.d.cts → types-nQOA8jpk.d.cts} +2 -2
  50. package/dist/ux.d.cts +2 -2
  51. package/dist/ux.d.ts +2 -2
  52. package/package.json +1 -1
  53. package/dist/chunk-55KQS3LK.js.map +0 -1
package/dist/index.d.cts CHANGED
@@ -3,22 +3,22 @@ import { ReactNode, CSSProperties, ComponentProps, ComponentType } from 'react';
3
3
  import { ReactFlowProps, Edge, BackgroundVariant, Connection, NodeProps, NodeTypes } from '@xyflow/react';
4
4
  import { ConnectionValidatorOptions } from './registry/index.cjs';
5
5
  export { ANY_PORT_TYPE, BUILTIN_KINDS, PortCompatibility, RegistryNode, RichInputAdapter, RichInputPreview, buildNodeTypes, createConnectionValidator, defaultPortCompatibility, getRichInputAdapter, isRichInputEnabled, onRichInputAdapterChanged, registerBuiltinKinds, registerRichInputAdapter, resolveNodePorts, resolvePortSpec } from './registry/index.cjs';
6
- import { b as FlowNode, F as FlowGraph, e as NodeRunStatus, E as ExecutorRegistry } from './types-sOmpCitB.cjs';
7
- export { A as ActionNodeData, B as BaseNodeData, D as DecisionNodeData, a as FlowEdge, c as FlowNodeData, d 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-sOmpCitB.cjs';
8
- import { C as ConfigFieldRenderFn } from './ConfigFieldRenderer-LotNHeG8.cjs';
9
- export { a as ConfigFieldRenderContext, b as ConfigFieldRenderer, c as ConfigFieldRendererProps } from './ConfigFieldRenderer-LotNHeG8.cjs';
6
+ import { a as FlowNode, F as FlowGraph, e as NodeRunStatus, E as ExecutorRegistry } from './types-CMSrWVYM.cjs';
7
+ export { A as ActionNodeData, B as BaseNodeData, D as DecisionNodeData, b as FlowEdge, c as FlowNodeData, d 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-CMSrWVYM.cjs';
8
+ import { C as ConfigFieldRenderFn } from './ConfigFieldRenderer-Dzy4f6rG.cjs';
9
+ export { a as ConfigFieldRenderContext, b as ConfigFieldRenderer, c as ConfigFieldRendererProps } from './ConfigFieldRenderer-Dzy4f6rG.cjs';
10
10
  import { WorkflowSchema, WorkflowMetadata } from './schema/index.cjs';
11
11
  export { ImportIssue, ImportOptions, ImportResult, WORKFLOW_SCHEMA_URL, WORKFLOW_SCHEMA_VERSION, WorkflowSchemaEdge, WorkflowSchemaNode, exportWorkflow, importWorkflow, migrateSchema, workflowToBlob } from './schema/index.cjs';
12
12
  import { AutoLayoutOptions } from './layout/index.cjs';
13
13
  export { AutoLayoutDirection } from './layout/index.cjs';
14
- import { c as NodeCategory, d as NodeKindDefinition } from './types-B78Rm69S.cjs';
15
- export { A as AvailableVariable, a as ConfigField, D as DocumentConfigField, z as ExpressionForm, B as ExpressionGrammarHelp, K as KeyValueConfigField, L as LEGACY_PAUSE_PREFIXES, O as OutputField, F as OutputShape, h as PAUSE_PREFIX, P as PauseAwaiting, i as PauseSignal, j as PortSpec, R as RenderBodyContext, t as RepeaterConfigField, u as RepeaterRowField, G as availableVariables, H as baseVariables, m as decodePause, I as describeExpressionGrammar, n as encodePause, o as isPause, Q as outputFieldsFor, p as pauseForHuman } from './types-B78Rm69S.cjs';
16
- export { F as FlowNodeStatus, a as FlowViewer, b as FlowViewerClassNames, c as FlowViewerProps } from './FlowViewer-nLqo7s2E.cjs';
14
+ import { a as NodeCategory, N as NodeKindDefinition } from './types-nQOA8jpk.cjs';
15
+ export { A as AvailableVariable, C as ConfigField, D as DocumentConfigField, z as ExpressionForm, B as ExpressionGrammarHelp, K as KeyValueConfigField, L as LEGACY_PAUSE_PREFIXES, O as OutputField, F as OutputShape, h as PAUSE_PREFIX, P as PauseAwaiting, i as PauseSignal, j as PortSpec, R as RenderBodyContext, t as RepeaterConfigField, u as RepeaterRowField, G as availableVariables, H as baseVariables, m as decodePause, I as describeExpressionGrammar, n as encodePause, o as isPause, Q as outputFieldsFor, p as pauseForHuman } from './types-nQOA8jpk.cjs';
16
+ export { F as FlowNodeStatus, a as FlowViewer, b as FlowViewerClassNames, c as FlowViewerProps } from './FlowViewer-BbbUJe2b.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 { C as CohortGuard, a as CohortOptions, b as CohortPolicy, c as CohortResult, R as RunOptions, d as RunResult, r as runCohort, e as runFlow } from './run-cohort-Bjv2ZU6g.cjs';
20
- export { N as NodeKindPresentation, c as categoryAccent, b as clearNodeKindOverrides, d as defaultConfigFor, g as getNodeKind, l as listNodeKinds, o as onNodeKindsChanged, e as overrideNodeKind, r as registerNodeKind, v as validateConfig } from './registry-C9KMVpn7.cjs';
21
- import './capabilities-BtJQTbnw.cjs';
19
+ export { C as CohortGuard, a as CohortOptions, b as CohortPolicy, c as CohortResult, R as RunOptions, d as RunResult, r as runCohort, e as runFlow } from './run-cohort-DitsaYgS.cjs';
20
+ export { N as NodeKindPresentation, c as categoryAccent, b as clearNodeKindOverrides, d as defaultConfigFor, g as getNodeKind, l as listNodeKinds, o as onNodeKindsChanged, e as overrideNodeKind, r as registerNodeKind, v as validateConfig } from './registry-Budds73w.cjs';
21
+ import './capabilities-CYCeIx6I.cjs';
22
22
 
23
23
  type FlowCanvasProps = Omit<ReactFlowProps<FlowNode, Edge>, "nodes" | "edges" | "height"> & {
24
24
  nodes: FlowNode[];
package/dist/index.d.ts CHANGED
@@ -3,22 +3,22 @@ import { ReactNode, CSSProperties, ComponentProps, ComponentType } from 'react';
3
3
  import { ReactFlowProps, Edge, BackgroundVariant, Connection, NodeProps, NodeTypes } from '@xyflow/react';
4
4
  import { ConnectionValidatorOptions } from './registry/index.js';
5
5
  export { ANY_PORT_TYPE, BUILTIN_KINDS, PortCompatibility, RegistryNode, RichInputAdapter, RichInputPreview, buildNodeTypes, createConnectionValidator, defaultPortCompatibility, getRichInputAdapter, isRichInputEnabled, onRichInputAdapterChanged, registerBuiltinKinds, registerRichInputAdapter, resolveNodePorts, resolvePortSpec } from './registry/index.js';
6
- import { b as FlowNode, F as FlowGraph, e as NodeRunStatus, E as ExecutorRegistry } from './types-sOmpCitB.js';
7
- export { A as ActionNodeData, B as BaseNodeData, D as DecisionNodeData, a as FlowEdge, c as FlowNodeData, d 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-sOmpCitB.js';
8
- import { C as ConfigFieldRenderFn } from './ConfigFieldRenderer-BHQDZer6.js';
9
- export { a as ConfigFieldRenderContext, b as ConfigFieldRenderer, c as ConfigFieldRendererProps } from './ConfigFieldRenderer-BHQDZer6.js';
6
+ import { a as FlowNode, F as FlowGraph, e as NodeRunStatus, E as ExecutorRegistry } from './types-CMSrWVYM.js';
7
+ export { A as ActionNodeData, B as BaseNodeData, D as DecisionNodeData, b as FlowEdge, c as FlowNodeData, d 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-CMSrWVYM.js';
8
+ import { C as ConfigFieldRenderFn } from './ConfigFieldRenderer-WqJr-td_.js';
9
+ export { a as ConfigFieldRenderContext, b as ConfigFieldRenderer, c as ConfigFieldRendererProps } from './ConfigFieldRenderer-WqJr-td_.js';
10
10
  import { WorkflowSchema, WorkflowMetadata } from './schema/index.js';
11
11
  export { ImportIssue, ImportOptions, ImportResult, WORKFLOW_SCHEMA_URL, WORKFLOW_SCHEMA_VERSION, WorkflowSchemaEdge, WorkflowSchemaNode, exportWorkflow, importWorkflow, migrateSchema, workflowToBlob } from './schema/index.js';
12
12
  import { AutoLayoutOptions } from './layout/index.js';
13
13
  export { AutoLayoutDirection } from './layout/index.js';
14
- import { c as NodeCategory, d as NodeKindDefinition } from './types-JViq8reb.js';
15
- export { A as AvailableVariable, a as ConfigField, D as DocumentConfigField, z as ExpressionForm, B as ExpressionGrammarHelp, K as KeyValueConfigField, L as LEGACY_PAUSE_PREFIXES, O as OutputField, F as OutputShape, h as PAUSE_PREFIX, P as PauseAwaiting, i as PauseSignal, j as PortSpec, R as RenderBodyContext, t as RepeaterConfigField, u as RepeaterRowField, G as availableVariables, H as baseVariables, m as decodePause, I as describeExpressionGrammar, n as encodePause, o as isPause, Q as outputFieldsFor, p as pauseForHuman } from './types-JViq8reb.js';
16
- export { F as FlowNodeStatus, a as FlowViewer, b as FlowViewerClassNames, c as FlowViewerProps } from './FlowViewer-C4QAVgWv.js';
14
+ import { a as NodeCategory, N as NodeKindDefinition } from './types-D6ZSKBly.js';
15
+ export { A as AvailableVariable, C as ConfigField, D as DocumentConfigField, z as ExpressionForm, B as ExpressionGrammarHelp, K as KeyValueConfigField, L as LEGACY_PAUSE_PREFIXES, O as OutputField, F as OutputShape, h as PAUSE_PREFIX, P as PauseAwaiting, i as PauseSignal, j as PortSpec, R as RenderBodyContext, t as RepeaterConfigField, u as RepeaterRowField, G as availableVariables, H as baseVariables, m as decodePause, I as describeExpressionGrammar, n as encodePause, o as isPause, Q as outputFieldsFor, p as pauseForHuman } from './types-D6ZSKBly.js';
16
+ export { F as FlowNodeStatus, a as FlowViewer, b as FlowViewerClassNames, c as FlowViewerProps } from './FlowViewer-csuaTL5t.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 { C as CohortGuard, a as CohortOptions, b as CohortPolicy, c as CohortResult, R as RunOptions, d as RunResult, r as runCohort, e as runFlow } from './run-cohort-BnP6ErHi.js';
20
- export { N as NodeKindPresentation, c as categoryAccent, b as clearNodeKindOverrides, d as defaultConfigFor, g as getNodeKind, l as listNodeKinds, o as onNodeKindsChanged, e as overrideNodeKind, r as registerNodeKind, v as validateConfig } from './registry-FGCBprcn.js';
21
- import './capabilities-CkhKj_U_.js';
19
+ export { C as CohortGuard, a as CohortOptions, b as CohortPolicy, c as CohortResult, R as RunOptions, d as RunResult, r as runCohort, e as runFlow } from './run-cohort-CV7EcwGG.js';
20
+ export { N as NodeKindPresentation, c as categoryAccent, b as clearNodeKindOverrides, d as defaultConfigFor, g as getNodeKind, l as listNodeKinds, o as onNodeKindsChanged, e as overrideNodeKind, r as registerNodeKind, v as validateConfig } from './registry-D0I20HJ3.js';
21
+ import './capabilities-Brn74URS.js';
22
22
 
23
23
  type FlowCanvasProps = Omit<ReactFlowProps<FlowNode, Edge>, "nodes" | "edges" | "height"> & {
24
24
  nodes: FlowNode[];
package/dist/index.js CHANGED
@@ -1,10 +1,10 @@
1
- import { removeNodes, removeEdges, cloneSubgraph, alignNodes, distributeNodes, reconnectEdge, assignToLane, removeFromLane, duplicateNode, setEdgeLabel, FlowCanvas } from './chunk-T3VQX3XB.js';
2
- export { ActionNode, DecisionNode, FlowCanvas, FlowViewer, NodeShell, OutputNode, SubgraphNode, TriggerNode, alignNodes, cloneSubgraph, defaultNodeTypes, distributeNodes, reconnectEdge } from './chunk-T3VQX3XB.js';
1
+ import { removeNodes, removeEdges, cloneSubgraph, alignNodes, distributeNodes, reconnectEdge, assignToLane, removeFromLane, duplicateNode, setEdgeLabel, FlowCanvas } from './chunk-DHUFUDEX.js';
2
+ export { ActionNode, DecisionNode, FlowCanvas, FlowViewer, NodeShell, OutputNode, SubgraphNode, TriggerNode, alignNodes, cloneSubgraph, defaultNodeTypes, distributeNodes, reconnectEdge } from './chunk-DHUFUDEX.js';
3
3
  import { useFlowState, useFlowRun, useFlowHistory, applyOutputsToNodes, applyStatusesToNodes } from './chunk-A6RFLGWV.js';
4
4
  export { applyOutputsToNodes, applyStatusesToNodes, createHistory, useFlowHistory, useFlowRun, useFlowState } from './chunk-A6RFLGWV.js';
5
5
  export { runCohort } from './chunk-QZTGV3ZL.js';
6
- import { buildNodeTypes, FlowEditorProvider, registerBuiltinKinds } from './chunk-55KQS3LK.js';
7
- export { ANY_PORT_TYPE, BUILTIN_KINDS, LaneNode, NoteNode, RegistryNode, buildNodeTypes, createConnectionValidator, defaultPortCompatibility, registerBuiltinKinds, useFlowEditor, useFlowEditorOptional } from './chunk-55KQS3LK.js';
6
+ import { buildNodeTypes, FlowEditorProvider, registerBuiltinKinds } from './chunk-WBXGZVLB.js';
7
+ export { ANY_PORT_TYPE, BUILTIN_KINDS, LaneNode, NoteNode, RegistryNode, buildNodeTypes, createConnectionValidator, defaultPortCompatibility, registerBuiltinKinds, useFlowEditor, useFlowEditorOptional } from './chunk-WBXGZVLB.js';
8
8
  import { ReactFlowProvider, useReactFlow, addEdge, applyEdgeChanges, applyNodeChanges, Position, Handle } from './chunk-OWENS2H5.js';
9
9
  export { LEGACY_PAUSE_PREFIXES, PAUSE_PREFIX, decodePause, encodePause, isPause, pauseForHuman } from './chunk-UEOE6B52.js';
10
10
  import './chunk-USL4FMFU.js';
@@ -1,4 +1,4 @@
1
- import { F as FlowGraph, b as FlowNode } from '../types-sOmpCitB.cjs';
1
+ import { F as FlowGraph, a as FlowNode } from '../types-CMSrWVYM.cjs';
2
2
  import '@xyflow/react';
3
3
 
4
4
  type AutoLayoutDirection = "LR" | "TB" | "RL" | "BT";
@@ -1,4 +1,4 @@
1
- import { F as FlowGraph, b as FlowNode } from '../types-sOmpCitB.js';
1
+ import { F as FlowGraph, a as FlowNode } from '../types-CMSrWVYM.js';
2
2
  import '@xyflow/react';
3
3
 
4
4
  type AutoLayoutDirection = "LR" | "TB" | "RL" | "BT";
@@ -1,5 +1,5 @@
1
- import { L as LlmClient } from '../capabilities-BtJQTbnw.cjs';
2
- import '../types-sOmpCitB.cjs';
1
+ import { L as LlmClient } from '../capabilities-CYCeIx6I.cjs';
2
+ import '../types-CMSrWVYM.cjs';
3
3
  import '@xyflow/react';
4
4
 
5
5
  /**
@@ -1,5 +1,5 @@
1
- import { L as LlmClient } from '../capabilities-CkhKj_U_.js';
2
- import '../types-sOmpCitB.js';
1
+ import { L as LlmClient } from '../capabilities-Brn74URS.js';
2
+ import '../types-CMSrWVYM.js';
3
3
  import '@xyflow/react';
4
4
 
5
5
  /**
@@ -1,6 +1,6 @@
1
1
  import { LanguageModel } from 'ai';
2
- import { a as LlmRouteRequest, L as LlmClient } from '../capabilities-BtJQTbnw.cjs';
3
- import '../types-sOmpCitB.cjs';
2
+ import { a as LlmRouteRequest, L as LlmClient } from '../capabilities-CYCeIx6I.cjs';
3
+ import '../types-CMSrWVYM.cjs';
4
4
  import '@xyflow/react';
5
5
 
6
6
  /**
@@ -1,6 +1,6 @@
1
1
  import { LanguageModel } from 'ai';
2
- import { a as LlmRouteRequest, L as LlmClient } from '../capabilities-CkhKj_U_.js';
3
- import '../types-sOmpCitB.js';
2
+ import { a as LlmRouteRequest, L as LlmClient } from '../capabilities-Brn74URS.js';
3
+ import '../types-CMSrWVYM.js';
4
4
  import '@xyflow/react';
5
5
 
6
6
  /**
@@ -1,12 +1,12 @@
1
- import { d as NodeKindDefinition, j as PortSpec } from '../types-B78Rm69S.cjs';
2
- export { a as ConfigField, q as CredentialConfigField, D as DocumentConfigField, E as ExpressionConfigField, J as JsonConfigField, K as KeyValueConfigField, L as LEGACY_PAUSE_PREFIXES, c as NodeCategory, r as NumberConfigField, h as PAUSE_PREFIX, P as PauseAwaiting, i as PauseSignal, R as RenderBodyContext, t as RepeaterConfigField, u as RepeaterRowField, w as SelectConfigField, x as SwitchConfigField, T as TextConfigField, y as TextareaConfigField, m as decodePause, n as encodePause, o as isPause, p as pauseForHuman } from '../types-B78Rm69S.cjs';
3
- import { P as PortDescriptor, b as FlowNode, N as NodeExecutor } from '../types-sOmpCitB.cjs';
1
+ import { N as NodeKindDefinition, j as PortSpec } from '../types-nQOA8jpk.cjs';
2
+ export { C as ConfigField, q as CredentialConfigField, D as DocumentConfigField, E as ExpressionConfigField, J as JsonConfigField, K as KeyValueConfigField, L as LEGACY_PAUSE_PREFIXES, a as NodeCategory, r as NumberConfigField, h as PAUSE_PREFIX, P as PauseAwaiting, i as PauseSignal, R as RenderBodyContext, t as RepeaterConfigField, u as RepeaterRowField, w as SelectConfigField, x as SwitchConfigField, T as TextConfigField, y as TextareaConfigField, m as decodePause, n as encodePause, o as isPause, p as pauseForHuman } from '../types-nQOA8jpk.cjs';
3
+ import { P as PortDescriptor, a as FlowNode, N as NodeExecutor } from '../types-CMSrWVYM.cjs';
4
4
  import { Connection, Edge, NodeProps, NodeTypes } from '@xyflow/react';
5
- import { b as LlmRoute } from '../capabilities-BtJQTbnw.cjs';
6
- export { C as CapabilityId, L as LlmClient, c as LlmRouteChoice, a as LlmRouteRequest, W as WorkflowResolution, d as WorkflowResolutionFailure, e as WorkflowResolver, f as capabilityStatus, g as getLlmClient, h as getWorkflowResolver, i as isResolutionFailure, r as registerLlmClient, j as registerWorkflowResolver } from '../capabilities-BtJQTbnw.cjs';
5
+ import { b as LlmRoute } from '../capabilities-CYCeIx6I.cjs';
6
+ export { C as CapabilityId, L as LlmClient, c as LlmRouteChoice, a as LlmRouteRequest, d as WorkflowResolution, e as WorkflowResolutionFailure, W as WorkflowResolver, f as capabilityStatus, g as getLlmClient, h as getWorkflowResolver, i as isResolutionFailure, r as registerLlmClient, j as registerWorkflowResolver } from '../capabilities-CYCeIx6I.cjs';
7
7
  import * as react from 'react';
8
8
  import { ComponentType, ReactNode } from 'react';
9
- export { N as NodeKindPresentation, c as categoryAccent, b as clearNodeKindOverrides, d as defaultConfigFor, g as getNodeKind, k as kindIds, l as listNodeKinds, o as onNodeKindsChanged, e as overrideNodeKind, r as registerNodeKind, a as resolveKindId, v as validateConfig } from '../registry-C9KMVpn7.cjs';
9
+ export { N as NodeKindPresentation, c as categoryAccent, b as clearNodeKindOverrides, d as defaultConfigFor, g as getNodeKind, k as kindIds, l as listNodeKinds, o as onNodeKindsChanged, e as overrideNodeKind, r as registerNodeKind, a as resolveKindId, v as validateConfig } from '../registry-Budds73w.cjs';
10
10
 
11
11
  /**
12
12
  * Connection validation — the single rule that decides whether an edge between
@@ -1,12 +1,12 @@
1
- import { d as NodeKindDefinition, j as PortSpec } from '../types-JViq8reb.js';
2
- export { a as ConfigField, q as CredentialConfigField, D as DocumentConfigField, E as ExpressionConfigField, J as JsonConfigField, K as KeyValueConfigField, L as LEGACY_PAUSE_PREFIXES, c as NodeCategory, r as NumberConfigField, h as PAUSE_PREFIX, P as PauseAwaiting, i as PauseSignal, R as RenderBodyContext, t as RepeaterConfigField, u as RepeaterRowField, w as SelectConfigField, x as SwitchConfigField, T as TextConfigField, y as TextareaConfigField, m as decodePause, n as encodePause, o as isPause, p as pauseForHuman } from '../types-JViq8reb.js';
3
- import { P as PortDescriptor, b as FlowNode, N as NodeExecutor } from '../types-sOmpCitB.js';
1
+ import { N as NodeKindDefinition, j as PortSpec } from '../types-D6ZSKBly.js';
2
+ export { C as ConfigField, q as CredentialConfigField, D as DocumentConfigField, E as ExpressionConfigField, J as JsonConfigField, K as KeyValueConfigField, L as LEGACY_PAUSE_PREFIXES, a as NodeCategory, r as NumberConfigField, h as PAUSE_PREFIX, P as PauseAwaiting, i as PauseSignal, R as RenderBodyContext, t as RepeaterConfigField, u as RepeaterRowField, w as SelectConfigField, x as SwitchConfigField, T as TextConfigField, y as TextareaConfigField, m as decodePause, n as encodePause, o as isPause, p as pauseForHuman } from '../types-D6ZSKBly.js';
3
+ import { P as PortDescriptor, a as FlowNode, N as NodeExecutor } from '../types-CMSrWVYM.js';
4
4
  import { Connection, Edge, NodeProps, NodeTypes } from '@xyflow/react';
5
- import { b as LlmRoute } from '../capabilities-CkhKj_U_.js';
6
- export { C as CapabilityId, L as LlmClient, c as LlmRouteChoice, a as LlmRouteRequest, W as WorkflowResolution, d as WorkflowResolutionFailure, e as WorkflowResolver, f as capabilityStatus, g as getLlmClient, h as getWorkflowResolver, i as isResolutionFailure, r as registerLlmClient, j as registerWorkflowResolver } from '../capabilities-CkhKj_U_.js';
5
+ import { b as LlmRoute } from '../capabilities-Brn74URS.js';
6
+ export { C as CapabilityId, L as LlmClient, c as LlmRouteChoice, a as LlmRouteRequest, d as WorkflowResolution, e as WorkflowResolutionFailure, W as WorkflowResolver, f as capabilityStatus, g as getLlmClient, h as getWorkflowResolver, i as isResolutionFailure, r as registerLlmClient, j as registerWorkflowResolver } from '../capabilities-Brn74URS.js';
7
7
  import * as react from 'react';
8
8
  import { ComponentType, ReactNode } from 'react';
9
- export { N as NodeKindPresentation, c as categoryAccent, b as clearNodeKindOverrides, d as defaultConfigFor, g as getNodeKind, k as kindIds, l as listNodeKinds, o as onNodeKindsChanged, e as overrideNodeKind, r as registerNodeKind, a as resolveKindId, v as validateConfig } from '../registry-FGCBprcn.js';
9
+ export { N as NodeKindPresentation, c as categoryAccent, b as clearNodeKindOverrides, d as defaultConfigFor, g as getNodeKind, k as kindIds, l as listNodeKinds, o as onNodeKindsChanged, e as overrideNodeKind, r as registerNodeKind, a as resolveKindId, v as validateConfig } from '../registry-D0I20HJ3.js';
10
10
 
11
11
  /**
12
12
  * Connection validation — the single rule that decides whether an edge between
@@ -1,4 +1,4 @@
1
- import { d as NodeKindDefinition } from './types-B78Rm69S.cjs';
1
+ import { N as NodeKindDefinition } from './types-nQOA8jpk.cjs';
2
2
 
3
3
  /**
4
4
  * The presentation fields a consumer may override on someone else's node kind.
@@ -1,4 +1,4 @@
1
- import { d as NodeKindDefinition } from './types-JViq8reb.js';
1
+ import { N as NodeKindDefinition } from './types-D6ZSKBly.js';
2
2
 
3
3
  /**
4
4
  * The presentation fields a consumer may override on someone else's node kind.
package/dist/registry.cjs CHANGED
@@ -10371,12 +10371,22 @@ var KINDS = [
10371
10371
  // ───────────── AI ─────────────
10372
10372
  {
10373
10373
  name: "@particle-academy/llm_call",
10374
- // LlmClient::complete() -> array{text:string,usage?:array,raw?:mixed}
10375
- outputShape: [
10376
- { path: "text", type: "string", description: "The model's completion." },
10377
- { path: "usage", type: "object", description: "Token counts, when the provider reports them." },
10378
- { path: "raw", type: "unknown", description: "The provider's untouched response." }
10379
- ],
10374
+ // LlmClient::complete() -> array{text:string,data?:mixed,usage?:array,raw?:mixed}
10375
+ //
10376
+ // A FUNCTION of config, because `data` exists only when this node was asked
10377
+ // for a schema. Declaring it statically would offer `{{ $json.data }}` on
10378
+ // every llm_call in the kit, including the ones that emit nothing of the
10379
+ // sort — and a suggestion that resolves to null at runtime is worse than no
10380
+ // suggestion, since the picker is exactly what gave the author confidence.
10381
+ outputShape: (config) => {
10382
+ const asked = config?.response_schema != null && config.response_schema !== "" && !(Array.isArray(config.response_schema) && config.response_schema.length === 0);
10383
+ return [
10384
+ { path: "text", type: "string", description: "The model's completion." },
10385
+ ...asked ? [{ path: "data", type: "unknown", description: "The parsed, schema-checked result." }] : [],
10386
+ { path: "usage", type: "object", description: "Token counts, when the provider reports them." },
10387
+ { path: "raw", type: "unknown", description: "The provider's untouched response." }
10388
+ ];
10389
+ },
10380
10390
  aliases: ["llm_call", "@fancy/llm_call"],
10381
10391
  category: "ai",
10382
10392
  label: "LLM Call",
@@ -10417,6 +10427,12 @@ var KINDS = [
10417
10427
  }
10418
10428
  ]
10419
10429
  },
10430
+ {
10431
+ type: "json",
10432
+ key: "response_schema",
10433
+ label: "Response schema",
10434
+ description: "Optional JSON Schema. When set, the runtime asks the provider for schema-valid JSON and the node emits the parsed value as `data` \u2014 reference it as {{ $json.data }}. A response that cannot be parsed or does not match FAILS the node rather than passing an empty value downstream."
10435
+ },
10420
10436
  { type: "credential", key: "credential", label: "API credential", credentialType: "llm_credential" }
10421
10437
  ]
10422
10438
  },