Skip to main content

systemprompt_models/services/
skills.rs

1use 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}