use crate::config::{ClaudeAgentClientConfig, SessionConfig};
use crate::error::Result;
use crate::session::AgentSession;
pub struct ClaudeAgentClient {
_config: ClaudeAgentClientConfig,
}
impl ClaudeAgentClient {
pub fn builder() -> crate::config::ClaudeAgentClientBuilder {
crate::config::ClaudeAgentClientBuilder::default()
}
pub fn new(config: ClaudeAgentClientConfig) -> Self {
Self { _config: config }
}
pub async fn create_session(&self) -> Result<AgentSession> {
let mut session_config = SessionConfig::default();
if let Some(ref model) = self._config.model {
session_config = session_config.with_default_model(model);
}
if let Some(ref cli_path) = self._config.cli_path {
session_config = session_config.with_cli_path(cli_path.to_string_lossy().to_string());
}
AgentSession::new(session_config).await
}
}