use crate::Result;
use async_trait::async_trait;
use unitycatalog_common::models::agent_skills::v0alpha1::*;
#[async_trait]
pub trait AgentSkillHandler<Cx = crate::api::RequestContext>: Send + Sync + 'static {
async fn list_agent_skills(
&self,
request: ListAgentSkillsRequest,
context: Cx,
) -> Result<ListAgentSkillsResponse>;
async fn create_agent_skill(
&self,
request: CreateAgentSkillRequest,
context: Cx,
) -> Result<AgentSkill>;
async fn get_agent_skill(
&self,
request: GetAgentSkillRequest,
context: Cx,
) -> Result<AgentSkill>;
async fn update_agent_skill(
&self,
request: UpdateAgentSkillRequest,
context: Cx,
) -> Result<AgentSkill>;
async fn delete_agent_skill(&self, request: DeleteAgentSkillRequest, context: Cx)
-> Result<()>;
}