Skip to main content

vtcode_core/tools/registry/
scheduler_facade.rs

1use anyhow::Result;
2use chrono::{DateTime, Utc};
3
4use crate::scheduler::{DueSessionPrompt, ScheduleSpec, ScheduledTaskSummary};
5
6use super::ToolRegistry;
7
8impl ToolRegistry {
9    pub async fn create_session_prompt_task(
10        &self,
11        name: Option<String>,
12        prompt: String,
13        schedule: ScheduleSpec,
14        created_at: DateTime<Utc>,
15    ) -> Result<ScheduledTaskSummary> {
16        let mut scheduler = self.session_scheduler.lock().await;
17        scheduler.create_prompt_task(name, prompt, schedule, created_at)
18    }
19
20    pub async fn list_session_tasks(&self) -> Vec<ScheduledTaskSummary> {
21        let scheduler = self.session_scheduler.lock().await;
22        scheduler.list()
23    }
24
25    pub async fn delete_session_task(&self, query: &str) -> Option<ScheduledTaskSummary> {
26        let mut scheduler = self.session_scheduler.lock().await;
27        scheduler.delete(query)
28    }
29
30    pub async fn collect_due_session_prompts(
31        &self,
32        now: DateTime<Utc>,
33    ) -> Result<Vec<DueSessionPrompt>> {
34        let mut scheduler = self.session_scheduler.lock().await;
35        scheduler.collect_due_prompts(now)
36    }
37}