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