systemprompt_agent/models/
runtime.rs1use 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}