use meerkat_core::skills::{SkillKey, SourceIdentityRecord};
use serde::{Deserialize, Serialize};
#[derive(Debug, Clone, Serialize, Deserialize)]
#[cfg_attr(feature = "schema", derive(schemars::JsonSchema))]
pub struct SkillSourceProvenance {
#[serde(flatten)]
pub identity: SourceIdentityRecord,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
#[cfg_attr(feature = "schema", derive(schemars::JsonSchema))]
pub struct SkillEntry {
pub key: SkillKey,
pub name: String,
pub description: String,
pub scope: String,
pub source: SkillSourceProvenance,
pub is_active: bool,
#[serde(skip_serializing_if = "Option::is_none")]
pub shadowed_by: Option<SkillSourceProvenance>,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
#[cfg_attr(feature = "schema", derive(schemars::JsonSchema))]
pub struct SkillListResponse {
pub skills: Vec<SkillEntry>,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
#[cfg_attr(feature = "schema", derive(schemars::JsonSchema))]
pub struct SkillInspectResponse {
pub key: SkillKey,
pub name: String,
pub description: String,
pub scope: String,
pub source: SkillSourceProvenance,
pub body: String,
}