a3s 0.8.0

a3s — A3S coding agent CLI; `a3s code` launches the interactive TUI
use std::sync::Arc;

use a3s_boot::{controller, Result as BootResult};

use super::service::KernelService;
use crate::api::code_web::dto::SleepSessionRequest;

pub(super) struct KernelSleepController {
    service: Arc<KernelService>,
}

impl KernelSleepController {
    pub(super) fn new(service: Arc<KernelService>) -> Self {
        Self { service }
    }
}

#[controller("/")]
impl KernelSleepController {
    #[post("/v1/kernel/sessions/{session_id}/actions/sleep")]
    async fn sleep_session(
        &self,
        #[param("session_id")] session_id: String,
        #[body] request: SleepSessionRequest,
    ) -> BootResult<serde_json::Value> {
        self.service.sleep_session(&session_id, request).await
    }
}