use std::sync::Arc;
use theway_core::AgentTool;
use theway_daemon::tools::skill::SkillHarnessCell;
use crate::triggers::cron::CronRegistry;
use crate::triggers::dynamic::DynamicTriggerRegistry;
pub fn new_cron_job_tool(
harness_cell: SkillHarnessCell,
registry: CronRegistry,
) -> Arc<dyn AgentTool> {
Arc::new(crate::triggers::NewCronJobTool::new(
Some(harness_cell),
registry,
))
}
pub fn list_cron_jobs_tool(registry: CronRegistry) -> Arc<dyn AgentTool> {
Arc::new(crate::triggers::ListCronJobsTool::new(registry))
}
pub fn remove_cron_job_tool(
harness_cell: SkillHarnessCell,
registry: CronRegistry,
) -> Arc<dyn AgentTool> {
Arc::new(crate::triggers::RemoveCronJobTool::new(
Some(harness_cell),
registry,
))
}
pub fn set_cron_job_state_tool(
harness_cell: SkillHarnessCell,
registry: CronRegistry,
) -> Arc<dyn AgentTool> {
Arc::new(crate::triggers::SetCronJobStateTool::new(
Some(harness_cell),
registry,
))
}
pub fn new_trigger_tool(registry: DynamicTriggerRegistry) -> Arc<dyn AgentTool> {
Arc::new(crate::triggers::NewTriggerTool::new(registry))
}
pub fn list_triggers_tool(registry: DynamicTriggerRegistry) -> Arc<dyn AgentTool> {
Arc::new(crate::triggers::ListTriggersTool::new(registry))
}
pub fn remove_trigger_tool(registry: DynamicTriggerRegistry) -> Arc<dyn AgentTool> {
Arc::new(crate::triggers::RemoveTriggerTool::new(registry))
}
pub fn set_trigger_state_tool(registry: DynamicTriggerRegistry) -> Arc<dyn AgentTool> {
Arc::new(crate::triggers::SetTriggerStateTool::new(registry))
}