vtcode_core/tools/registry/
scheduler_facade.rs1use 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}