use crate::agent::{plugins::PluginStore, task::Task}; pub struct PluginTask { plugin: String, store: PluginStore, } impl PluginTask { pub fn new(plugin: impl Into, store: PluginStore) -> Self { Self { plugin: plugin.into(), store, } } } #[async_trait::async_trait] impl Task for PluginTask { async fn id(&self) -> anyhow::Result { let id = self.store.id(&self.plugin).await?; Ok(id) } async fn execute(&self) -> anyhow::Result<()> { self.store.execute(&self.plugin).await?; Ok(()) } }