Skip to main content

vv_agent/sdk/client/task/
defaults.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(
10        &self,
11        prompt: impl Into<String>,
12        resolved_model_id: impl Into<String>,
13    ) -> Result<AgentTask, String> {
14        let (name, definition) = self.default_or_only_agent(
15            "No agent configured. Call prepare_task_with_agent(...) or register named agents first.",
16            "Multiple agents configured. Call prepare_task_for_agent(name, ...) with one of:",
17        )?;
18        Ok(self.prepare_task_with_named_agent_in_workspace(
19            &name,
20            definition,
21            prompt,
22            resolved_model_id,
23            self.options.workspace.clone(),
24            None::<String>,
25        ))
26    }
27
28    pub fn prepare_task_with_request(
29        &self,
30        request: AgentSessionRunRequest,
31        resolved_model_id: impl Into<String>,
32    ) -> Result<AgentTask, String> {
33        let (name, definition) = self.default_or_only_agent(
34            "No agent configured. Call prepare_task_with_agent_request(...) or register named agents first.",
35            "Multiple agents configured. Call prepare_task_for_agent_with_request(name, ...) with one of:",
36        )?;
37        Ok(self.prepare_task_with_named_agent_request(
38            &name,
39            definition,
40            request,
41            resolved_model_id,
42        ))
43    }
44
45    pub fn prepare_task_with_session_id(
46        &self,
47        prompt: impl Into<String>,
48        resolved_model_id: impl Into<String>,
49        session_id: impl Into<String>,
50    ) -> Result<AgentTask, String> {
51        let (name, definition) = self.default_or_only_agent(
52            "No agent configured. Call prepare_task_with_agent_with_session_id(...) or register named agents first.",
53            "Multiple agents configured. Call prepare_task_for_agent_with_session_id(name, ...) with one of:",
54        )?;
55        Ok(self.prepare_task_with_named_agent_in_workspace(
56            &name,
57            definition,
58            prompt,
59            resolved_model_id,
60            self.options.workspace.clone(),
61            Some(session_id.into()),
62        ))
63    }
64
65    pub fn prepare_task_in_workspace(
66        &self,
67        prompt: impl Into<String>,
68        resolved_model_id: impl Into<String>,
69        workspace: impl Into<PathBuf>,
70    ) -> Result<AgentTask, String> {
71        let (name, definition) = self.default_or_only_agent(
72            "No agent configured. Call prepare_task_with_agent_in_workspace(...) or register named agents first.",
73            "Multiple agents configured. Call prepare_task_for_agent_in_workspace(name, ...) with one of:",
74        )?;
75        Ok(self.prepare_task_with_named_agent_in_workspace(
76            &name,
77            definition,
78            prompt,
79            resolved_model_id,
80            workspace,
81            None::<String>,
82        ))
83    }
84
85    pub fn prepare_task_in_workspace_with_session_id(
86        &self,
87        prompt: impl Into<String>,
88        resolved_model_id: impl Into<String>,
89        workspace: impl Into<PathBuf>,
90        session_id: impl Into<String>,
91    ) -> Result<AgentTask, String> {
92        let (name, definition) = self.default_or_only_agent(
93            "No agent configured. Call prepare_task_with_agent_in_workspace_with_session_id(...) or register named agents first.",
94            "Multiple agents configured. Call prepare_task_for_agent_in_workspace_with_session_id(name, ...) with one of:",
95        )?;
96        Ok(self.prepare_task_with_named_agent_in_workspace(
97            &name,
98            definition,
99            prompt,
100            resolved_model_id,
101            workspace,
102            Some(session_id.into()),
103        ))
104    }
105}