Skip to main content

systemprompt_agent/models/
runtime.rs

1use serde::{Deserialize, Serialize};
2use systemprompt_models::ai::ToolModelOverrides;
3
4#[derive(Debug, Clone, Serialize, Deserialize, PartialEq, Eq)]
5#[serde(rename_all = "camelCase")]
6pub struct AgentRuntimeInfo {
7    pub name: String,
8    pub port: u16,
9    pub is_enabled: bool,
10    pub is_primary: bool,
11    pub system_prompt: Option<String>,
12    pub mcp_servers: Vec<String>,
13    pub provider: Option<String>,
14    pub model: Option<String>,
15    pub max_output_tokens: Option<u32>,
16    #[serde(default)]
17    pub skills: Vec<String>,
18    #[serde(default)]
19    pub tool_model_overrides: ToolModelOverrides,
20}
21
22impl From<systemprompt_models::AgentConfig> for AgentRuntimeInfo {
23    fn from(config: systemprompt_models::AgentConfig) -> Self {
24        Self {
25            name: config.name,
26            port: config.port,
27            is_enabled: config.enabled,
28            is_primary: config.is_primary,
29            system_prompt: config.metadata.system_prompt,
30            mcp_servers: config.metadata.mcp_servers,
31            provider: config.metadata.provider,
32            model: config.metadata.model,
33            max_output_tokens: config.metadata.max_output_tokens,
34            skills: config.metadata.skills,
35            tool_model_overrides: config.metadata.tool_model_overrides,
36        }
37    }
38}