vv-agent 0.1.3

VectorVein agent runtime, SDK, CLI, tools, and workspace backends
Documentation
use std::path::PathBuf;

use crate::sdk::session::AgentSession;
use crate::types::Metadata;

use super::super::AgentSDKClient;
use super::base::{
    create_agent_session, create_agent_session_with_id, create_agent_session_with_id_and_workspace,
    create_agent_session_with_id_and_workspace_and_shared_state,
    create_agent_session_with_shared_state, create_agent_session_with_workspace,
    create_agent_session_with_workspace_and_shared_state,
};

impl AgentSDKClient {
    pub fn create_agent_session_by_name(
        &self,
        agent_name: impl AsRef<str>,
    ) -> Result<AgentSession, String> {
        let agent_name = agent_name.as_ref().trim();
        let definition = self.get_agent(agent_name)?.clone();
        Ok(create_agent_session(self, agent_name, definition))
    }

    pub fn create_agent_session_by_name_in_workspace(
        &self,
        agent_name: impl AsRef<str>,
        workspace: impl Into<PathBuf>,
    ) -> Result<AgentSession, String> {
        let agent_name = agent_name.as_ref().trim();
        let definition = self.get_agent(agent_name)?.clone();
        Ok(create_agent_session_with_workspace(
            self, agent_name, definition, workspace,
        ))
    }

    pub fn create_agent_session_by_name_with_id(
        &self,
        agent_name: impl AsRef<str>,
        session_id: impl Into<String>,
    ) -> Result<AgentSession, String> {
        let agent_name = agent_name.as_ref().trim();
        let definition = self.get_agent(agent_name)?.clone();
        Ok(create_agent_session_with_id(
            self, agent_name, definition, session_id,
        ))
    }

    pub fn create_agent_session_by_name_with_id_and_workspace(
        &self,
        agent_name: impl AsRef<str>,
        session_id: impl Into<String>,
        workspace: impl Into<PathBuf>,
    ) -> Result<AgentSession, String> {
        let agent_name = agent_name.as_ref().trim();
        let definition = self.get_agent(agent_name)?.clone();
        Ok(create_agent_session_with_id_and_workspace(
            self, agent_name, definition, session_id, workspace,
        ))
    }

    pub fn create_agent_session_by_name_in_workspace_with_shared_state(
        &self,
        agent_name: impl AsRef<str>,
        workspace: impl Into<PathBuf>,
        shared_state: Metadata,
    ) -> Result<AgentSession, String> {
        let agent_name = agent_name.as_ref().trim();
        let definition = self.get_agent(agent_name)?.clone();
        Ok(create_agent_session_with_workspace_and_shared_state(
            self,
            agent_name,
            definition,
            workspace,
            shared_state,
        ))
    }

    pub fn create_agent_session_by_name_with_id_workspace_and_shared_state(
        &self,
        agent_name: impl AsRef<str>,
        session_id: impl Into<String>,
        workspace: impl Into<PathBuf>,
        shared_state: Metadata,
    ) -> Result<AgentSession, String> {
        let agent_name = agent_name.as_ref().trim();
        let definition = self.get_agent(agent_name)?.clone();
        Ok(create_agent_session_with_id_and_workspace_and_shared_state(
            self,
            agent_name,
            definition,
            session_id,
            workspace,
            shared_state,
        ))
    }

    pub fn create_agent_session_by_name_with_shared_state(
        &self,
        agent_name: impl AsRef<str>,
        shared_state: Metadata,
    ) -> Result<AgentSession, String> {
        let agent_name = agent_name.as_ref().trim();
        let definition = self.get_agent(agent_name)?.clone();
        Ok(create_agent_session_with_shared_state(
            self,
            agent_name,
            definition,
            shared_state,
        ))
    }
}