use serde::{Deserialize, Serialize};
#[derive(Debug, Clone, Copy, PartialEq, Eq, Default, Deserialize, Serialize)]
#[serde(rename_all = "snake_case")]
pub enum PlanStepExecutorKind {
#[default]
ReviewReadonly,
PatchWrite,
TestRunner,
}
impl PlanStepExecutorKind {
pub fn as_snake_case_str(self) -> &'static str {
match self {
PlanStepExecutorKind::ReviewReadonly => "review_readonly",
PlanStepExecutorKind::PatchWrite => "patch_write",
PlanStepExecutorKind::TestRunner => "test_runner",
}
}
}
#[derive(Debug, Clone, Copy, PartialEq, Eq, Deserialize, Serialize)]
#[serde(rename_all = "snake_case")]
pub enum WorkflowNodeToolRole {
ReviewReadonly,
PatchWrite,
TestRunner,
}
impl WorkflowNodeToolRole {
pub fn as_plan_step_executor_kind(self) -> PlanStepExecutorKind {
match self {
WorkflowNodeToolRole::ReviewReadonly => PlanStepExecutorKind::ReviewReadonly,
WorkflowNodeToolRole::PatchWrite => PlanStepExecutorKind::PatchWrite,
WorkflowNodeToolRole::TestRunner => PlanStepExecutorKind::TestRunner,
}
}
}