pub enum NodeKind {
Show 22 variants
Start {
next: String,
},
Llm {
model: String,
prompt: String,
next: Option<String>,
},
Tool {
tool: String,
input: Value,
next: Option<String>,
},
Condition {
expression: String,
on_true: String,
on_false: String,
},
Debounce {
key_path: String,
window_steps: u32,
next: String,
on_suppressed: Option<String>,
},
Throttle {
key_path: String,
window_steps: u32,
next: String,
on_throttled: Option<String>,
},
RetryCompensate {
tool: String,
input: Value,
max_retries: usize,
compensate_tool: String,
compensate_input: Value,
next: String,
on_compensated: Option<String>,
},
HumanInTheLoop {
decision_path: String,
response_path: Option<String>,
on_approve: String,
on_reject: String,
},
CacheWrite {
key_path: String,
value_path: String,
next: String,
},
CacheRead {
key_path: String,
next: String,
on_miss: Option<String>,
},
EventTrigger {
event: String,
event_path: String,
next: String,
on_mismatch: Option<String>,
},
Router {
routes: Vec<RouterRoute>,
default: String,
},
Transform {
expression: String,
next: String,
},
Loop {
condition: String,
body: String,
next: String,
max_iterations: Option<u32>,
},
Subgraph {
graph: String,
next: Option<String>,
},
Batch {
items_path: String,
next: String,
},
Filter {
items_path: String,
expression: String,
next: String,
},
Parallel {
branches: Vec<String>,
next: String,
max_in_flight: Option<usize>,
},
Merge {
sources: Vec<String>,
policy: MergePolicy,
quorum: Option<usize>,
next: String,
},
Map {
tool: String,
items_path: String,
next: String,
max_in_flight: Option<usize>,
},
Reduce {
source: String,
operation: ReduceOperation,
next: String,
},
End,
}Expand description
Canonical node taxonomy for v0.
Variants§
Start
Entry node. Must have exactly one in the workflow.
Llm
LLM call node.
Tool
Tool invocation node.
Condition
Conditional branching node.
Debounce
Debounces repeated events for a key across nearby steps.
Throttle
Throttles repeated events for a key to one pass per window.
RetryCompensate
Explicit retry node with compensation fallback.
Fields
HumanInTheLoop
Human decision gate that routes on approve/reject.
CacheWrite
Writes a value into runtime cache.
CacheRead
Reads a value from runtime cache.
EventTrigger
Event gate for schedule/cron/webhook style entry checks.
Router
Router/selector node that picks first matching route.
Transform
Deterministic transform node using JSON literal or path expression.
Loop
Loop node with explicit body and exit transitions.
Subgraph
Executes a registered subgraph in an isolated child scope.
Batch
Captures an array payload from scope for downstream processing.
Filter
Filters an array payload deterministically with a boolean expression.
Parallel
Concurrently executes branch nodes and continues to next.
Merge
Merges outputs from source nodes according to policy.
Map
Applies a tool to each item in an array from scoped input.
Reduce
Reduces an array output into a single value.
End
Terminal node.
Trait Implementations§
Source§impl<'de> Deserialize<'de> for NodeKind
impl<'de> Deserialize<'de> for NodeKind
Source§fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
impl StructuralPartialEq for NodeKind
Auto Trait Implementations§
impl Freeze for NodeKind
impl RefUnwindSafe for NodeKind
impl Send for NodeKind
impl Sync for NodeKind
impl Unpin for NodeKind
impl UnsafeUnpin for NodeKind
impl UnwindSafe for NodeKind
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<T> FutureExt for T
impl<T> FutureExt for T
Source§fn with_context(self, otel_cx: Context) -> WithContext<Self>
fn with_context(self, otel_cx: Context) -> WithContext<Self>
Source§fn with_current_context(self) -> WithContext<Self>
fn with_current_context(self) -> WithContext<Self>
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
Source§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
Source§impl<T> IntoRequest<T> for T
impl<T> IntoRequest<T> for T
Source§fn into_request(self) -> Request<T>
fn into_request(self) -> Request<T>
T in a tonic::Request