systemprompt_models/services/
skills.rs1use serde::{Deserialize, Serialize};
2use std::collections::HashMap;
3
4use super::ai::ToolModelConfig;
5use super::IncludableString;
6
7const fn default_true() -> bool {
8 true
9}
10
11#[derive(Debug, Clone, Default, Serialize, Deserialize)]
12pub struct SkillsConfig {
13 #[serde(default = "default_true")]
14 pub enabled: bool,
15
16 #[serde(default)]
17 pub auto_discover: bool,
18
19 #[serde(default)]
20 pub skills_path: Option<String>,
21
22 #[serde(default)]
23 pub skills: HashMap<String, SkillConfig>,
24}
25
26#[derive(Debug, Clone, Serialize, Deserialize)]
27pub struct SkillConfig {
28 pub id: String,
29 pub name: String,
30 pub description: String,
31
32 #[serde(default = "default_true")]
33 pub enabled: bool,
34
35 #[serde(default)]
36 pub tags: Vec<String>,
37
38 #[serde(default)]
39 pub instructions: Option<IncludableString>,
40
41 #[serde(default)]
42 pub assigned_agents: Vec<String>,
43
44 #[serde(default)]
45 pub mcp_servers: Vec<String>,
46
47 #[serde(skip_serializing_if = "Option::is_none")]
48 pub model_config: Option<ToolModelConfig>,
49}