use anyhow::Result;
use serde_json::Value;
#[derive(Debug, Clone, serde::Serialize, serde::Deserialize)]
pub struct CapabilityMetadata {
pub name: String,
pub description: String,
pub parameters: Value, }
pub trait Capability: Send + Sync {
fn metadata(&self) -> CapabilityMetadata;
fn execute(&self, args: Value) -> Result<Value>;
}