Expand description
Core Binding Types
Foundational types for the binding system redesign:
BindingPath: Parsed path like$step1.data.items[0].nameBindingSource: Where data comes from (Task, Context, Input, Env, LoopVar)PathSegment: Individual path segment (field name or array index)BindingType: Type constraint on binding values (7 variants)
§Path Syntax
All binding paths start with $:
| Pattern | Source | Example |
|---|---|---|
$task_id | Task output | $step1, $step1.data.name |
$context.* | Context file/session | $context.files.brand |
$inputs.* | Workflow inputs | $inputs.locale |
$env.* | Environment variable | $env.API_URL |
$item | Loop variable (for_each) | $item, $item.name |
Array indexing uses brackets: $data.items[0].name
§Design Notes
Arc<str>for identifiers: cheap clones, no lifetime issuesBindingPathisHash + Eqfor use as map keysBindingTypehas serde support for YAML deserialization- Parse errors use NIKA-150 error code
Structs§
- Binding
Path - Source path for a binding – parsed from “$task_id.field.path”
- Binding
Path Error - Error type for binding path parsing (NIKA-150)
Enums§
- Binding
Source - Where data originates
- Binding
Type - Type constraint on a binding value (optional, defaults to Any)
- Path
Segment - Single segment in a property path