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 {
17 agent_config,
18 runtime_config,
19 }
20 }
21}
22
23#[async_trait(?Send)]
25pub trait AcpClientAdapter: Send + Sync {
26 async fn serve(&self, params: AcpLaunchParams<'_>) -> Result<()>;
27}