From d8dbe5b328f0ba0da5a93b9bbace5060f082ec15 Mon Sep 17 00:00:00 2001 From: shrimbly Date: Tue, 24 Mar 2026 22:18:20 +1300 Subject: [PATCH] feat: add isOptional flag to input node types and skipped status Add `isOptional?: boolean` to ImageInputNodeData, AudioInputNodeData, and PromptNodeData. Add "skipped" to NodeStatus union type to support skip propagation in the execution engine. Co-Authored-By: Claude Opus 4.6 --- src/types/nodes.ts | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/src/types/nodes.ts b/src/types/nodes.ts index 5a7681c9..f3361be5 100644 --- a/src/types/nodes.ts +++ b/src/types/nodes.ts @@ -50,7 +50,7 @@ export type NodeType = /** * Node execution status */ -export type NodeStatus = "idle" | "loading" | "complete" | "error"; +export type NodeStatus = "idle" | "loading" | "complete" | "error" | "skipped"; /** * Image input node - loads/uploads images into the workflow @@ -60,6 +60,7 @@ export interface ImageInputNodeData extends BaseNodeData { imageRef?: string; // External image reference for storage optimization filename: string | null; dimensions: { width: number; height: number } | null; + isOptional?: boolean; } /** @@ -70,6 +71,7 @@ export interface AudioInputNodeData extends BaseNodeData { filename: string | null; // Original filename for display duration: number | null; // Duration in seconds format: string | null; // MIME type (audio/mp3, audio/wav, etc.) + isOptional?: boolean; } /** @@ -78,6 +80,7 @@ export interface AudioInputNodeData extends BaseNodeData { export interface PromptNodeData extends BaseNodeData { prompt: string; variableName?: string; // Optional variable name for use in PromptConstructor templates + isOptional?: boolean; } export type ArraySplitMode = "delimiter" | "newline" | "regex";