"""Pipeline stages for flow execution.

This package contains individual stages that transform execution state.
Stages are organized by their execution phase:

Pre-Execution Stages:
- PinCheckStage: Check for pinned results and short-circuit if found
- InterpolationStage: Interpolate variables in step configuration
- CredentialResolutionStage: Resolve credential references
- TargetModeStage: Set target mode flag for composite executors

Execution Stage:
- ExecutorStage: Execute the actual step through its executor

Post-Execution Stages:
- TracingStage: Add trace entry for executed step
- TargetMarkingStage: Mark result as target if step was the target
- TargetPropagationStage: Propagate nested target results to parent
- VariableAssignmentStage: Assign result to variable if configured

See README.md for detailed documentation on each stage.
"""

from agent_flows.core.flow_engine.stages.credential_resolution import CredentialResolutionStage
from agent_flows.core.flow_engine.stages.executor import ExecutorStage
from agent_flows.core.flow_engine.stages.interpolation import InterpolationStage
from agent_flows.core.flow_engine.stages.pin_check import PinCheckStage
from agent_flows.core.flow_engine.stages.target_marking import TargetMarkingStage
from agent_flows.core.flow_engine.stages.target_mode import TargetModeStage
from agent_flows.core.flow_engine.stages.target_propagation import TargetPropagationStage
from agent_flows.core.flow_engine.stages.tracing import TracingStage
from agent_flows.core.flow_engine.stages.variable_assignment import VariableAssignmentStage

__all__ = [
    "CredentialResolutionStage",
    "InterpolationStage",
    "ExecutorStage",
    "PinCheckStage",
    "TargetMarkingStage",
    "TargetModeStage",
    "TargetPropagationStage",
    "TracingStage",
    "VariableAssignmentStage",
]
