| 64 | |
| 65 | #[derive(Debug, Clone, Serialize, Deserialize)] |
| 66 | pub struct AgentInfo { |
| 67 | pub name: String, |
| 68 | pub description: Option<String>, |
| 69 | pub mode: AgentMode, |
| 70 | pub model: Option<ModelRef>, |
| 71 | #[serde(default, skip_serializing_if = "Option::is_none")] |
| 72 | pub model_preference: Option<ModelRef>, |
| 73 | pub system_prompt: Option<String>, |
| 74 | pub temperature: Option<f32>, |
| 75 | pub top_p: Option<f32>, |
| 76 | pub max_tokens: Option<u64>, |
| 77 | pub max_steps: Option<u32>, |
| 78 | #[serde(default, skip_serializing_if = "Vec::is_empty")] |
| 79 | pub allowed_tools: Vec<String>, |
| 80 | pub options: HashMap<String, serde_json::Value>, |
| 81 | #[serde(default, alias = "permission_ruleset")] |
| 82 | pub permission: PermissionRuleset, |
| 83 | #[serde(default)] |
| 84 | pub hidden: bool, |
| 85 | #[serde(default)] |
| 86 | pub native: bool, |
| 87 | #[serde(default)] |
| 88 | pub variant: Option<String>, |
| 89 | #[serde(default)] |
| 90 | pub color: Option<String>, |
| 91 | } |
| 92 | |
| 93 | #[derive(Debug, Clone, Copy, Serialize, Deserialize, Default)] |
| 94 | pub enum AgentMode { |
nothing calls this directly
no outgoing calls
no test coverage detected