Skip to main content

vv_agent/sdk/client/sessions/
named.rs

1use std::path::PathBuf;
2
3use crate::sdk::session::AgentSession;
4use crate::types::Metadata;
5
6use super::super::AgentSDKClient;
7use super::base::{
8    create_agent_session, create_agent_session_with_id, create_agent_session_with_id_and_workspace,
9    create_agent_session_with_id_and_workspace_and_shared_state,
10    create_agent_session_with_shared_state, create_agent_session_with_workspace,
11    create_agent_session_with_workspace_and_shared_state,
12};
13
14impl AgentSDKClient {
15    pub fn create_agent_session_by_name(
16        &self,
17        agent_name: impl AsRef<str>,
18    ) -> Result<AgentSession, String> {
19        let agent_name = agent_name.as_ref().trim();
20        let definition = self.get_agent(agent_name)?.clone();
21        Ok(create_agent_session(self, agent_name, definition))
22    }
23
24    pub fn create_agent_session_by_name_in_workspace(
25        &self,
26        agent_name: impl AsRef<str>,
27        workspace: impl Into<PathBuf>,
28    ) -> Result<AgentSession, String> {
29        let agent_name = agent_name.as_ref().trim();
30        let definition = self.get_agent(agent_name)?.clone();
31        Ok(create_agent_session_with_workspace(
32            self, agent_name, definition, workspace,
33        ))
34    }
35
36    pub fn create_agent_session_by_name_with_id(
37        &self,
38        agent_name: impl AsRef<str>,
39        session_id: impl Into<String>,
40    ) -> Result<AgentSession, String> {
41        let agent_name = agent_name.as_ref().trim();
42        let definition = self.get_agent(agent_name)?.clone();
43        Ok(create_agent_session_with_id(
44            self, agent_name, definition, session_id,
45        ))
46    }
47
48    pub fn create_agent_session_by_name_with_id_and_workspace(
49        &self,
50        agent_name: impl AsRef<str>,
51        session_id: impl Into<String>,
52        workspace: impl Into<PathBuf>,
53    ) -> Result<AgentSession, String> {
54        let agent_name = agent_name.as_ref().trim();
55        let definition = self.get_agent(agent_name)?.clone();
56        Ok(create_agent_session_with_id_and_workspace(
57            self, agent_name, definition, session_id, workspace,
58        ))
59    }
60
61    pub fn create_agent_session_by_name_in_workspace_with_shared_state(
62        &self,
63        agent_name: impl AsRef<str>,
64        workspace: impl Into<PathBuf>,
65        shared_state: Metadata,
66    ) -> Result<AgentSession, String> {
67        let agent_name = agent_name.as_ref().trim();
68        let definition = self.get_agent(agent_name)?.clone();
69        Ok(create_agent_session_with_workspace_and_shared_state(
70            self,
71            agent_name,
72            definition,
73            workspace,
74            shared_state,
75        ))
76    }
77
78    pub fn create_agent_session_by_name_with_id_workspace_and_shared_state(
79        &self,
80        agent_name: impl AsRef<str>,
81        session_id: impl Into<String>,
82        workspace: impl Into<PathBuf>,
83        shared_state: Metadata,
84    ) -> Result<AgentSession, String> {
85        let agent_name = agent_name.as_ref().trim();
86        let definition = self.get_agent(agent_name)?.clone();
87        Ok(create_agent_session_with_id_and_workspace_and_shared_state(
88            self,
89            agent_name,
90            definition,
91            session_id,
92            workspace,
93            shared_state,
94        ))
95    }
96
97    pub fn create_agent_session_by_name_with_shared_state(
98        &self,
99        agent_name: impl AsRef<str>,
100        shared_state: Metadata,
101    ) -> Result<AgentSession, String> {
102        let agent_name = agent_name.as_ref().trim();
103        let definition = self.get_agent(agent_name)?.clone();
104        Ok(create_agent_session_with_shared_state(
105            self,
106            agent_name,
107            definition,
108            shared_state,
109        ))
110    }
111}