ryo-executor 0.1.0

[experimental] Mutation execution engine for RYO - parallel execution, conflict detection, workspace management
Documentation
//! RYO Executor - Mutation execution engine
//!
//! This crate provides execution control and optimization for mutations:
//! - Parallel execution with conflict detection
//! - Workspace management (in-memory working copy)
//! - Decider (execution strategy)
//! - Lock/Tick optimization
//!
//! # Architecture
//!
//! ```text
//! ┌──────────────────────────────────────────────────────────────┐
//! │  ryo-executor                                                 │
//! │  ┌──────────────┐  ┌──────────────┐  ┌────────────────────┐  │
//! │  │ CoreExecutor │  │  Workspace   │  │ Decider            │  │
//! │  │ Blueprint    │  │  Conflict    │  │ Policy / Strategy  │  │
//! │  └──────────────┘  └──────────────┘  └────────────────────┘  │
//! └──────────────────────────────────────────────────────────────┘
//!         │                    │                    │
//!         ▼                    ▼                    ▼
//! ┌─────────────────┐  ┌──────────────┐
//! │  ryo-mutations  │  │  ryo-source  │
//! └─────────────────┘  └──────────────┘
//! ```

pub mod decider;
pub mod engine;
pub mod executor;

// === Error Types ===

/// Errors that can occur during execution
#[derive(Debug, thiserror::Error)]
pub enum Error {
    #[error("Workspace error: {0}")]
    Workspace(String),

    #[error("Execution error: {0}")]
    Execution(String),

    #[error("Parse error: {0}")]
    Parse(String),

    #[error("IO error: {0}")]
    Io(#[from] std::io::Error),

    #[error("Graph error: {0}")]
    Graph(String),
}

/// Result type for ryo-executor operations
pub type Result<T> = std::result::Result<T, Error>;

pub use decider::{
    Action, ActionKind, ActionResult, AgentMode, AgentState, ComposableDecider, Decider,
    DeciderConfig, DecisionContext, DecisionModifier, MurmurationDecider, ParameterizedDecider,
    PlainDecider,
};

#[allow(deprecated)]
pub use executor::{
    BlueprintBuilder, BlueprintExecutor, BlueprintResult, Conflict, ConflictKind, CoreExecutor,
    DependencyGraph, ExecutionContext, Executor, ExecutorError, InsertPosition, ItemKind,
    MutationSpec, MutationTargetSymbol, ParallelBlueprint, Scope, SelfParam, SpecRelation,
    SpecRelationKind, SpecResult, StmtInsertPosition, SyncError, VariantKind, Visibility,
};

// === Engine Module (AST-centric mutation execution) ===
pub use engine::{
    collect_affected_ids, multi_file_dumper, single_file_dumper, ASTMutationContext,
    ASTMutationEngine, ASTRegApply, ExecutionResult, ModificationType, MutationEvent, SourceDumper,
    SourceGenerator,
};