use anyhow::Result;
use async_trait::async_trait;
use crate::config::loader::VTCodeConfig;
use crate::config::types::AgentConfig as CoreAgentConfig;
#[derive(Debug)]
pub struct AcpLaunchParams<'a> {
pub agent_config: &'a CoreAgentConfig,
pub runtime_config: &'a VTCodeConfig,
}
impl<'a> AcpLaunchParams<'a> {
pub fn new(agent_config: &'a CoreAgentConfig, runtime_config: &'a VTCodeConfig) -> Self {
Self {
agent_config,
runtime_config,
}
}
}
#[async_trait(?Send)]
pub trait AcpClientAdapter: Send + Sync {
async fn serve(&self, params: AcpLaunchParams<'_>) -> Result<()>;
}