vtcode_core/core/interfaces/
acp.rs1use anyhow::Result;
2use async_trait::async_trait;
3
4use crate::config::loader::VTCodeConfig;
5use crate::config::types::AgentConfig as CoreAgentConfig;
6
7#[derive(Debug)]
9pub struct AcpLaunchParams<'a> {
10 pub agent_config: &'a CoreAgentConfig,
11 pub runtime_config: &'a VTCodeConfig,
12}
13
14impl<'a> AcpLaunchParams<'a> {
15 pub fn new(agent_config: &'a CoreAgentConfig, runtime_config: &'a VTCodeConfig) -> Self {
16 Self { agent_config, runtime_config }
17 }
18}
19
20#[async_trait(?Send)]
22pub trait AcpClientAdapter: Send + Sync {
23 async fn serve(&self, params: AcpLaunchParams<'_>) -> Result<()>;
24}