Skip to main content

vv_agent/sdk/client/task/
named.rs

1use std::path::PathBuf;
2
3use crate::types::AgentTask;
4
5use super::super::super::session::AgentSessionRunRequest;
6use super::super::AgentSDKClient;
7
8impl AgentSDKClient {
9    pub fn prepare_task_for_agent(
10        &self,
11        agent_name: impl AsRef<str>,
12        prompt: impl Into<String>,
13        resolved_model_id: impl Into<String>,
14    ) -> Result<AgentTask, String> {
15        let agent_name = agent_name.as_ref().trim();
16        let definition = self.get_agent(agent_name)?.clone();
17        Ok(self.prepare_task_with_named_agent_in_workspace(
18            agent_name,
19            definition,
20            prompt,
21            resolved_model_id,
22            self.options.workspace.clone(),
23            None::<String>,
24        ))
25    }
26
27    pub fn prepare_task_for_agent_with_request(
28        &self,
29        agent_name: impl AsRef<str>,
30        request: AgentSessionRunRequest,
31        resolved_model_id: impl Into<String>,
32    ) -> Result<AgentTask, String> {
33        let agent_name = agent_name.as_ref().trim();
34        let definition = self.get_agent(agent_name)?.clone();
35        Ok(self.prepare_task_with_named_agent_request(
36            agent_name,
37            definition,
38            request,
39            resolved_model_id,
40        ))
41    }
42
43    pub fn prepare_task_for_agent_with_session_id(
44        &self,
45        agent_name: impl AsRef<str>,
46        prompt: impl Into<String>,
47        resolved_model_id: impl Into<String>,
48        session_id: impl Into<String>,
49    ) -> Result<AgentTask, String> {
50        let agent_name = agent_name.as_ref().trim();
51        let definition = self.get_agent(agent_name)?.clone();
52        Ok(self.prepare_task_with_named_agent_in_workspace(
53            agent_name,
54            definition,
55            prompt,
56            resolved_model_id,
57            self.options.workspace.clone(),
58            Some(session_id.into()),
59        ))
60    }
61
62    pub fn prepare_task_for_agent_in_workspace(
63        &self,
64        agent_name: impl AsRef<str>,
65        prompt: impl Into<String>,
66        resolved_model_id: impl Into<String>,
67        workspace: impl Into<PathBuf>,
68    ) -> Result<AgentTask, String> {
69        let agent_name = agent_name.as_ref().trim();
70        let definition = self.get_agent(agent_name)?.clone();
71        Ok(self.prepare_task_with_named_agent_in_workspace(
72            agent_name,
73            definition,
74            prompt,
75            resolved_model_id,
76            workspace,
77            None::<String>,
78        ))
79    }
80
81    pub fn prepare_task_for_agent_in_workspace_with_session_id(
82        &self,
83        agent_name: impl AsRef<str>,
84        prompt: impl Into<String>,
85        resolved_model_id: impl Into<String>,
86        workspace: impl Into<PathBuf>,
87        session_id: impl Into<String>,
88    ) -> Result<AgentTask, String> {
89        let agent_name = agent_name.as_ref().trim();
90        let definition = self.get_agent(agent_name)?.clone();
91        Ok(self.prepare_task_with_named_agent_in_workspace(
92            agent_name,
93            definition,
94            prompt,
95            resolved_model_id,
96            workspace,
97            Some(session_id.into()),
98        ))
99    }
100}