use crate::types::task::Task;
use crate::tools::registry::ToolRegistry;
pub trait PromptBuilder: Send + Sync {
fn build_system_prompt(&self, task: &Task, source_root: &std::path::Path, work_dir: &std::path::Path) -> String;
fn build_user_message(&self, task: &Task) -> String;
fn customize_tools(&self, _task: &Task, registry: ToolRegistry) -> ToolRegistry {
registry
}
}
pub struct DefaultPromptBuilder;
impl PromptBuilder for DefaultPromptBuilder {
fn build_system_prompt(&self, task: &Task, source_root: &std::path::Path, work_dir: &std::path::Path) -> String {
crate::prompts::teammate_system_prompt(task, source_root, work_dir)
}
fn build_user_message(&self, task: &Task) -> String {
crate::prompts::teammate_user_message(task)
}
}