systemprompt-scheduler 0.2.2

Background jobs, cron tasks, and job-extension dispatch for systemprompt.io AI governance infrastructure. Tokio-backed scheduling for the MCP governance pipeline.
Documentation
use async_trait::async_trait;
use systemprompt_traits::{ProcessCleanupProvider, ProcessProviderError, ProcessResult};

use super::orchestration::ProcessCleanup;

#[async_trait]
impl ProcessCleanupProvider for ProcessCleanup {
    fn process_exists(&self, pid: u32) -> bool {
        Self::process_exists(pid)
    }

    fn check_port(&self, port: u16) -> Option<u32> {
        Self::check_port(port)
    }

    fn kill_process(&self, pid: u32) -> bool {
        Self::kill_process(pid)
    }

    async fn terminate_gracefully(&self, pid: u32, grace_period_ms: u64) -> bool {
        Self::terminate_gracefully(pid, grace_period_ms).await
    }

    async fn wait_for_port_free(
        &self,
        port: u16,
        max_retries: u8,
        delay_ms: u64,
    ) -> ProcessResult<()> {
        Self::wait_for_port_free(port, max_retries, delay_ms)
            .await
            .map_err(|_e| ProcessProviderError::PortTimeout(port))
    }
}