pub mod mcp;
mod static_engine;
pub mod wasm;
pub use mcp::McpHostEngine;
pub use static_engine::StaticEngine;
pub use wasm::WasmEngine;
use async_trait::async_trait;
use crate::context::CapsuleContext;
use crate::error::CapsuleResult;
#[async_trait]
pub trait ExecutionEngine: Send + Sync {
async fn load(&mut self, ctx: &CapsuleContext) -> CapsuleResult<()>;
async fn unload(&mut self) -> CapsuleResult<()>;
fn take_inbound_rx(
&mut self,
) -> Option<tokio::sync::mpsc::Receiver<astrid_core::InboundMessage>> {
None
}
fn tools(&self) -> &[std::sync::Arc<dyn crate::tool::CapsuleTool>] {
&[]
}
}