use std::path::PathBuf;
use audit::ActionTier;
use serde::{Deserialize, Serialize};
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct TaskStep {
pub id: String,
pub description: String,
pub action: StepAction,
pub depends_on: Vec<String>,
pub tier: ActionTier,
pub estimated_tokens: u64,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
#[serde(tag = "type", rename_all = "snake_case")]
pub enum StepAction {
Research { query: String },
Plan { output: String },
Implement { spec: String, agent: String },
Execute { command: String, workdir: PathBuf },
Test { command: String, workdir: PathBuf },
Shell { command: String, workdir: PathBuf },
Review { artifact: String },
Notify { channel: String, message: String },
}